Azure Sentinel で脅威を検出する

重要

  • ハンティング ダッシュボード へのアップグレードは、現在 プレビュー 中です。 このアップグレードに関連する以下の項目は、"(プレビュー)" とマークされます。 ベータ版、プレビュー版、または一般提供としてまだリリースされていない Azure の機能に適用されるその他の法律条項については、「Microsoft Azure プレビューの追加使用条件」を参照してください。

セキュリティ アナリストや調査担当者は、セキュリティ上の脅威を事前に探したいと考えていますが、さまざまなシステムやセキュリティ アプライアンスによって、意味のあるイベントに解析してフィルター処理することが困難なデータが生成されています。 Azure Sentinel には、組織のデータ ソースにわたってセキュリティ上の脅威を検出するための、検出機能を強化した検索とクエリのツールが備わっています。 セキュリティ アプリやスケジュールされた分析ルールで検出されなかった新しい異常をセキュリティ アナリストが事前に探すときに役立つように、Azure Sentinel には検出クエリが組み込まれており、これを通じて、ネットワーク上で既に保有しているデータ内の問題を見つけるために適切な質問を行うことができます。

たとえば、ある組み込みクエリは、インフラストラクチャ上で実行される最もまれなプロセスに関するデータを提供します。 それらが実行されるたびに警告を受ける必要がないことも、それらがまったく無害である可能性もありますが、時々クエリを調べて、異常なことがないか確認できます。

Azure Sentinel 検出機能では、次の機能を利用できます。

  • 組み込みクエリ: Azure Sentinel のナビゲーション メニューからアクセスできるメインのハンティング ページには、テーブルやクエリ言語に慣れていただくための、すぐに使えるクエリ例が用意されています。 これらの組み込み検出クエリは、どちらも Microsoft セキュリティ研究員が新しいクエリを追加し、既存のクエリを修正しながら継続的に開発しているもので、新しく発見された驚異を探し、新しい攻撃のきざしの検出を開始する場所を把握するためのエントリ ポイントになっています。

  • IntelliSense を使用した強力なクエリ言語: ハンティング クエリは、Kusto クエリ言語 (KQL) で構築されています。これは、ハンティングを次のレベルに引き上げるために必要なパワーと柔軟性を備えたクエリ言語です。 これは、分析ルールや Azure Sentinel の他の場所のクエリで使用されている言語と同じものです。

  • ハンティング ダッシュボード (プレビュー) : メイン ページのこのアップグレードにより、すべてのクエリや選択したサブセットをクリック 1 回で実行できます。 結果の件数やスパイク、24 時間における件数の変化に着目することによってハンティングの出発点を特定できます。 お気に入りやデータ ソース、MITRE ATT&CK の戦術や手法、結果、結果の差分を基準に並べ替えやフィルタリングを行うこともできます。 まだ必要なデータ ソースが接続されていないクエリを確認すると共に、それらのクエリを有効にする方法についての推奨事項を入手できます。

  • 独自のブックマークの作成: ハンティング プロセスでは、異常または不審に見えるクエリの結果が見つかることがあります。 これらの項目を "ブックマーク" して保存し、将来参照できるように置いておくことができます。 ブックマークを付けた項目を使用して、調査用のインシデントを作成または強化できます。 ブックマークの詳細については、検出でのブックマークの使用に関するページを参照してください。

  • 調査の支援にノートブックを使う: ノートブックは、独自のカーネルを備えた仮想サンドボックス環境のようなものです。 ノートブックを使用して、機械学習、視覚化、データ分析によって、ハンティングや調査を強化することができます。 ノートブックで完全な調査を実行し、生データ、実行したコード、結果、および資格化をカプセル化して、組織内の他のユーザーに共有して再利用できるように、全体を保存することができます。

  • 格納されたデータのクエリ: クエリを実行するために、データはテーブルとしてアクセスできます。 たとえば、プロセス作成、DNS イベント、他の多くのイベントの種類に対してクエリを実行できます。

  • コミュニティへのリンク: より大きなコミュニティの力を活用して、追加のクエリやデータ ソースを見つけます。

検出を開始する

Azure Sentinel ポータルで、 [Hunting] (検出) をクリックします。

