チュートリアル: Microsoft Sentinel で分析ルールを使用して脅威を検出する
Microsoft Sentinel はセキュリティ情報イベント管理 (SIEM) サービスであり、お客様の組織に対するセキュリティ脅威を検出する役割を担っています。 そのために、すべてのシステムのログから生成された膨大な量のデータを分析しています。
このチュートリアルでは、テンプレートから Microsoft Sentinel の分析ルールを設定して、環境全体の Apache Log4j の脆弱性の悪用を検索する方法について説明します。 このルールを使って、ログで見つかったユーザー アカウントと IP アドレスを追跡可能なエンティティとして分類し、ルールによって生成されたアラート内の重要な情報を表示し、調査が必要なインシデントとしてアラートをパッケージ化することができます。
このチュートリアルを終えると、次のことができるようになります。
- テンプレートから分析ルールを作成する
- ルールのクエリと設定をカスタマイズする
- 3 種類のアラート エンリッチメントを構成する
- ルールに対して脅威への自動対応を選択する
前提条件
このチュートリアルを完了するには、以下のものが必要です。
Azure サブスクリプション。 まだない場合は、無料のアカウントを作成してください。
Microsoft Sentinel ソリューションがデプロイされ、データが取り込まれる Log Analytics ワークスペース。
Microsoft Sentinel がデプロイされている Log Analytics ワークスペースで Microsoft Sentinel 共同作成者ロールが割り当てられている Azure ユーザー。
このルールでは、次のデータ ソースが参照されます。 これらのコネクタをデプロイする数が多くなるほど、ルールは効果的になります。 少なくとも 1 つが必要です。
データ ソース 参照される Log Analytics テーブル Office 365 OfficeActivity (SharePoint)
OfficeActivity (Exchange)
OfficeActivity (Teams)DNS DnsEvents Azure Monitor (VM Insights) VMConnection Cisco ASA CommonSecurityLog (Cisco) Palo Alto Networks (Firewall) CommonSecurityLog (PaloAlto) セキュリティ イベント SecurityEvents Microsoft Entra ID SigninLogs
AADNonInteractiveUserSignInLogsAzure Monitor (WireData) WireData Azure Monitor (IIS) W3CIISLog Azure アクティビティ AzureActivity アマゾン ウェブ サービス AWSCloudTrail Microsoft Defender XDR DeviceNetworkEvents Azure Firewall AzureDiagnostics (Azure Firewall)
Azure portal と Microsoft Sentinel にサインインする
Azure portal にサインインします。
[検索] バーで、Sentinel Microsoft を検索して選択します。
ワークスペースを検索し、使用可能な Microsoft Sentinel ワークスペースの一覧から選択します。
コンテンツ ハブからソリューションをインストールする
Microsoft Sentinel で、左側のメニューの [コンテンツ管理] から [Content hub](コンテンツ ハブ) を選択します。
Log4j 脆弱性検出ソリューションを検索して選択します。
ページの上部にあるツール バーで [Install/Update](インストール/更新) を選択します。
テンプレートからスケジュールされた分析ルールを作成する
Microsoft Sentinel で、左側のメニューの [構成] から [Analytics] を選択します。
[分析] ページで [ルール テンプレート] タブを選びます。
ルールテンプレート一覧の上部にある検索フィールドに「log4j」と入力します。
フィルター処理されたテンプレート一覧から、[vulnerability exploit aka Log4Shell IP IOC] (Log4j の脆弱性の悪用 (別名 Log4Shell IP IOC)) を選びます。 詳細ウィンドウで [ルールの作成] を選びます。
[分析ルール ウィザード] が開きます。
[全般] タブの [名前] フィールドに「Log4j vulnerability exploit aka Log4Shell IP IOC - Tutorial-1」と入力します。
このページの残りのフィールドは、そのままにしておきます。 これらは既定値ですが、後の段階でアラート名をカスタマイズする予定です。
このルールをすぐに実行したくない場合は、[無効] を選びます。ルールは [アクティブな規則] タブに追加され、必要に応じてそこから有効にすることができます。
[次へ: ルールのロジックを設定] を選びます。
ルールのクエリ ロジックと設定の構成を確認する
[ルールのロジックを設定] タブで、[ルールのクエリ] 見出しの下に表示されるクエリを確認します。
一度により多くのクエリ テキストを表示するには、クエリ ウィンドウの右上隅にある斜めの二重矢印アイコンを選び、ウィンドウ サイズを広げます。
エンティティやその他の詳細情報を使ってアラートを強化する
[Alert enrichment] (アラートのエンリッチメント) では、[Entity mapping] (エンティティ マッピング) の設定をそのままにします。 マップされた 3 つのエンティティに注目してください。
[カスタム詳細] セクションで、アラートに各発生のタイムスタンプを追加して、ドリルダウンしなくてもアラートの詳細ですぐに確認できるようにしましょう。
- [キー] フィールドに「timestamp」と入力します。 これはアラートのプロパティ名になります。
- [値] ドロップダウン リストから [timestamp] を選びます。
[アラートの詳細] セクションで、アラート名をカスタマイズして、各発生のタイムスタンプがアラート タイトルに表示されるようにしましょう。
[Alert name format] (アラート名の形式) フィールドに「Log4j vulnerability exploit aka Log4Shell IP IOC at {{timestamp}}」と入力します。
残りの設定を確認する
[ルールのロジックを設定] タブの残りの設定を確認します。何も変更する必要はありませんが、たとえば間隔を変更するなどのことができます。 ただし、継続的なカバレッジを維持するために、ルックバック期間が間隔と一致していることを確認します。
クエリのスケジュール設定:
- 1 時間間隔でクエリを実行します。
- 過去 1 時間のデータを参照します。
アラートのしきい値:
- クエリ結果の数が 0 より大きい場合はアラートを生成します。
イベントのグループ化:
- ルールのクエリ結果をアラートにグループ化する方法を構成する: すべてのイベントを単一のアラートにグループ化する。
抑制:
- アラートの生成後にクエリの実行を停止する: オフ。
[次へ: インシデントの設定] を選びます。
インシデントの作成設定を確認する
[インシデントの設定] タブの設定を確認します。何も変更する必要はありません。ただし、たとえば、インシデントの作成と管理に別のシステムを使っている場合は、インシデントの作成を無効にする必要があります。
インシデントの設定:
- この分析ルールによってトリガーされるアラートからインシデントを作成する: 有効。
アラートのグループ化:
- この分析ルールによってトリガーされる関連アラートをインシデントにグループ化する: 無効。
[次へ: 自動応答] を選びます。
自動応答を設定してルールを作成する
[自動応答] タブで、次の手順を実行します。
[+ 新規追加] を選んで、この分析ルールの新しいオートメーション ルールを作成します。 これで [Create new automation rule] (新しいオートメーション ルールの作成) ウィザードが表示されます。
[Automation rule name] (オートメーション ルール名) フィールドに「Log4J vulnerability exploit detection - Tutorial-1」と入力します。
[トリガー] と [条件] のセクションはそのままにします。
[アクション] のドロップダウン リストから [タグの追加] を選びます。
- [+ タグの追加] を選択します。
- テキスト ボックスに「Log4J exploit」と入力し、[OK] を選びます。
[ルールの有効期限] と [順序] のセクションはそのままにします。
[適用] を選択します。 [自動応答] タブの一覧に新しいオートメーション ルールがすぐに表示されます。
[次へ: 確認] を選んで新しい分析ルールのすべての設定を確認します。 "検証に成功しました" のメッセージが表示されたら、[作成] を選びます。 先ほどの [全般] タブでルールを [無効] に設定していない限り、ルールはすぐに実行されます。
次の画像を選ぶと、レビューの全文が表示されます (見やすくするため、クエリ テキストの大部分は省略表示されます)。
ルールの成功を確認する
作成したアラート ルールの結果を表示するには、[インシデント] ページに移動します。
インシデント一覧を分析ルールによって生成されたものにフィルター処理するには、作成した分析ルールの名前 (または名前の一部) を [検索] バーに入力します。
タイトルが分析ルールの名前と一致するインシデントを開きます。 オートメーション ルールで定義したフラグがインシデントに適用されていることを確認します。
リソースをクリーンアップする
この分析ルールを引き続き使わない場合は、作成した分析ルールとオートメーション ルールを以下の手順で削除します (または少なくとも無効にします)。
[分析] ページで、[アクティブな規則] タブを選びます。
[検索] バーに、作成した分析ルールの名前 (または名前の一部) を入力します。
(表示されない場合は、すべてのフィルターが [すべて選択] に設定されていることを確認します)。一覧でルールの横にあるチェック ボックスをオンにし、上部のバナーから [削除] を選びます。
(削除しない場合は、代わりに [無効にする] を選択できます)。[オートメーション] ページで、[オートメーション ルール] タブを選びます。
[検索] バーに、作成したオートメーション ルールの名前 (または名前の一部) を入力します。
(表示されない場合は、すべてのフィルターが [すべて選択] に設定されていることを確認します)。一覧でオートメーション ルールの横にあるチェック ボックスをオンにし、上部のバナーから [削除] を選択します。
(削除しない場合は、代わりに [無効にする] を選択できます)。
次のステップ
ここでは分析ルールを使って一般的な脆弱性の悪用を検索する方法を学んだので、さらに Microsoft Sentinel の分析で実行できることを学んでください。
スケジュールされた分析ルールのさまざまな設定と構成の詳細を確認します。
特に、ここで確認したさまざまなアラート エンリッチメントの詳細を確認します。
Microsoft Sentinel の他の種類の分析ルールとその関数について確認します。
Kusto 照会言語 (KQL) でのクエリの書き方を確認します。 KQL の概念とクエリの詳細については、この便利なクイック リファレンス ガイドに関するページを参照してください。