Microsoft Sentinel でのウォッチリスト

Microsoft Sentinel のウォッチリストを使用すると、指定したデータ ソースのデータを Microsoft Sentinel 環境内のイベントと関連付けることができます。 たとえば、環境内の価値の高い資産、退職した従業員、またはサービス アカウントの一覧を含むウォッチリストを作成できます。

ウォッチリストは、検索、検出規則、脅威ハンティング、応答プレイブックで使用します。

ウォッチリストは、名前と値のペアとして Microsoft Sentinel ワークスペースに格納され、最適なクエリ パフォーマンスと待ち時間の短縮のためにキャッシュされます。

重要

ウォッチリスト テンプレートの機能と Azure Storage 内のファイルからウォッチリストを作成する機能は、現在プレビュー段階です。 Azure プレビューの追加使用条件には、ベータ版、プレビュー版、またはまだ一般提供されていない Azure 機能に適用される追加の法律条項が含まれています。

ウォッチリストを使用する場合

ウォッチリストは、以下のような場合に使用します。

  • IP アドレス、ファイル ハッシュ、およびその他のデータを CSV ファイルから短時間でインポートすることで、迅速に脅威の調査とインシデントへの対応を行います。 データのインポート後は、アラート ルール、脅威ハンティング、ブック、ノートブック、および一般的なクエリの結合とフィルターに、ウォッチリストの名前と値のペアを使用します。

  • ウォッチリストとしてビジネス データをインポートします。 たとえば、システムの特権アクセスを持つユーザー リストや解雇された従業員をインポートします。 次に、ウォッチリストを使用して、許可リストとブロック リストを作成し、それらのユーザーがネットワークにログインするのを検出または防止します。

  • アラートの疲れを軽減します。 通常はアラートをトリガーするタスクを実行する承認済み IP アドレスのユーザーなど、ユーザー グループからのアラートが表示されないように許可リストを作成します。 問題のないイベントがアラートにならないようにします。

  • イベント データを強化します。 ウォッチリストを使用して、外部データ ソースから派生した名前と値の組み合わせでイベント データを強化します。

ウォッチリストの制限事項

ウォッチリストを作成する前に、次の制限事項に注意してください。

  • ウォッチリストを作成する場合、ウォッチリスト名と別名はそれぞれ3~64文字である必要があります。 最初と最後の文字は、英数字にする必要があります。 ただし、先頭と最後の文字の間に空白文字、ハイフン、アンダースコアを含めることができます。
  • ウォッチリストは大規模なデータ ボリューム用に設計されていないため、その使用は参照データに限定する必要があります。
  • 1 つのワークスペース内のすべてのウォッチリストにわたるアクティブなウォッチリスト項目の合計数は、現在 1,000 万に制限されています。 削除されたウォッチリスト項目は、この合計にはカウントされません。 大規模なデータ ボリュームを参照する機能が必要な場合、代わりにカスタム ログを使用してそれらを取り込むことを検討してください。
  • ワークスペースのウォッチリストは 12 日ごとに更新され、TimeGenerated フィールドが更新されます。
  • Lighthouse を使って異なるワークスペース間でウォッチリストを管理することは、現時点ではサポートされていません。
  • 現在、ローカル ファイルのアップロードは、最大 3.8 MB のファイルに制限されています。
  • 現在、Azure Storage アカウントからのファイルのアップロード (プレビュー段階) は、最大 500 MB のファイルに制限されています。
  • ウォッチリストは、KQL エンティティと同じ列とテーブルの制限に従う必要があります。 詳細については、KQL エンティティ名に関する記事を参照してください。

ウォッチリストを作成するオプション

ローカル フォルダーからアップロードしたファイルから、または Azure Storage アカウントのファイルから、Microsoft Sentinel でウォッチリストを作成します。

Microsoft Sentinel からウォッチリスト テンプレートのいずれかをダウンロードして、データを設定するオプションがあります。 次に、Microsoft Sentinel でウォッチリストを作成するときに、そのファイルをアップロードします。

サイズが大きいファイル (最大 500 MB) からウォッチリストを作成するには、Azure Storage アカウントにファイルをアップロードします。 次に、Microsoft Sentinel の Shared Access Signature URL を作成してウォッチリスト データを取得します。 Shared Access Signature URL とは、リソースの URI とリソース (ストレージ アカウント内の CSV ファイルなど) の Shared Access Signature トークンの両方を含んだ URI です。 最後に、ウォッチリストを Microsoft Sentinel のワークスペースに追加します。

詳細については、次の記事を参照してください。

検索ルールと検出ルールのクエリのウォッチリスト

ウォッチリストを結合または検索のためのテーブルとして扱うことで、ウォッチリストのデータを基にしてテーブルのデータのクエリを実行します。 ウォッチリストを作成するときは、SearchKey を定義します。 検索キーは、他のデータとの結合または頻繁に検索されるオブジェクトとして使用するウォッチリスト内の列の名前です。 たとえば、国名とそれぞれの 2 文字の国番号を含むサーバー ウォッチリストがあるとします。 検索や結合に国番号を頻繁に使用することが予想されます。 そこで、国番号の列を検索キーとして使用します。

次のクエリの例では、Heartbeat テーブルの RemoteIPCountry 列が、mywatchlist という名前のウォッチリストに対して定義されている検索キーと結合されます。

   Heartbeat
  | lookup kind=leftouter _GetWatchlist('mywatchlist') 
   on $left.RemoteIPCountry == $right.SearchKey

他のクエリの例を見てみましょう。

分析ルールでウォッチリストを使用するとします。 IPAddressLocation の列を含む ipwatchlist というウォッチリストを作成します。 IPAddressSearchKey として定義します。

IPAddress,Location
10.0.100.11,Home
172.16.107.23,Work
10.0.150.39,Home
172.20.32.117,Work

ウォッチリストに含まれる IP アドレスを持つイベントのみを含めるには、ウォッチリストを変数として使用するクエリ、またはウォッチリストをインラインで使用するクエリを使用できます。

次のクエリ例では、ウォッチリストを変数として使用しています。

  //Watchlist as a variable
  let watchlist = (_GetWatchlist('ipwatchlist') | project IPAddress);
  Heartbeat
  | where ComputerIP in (watchlist)

次のクエリの例では、クエリにインラインになったウォッチリストと、ウォッチリストに対して定義された検索キーが使用されています。

  //Watchlist inline with the query
  //Use SearchKey for the best performance
  Heartbeat
  | where ComputerIP in ( 
      (_GetWatchlist('ipwatchlist')
      | project SearchKey)
  )

詳細については、「Microsoft Sentinel でウォッチリストを使用してクエリまたは検出ルールを作成する」を参照してください。

次のステップ

Microsoft Sentinel の詳細については、次の記事を参照してください。