Azure Sentinel が検出を開始する

  • [Hunting] (検出) ページを開くと、すべての検出クエリが単一のテーブルに表示されます。 テーブルには、Microsoft のセキュリティ アナリスト チームが作成したすべてのクエリのほか、自身が作成または変更した追加クエリが一覧表示されます。 各クエリには、検出の対象と、クエリを実行するデータの種類に関する説明が示されます。 これらのテンプレートは、さまざまな攻撃方法ごとにグループ化されています。右側のアイコンは、初期アクセス、永続性、窃盗などの脅威の種類を分類します。

  • (プレビュー) クエリが自分の環境にどのように適用されるかを確認するには、 [Run all queries (Preview)](すべてのクエリを実行 (プレビュー)) ボタンをクリックするか、各行の左側にあるチェック ボックスを使ってクエリのサブセットを選択し、 [Run selected queries (Preview)](選択したクエリを実行 (プレビュー)) ボタンを選択します。 クエリの実行には数秒から数分かかることがあります。これは、選択したクエリの数、時間範囲、およびクエリ対象のデータ量によって異なります。

  • (プレビュー) クエリの実行が完了したら、 [結果] フィルターを使って、どのクエリからの結果が返されたかを確認することができます。 また、どのクエリが最も多く、あるいは最も少ない結果を出したかをソートすることができます。 [結果] フィルタで [N/A] を選択すると、自分の環境内でアクティブでないクエリを確認することもできます。 [N/A] の横にある情報アイコン (i) にカーソルを合わせると、そのクエリをアクティブにするために必要なデータ ソースが表示されます。

  • (プレビュー) [結果の差分] でソートまたはフィルタリングすることで、データのスパイクを特定できます。 これを使用すると、過去 24 時間の結果がその前の 24 ~ 48 時間の結果と比較され、量の大きな差を容易に調べることができます。

  • (プレビュー) テーブルの上部にある MITRE ATT&CK 戦術バー には、各 MITRE ATT&CK 戦術にマップされるクエリの数が表示されます。 戦術バーは、現在適用されている一連のフィルターに基づいて動的に更新されます。 これは、所定の結果カウント、大きい結果の差分、N/A の結果、または他のあらゆるフィルターのセットに従ってフィルター処理したときに、どの MITRE ATT&CK 戦術が表示されるかを知るための手軽な方法です。

  • (プレビュー) クエリは、MITRE ATT&CK 戦術にマップできます。 [戦術] フィルタを使用して、MITRE ATT&CK 戦術でフィルタリングまたはソートすることができます。 クエリを開くと、戦術をクリックして、その戦術の MITRE ATT&CK の説明を見ることができるようになります。

  • 任意のクエリをお気に入りに保存できます。 お気に入りに保存したクエリは、 [ハンティング] ページにアクセスするごとに自動的に実行されます。 独自の検出クエリまたは複製を作成し、既存の検出クエリ テンプレートをカスタマイズできます。

  • ハンティング クエリの詳細ページで [クエリの実行] をクリックしてすることで、ハンティング ページを離れることなく任意のクエリを実行できます。 一致件数がテーブル内の [結果] 列に表示されます。 検出クエリとその一致結果の一覧を確認します。

  • 基になるクエリのクイック レビューは、クエリの詳細ウィンドウで実行できます。 結果を表示するには、クエリ ウィンドウの下にある [クエリ結果の表示] リンク、またはウィンドウの下部にある [結果の表示] ボタンをクリックします。 クエリが [ログ] (Log Analytics) ブレードで開き、クエリの下でクエリの一致を確認できます。

  • Log Analytics のクエリで疑わしい結果や興味深い結果を保存するには、保存したい行のチェック ボックスをマークし、 [ブックマークの追加] を選択します。 これにより、マークされた行ごとに、行の結果、結果を作成したクエリ、およびユーザー、ホスト、IP アドレスを抽出するためのエンティティ マッピングを含むレコード (ブックマーク) が作成されます。 各ブックマークには、独自のタグ (下記を参照) とメモを追加することができます。

  • ブックマークされた結果はすべて、メインの [ハンティング] ページの [ブックマーク] タブをクリックすることで確認できます。 ブックマークにタグを追加して、フィルター処理用に分類できます。 たとえば、攻撃活動を調査している場合は、キャンペーンのタグを作成し、そのタグを関連するブックマークに適用して、キャンペーンに基づくすべてのブックマークをフィルター処理できます。

  • ブックマークを選択し、詳細ウィンドウで [調査] をクリックして調査エクスペリエンスを開くことで、ブックマークした 1 つの検出結果を調査することができます。 また、1 つまたは複数のブックマークからインシデントを作成したり、既存のインシデントに 1 つ以上のブックマークを追加したりするには、目的のブックマークの左側にあるチェック ボックスをマークし、画面の上部にある [インシデント アクション] ドロップダウン メニューから [新しいインシデントの作成] または [既存のインシデントに追加] を選択します。 その後、他のものと同様に、インシデントをトリアージして調査することができます。

  • 可能性のある攻撃についての価値のある分析情報を提供するハンティング クエリを発見または作成した場合、そのクエリに基づいてカスタム検出ルールを作成し、セキュリティ インシデント レスポンダーへのアラートとしてこれらの分析情報を示すことができます。 Log Analytics でクエリの結果を表示し (上記を参照)、ウィンドウの上部にある [新しいアラート ルール] ボタンをクリックし、 [Azure Sentinel アラートを生成する] を選択します。 [分析ルール ウィザード] が開きます。 「チュートリアル:脅威を検出するためのカスタム分析規則を作成する」で説明されているように、必要な手順を完了します。

