Microsoft Sentinelでの Jupyter ノートブックと MSTICPy の高度な構成

この記事では、Microsoft Sentinelで Jupyter Notebook と MSTICPy を操作するための高度な構成について説明します。

詳細については、「Jupyter Notebook を使用してセキュリティ上の脅威を探す」と「Microsoft Sentinelでの Jupyter Notebook と MSTICPy の概要」を参照してください。

前提条件

この記事は、Microsoft Sentinelでの Jupyter Notebook と MSTICPy の概要に関するページの続きです。 この記事で説明されている高度な手順を続行する前に、チュートリアルを実行することをお勧めします。

Azure API と Microsoft Sentinel API の認証パラメーターを指定する

この手順では、msticpyconfig.yaml ファイル内のMicrosoft Sentinelやその他のAzure API リソースの認証パラメーターを構成する方法について説明します。

MSTICPy 設定エディター Azure認証とMicrosoft Sentinel API 設定を追加するには

  1. 次のコードを使用して次のセルに進み、それを実行します。

    mpedit.set_tab("Data Providers")
    mpedit
    
  2. [ データ プロバイダー ] タブで、[ AzureCLI>Add] を選択します。

  3. 使用する認証方法を選択します。

    • 既定値とは異なる一連のメソッドを使用できますが、この使用方法は一般的な構成ではありません。 詳細については、「はじめに ガイド Azure Sentinel ML Notebooks ノートブック」を参照してください。
    • env (環境変数) 認証を使用する場合を除き、clientIdtenantId、および clientSecret フィールドは空のままにします。
    • 推奨されませんが、MSTICPy では認証にクライアント アプリ ID とシークレットの使用もサポートされています。 このような場合は、[データ プロバイダー] タブで clientIdtenantIdclientSecret フィールドを直接定義します。
  4. [ ファイルの保存] を 選択して変更を保存します。

自動読み込みクエリ プロバイダーを定義する

nbinit.init_notebook関数を実行するときに MSTICPy で自動的に読み込むクエリ プロバイダーを定義します。

新しいノートブックを頻繁に作成する場合、自動読み込みクエリ プロバイダーは、ピボット関数やノートブックレットなどの他のコンポーネントの前に必要なプロバイダーが読み込まれるようにすることで、時間を節約できます。

