スケジュールされた分析ルールを一から作成する

コネクタと、デジタル資産全体でアクティビティ データを収集するその他の方法を設定しました。 次に、すべてのデータを調べてアクティビティのパターンを検出し、それらのパターンに適合しない、セキュリティ上の脅威を示している可能性のあるアクティビティを検出する必要があります。

Microsoft Sentinel とそのコンテンツ ハブで提供される多くの ソリューションにより、最も一般的に使用される種類の分析ルールのテンプレートが提供されます。これらのテンプレートを使用して、特定のシナリオに合わせてカスタマイズすることを強くお勧めします。 ただし、まったく異なるものが必要になる場合もあることでしょう。その場合は、分析ルール ウィザードを使用して最初からルールを作成することができます。

この記事では、Analytics ルール ウィザードの使用を含め、分析ルールを一から作成するプロセスについて説明します。 Azure portal から (Microsoft Sentinel ユーザーで、Microsoft Defender サブスクライバーではない場合)、または Defender ポータルから (Microsoft Defender 統合セキュリティ運用プラットフォームのユーザーの場合)、ウィザードにアクセスするためのスクリーンショットと指示がついています。

重要

Microsoft Sentinel が、Microsoft Defender ポータルの Microsoft 統合セキュリティ オペレーション プラットフォーム内で一般提供されるようになりました。 詳しくは、「Microsoft Defender ポータルの Microsoft Sentinel」を参照してください。

前提条件

  • Microsoft Sentinel 共同作成者ロール、または Log Analytics ワークスペースとそのリソース グループに対する書き込みアクセス許可を含む他のロールまたはアクセス許可のセットが必要です。

  • 少なくとも、データ サイエンスと分析および Kusto 照会言語に関する基本的な知識が必要です。

  • 分析規則ウィザードと、使用可能なすべての構成オプションについて理解しておく必要があります。 詳細については、Microsoft Sentinel でのスケジュールされた分析ルールに関する記事を参照してください。

クエリを設計して構築する

何よりもまず、ルールが Log Analytics ワークスペース内の 1 つ以上のテーブルに対するクエリを行うために使用する Kusto クエリ言語 (KQL) でクエリを設計し、作成する必要があります。

  1. 通常とは異なる疑わしいアクティビティを検出するために検索するデータ ソース、または一連のデータ ソースを決定します。 それらのソースからのデータが取り込まれる Log Analytics テーブルの名前を見つけます。 テーブル名は、そのソースのデータ コネクタのページで見つけることができます。 クエリの元になるテーブルとして、このテーブル名 (またはそれに基づく関数) を使用します。

  2. そのテーブルに対して、このクエリでどのような分析を実行するかを決定します。 これを決めることで、クエリで使用するコマンドと関数が決まります。

  3. クエリ結果から必要なデータ要素 (フィールド、列) を決定します。 これを決めることで、クエリの出力を構成する方法が決まります。

  4. [ログ] 画面でクエリをビルドしてテストします。 問題がなければ’、ルールで使用するクエリを保存します。

Kusto クエリを作成するのに役立つヒントについては、分析ルール クエリのベスト プラクティスに関するページを参照してください。

Kusto クエリの作成に関する詳細については、「Microsoft Sentinel の Kusto クエリ言語」と、「Kusto クエリ言語クエリのベスト プラクティス」を参照してください。

分析ルールを作成する

このセクションでは、Azure portal または Defender ポータルを使用してルールを作成する方法について説明します。

スケジュール化されたクエリ ルールの作成を開始する

開始するには、Microsoft Sentinel の [Analytics] (分析) ページに移動して、スケジュールされた分析ルールを作成します。

  1. Azure portal の Microsoft Sentinel の場合、[構成] の下にある [Analytics] (分析) を選びます。
    Defender ポータルの Microsoft Sentinel では、[Microsoft Sentinel]>[構成]>[分析] を選択します。

  2. [+作成] を選択し、[スケジュール済みクエリ ルール] を選択します。

ルールに名前を付け、一般的な情報を定義する