クエリ言語

Azure Sentinel の検出機能は Kusto クエリ言語に基づきます。 クエリ言語とサポートされている演算子の詳細については、クエリ言語リファレンスに関するページを参照してください。

パブリック検出クエリの GitHub リポジトリ

検出クエリリポジトリに関するページを調べてください。 顧客の間で共有されているクエリ例を提供し、使用します。

サンプル クエリ

一般的なクエリではテーブル名を最初に記述し、その後に一連の演算子を | で区切って続けます。

上記の例では、テーブル名 SecurityEvent を最初に記述し、必要に応じてパイプでつないで要素を追加します。

  1. 時間のフィルターを定義して、直近の 7 日間のレコードだけを確認するようにします。

  2. イベント ID 4688 のみを表示するようにクエリにフィルターを追加します。

  3. cscript.exe のインスタンスのみを含めるように、コマンドラインでクエリにフィルターを追加します。

  4. 探索に関心がある列だけを見積もり、結果を 1,000 に制限して、 [クエリの実行] をクリックします。

  5. 緑の三角形をクリックして、クエリを実行します。 クエリをテストし、クエリを実行して異常な動作を調べられます。

便利な演算子

クエリ言語は強力で、使用可能な演算子が多数あります。以下は、これらの便利なものをまとめたものです。

where - テーブルにフィルターが適用され、述語を満たす行のサブセットに絞り込まれます。

summarize - 入力テーブルの内容を集計したテーブルを生成します。

join - 各テーブルの指定の列で値を照合することで、2 つのテーブルの行を結合し、新しいテーブルを形成します。

count - 入力レコード セットに含まれるレコード数を返します。

top - 指定の列で並べ替えられたレコードが先頭から N 個まで返されます。

limit - 最大で指定の行数まで返されます。

project - 含める列、名前を変更する列、または削除する列を選択し、新しい計算列を挿入します。

extend - 計算列を作成し、それらを結果セットに追加します。

makeset - グループ内である式により受け取られる個別値セットを dynamic (JSON) 配列で返します

find - テーブルのセットで述語が一致する行を検索します。

クエリを保存する

クエリを作成または変更し、独自のクエリとして保存するか、同じテナントに属しているユーザーと共有できます。

クエリを保存する

新しいハンティング クエリの作成

  1. [新しいクエリ] をクリックします。

  2. すべての空フィールドに入力し、 [作成] を選択します。

    新しいクエリ

既存のハンティング クエリの複製および変更

  1. 変更するテーブル内の検出クエリを選択します。

  2. 変更するクエリの行で省略記号 (...) を選択し、 [クエリの複製] を選択します。

    クエリの複製

  3. クエリを変更し、 [作成] を選択します。

    カスタム クエリ

次のステップ

この記事では、Azure Sentinel で検出調査を実行する方法を学習しました。 Azure Sentinel の詳細については、次の記事をご覧ください。