自動読み込みクエリ プロバイダーを追加するには:

  1. 次のコードを使用して次のセルに進み、それを実行します。

    mpedit.set_tab("Autoload QueryProvs")
    mpedit
    
  2. [ 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
      
  3. [ 設定の保存] を 選択して変更を保存します。

自動ロードされた MSTICPy コンポーネントを定義する

この手順では、 nbinit.init_notebook 関数を実行するときに MSTICPy によって自動的に読み込まれる他のコンポーネントを定義する方法について説明します。

サポートされるコンポーネントには、次の順序が含まれます。

  1. TILookup: 使用する TI プロバイダー ライブラリ
  2. Geoip: 使用する GeoIP プロバイダー
  3. AzureData:Azure リソースに関する詳細を照会するために使用するモジュール
  4. AzureSentinelAPI:Microsoft Sentinel API のクエリに使用するモジュール
  5. Notebooklets:msticnb パッケージのノートブックレット
  6. ピボット: ピボット関数

ピボット コンポーネントにはクエリが必要であり、エンティティにアタッチされているピボット関数を見つけるために他のプロバイダーが読み込まれる必要があるため、コンポーネントはこの順序で読み込まれます。 詳細については、 MSTICPy のドキュメントを参照してください。 詳細については、「はじめに ガイド Azure Sentinel ML Notebooks ノートブック」を参照してください。

自動読み込み MSTICPy コンポーネントを定義するには:

  1. 次のコードを使用して次のセルに進み、それを実行します。

    mpedit.set_tab("Autoload Components")
    mpedit
    
  2. [ コンポーネントの自動読み込み ] タブで、必要に応じて任意のパラメーター値を定義します。 例:

    • GeoIpLookup。 使用する GeoIP プロバイダーの名前 ( GeoLiteLookup または IPStack) を入力します。

    • AzureData および AzureSentinelAPI コンポーネント。 次の値を定義します。

      • auth_methods: AzureCLI の既定の設定をオーバーライドし、選択したメソッドを使用して接続します。
      • 自動接続: 接続せずに読み込むには false に設定します。

      詳細については、「Azure API と Microsoft Sentinel API の認証パラメーターを指定する」を参照してください。

    • NotebookletsNotebooklets コンポーネントには、AzureSentinel という 1 つのパラメーター ブロックがあります。

      workspace:\<workspace name>という構文を使用して、Microsoft Sentinel ワークスペースを指定します。 ワークスペース名は、[Microsoft Sentinel] タブで定義されているワークスペースのいずれかである必要があります。

      notebooklets init関数に送信するパラメーターをさらに追加する場合は、それらをキーと値のペアとして、改行で区切って指定します。 例:

      workspace:<workspace name>
      providers=["LocalData","geolitelookup"]
      

      詳細については、 MSTICNB (MSTIC Notebooklets) のドキュメントを参照してください

    TILookup や Pivot などの一部のコンポーネントではパラメーターは必要ありません。

  3. [ 設定の保存] を 選択して変更を保存します。

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
    
  • ターミナルからインストールします

    1. Azure Machine Learning ノートブックでターミナルを開き、次のコマンドを実行します。

      conda activate azureml_py38
      pip install --upgrade msticpy
      
    2. ターミナルを閉じ、カーネルを再起動します。

msticpyconfig.yaml ファイルの環境変数を設定する

Azure Machine Learning で実行していて、ユーザー フォルダーのルートに msticpyconfig.yaml ファイルがある場合、MSTICPy はこれらの設定を自動的に見つけます。 ただし、別の環境でノートブックを実行している場合は、このセクションの手順に従って、構成ファイルの場所を指す環境変数を設定します。

環境変数で msticpyconfig.yaml ファイルへのパスを定義すると、ファイルを既知の場所に格納し、常に同じ設定を読み込むことができます。

異なるノートブックに異なる設定を使用する場合は、複数の環境変数を含む複数の構成ファイルを使用します。

  1. ~/.msticpyconfig.yaml%userprofile%/msticpyconfig.yaml など、msticpyconfig.yaml ファイルの場所を決定します。

    Azure ML ユーザー: 構成ファイルを Azure Machine Learning ユーザー フォルダーに格納する場合、MSTICPy init_notebook関数 (初期化セルで実行) によってファイルが自動的に検索されて使用され、MSTICPYCONFIG 環境変数を設定する必要はありません。

    ただし、シークレットもファイルに格納されている場合は、構成ファイルをコンピューティング ローカル ドライブに格納することをお勧めします。 コンピューティング内部ストレージには、コンピューティングを作成したユーザーのみがアクセスできます。一方、共有ストレージには、Azure Machine Learning ワークスペースへのアクセス権を持つすべてのユーザーがアクセスできます。

    詳細については、「Azure Machine Learning コンピューティング インスタンスとは」を参照してください。

  2. 必要に応じて、 msticpyconfig.yaml ファイルを選択した場所にコピーします。

  3. MSTICPYCONFIG 環境変数を、その場所をポイントするように設定します。

MSTICPYCONFIG 環境変数を定義するには、次のいずれかの手順を使用します。

たとえば、Windows システムで MSTICPYCONFIG 環境変数を設定するには、次のようにします。

  1. 必要に応じて 、msticpyconfig.yaml ファイルを Compute インスタンスに移動します。

  2. [ システムのプロパティ ] ダイアログ ボックスを開き、[ 詳細設定 ] タブに移動します。

  3. [ 環境変数... ] を選択して、[ 環境変数] ダイアログを開きます。

  4. [ システム変数 ] 領域で[ 新規]を選択し、次のように値を定義します。

    • 変数名: として定義します 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する
- The Infosec Jupyterbook
- Linux ホスト エクスプローラー ノートブックのチュートリアル
- セキュリティ調査に Jupyter を使用する理由
- Microsoft Sentinel & ノートブックを使用したセキュリティ調査
- Pandas ドキュメント
- Bokeh ドキュメント