Azure portal では、段階がタブとして視覚的に表されます。 Defender ポータルでは、タイムライン上のマイルストーンとして視覚的に表されます。

  1. ルールに関する次の情報を入力します。

    フィールド 内容
    名前 ルールの一意の名前。
    説明 ルールの自由テキストの説明。
    重大度 ルールが真陽性の場合にルールをトリガーするアクティビティがターゲット環境に与える影響と一致させます。

    情報提供: システムに影響はありませんが、情報は、脅威アクターによって計画された将来の手順を示している可能性があります。
    : 即時の影響は最小です。 脅威アクターは、環境への影響を達成する前に、複数の手順を実行する必要がある可能性があります。
    : 脅威アクターは、このアクティビティを使用して環境に何らかの影響を与える可能性がありますが、スコープが制限されているか、追加のアクティビティが必要になります。
    : 特定されたアクティビティは、環境に対するアクションを実行するための幅広いアクセスを脅威アクターに提供するか、環境への影響によってトリガーされます。
    MITRE ATT&CK ルールに適用する脅威アクティビティを選択します。 ドロップダウン リストに表示された MITRE ATT&CK 戦術と手法の中から選択します。 複数選択することができます。

    MITRE ATT&CK 脅威ランドスケープの対象範囲を最大化する方法の詳細については、「MITRE ATT&CK® フレームワークによるセキュリティ カバレッジについて」を参照してください。
    Status 有効: 作成されると即座に、またはスケジュール設定して選んだ特定の日時 (現在プレビュー段階) にルールが実行されます。
    無効: ルールは作成されますが実行されません。 必要に応じて後で [アクティブなルール] タブから有効にします。
  2. ルール ロジックを設定 を選択します。


ルールのロジックを定義する

次の手順では、作成した Kusto クエリの追加を含むルール ロジックを設定します。

  1. ルールのクエリとアラート強化の構成を入力します。

    設定 説明
    ルールのクエリ 設計、ビルド、テストしたクエリを [ルール クエリ] ウィンドウに貼り付けます。 このウィンドウで行うすべての変更は即座に検証されるため、間違いがある場合は、ウィンドウのすぐ下に表示されます。
    エンティティのマップ [エンティティ マッピング] を展開し、最大 10 個の Microsoft Sentinel によって認識されるエンティティ型をクエリ結果のフィールドにマップします。 このマッピングにより、識別されたエンティティがアラート スキーマの [エンティティ] フィールドに統合されます。

    エンティティのマッピングの詳細な手順については、「データ フィールドを Microsoft Sentinel のエンティティにマップする」を参照してください。
    Surface custom details in your alerts (アラートのカスタムの詳細を表示する) [カスタムの詳細] を展開し、アラートにカスタムの詳細として表示するクエリ結果のフィールドを定義します。 これらのフィールドは、結果として発生するすべてのインシデントにも表示されます。

    カスタム詳細の表示に関する完全な手順については、「Microsoft Sentinel のアラートのカスタム イベントの詳細を表示する」を参照してください。
    アラートの詳細をカスタマイズする [アラートの詳細] を展開し、個々のアラートのさまざまなフィールドの内容に応じて、標準のアラート プロパティとは異なるようにカスタマイズします。 たとえば、アラートの名前や説明をカスタマイズして、アラートに含まれるユーザー名や IP アドレスを含めます。

    アラートの詳細をカスタマイズする方法の詳細については、「Microsoft Sentinel でアラートの詳細をカスタマイズする」を参照してください。
  2. クエリをスケジュールしてスコープを設定します。[クエリのスケジュール設定] セクションで、次のパラメーターを設定します。

    設定 説明/オプション
    クエリの実行間隔 クエリの実行頻度、つまりクエリの実行間隔を制御します。
    使用できる範囲: 5 分 から 14 日
    参照する過去データの範囲 クエリの対象となる期間、つまりルックバック期間を決定します。
    使用できる範囲: 5 分 から 14 日
    クエリ間隔以上である必要があります。
    Start running (実行を開始) 自動: ルールは、まず作成直後に実行され、その後クエリの間隔で実行されます。
    At specific time (指定時刻) (プレビュー): ルールの初回実行の日付と時刻を設定します。その後はクエリの間隔で実行されます。
    使用できる範囲: ルールの作成 (または有効化) 時刻から 10 分から 30 日後。
  3. アラートを作成するためのしきい値を設定します。

    ルールの感度を定義するには、 [アラートのしきい値] セクションを使用します。 たとえば、最小しきい値として 100 を設定します。

    設定 説明
    クエリ結果件数でアラートを生成する より大きい
    イベント数 100

    しきい値を設定しない場合は、数値フィールドに「0」と入力します。

  4. イベントのグループ化設定を設定します。

    [イベントのグループ化] で、イベントアラートへのグループ化を処理する 2 つの方法のうち、いずれかを選択します。

    設定 動作
    すべてのイベントを単一のアラートにグループ化する
    (既定値)。
    このルールでは、クエリで前記のアラートのしきい値よりも多くの結果が返される限り、実行されるたびに 1 つのアラートが生成されます。 この単一アラートで、クエリ結果で返されるすべてのイベントがまとめられます。
    各イベントについてアラートをトリガーする このルールでは、クエリによって返されるイベントごとに独自のアラートが生成されます。 これは、イベントを個々に表示する場合や、ユーザーやホスト名など、特定のパラメーター別にイベントをグループ化する場合に便利です。 これらのパラメーターはクエリ内で定義できます。
  5. アラートが生成された後、ルールを一時的に抑制します。

    アラートが生成された場合に、次の実行時以降はルールを抑制するには、[アラートの生成後にクエリの実行を停止する] 設定を [オン] にします。 これをオンにする場合は、[クエリの実行を停止する] をクエリの実行を停止する時間 (最大 24 時間) に設定します。

  6. クエリとロジック設定の結果をシミュレートします。

    [結果シミュレーション] 領域で、[現在のデータでテストする] を選択して、現在のデータで実行された場合のルールの結果を確認します。 Microsoft Sentinel では、定義されたスケジュールを使用して、現在のデータに対して 50 回ルールの実行をシミュレートし、結果のグラフ (ログ イベント) を表示します。 クエリを変更する場合は、 [Test with current data](現在のデータでテストする) をもう一度クリックして、グラフを更新します。 グラフには、[クエリのスケジュール設定] セクションの設定によって定義された期間における結果の数が表示されます。

  7. [Next: Incident settings] (次へ: インシデントの設定) を選びます。

