
Microsoft 脅威インテリジェンス セキュリティツール
Microsoft脅威インテリジェンスPythonセキュリティツール。
msticpyは、Jupyter Notebookにおける情報セキュリティ調査とハンティングのためのライブラリです。以下の機能を提供します:
また、クエリ時間範囲の設定、リストからのアイテム選択・表示、ノートブック環境の設定など、時間節約のためのノートブックツール(ウィジェット)も含まれています。

msticpyパッケージは、当初Microsoft Sentinel向けのJupyter Notebook作成をサポートするために開発されました。Azure Sentinelは依然として私たちの作業の大きな焦点ですが、データクエリ/取得コンポーネントを拡張して他のソース(現在はSplunk、Microsoft Defender for Endpoint、Microsoft Graphをサポートしていますが、他のSIEMプラットフォームからのデータサポートにも積極的に取り組んでいます)からログデータを取得できるようにしています。ほとんどのコンポーネントは、任意のソースからのデータでも使用できます。Pandas DataFrameは、ほぼすべてのコンポーネントの普遍的な入出力形式として使用されています。また、ローカルCSVファイルやpickle化されたDataFrameからのデータ取得と処理を容易にするデータプロバイダも用意されています。
このパッケージは、セキュリティ調査担当者とハンターの3つの中心的なニーズに対応します:
フィードバック、バグ報告、新機能の提案、コントリビューションを歓迎します。
コアインストール:
pip install msticpy
または最新の開発ビルド:
pip install git+https://github.com/microsoft/msticpy
msticpyを最新の公開(非ベータ)リリースにアップグレードするには、以下を実行:
pip install --upgrade msticpy
注意:msticpyconfig.yamlをコピーし、msticpyフォルダの外にあるディスクに保存し、環境変数で参照することをお勧めします。これにより、msticpyのインストールを更新するたびに設定を失うことを防げます。
完全なドキュメントはReadTheDocsにあります。
多くのモジュールのサンプルノートブックは、 docs/notebooks フォルダと付随するノートブックにあります。
また、このドキュメントの最後にあるサンプルノートブックを参照して、コンテキスト内での機能の一部を確認することもできます。mybinder.org上のこのインタラクティブデモで、パッケージのいくつかの関数を試すこともできます。
QueryProviderは、Microsoft Sentinel/Log Analytics、Microsoft XDR、Splunk、OData、およびその他のログデータソースを対象とした拡張可能なクエリライブラリです。また、Mordorデータセットやローカルデータの使用も特別にサポートしています。
組み込みのパラメーター化クエリにより、単一の関数呼び出しから複雑なクエリを実行できます。シンプルなYAMLスキーマを使用して独自のクエリを追加できます。
TILookupクラスは、複数のTIプロバイダー間でIoCを検索できます。組み込みプロバイダーには、AlienVault OTX、IBM XForce、VirusTotal、Azure Sentinelが含まれます。
入力は単一のIoC観測値、または複数の観測値を含むpandas DataFrameです。プロバイダーによっては、アカウントとAPIキーが必要な場合があります。一部のプロバイダーは(特に無料ティアでは)スロットリングを実施する場合があり、一括ルックアップのパフォーマンスに影響を与える可能性があります。
TIProviders および TILookup Usage Notebook
GeoIPルックアップクラスを使用すると、IPアドレスの地理的位置を以下のいずれかを使用して照合できます:

GeoIP Lookup および GeoIP Notebook
AzureDataモジュールには、Azure APIを介して公開される追加のホスト詳細でAzureホストの詳細をエンリッチする機能が含まれています。AzureSentinelモジュールを使用すると、インシデントのクエリ、検出器やハンティングクエリの取得ができます。AzureBlogStorageを使用すると、blobストレージからのデータの読み取りと書き込みができます。
Azure Resource APIs、 Azure Sentinel APIs、 Azure Storage
このサブパッケージには、セキュリティ調査とハンティングに役立ついくつかのモジュールが含まれています:
Office、Active Directory、その他のログデータにおける異常なイベントシーケンスを検出します。セッション(例:同じアカウントによって開始されたアクティビティ)を抽出し、異常なアクティビティシーケンスを識別して可視化できます。例えば、攻撃者が誰かのメールボックスにメール転送ルールを設定することを検出します。
Anomalous Sessions および Anomalous Sequence Notebook
時系列分析を使用すると、通常の季節変動(例:時間帯、曜日ごとのイベントの規則的な増減)を考慮して、ログデータ内の異常なパターンを特定できます。分析と可視化の両方を使用して、あらゆるデータセットの異常なトラフィックフローやイベントアクティビティを強調表示します。

