セキュリティ アナリストや調査担当者は、セキュリティ上の脅威を探す際に積極的に取り組みたいと考えていますが、さまざまなシステムやセキュリティ アプライアンスによって、意味のあるイベントの解析やフィルター処理が困難なデータの山が生成されます。 Microsoft Sentinelには、organizationのデータ ソース全体でセキュリティ上の脅威を検出するための強力なハンティング検索ツールとクエリ ツールがあります。 セキュリティ アナリストが、セキュリティ アプリやスケジュールされた分析ルールによって検出されない新しい異常を事前に探すのを支援するために、ハンティング クエリを使用すると、ネットワーク上に既に存在するデータの問題を見つけるために適切な質問を行うことができます。
たとえば、すぐに使えるクエリの 1 つは、インフラストラクチャで実行されている最も一般的でないプロセスに関するデータを提供します。 実行するたびにアラートは必要ありません。 彼らは完全に無実である可能性があります。 しかし、何か異常があるかどうかを確認するために、機会にクエリを見たいと思うかもしれません。
重要
2027 年 3 月 31 日以降、Microsoft SentinelはAzure portalでサポートされなくなり、Microsoft Defender ポータルでのみ使用できるようになります。 Azure portalでMicrosoft Sentinelを使用しているすべてのお客様は、Defender ポータルにリダイレクトされ、Defender ポータルでのみMicrosoft Sentinelを使用します。
Azure portalでMicrosoft Sentinelを引き続き使用している場合は、スムーズな移行を確保し、Microsoft Defenderによって提供される統合セキュリティ操作エクスペリエンスを最大限に活用するために、Defender ポータルへの移行の計画を開始することをお勧めします。
注:
Microsoft Sentinelライブストリームの使用が長くなります。 クエリと通知を自動化するには、 KQL ジョブ、 分析ルール、プレイ ブックを使用します。 これらの代替手段により、永続的なクエリ結果が提供され、さまざまなメッセージング プラットフォームがサポートされます。
Microsoft Sentinelでのハント (プレビュー)
Microsoft Sentinelでの狩猟を使用して、仮説を作成し、データを検索し、その仮説を検証し、必要に応じて行動することで、検出されない脅威と悪意のある行動を探します。 結果に基づいて、新しい分析ルール、脅威インテリジェンス、インシデントを作成します。
| 機能 | 説明 |
|---|---|
| 仮説を定義する | 仮説を定義するには、MITRE マップ、最近のハンティング クエリ結果、コンテンツ ハブ ソリューションからインスピレーションを得るか、独自のカスタム ハントを生成します。 |
| クエリとブックマークの結果を調査する | 仮説を定義したら、[ハンティング] ページの [ クエリ ] タブに移動します。仮説と 新しいハント に関連するクエリを選択して開始します。 ハント関連のクエリを実行し、ログ エクスペリエンスを使用して結果を調査します。 結果をハントに直接ブックマークして、結果に注釈を付け、エンティティ識別子を抽出し、関連するクエリを保持します。 |
| 調査してアクションを実行する | UEBA エンティティ ページを使用してさらに深く調査します。 ブックマークされたエンティティに対してエンティティ固有のプレイブックを実行します。 組み込みのアクションを使用して、結果に基づいて新しい分析ルール、脅威インジケーター、インシデントを作成します。 |
| 結果を追跡する | ハントの結果を記録します。 仮説が検証されているかどうかを追跡します。 コメントに詳細なメモを残します。 ハントは、新しい分析ルールとインシデントを自動的にリンクします。 メトリック バーを使用して、ハンティング プログラムの全体的な影響を追跡します。 |
開始するには、「Microsoft Sentinelでエンドツーエンドのプロアクティブな脅威ハンティングを実施する」を参照してください。
ハンティング クエリ
Defender のMicrosoft Sentinelで、[脅威の管理>Hunting]、[クエリ] タブの順に選択して、すべてのクエリ、または選択したサブセットを実行します。 [ クエリ ] タブには、 コンテンツ ハブからセキュリティ ソリューションと共にインストールされたすべてのハンティング クエリと、作成または変更した追加のクエリが一覧表示されます。 各クエリは、検索対象と実行されるデータの種類の説明を提供します。 これらのクエリは、MITRE ATT&CK 戦術によってグループ化 されます。 上部のアイコンは、初期アクセス、永続化、流出など、脅威の種類を分類します。 MITRE ATT&CK 手法 が [手法 ] 列に表示され、ハンティング クエリによって識別される特定の動作について説明します。
[クエリ] タブを使用して、24 時間にわたって結果数、スパイク、または結果カウントの変化を調べることで、ハンティングを開始する場所を特定します。 お気に入り、データ ソース、MITRE ATT&CK 戦術または手法、結果、結果のデルタ、または結果のデルタパーセンテージで並べ替えおよびフィルター処理します。 データ ソースが接続されている必要があるクエリを表示し、これらのクエリを有効にする方法に関する推奨事項を取得します。
次の表では、ハンティング ダッシュボードから使用できる詳細なアクションについて説明します。
| アクション | 説明 |
|---|---|
| クエリが環境にどのように適用されるかを確認する | [すべてのクエリの実行] ボタンを選択するか、各行の左側にある [チェック] ボックスを使用してクエリのサブセットを選択し、[選択したクエリの実行] ボタンを選択します。 クエリの実行には、選択されているクエリの数、時間範囲、クエリ対象のデータ量に応じて、数秒から数分かかることがあります。 |
| 結果を返したクエリを表示する | クエリの実行が完了したら、 結果 フィルターを使用して結果を返したクエリを表示します。 - 並べ替えて、結果が最も多かったクエリまたは最も少ないクエリを確認します。 - [結果] フィルターで [N/A] を選択して、環境内でまったくアクティブではないクエリを表示します。 - N/A の横にある情報アイコン (i) にカーソルを合わせて、このクエリをアクティブにするために必要なデータ ソースを確認します。 |
| データの急増を特定する |
結果のデルタまたは結果のデルタパーセンテージを並べ替えたりフィルター処理したりして、データのスパイクを特定します。 過去 24 時間の結果と過去 24 時間から 48 時間の結果を比較し、大きな違いまたは相対的な量の差を強調表示します。 |
| CK 戦術&MITRE ATT にマップされたクエリを表示する | テーブルの上部にある MITRE ATT&CK 戦術バーには、各 MITRE ATT&CK 戦術にマップされるクエリの数が一覧表示されます。 戦術バーは、適用されているフィルターの現在のセットに基づいて動的に更新されます。 特定の結果カウント、高結果デルタ、 N/A 結果、またはその他のフィルターセットでフィルターを適用するときに表示される MITRE ATT&CK 戦術を確認できます。 |
| MITRE ATT&CK 手法にマップされたクエリを表示する | クエリは、CK 手法&MITRE ATT にマップすることもできます。 テクニック フィルターを使用して、MITRE ATT&CK 手法 でフィルターまたは 並べ替えを行うことができます。 クエリを開くと、手法を選択して、手法の MITRE ATT&CK の説明を確認できます。 |
| お気に入りにクエリを保存する | [ ハンティング ] ページにアクセスするたびに、お気に入りに保存されたクエリが自動的に実行されます。 独自のハンティング クエリを作成するか、既存のハンティング クエリ テンプレートを複製してカスタマイズできます。 |
| クエリを実行する | ハンティング クエリ の詳細ページで [クエリの実行] を選択して、ハンティング ページから直接クエリを実行します。 一致の数は、テーブル内の [結果 ] 列に表示されます。 ハンティング クエリとその一致の一覧を確認します。 |
| 基になるクエリを確認する | クエリの詳細ウィンドウで、基になるクエリのクイック レビューを実行します。 結果を表示するには、[ クエリ結果の表示 ] リンク (クエリ ウィンドウの下) または [結果の 表示 ] ボタン (ウィンドウの下部) をクリックします。 クエリによって [ログ (Log Analytics)] ページが開き、クエリの下でクエリの一致を確認できます。 |
侵害の前、実行中、および後のクエリを使用して、次のアクションを実行します。
インシデントが発生する前: 検出を待機するだけでは不十分です。 少なくとも週に 1 回は、ワークスペースに取り込むデータに関連する脅威ハンティング クエリを実行して、プロアクティブなアクションを実行します。
プロアクティブハンティングの結果は、侵害が進行中であることを確認する可能性があるイベントや、少なくともリスクがあり注意が必要な環境内の弱い領域を示す可能性のあるイベントに関する早期の分析情報を提供します。
侵害時: 脅威アクターの次のアクションを特定し、適切なユーザーに通知を送信し、進行中の攻撃を停止するためのアクションを実行するために、イベントを積極的に監視します。
- KQL ジョブを使用して、攻撃者の動作を監視し、クエリ結果を Microsoft Sentinel データ レイクに保持します。
- Security Copilot、Jupyter Notebook、Advanced Hunting、KQL クエリなどのツールを使用して、永続化された結果を分析します。
- Teams、電子メール、およびその他のメッセージング プラットフォームに通知を送信します。
侵害後: 侵害またはインシデントが発生した後は、カバレッジと分析情報を向上させ、将来同様のインシデントを防ぐようにしてください。
侵害またはインシデントから得られた分析情報に基づいて、既存のクエリを変更するか、早期検出に役立つ新しいクエリを作成します。
攻撃の可能性に関する価値の高い分析情報を提供するハンティング クエリを検出または作成した場合は、そのクエリに基づいてカスタム検出ルールを作成し、その分析情報をセキュリティ インシデント対応者へのアラートとして表示します。
クエリの結果を表示し、[新しいアラート ルール>Microsoft Sentinelアラートを作成する] を選択します。 分析ルール ウィザードを使用して、クエリに基づいて新しいルールを作成します。 詳細については、「脅威を 検出するためのカスタム分析ルールを作成する」を参照してください。
結果をエクスポート し、特定のケースにリンクして、SOC コラボレーションを改善します。
また、Azure Data Explorerに格納されているデータに対してハンティング クエリを作成することもできます。 詳細については、Azure Monitor ドキュメントのクロスリソース クエリの構築の詳細を参照してください。
その他のクエリとデータ ソースを見つけるには、Microsoft Sentinelの Content ハブに移動するか、gitHub リポジトリなどのコミュニティ リソースMicrosoft Sentinel参照してください。
すぐに使用するハンティング クエリ
多くのセキュリティ ソリューションには、すぐに使用するハンティング クエリが含まれています。 コンテンツ ハブからのハンティング クエリを含むソリューションをインストールすると、そのソリューションの既定のクエリが [ハンティング クエリ] タブに表示されます。クエリは、プロセスの作成、DNS イベント、その他のイベントの種類など、ログ テーブルに格納されているデータに対して実行されます。
利用可能なハンティング クエリの多くは、Microsoft セキュリティ研究者によって継続的に開発されています。 セキュリティ ソリューションに新しいクエリを追加し、既存のクエリを微調整して、新しい検出と攻撃を探すエントリ ポイントを提供します。
カスタム ハンティング クエリ
クエリを作成または編集し、独自のクエリとして保存するか、同じテナント内のユーザーと共有します。 Microsoft Sentinelで、[ハンティング>クエリ] タブからカスタムハンティング クエリを作成します。
詳細については、「Microsoft Sentinelでカスタム ハンティング クエリを作成する」を参照してください。
データを追跡するためのブックマーク
脅威ハンティングでは通常、悪意のある動作の証拠を探してログ データの山を確認する必要があります。 このプロセスの間、調査担当者は、潜在的な仮説を検証し、侵害の完全なストーリーを理解する一環として、覚え、再検討、分析したいイベントを見つけます。
ハンティングと調査のプロセス中に、異常または疑わしいクエリ結果に遭遇する可能性があります。 調査のためにインシデントを作成またはエンリッチする場合など、将来参照するためにこれらの項目をブックマークします。 潜在的な根本原因、侵害の兆候、その他の注目すべきイベントなどのイベントは、ブックマークとして発生させる必要があります。 ブックマークした重要なイベントが調査を保証するのに十分厳しい場合は、インシデントにエスカレートします。
結果で、保持する行のチェック ボックスをオンにし、[ ブックマークの追加] を選択します。 これにより、行の結果と結果を作成したクエリを含む、マークされた行ごとにブックマークのレコードが作成されます。 各ブックマークに独自のタグとメモを追加できます。
- スケジュールされた分析ルールと同様に、複数のエンティティの種類と識別子を抽出するエンティティ マッピングを使用してブックマークを強化し、MITRE ATT&CK マッピングを使用して特定の戦術と手法を関連付けることができます。
- ブックマークでは、既定では、同じエンティティと MITRE ATT&CK 手法マッピングが、ブックマークされた結果を生成したハンティング クエリとして使用されます。
メインのハンティング ページの [ブックマーク] タブをクリックして、ブックマークされたすべての結果を表示します。 ブックマークにタグを追加して、フィルター処理用に分類します。 たとえば、攻撃キャンペーンを調査している場合は、キャンペーンのタグを作成し、そのタグを関連するブックマークに適用し、キャンペーンに基づいてすべてのブックマークをフィルター処理できます。
ブックマークを選択し、詳細ウィンドウで [ 調査 ] をクリックして調査エクスペリエンスを開き、1 つのブックマークされた検索を調査します。 対話型のエンティティ グラフ図とタイムラインを使用して、結果を表示、調査、視覚的に伝達します。 一覧表示されたエンティティを直接選択して、そのエンティティの対応するエンティティ ページを表示することもできます。
また、1 つ以上のブックマークからインシデントを作成したり、1 つ以上のブックマークを既存のインシデントに追加したりすることもできます。 使用するブックマークの左側にあるチェック ボックスをオンにし、[インシデント アクション]、[新しいインシデントの作成]>、[既存のインシデントに追加] の順に選択します。 他のインシデントと同様にトリアージして調査します。
ブックマークされたデータを Log Analytics ワークスペースの HuntingBookmark テーブルに直接表示します。 例:
テーブルからブックマークを表示すると、ブックマークされたデータを他のデータ ソースとフィルター処理、集計、結合できるため、証拠を簡単に検索できます。
ブックマークの使用を開始するには、「Microsoft Sentinelでハンティング中にデータを追跡する」を参照してください。
調査を強化するノートブック
ハンティングと調査がより複雑になったら、Microsoft Sentinel ノートブックを使用して、機械学習、視覚化、データ分析を使用してアクティビティを強化します。
ノートブックは、独自のカーネルを備えた一種の仮想サンドボックスを提供し、そこで完全な調査を行うことができます。 ノートブックには、生データ、そのデータで実行するコード、結果、およびそれらの視覚化を含めることができます。 ノートブックを保存して、他のユーザーと共有してorganizationで再利用できるようにします。
ノートブックは、ハンティングや調査が大きすぎて覚えやすくなったり、詳細を表示したり、クエリや結果を保存する必要がある場合に役立つ場合があります。 ノートブックの作成と共有に役立つMicrosoft Sentinelは、オープン ソース、対話型開発、データ操作環境である Jupyter Notebooks を、Microsoft Sentinel Notebooks ページに直接統合して提供します。
詳細については、以下を参照してください:
- Jupyter Notebookを使用してセキュリティ上の脅威を探す
- Jupyter Project のドキュメント
- Jupyter の入門ドキュメント。
- The Infosec Jupyter Book
- 実際の Python チュートリアル
次の表では、Microsoft Sentinelのプロセスを支援するために Jupyter Notebook を使用する方法について説明します。
| メソッド | 説明 |
|---|---|
| データの永続化、再現性、バックトラッキング | 多数のクエリと結果セットを使用している場合は、いくつかの行き詰まりが発生する可能性があります。 保持するクエリと結果、および有用な結果を 1 つのレポートに蓄積する方法を決定する必要があります。 Jupyter Notebook を使用してクエリとデータを保存したり、変数を使用してさまざまな値や日付でクエリを再実行したり、クエリを保存して今後の調査を再実行したりできます。 |
| スクリプトとプログラミング | Jupyter Notebook を使用して、次のようなプログラミングをクエリに追加します。 - Kusto 照会言語 (KQL) や SQL などの宣言型言語を使用して、ロジックを 1 つの複雑なステートメントでエンコードします。 - 一連の手順でロジックを実行するための手続き型プログラミング言語。 ロジックを手順に分割して、中間結果を表示およびデバッグし、クエリ言語で使用できない可能性がある機能を追加し、後の処理手順で部分的な結果を再利用します。 |
| 外部データへのリンク | Microsoft Sentinelテーブルにはほとんどのテレメトリとイベント データが含まれますが、Jupyter Notebooks は、ネットワーク経由またはファイルからアクセスできる任意のデータにリンクできます。 Jupyter Notebook を使用すると、次のようなデータを含めることができます。 - 位置情報データや脅威インテリジェンス ソースなど、所有していない外部サービスのデータ - 人事データベースや価値の高い資産の一覧など、organization内にのみ格納される機密データ - クラウドにまだ移行していないデータ。 |
| 特殊なデータ処理、機械学習、視覚化ツール | Jupyter Notebook には、より多くの視覚化、機械学習ライブラリ、データ処理と変換機能が用意されています。 たとえば、次の Python 機能で Jupyter Notebook を使用します。 - データ処理、クリーンアップ、エンジニアリングのための pandas - 視覚化のための Matplotlib、HoloViews、Plotly - 数値と科学の高度な処理のための NumPy と SciPy - 機械学習のための scikit-learn - ディープ ラーニング用の TensorFlow、PyTorch、Keras ヒント: Jupyter Notebooks では、複数の言語カーネルがサポートされています。 マジックを使用して、別の言語を使用して個々のセルを実行できるようにすることで、同じノートブック内の言語を混在させます。 たとえば、PowerShell スクリプト セルを使用してデータを取得したり、Python でデータを処理したり、JavaScript を使用して視覚化をレンダリングしたりできます。 |
MSTIC、Jupyter、Python のセキュリティ ツール
Microsoft Threat Intelligence Center (MSTIC) は、複数の Microsoft プラットフォームのセキュリティ検出を作成し、脅威の特定と調査に取り組む Microsoft セキュリティ アナリストとエンジニアのチームです。
MSTIC は、Jupyter Notebooks の情報セキュリティ調査とハンティングのためのライブラリである MSTICPy を構築しました。 MSTICPy には、ノートブックの作成を高速化し、ユーザーがMicrosoft Sentinelでノートブックを読みやすくするための再利用可能な機能が用意されています。
たとえば、MSTICPy では次のことができます。
- 複数のソースからログ データを照会します。
- 脅威インテリジェンス、位置情報、Azureリソース データを使用してデータを強化します。
- ログからアクティビティインジケーター (IoA) を抽出し、エンコードされたデータをアンパックします。
- 異常なセッション検出や時系列分解などの高度な分析を行います。
- 対話型タイムライン、プロセス ツリー、および多次元モーフ チャートを使用してデータを視覚化します。
MSTICPy には、クエリ時間の境界を設定するウィジェット、リストから項目を選択して表示するウィジェット、ノートブック環境の構成など、時間を節約できるノートブック ツールも含まれています。
詳細については、以下を参照してください:
- MSTICPy のドキュメント
- Microsoft Sentinelハンティング機能を備えた Jupyter ノートブック
- Microsoft Sentinelでの Jupyter ノートブックと MSTICPy の高度な構成
便利な演算子と関数
ハンティング クエリは、Kusto 照会言語 (KQL) に組み込まれており、IntelliSense 言語を使用した強力なクエリ言語であり、ハンティングを次のレベルに進めるために必要な能力と柔軟性を提供します。
これは、分析ルールのクエリやMicrosoft Sentinelの他の場所で使用されるのと同じ言語です。 詳細については、「 クエリ言語リファレンス」を参照してください。
次の演算子は、Microsoft Sentinelハンティング クエリで特に役立ちます。
where - 述語を満たす行のサブセットに対してテーブルをフィルター処理します。
summarize - 入力テーブルの内容を集計するテーブルを生成します。
join - 2 つのテーブルの行をマージし、各テーブルの指定された列の値を照合して新しいテーブルを形成します。
count - 入力レコード セット内のレコード数を返します。
top - 指定した列で並べ替えられた最初の N 個のレコードを返します。
limit - 指定した行数までを返します。
project - 含める列を選択し、名前を変更または削除し、新しい計算列を挿入します。
extend - 計算列を作成し、結果セットに追加します。
makeset - Expr がグループ内で受け取る個別の値のセットの動的 (JSON) 配列を返します
find - 一連のテーブル間で述語と一致する行を検索します。
adx() - この関数は、Microsoft Sentinelハンティング エクスペリエンスと Log Analytics からAzure Data Explorer データ ソースのクロスリソース クエリを実行します。 詳細については、「Azure Monitor を使用したリソース間クエリのAzure Data Explorer」を参照してください。
関連記事
- Microsoft Sentinelハンティング機能を備えた Jupyter ノートブック
- Microsoft Sentinelを使用してハンティング中にデータを追跡する
- カスタム コネクタを使用して Zoom を監視するときにカスタム分析ルールを使用する例について説明します。