インシデントの作成の設定を構成する

[インシデントの設定] タブで、Microsoft Sentinel でアラートをアクションにつながるインシデントに変換するかどうか、およびアラートがインシデント内でまとめてグループ化されるかどうかを選択します。

  1. インシデントの作成を有効にします。

    [インシデントの設定] セクションでは、 [この分析ルールによってトリガーされるアラートからインシデントを作成する] が既定で [有効] に設定されています。つまり、ルールによってトリガーされるすべての個々のアラートから、1 つの個別のインシデントが作成されます。

    • このルールによってインシデントが作成されないようにする場合は (たとえば、このルールが後続の分析のために情報を収集するだけの場合)、これを [無効] に設定します。

      重要

      Microsoft Sentinel を Microsoft Defender ポータル内の統合セキュリティ オペレーション プラットフォームへとオンボードする場合は、この設定を [有効] のままにしてください。

    • 単一のインシデントをアラートごとにではなく、アラートのグループから作成する場合は、次のセクションをご覧ください。

  2. アラートのグループ化設定を設定します。

    最大 150 件の類似したアラートまたは繰り返し発生するアラートのグループから単一のインシデントを生成する場合 (注を参照) は、 [アラートのグループ化] セクションで、 [この分析ルールによってトリガーされる関連アラートをインシデントにグループ化する][有効] に設定し、以下のパラメーターを設定します。

    1. 選択した期間内に作成されたアラートのみにグループを制限する: 類似するまたは繰り返し発生するアラートをグループ化する時間枠を決定します。 この期間外のアラートでは、別のインシデントまたはインシデントのセットが生成されます。

    2. この分析ルールによってトリガーされるアラートを次の方法で単一のインシデントにグループ化する: アラートをグループ化する基準を選択します。

      オプション 説明
      すべてのエンティティが一致した場合にアラートを 1 つのインシデントにグループ化する (上の [ルールのロジックを設定] タブに定義された) マップされている各エンティティに関して同じ値を共有している場合、アラートはグループ化されます。 これは推奨される設定です。
      このルールによってトリガーされるすべてのアラートを 1 つのインシデントにグループ化する 値が同じではない場合でも、このルールによって生成されるすべてのアラートをグループ化します。
      選択したエンティティと詳細が一致する場合にアラートを 1 つのインシデントにグループ化する マップされたエンティティ、アラートの詳細、および各ドロップダウン リストから選択されたカスタムの詳細のすべてに関して同じ値を共有している場合、アラートはグループ化されます。
    3. [Re-open closed matching incidents](クローズされた一致するインシデントを再度開く) :あるインシデントが解決されて閉じられたとします。後でそのインシデントに属するはずの別のアラートが生成されたときに、閉じられたインシデントを再び開きたい場合は、この設定を [有効] に設定します。別のアラートで新しいインシデントを作成する場合は [無効] のままにします。

    注意

    最大 150 件のアラートを 1 つのインシデントにグループ化できます。

    • インシデントが作成されるのは、すべてのアラートが生成された後です。 すべてのアラートは、インシデントの作成時にすぐにそこに追加されます。

    • アラートを 1 つのインシデントにグループ化するルールによって生成されたアラートが 150 件を超える場合は、最初と同じインシデントの詳細を含む新しいインシデントが生成され、超過したアラートは新しいインシデントにグループ化されます。

  3. [Next: Automated response] (次へ: 自動応答) を選びます。

