Microsoft Sentinelのウォッチリスト

Microsoft Sentinelのウォッチリストは、セキュリティ アナリストがイベント データを効率的に関連付け、エンリッチするのに役立ちます。 価値の高い資産や退職した従業員のリストなど、参照データを柔軟に管理できます。 監視リストを検出ルール、脅威ハンティング、応答ワークフローに統合して、アラートの疲労を軽減し、脅威に迅速に対応します。 この記事では、Microsoft Sentinelでウォッチリストを使用する方法、主要なシナリオと制限事項の概要、およびセキュリティ操作を強化するためのウォッチリストの作成とクエリに関するガイダンスについて説明します。

検索、検出ルール、脅威ハンティング、応答プレイブックでウォッチリストを使用します。 ウォッチリストは、名前と値のペアとしてWatchlist テーブルのMicrosoft Sentinel ワークスペースに格納されます。 最適なクエリ パフォーマンスと待機時間を実現するためにキャッシュされます。

重要

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

ウォッチリストを使用するタイミング

これらのシナリオではウォッチリストを使用します。

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

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

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

  • イベント データをエンリッチする。 ウォッチリストを使用して、外部データ ソースからイベント データに名前と値の組み合わせを追加します。

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

ウォッチリストを作成する前に、次の制限事項を確認することをお勧めします。

制限 詳細
ウォッチリスト名とエイリアスの長さ ウォッチリストの名前とエイリアスは 3 文字から 64 文字にする必要があります。 最初と最後の文字は英数字にする必要があります。の間で使用できるスペース、ハイフン、アンダースコア。
使用目的 参照データにのみウォッチリストを使用します。 ウォッチリストは、大きなデータ ボリューム用に設計されていません。
アクティブなウォッチリストアイテムの最大数 ワークスペース内のすべてのウォッチリストで、最大 1,000 万個のアクティブなウォッチリスト アイテムを使用できます。 削除されたアイテムはカウントされません。 ボリュームが大きい場合は、 カスタム ログを使用します。
データ保存期間 Log Analytics Watchlist テーブルのデータは、28 日間保持されます。
更新間隔 ウォッチリストは 12 日ごとに更新され、 TimeGenerated フィールドが更新されます。
ワークスペース間管理 Azure Lighthouse を使用したワークスペース間でのウォッチリストの管理はサポートされていません。
ローカル ファイルのアップロード サイズ ローカル ファイルのアップロードは、最大 3.8 MB のファイルに制限されます。
Azure ストレージ ファイルのアップロード サイズ (プレビュー) Azureストレージのアップロードは、最大 500 MB のファイルに制限されます。
列とテーブルの制限 ウォッチリストは、列と名前の KQL エンティティの名前付け制限に 従う必要があります。

ウォッチリストの作成方法をMicrosoft Sentinelする

Microsoft Sentinelでウォッチリストを作成するには、次のいずれかの方法を使用します。

  • ローカル フォルダーまたは Azure ストレージ アカウントからファイルをアップロードする。

  • ウォッチリスト テンプレートをMicrosoft Sentinelからダウンロードし、データを追加してから、ウォッチリストの作成時にファイルをアップロードします。

大きなファイル (最大 500 MB) からウォッチリストを作成するには、ファイルを Azure ストレージ アカウントにアップロードします。 ウォッチリスト データを取得できるように、共有アクセス署名 (SAS) URL Microsoft Sentinel作成します。 SAS URL には、リソース URI とリソースの SAS トークン (ストレージ アカウント内の CSV ファイルなど) の両方が含まれます。 Microsoft Sentinelでウォッチリストをワークスペースに追加します。

詳細については、以下を参照してください:

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

ウォッチリスト データを他のMicrosoft Sentinelデータと関連付けるために、joinlookupなどの Kusto 表形式演算子をWatchlistテーブルに使用します。 Microsoft Sentinelは、ウォッチリストの参照とクエリに役立つ次の関数をワークスペースに作成します。

  • _GetWatchlistAlias - すべてのウォッチリストのエイリアスを返します
  • _GetWatchlist - 指定したウォッチリストの名前と値のペアを照会します

ウォッチリストを作成するときは、 SearchKey を定義します。 検索キーは、ウォッチリスト内の列の名前で、他のデータとの結合または頻繁な検索オブジェクトとして使用すると想定されます。 たとえば、国/地域名とそれぞれの 2 文字の国コードを含むサーバー ウォッチリストがあるとします。 多くの場合、検索や結合に国コードを使用することが想定されています。 そのため、検索キーとして国コード列を使用します。

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

他のいくつかのクエリ例を見てみましょう。

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

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

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

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

  //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のウォッチリストを使用したクエリと検出ルールの構築に関する記事と、Kusto ドキュメントの次の記事を参照してください。

KQL の詳細については、「Kusto 照会言語 (KQL) の概要」を参照してください。

その他のリソース:

詳細については、以下を参照してください: