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