自動応答のレビューと追加

  1. [自動応答] タブで、一覧に表示される自動化ルールを確認します。 既存のルールでまだカバーされていない応答を追加する場合は、次の 2 つの選択肢があります。

    • 追加の応答を多数またはすべてのルールに適用する場合は、既存のルールを編集します。
    • [新規追加] を選んで、この分析ルールのみに適用する新しい自動化ルールを作成します。

    自動化ルールで何を使用できるかについて詳しくは、「自動化ルールを使って Microsoft Sentinel の脅威への対応を自動化する」を参照してください。

    • 画面下部の [アラートのオートメーション (クラシック)] の下に、古い方式を使用してアラートが生成されたときに自動的に実行するように構成したプレイブックが表示されます。
      • 2023 年 6 月の時点で、このリストにプレイブックを追加することはできなくなりました。 既にここに記載されているプレイブックは、2026 年 3 月にこの方法が非推奨となるまで実行され続けます。

      • ここに記載されているプレイブックをまだお持ちの場合は、代わりにアラート作成トリガーに基づいて自動化ルールを作成し、その自動化ルールからプレイブックを呼び出す必要があります。 完了したら、ここに記載されているプレイブックの行の末尾にある省略記号を選択し、[削除] を選択します。 詳細な手順については、「Microsoft Sentinel のアラートトリガー プレイブックをオートメーション ルールに移行する」を参照してください。

  1. [次へ: 確認と作成] を選択して新しい分析ルールのすべての設定を確認します。

構成を検証してルールを作成する

  1. "検証に成功しました" のメッセージが表示されたら、[作成] を選びます。

  2. 代わりにエラーが表示される場合は、ウィザードのエラーが発生したタブで赤い X を見つけて選択します。

  3. エラーを修正し、[レビューと作成] タブに戻って検証をもう一度実行します。

ルールとその出力を表示する

ルール定義を表示する

新しく作成されたカスタムルール (種類は "スケジュールされた") は、メインの [分析] 画面の [アクティブなルール] タブの下のテーブルにあります。 この一覧から、各ルールを有効にしたり、無効にしたり、削除したりできます。

ルール検証の結果を表示する

Azure portal で作成した分析ルールの結果を表示するには、[インシデント] ページに移動します。ここで、インシデントをトリアージし、調査し、脅威を修復できます。

Azure portal の [インシデント] ページのスクリーンショット。

ルールを調整する

注意

Microsoft Sentinel で生成されたアラートは、Microsoft Graph Security を通じて使用できます。 詳細については、Microsoft Graph のセキュリティ アラートのドキュメントを参照してください。

ルールを ARM テンプレートにエクスポートする

ルールをコードとして管理およびデプロイするようにパッケージ化する場合は、簡単にルールを Azure Resource Manager (ARM) テンプレートにエクスポートできます。 また、ルールをユーザー インターフェイスに表示して編集するために、テンプレート ファイルからインポートすることもできます。

次のステップ

分析ルールを使用して Microsoft Sentinel から脅威を検出する場合は、セキュリティが環境全体に確実に適用されるように、接続されたデータ ソースに関連付けられているすべてのルールを必ず有効にしてください。

ルールの有効化を自動化するには、API および PowerShell 経由で Microsoft Sentinel にルールをプッシュすることもできますが、それを行うには追加の作業が必要です。 API または PowerShell を使用する場合は、ルールを有効にする前に、最初にルールを JSON にエクスポートする必要があります。 API または PowerShell は、Microsoft Sentinel の複数のインスタンスでルールを有効にし、各インスタンスの設定を同じにする場合に役立つことがあります。

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

また、カスタム コネクタZoom を監視するするときにカスタム分析ルールを使用する例も参照してください。