Microsoft Sentinel での Jupyter Notebook と MSTICPy の詳細な構成
この記事では、Microsoft Sentinel で Jupyter Notebook と MSTICPy を操作するための詳細な構成について説明します。
詳細については、「Jupyter のノートブックを使用してセキュリティの脅威を検出する」および「チュートリアル: Microsoft Sentinel での Jupyter Notebook と MSTICPy の概要」を参照してください。
前提条件
この記事は、「チュートリアル: Microsoft Sentinel での Jupyter Notebook と MSTICPy の概要」の続きです。 以下で説明する高度な手順に進む前に、このチュートリアルを実行することをお勧めします。
Azure および Microsoft Sentinel API の認証パラメーターを指定する
この手順では、msticpyconfig.yaml ファイルで Microsoft Sentinel および他の Azure API リソースの認証パラメーターを構成する方法について説明します。
MSTICPy 設定エディターで Azure 認証と Microsoft Sentinel API の設定を追加するには:
次のセルに進み、次のコードを入力して実行します。
mpedit.set_tab("Data Providers") mpedit
[Data Providers](データ プロバイダー) タブで、 [AzureCLI]>[Add](追加) の順に選択します。
使用する認証方法を選択します。
- Azure の既定値とは異なる一連の方法を使用することもできますが、この使用方法は一般的な構成ではありません。
- env (環境変数) 認証を使用する場合を除き、clientId、tenantId、clientSecret の各フィールドは空のままにしておきます。
- 推奨されていませんが、MSTICPy では、クライアント アプリ ID とシークレットを使用した認証もサポートされています。 この場合、 [Data Providers](データ プロバイダー) タブで、clientId、tenantId、clientSecret の各フィールドを直接定義します。
[Save File](ファイルの保存) を選択して、変更を保存します。
自動読み込みクエリ プロバイダーを定義する
nbinit.init_notebook
関数の実行時に、MSTICPy で自動的に読み込むクエリ プロバイダーを定義します。
新しいノートブックを頻繁に作成する場合、クエリ プロバイダーの自動読み込みにより、ピボット関数やノートブックレットなどの他のコンポーネントの前に必要なプロバイダーを確実に読み込むことができるため、時間を節約できます。
自動読み込みクエリ プロバイダーを追加するには:
次のセルに進み、次のコードを入力して実行します。
mpedit.set_tab("Autoload QueryProvs") mpedit
[Autoload QueryProv](QueryProv の自動読み込み) タブ:
- Microsoft Sentinel プロバイダーの場合は、プロバイダー名と接続先のワークスペース名の両方を指定します。
- 他のクエリ プロバイダーの場合は、プロバイダー名だけを指定します。
各プロバイダーには、次の省略可能な値もあります。
Auto-connect: このオプションは、既定で True として定義されており、MSTICPy は読み込み直後にプロバイダーに対して認証を試みます。 MSTICPy では、設定でプロバイダーの資格情報が構成済みであることを前提としています。
Alias: MSTICPy では、プロバイダーを読み込むときに、プロバイダーを Python 変数名に割り当てます。 既定では、変数名は、Microsoft Sentinel プロバイダーの場合は qryworkspace_name、他のプロバイダーの場合は qryprovider_name になります。
たとえば、ContosoSOC ワークスペースのクエリ プロバイダーを読み込むと、ノートブック環境にこのクエリ プロバイダーが
qry_ContosoSOC
という名前で作成されます。 より短い名前や、入力しやすく覚えやすい名前を使用したい場合は、別名を追加します。 プロバイダー変数名はqry_<alias>
になります。<alias>
は指定した別名に置き換えられます。このメカニズムによって読み込まれるプロバイダーは、たとえば、次のコードで使用されている、MSTICPy の
current_providers
属性にも追加されます。import msticpy msticpy.current_providers
[Save Settings](設定の保存) を選択して変更を保存します。
自動読み込み MSTICPy コンポーネントを定義する
この手順では、nbinit.init_notebook
関数の実行時に、MSTICPy によって自動的に読み込まれる他のコンポーネントを定義する方法について説明します。
サポートされているコンポーネントは次のとおりです (次の順序で読み込まれます)。
- TILookup:TI プロバイダー ライブラリ
- GeoIP: 使用する GeoIP プロバイダー
- AzureData:Azure リソースの詳細のクエリに使用するモジュール
- AzureSentinelAPI:Microsoft Sentinel API のクエリに使用するモジュール
- Notebooklets:msticnb パッケージの Notebooklets
- Pivot: ピボット関数
Note
Pivot コンポーネントでは、エンティティにアタッチするピボット関数を見つけるために、クエリ プロバイダーと他のプロバイダーが読み込まれている必要があるため、コンポーネントはこの順序で読み込まれます。 詳細については、MSTICPy のドキュメントを参照してください。
自動的に読み込まれる MSTICPy コンポーネントを定義するには:
次のセルに進み、次のコードを入力して実行します。
mpedit.set_tab("Autoload Components") mpedit
[Autoload Components](コンポーネントの自動読み込み) タブで、必要に応じてパラメーター値を定義します。 次に例を示します。
GeoIpLookup。 使用する GeoIP プロバイダーの名前 (GeoLiteLookup または IPStack) を入力します。 詳細については、「GeoIP プロバイダーの設定の追加」を参照してください。
AzureData および AzureSentinelAPI コンポーネント。 次の値を定義します。
- auth_methods: AzureCLI の既定の設定をオーバーライドし、選択した方法を使用して接続します。
- Auto-connect: 接続せずに読み込むには、false に設定します。
詳細については、「Azure および Microsoft Sentinel API の認証パラメーターを指定する」を参照してください。
Notebooklets。 Notebooklets コンポーネントには、AzureSentinel という単一のパラメーター ブロックがあります。
workspace:\<workspace name>
構文を使用して、Microsoft Sentinel ワークスペースを指定します。 ワークスペース名は、 [Microsoft Sentinel] タブで定義されているワークスペースのいずれかである必要があります。notebooklets init
関数に送信するパラメーターをさらに追加する場合は、改行で区切って、キーと値のペアとして指定します。 次に例を示します。workspace:<workspace name> providers=["LocalData","geolitelookup"]
詳細については、MSTICNB (MSTIC Notebooklets) のドキュメントを参照してください。
TILookup や Pivot など、一部のコンポーネントではパラメーターは不要です。
[Save Settings](設定の保存) を選択して変更を保存します。
Python 3.6 カーネルと 3.8 カーネルを切り替える
Python 3.65 カーネルと 3.8 カーネルを切り替えると、MSTICPy や他のパッケージが期待どおりにインストールされない場合があります。
これは、!pip install pkg
コマンドによって、最初の環境では正しくインストールされても、2 番目の環境では正しくインストールされない場合に発生する可能性があります。 これにより、2 番目の環境でパッケージをインポートまたは使用できない状況が発生します。
Azure ML ノートブックにパッケージをインストールするときに、!pip install...
を使用しないことをお勧めします。 代わりに、次のいずれかのオプションを使用します。
ノートブック内で %pip 行マジックを使用する。 次を実行します。
%pip install --upgrade msticpy
ターミナルからインストールする:
Azure ML ノートブックでターミナルを開き、次のコマンドを実行します。
conda activate azureml_py38 pip install --upgrade msticpy
ターミナルを閉じ、カーネルを再起動します。
msticpyconfig.yaml ファイルの環境変数を設定する
Azure ML で実行していて、msticpyconfig.yaml ファイルがユーザー フォルダーのルートにある場合、MSTICPy によってこれらの設定が自動的に検出されます。 ただし、ノートブックを別の環境で実行している場合は、このセクションの手順に従って、構成ファイルの場所を参照する環境変数を設定します。
環境変数に msticpyconfig.yaml ファイルのパスを定義すると、ファイルを既知の場所に保存し、常に同じ設定を読み込むことができるようになります。
ノートブックごとに異なる設定を使用する場合は、複数の構成ファイルと複数の環境変数を使用します。
~/.msticpyconfig.yaml や %userprofile%/msticpyconfig.yaml など、msticpyconfig.yaml ファイルの場所を決定します。
Azure ML ユーザー: 構成ファイルを Azure ML ユーザー フォルダーに保存すると、MSTICPy の
init_notebook
関数 (初期化セルで実行) によってファイルが自動的に検出され、使用されるので、MSTICPYCONFIG 環境変数を設定する必要はありません。ただし、ファイルにシークレットも保存されている場合は、構成ファイルをコンピューティング ローカル ドライブに保存することをお勧めします。 コンピューティング内部ストレージにアクセスできるのは、コンピューティングを作成したユーザーだけですが、共有ストレージには、Azure ML ワークスペースへのアクセス権を持つすべてのユーザーがアクセスできます。
詳細については、「Azure Machine Learning コンピューティング インスタンスとは」を参照してください。
必要に応じて、msticpyconfig.yaml ファイルを選択した場所にコピーします。
その場所を参照するように MSTICPYCONFIG 環境変数を設定します。
次のいずれかの手順を使用して、MSTICPYCONFIG 環境変数を定義します。
Windows システムで MSTICPYCONFIG 環境変数を設定する場合:
必要に応じて、msticpyconfig.yaml ファイルをコンピューティング インスタンスに移動します。
[システムのプロパティ] ダイアログ ボックスを開き、 [詳細設定] タブに移動します。
[環境変数] を選択して、 [環境変数] ダイアログを開きます。
[システム環境変数] 領域で [新規] を選択し、次のように値を定義します。
- [変数名] :
MSTICPYCONFIG
として定義します - [変数値] : msticpyconfig.yaml ファイルのパスを入力します
- [変数名] :
注意
Linux および Windows オプションでは、定義した環境変数が選択されるように、Jupyter サーバーを再起動する必要があります。
次のステップ
詳細については、次を参照してください。
サブジェクト | その他の参考資料 |
---|---|
MSTICPy | - MSTICPy パッケージ構成 - MSTICPy 設定エディター - ノートブック環境の構成 - MPSettingsEditor ノートブック 注: Azure-Sentinel-Notebooks GitHub リポジトリには、コメントアウトされたセクションを含むテンプレート msticpyconfig.yaml ファイルも含まれており、設定を理解するのに役立ちます。 |
Microsoft Sentinel と Jupyter Notebook | - 初めての Microsoft Sentinel ノートブックを作成する (ブログ シリーズ) - Jupyter Notebook: 概要 - MSTICPy のドキュメント - Microsoft Sentinel Notebooks のドキュメント - Infosec Jupyterbook - Linux Host Explorer Notebook のチュートリアル - セキュリティ調査に Jupyter を使用する理由 - Microsoft Sentinel と Notebooks を使用したセキュリティ調査 - Pandas のドキュメント - Batch のドキュメント |