Microsoft Sentinel でウォッチリストを使用してクエリまたは検出ルールを作成する
ウォッチリストを結合または検索のためのテーブルとして扱うことで、ウォッチリストのデータを基にしてテーブルのデータのクエリを実行します。 ウォッチリストを作成するときは、SearchKey を定義します。 検索キーは、他のデータとの結合または頻繁に検索されるオブジェクトとして使用するウォッチリスト内の列の名前です。
クエリのパフォーマンスを最適化するには、クエリでの結合のためのキーとして SearchKey を使用します。
重要
Microsoft Sentinel は Microsoft Defender ポータルにおいて、Microsoft 統合セキュリティ オペレーション プラットフォーム内で一般提供されています。 プレビューの場合、Microsoft Sentinel は、Microsoft Defender XDR や E5 ライセンスなしで、Defender ポータル内で使用可能です。 詳しくは、「Microsoft Defender ポータルの Microsoft Sentinel」を参照してください。
ウォッチリストを使用してクエリを作成する
検索クエリでウォッチリストを使用するには、_GetWatchlist('watchlist-name') 関数を使用し、結合のキーとして SearchKey を使用する Kusto クエリを記述します。
Azure portal の Microsoft Sentinel の場合、[構成] の下にある [ウォッチリスト] を選びます。
Defender ポータルの Microsoft Sentinel の場合、[Microsoft Sentinel]>[構成]>[ウォッチリスト] を選びます。使用するウォッチリストを選びます。
[ログに表示] を選びます。
[結果] タブを確認します。ウォッチリストの項目がクエリのために自動的に抽出されています。
次の例では、Name と IP Address フィールドの抽出結果が示されています。 SearchKey は、独自の列として表示されます。
クエリのタイムスタンプは、クエリ UI とスケジュールされたアラートの両方で無視されます。
_GetWatchlist('watchlist-name') 関数を使用し、結合のキーとして SearchKey を使用するクエリを記述します。
たとえば、次のクエリの例では、
Heartbeat
テーブルのRemoteIPCountry
列が、mywatchlist
という名前のウォッチリストに対して定義されている検索キーと結合されます。Heartbeat | lookup kind=leftouter _GetWatchlist('mywatchlist') on $left.RemoteIPCountry == $right.SearchKey
次の図は、Log Analytics でのこのクエリ例の結果を示したものです。
ウォッチリストを使用して分析ルールを作成する
分析ルールでウォッチリストを使用するには、クエリで _GetWatchlist('watchlist-name') 関数を使用してルールを作成します。
[構成] の下の [Analytics] を選択します。
[作成] と、作成するルールの種類を選択します。
[全般] タブで、適切な情報を入力します。
[ルールのロジックを設定] タブの [ルールのクエリ] では、
_GetWatchlist('<watchlist>')
関数をクエリで使用します。たとえば、次の値を含む CSV ファイルから作成した
ipwatchlist
という名前のウォッチリストがあるとします。IPAddress,Location
10.0.100.11,Home
172.16.107.23,Work
10.0.150.39,Home
172.20.32.117,Work
CSV ファイルは次の図のようになります。
この例で
_GetWatchlist
関数を使用すると、クエリは_GetWatchlist('ipwatchlist')
になります。この例では、ウォッチリストに 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) )
次の図は、ルール クエリで使用されるこの最後のクエリを示したものです。
分析ルール ウィザードの残りのタブをすべて設定します。
ワークスペースのウォッチリストは 12 日ごとに更新され、TimeGenerated
フィールドが更新されます。 詳細については、「脅威を検出するためのカスタム分析ルールを作成する」を参照してください。
ウォッチリストの別名の一覧を表示する
クエリまたは分析ルールで使用するウォッチリストを識別するために、ウォッチリストの別名の一覧を表示する必要がある場合があります。
Azure portal の Microsoft Sentinel の場合、[全般] の下にある [ログ] を選びます。
Defender ポータルで、[調査と応答]>[ハンティング]>[高度なハンティング] を選びます。[新しいクエリ] ページで、次のクエリを実行します:
_GetWatchlistAlias
。[結果] タブで別名の一覧を確認します。
関連するコンテンツ
このドキュメントでは、Microsoft Sentinel でウォッチリストを使用して、データを強化し、調査を向上させる方法について説明しました。 Microsoft Sentinel の詳細については、次の記事を参照してください。
- ウォッチリストを作成する
- データと潜在的な脅威を可視化する方法についての説明。
- Microsoft Sentinel を使用した脅威の検出の概要。
- ブックを使用してデータを監視する。