任意のログイベントをインタラクティブなタイムラインに表示します。Bokeh Visualization Libraryを使用して、タイムラインコントロールにより、1つ以上のイベントストリームを可視化し、特定の時間枠にインタラクティブにズームインし、プロットされたイベントの詳細を表示できます。

Timeline および Timeline Notebook
プロセスツリー機能には、主に2つのコンポーネントがあります:
処理済みデータセットから個別および部分的なツリーを抽出するための一連のユーティリティ関数があります。

Process Tree および Process Tree Notebook
MSTICPyの機能を「エンティティ中心」の方法で使用できるようにします。特定のエンティティタイプ(例:Host、IpAddress、Url)に関連するすべての関数、クエリ、ルックアップが、そのエンティティクラスのメソッドとしてまとめられます。したがって、IPアドレスで何かをしたい場合は、IpAddressエンティティをロードしてそのメソッドを参照するだけです。
Pivot Functions および Pivot Functions Notebook
Base64およびアーカイブ(gz、zip、tar)抽出ツール。base64でエンコードされた文字列を特定してデコードしようとします。結果がサポートされているアーカイブタイプのいずれかのように見える場合は、内容を展開します。各デコード/展開の結果は、さらにbase64コンテンツがないか、指定された深さまで再チェックされます。
Base64 Decoding および Base64Unpack Notebook
正規表現を使用して、侵害指標(IoC)パターン(IPアドレス、URL、DNSドメイン、ハッシュ、ファイルパス)を検索します。入力は単一の文字列またはpandasデータフレームです。
IoC Extraction および IoCExtract Notebook
このモジュールは、大量のイベントを異なるパターンのクラスターに要約するために使用されることを目的としています。大量に繰り返されるイベントは、ユニークで興味深いアイテムを見えにくくすることがよくあります。

これは、SciKit Learn DBScanを使用して実装された教師なし学習モジュールです。
Event Clustering および Event Clustering Notebook
Linux監査ログをロードしてデコードするモジュール。同じメッセージIDを共有するメッセージを単一のイベントに統合し、16進エンコードされたデータフィールドをデコードし、イベント固有のフォーマットと正規化を実行します(例:プロセス開始イベントの場合、プロセスコマンドライン引数を単一の文字列に再構成します)。
syslogログのみが有効なLinuxホストの調査をサポートするモジュール。これには、ホストデータの照合、ログオンイベントのクラスタリング、不審なアクティビティを含むユーザーセッションの検出のための関数が含まれています。
既知の悪意のあるコマンドラインアクティビティ、または不審なパターンのコマンドラインアクティビティの検出をサポートするモジュール。
ドメイン名とURLの調査をサポートするモジュールで、ドメイン名の検証やURLのスクリーンショットを取得する関数を提供します。
これらはJupyter ipywidgetsコレクションから構築されており、リストピッカー、クエリ時間範囲の設定、イベント表示など、情報セキュリティタスクで役立つ共通機能を使いやすい形式にまとめています。


ノートブックの例:
GitHubで直接表示するか、リンクをnbviewer.orgにコピー&ペーストしてください。
実際のこのパッケージの使用例については、以下のノートブックを参照してください:
(簡潔な)開発者ガイドラインについては、このWiki記事を参照してください: Contributor Guidelines
このプロジェクトはコントリビューションと提案を歓迎します。ほとんどのコントリビューションには、あなたが私たちにあなたのコントリビューションを使用する権利を与える権利があること、そして実際にそうすることを宣言するコントリビューターライセンス契約(CLA)に同意する必要があります。詳細については、https://cla.microsoft.comにアクセスしてください。
プルリクエストを送信すると、CLAボットが自動的にCLAの提供が必要かどうかを判断し、PRに適切にラベルやコメントを付けます。ボットから提供される指示に従ってください。私たちのCLAを使用するすべてのリポジトリで、これを一度だけ行う必要があります。
このプロジェクトはMicrosoft Open Source Code of Conductを採用しています。詳細については、Code of Conduct FAQを参照するか、追加の質問やコメントがある場合は[email protected]までお問い合わせください。