次の方法で共有


AMA コネクタを使用して Windows DNS サーバーからデータをストリーミングおよびフィルター処理する

この記事では、Azure Monitor エージェント (AMA) コネクタを使用して、Windows ドメイン ネーム システム (DNS) サーバー ログからイベントをストリーミングおよびフィルター処理する方法について説明します。 その後、データを詳細に分析して、DNS サーバーを脅威や攻撃から保護できます。 AMA とその DNS 拡張機能が Windows Server にインストールされ、DNS 分析ログから Microsoft Sentinel ワークスペースにデータがアップロードされます。

DNS は広く使用されているプロトコルであり、ホスト名とコンピューターで読み取り可能な IP アドレス間をマップします。 DNS はセキュリティを念頭に置いて設計されていないため、このサービスは悪意のあるアクティビティのターゲットになりやすく、そのログはセキュリティ監視の重要な部分になっています。 DNS サーバーを対象とする既知の脅威には、DNS サーバーを対象とする DDoS 攻撃、DNS DDoS 増幅、DNS ハイジャックなどがあります。

このプロトコルの全体的なセキュリティを向上させるためにいくつかのメカニズムが導入されましたが、DNS サーバーは依然としてターゲットになりやすいサービスです。 組織は DNS ログを監視して、ネットワーク アクティビティをより深く理解し、ネットワーク内のリソースをターゲットとする疑わしい動作や攻撃を特定できます。 この種の可視性は、AMA コネクタ経由の Windows DNS イベントによって提供されます。 たとえば、コネクタを使用して、悪意のあるドメイン名の解決、DNS サーバーでの要求負荷の表示と監視、動的 DNS 登録エラーの表示を試みるクライアントを特定します。

Note

AMA コネクタ経由の Windows DNS イベントでは、現在、分析イベント アクティビティのみがサポートされています。

前提条件

開始する前に、次のものがあることを確認します。

  • Microsoft Sentinel が有効な Log Analytics ワークスペース。
  • ワークスペースにインストールされている Windows Server DNS ソリューション。
  • 監査修正プログラムが適用された Windows Server 2012 R2 以降。
  • Windows DNS サーバー。

Azure 仮想マシンではないシステムからイベントを収集するには、Azure Arc がインストールされていることを確認してください。 Azure Monitor エージェント ベースのコネクタを有効にする前に、Azure Arc をインストールして有効にします。 この要件には、次のものが含まれます。

  • 物理マシンにインストールされている Windows サーバー
  • オンプレミスの仮想マシンにインストールされている Windows サーバー
  • Azure 以外のクラウドの仮想マシンにインストールされている Windows サーバー

ポータルを使用して AMA コネクタ経由で Windows DNS を構成する

ポータルのセットアップ オプションを使用して、ワークスペースごとに 1 つのデータ収集規則 (DCR) を使用してコネクタを構成します。 その後、高度なフィルターを使用して特定のイベントや情報を除外し、監視する貴重なデータのみをアップロードして、コストと帯域幅の使用量を削減します。

複数の DCR を作成する必要がある場合は、ァ割に API を使用します。 API を使用して複数の DCR を作成しても、ポータルに表示される DCR は 1 つだけです。

コネクタを構成するには:

  1. Microsoft Sentinel で、[データ コネクタ] ページを開き、AMA コネクタを介して Windows DNS イベントを見つけます。

  2. サイド ウィンドウの下部にある [コネクタ ページを開く] を選択します。

  3. [構成] 領域で、[データ収集ルールの作成] を選びます。 ワークスペースごとに 1 つの DCR を作成できます。

    DCR 名、サブスクリプション、リソース グループは、ワークスペース名、現在のサブスクリプション、コネクタが選択されたリソース グループに基づいて自動的に設定されます。 次に例を示します。

    AMA コネクタ経由の Windows DNS 用に新しい DCR を作成するスクリーンショット。

  4. [リソース] タブ >[リソースの追加] を選択します。

  5. ログを収集するコネクタをインストールする VM を選びます。 次に例を示します。

    AMA コネクタ経由の Windows DNS 用のリソースを選ぶスクリーンショット。

  6. 変更内容を確認し、[保存]>[適用] を選びます。

API を使用して AMA コネクタ経由で Windows DNS を構成する

API セットアップ オプションを使用して、ワークスペースごとに複数の DCR を使用してコネクタを構成します。 1 つの DCR を使用する場合は、代わりにポータル オプションを使用します。

API を使用して複数の DCR を作成しても、ポータルに表示される DCR は 1 つだけです。

次の例をテンプレートとして使用して、DCR を作成または更新します:

要求 URL とヘッダー


PUT 

    https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dataCollectionRuleName}?api-version=2019-11-01-preview 

要求本文


{
    "properties": {
        "dataSources": {
            "windowsEventLogs": [],
            "extensions": [
                {
                    "streams": [
                        "Microsoft-ASimDnsActivityLogs"
                    ],
                    "extensionName": "MicrosoftDnsAgent",
                    "extensionSettings": {
                        "Filters": [
                            {
                                "FilterName": "SampleFilter",
                                "Rules": [
                                    {
                                        "Field": "EventOriginalType",
                                        "FieldValues": [
                                            "260"
                                        ]
                                    }
                                ]
                            }
                        ]
                    },
                    "name": "SampleDns"
                }
            ]
        },
        "destinations": {
            "logAnalytics": [
                {
                    "workspaceResourceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.OperationalInsights/workspaces/{sentinelWorkspaceName}",
                    "workspaceId": {WorkspaceGuid}",
                    "name": "WorkspaceDestination"
                }
            ]
        },
        "dataFlows": [
            {
                "streams": [
                    "Microsoft-ASimDnsActivityLogs"
                ],
                "destinations": [
                    " WorkspaceDestination "
                ]
            }
        ],
    },
    "location": "eastus2",
    "tags": {},
    "kind": "Windows",
    "id":"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Insights/dataCollectionRules/{workspaceName}-microsoft-sentinel-asimdnsactivitylogs ",
    "name": " {workspaceName}-microsoft-sentinel-asimdnsactivitylogs ",
    "type": "Microsoft.Insights/dataCollectionRules",
}

DCR で高度なフィルターを使用する

DNS サーバーのイベント ログには、膨大な数のイベントを含めることができます。 高度なフィルター処理を使用して、データがアップロードされる前に不要なイベントを除外し、貴重なトリアージ時間とコストを節約することをお勧めします。 このフィルターは、ワークスペースにアップロードされたイベントのストリームから不要なデータを削除し、複数のフィールドの組み合わせに基づいています。

詳細については、「フィルター処理の使用可能なフィールド」を参照してください。

ポータルを使用して高度なフィルターを作成する

ポータルを使用してフィルターを作成するには、次の手順に従います。 API を使用したフィルターの作成の詳細については、「高度なフィルターの例」を参照してください。

ポータルを使用してフィルターを作成するには:

  1. コネクタ ページの [構成] 領域で、[データ収集フィルターの追加] を選びます。

  2. フィルターの名前を入力し、フィルターの種類を選択します。これは、収集されたイベントの数を減らすパラメーターです。 パラメーターは、DNS 正規化されたスキーマに従って正規化されます。 詳細については、「フィルター処理の使用可能なフィールド」を参照してください。

    AMA コネクタ経由の Windows DNS 用にフィルターを作成するスクリーンショット。

  3. ドロップダウンに一覧表示されている値の中からフィールドをフィルター処理する値を選択します。

    AMA コネクタ経由の Windows DNS 用にフィルターにフィールドを追加するスクリーンショット。

  4. 複雑なフィルターを追加するには、[フィルターに除外フィールドを追加] を選び、関連するフィールドを追加します。

    • コンマ区切りのリストを使用して、フィールドごとに複数の値を定義します。
    • 複合フィルターを作成するには、AND 関係で異なるフィールドを使用します。
    • 異なるフィルターを組み合わせるには、それらの間に OR 関係を使用します。

    フィルターでは、次のようなワイルドカードもサポートされています:

    • 各アスタリスク (*.) の後にドットを追加します。
    • ドメインのリストの間にスペースを使用しないでください。
    • ワイルドカードは、プロトコルに関係なく、ドメインのサブドメイン (www.domain.com を含む) にのみ適用されます。 たとえば、高度なフィルターで *.domain.com を使用する場合は、次のようになります。
      • フィルターは、プロトコルが HTTPS、FTP などであるかどうかに関係なく、www.domain.comsubdomain.domain.com に適用されます。
      • フィルターは domain.com には適用されません。 domain.com にフィルターを適用するには、ワイルドカードを使用せずにドメインを直接指定します。
  5. 新しいフィルターをさらに追加するには、[新しい除外フィルターの追加] を選択します。

  6. フィルターの追加が完了したら、[追加] を選択します。

  7. コネクタのメイン ページに戻り、[変更の適用] を選択してフィルターを保存し、コネクタにデプロイします。 既存のフィルターまたはフィールドを編集または削除するには、[構成] 領域の下にあるテーブルの編集または削除のアイコンを選択します。

  8. 初期デプロイ後にフィールドまたはフィルターを追加するには、[データ収集フィルターの追加] をもう一度選びます。

高度なフィルター処理の例

ポータルまたは API を使用して、一般的に使用される高度なフィルターを作成するには、次の例を使用します。

特定のイベント ID を収集しない

このフィルターは、IPv6 アドレスを持つ EventID 256 または EventID 257 または EventID 260 を収集しないようにコネクタに指示します。

Microsoft Sentinel ポータルの使用:

  1. Equals 演算子を使用して、EventOriginalType フィールドの値が 256257260 のフィルターを作成します。

    AMA コネクタ経由の Windows DNS のイベント ID を除外するスクリーンショット。

  2. 上記で定義した EventOriginalType フィールドを使用し、And 演算子 (ここにも AAAA に設定した DnsQueryTypeName フィールドを含めます) を使用して、フィルターを作成します。

    AMA コネクタ経由の Windows DNS のイベント ID と IPv6 アドレスを除外するスクリーンショット。

API を使用する:

"Filters": [
    {
        "FilterName": "SampleFilter",
        "Rules": [
            {
                "Field": "EventOriginalType",
                "FieldValues": [
                    "256", "257", "260"                                                                              
                ]
            },
            {
                "Field": "DnsQueryTypeName",
                "FieldValues": [
                    "AAAA"                                        
                ]
            }
        ]
    },
    {
        "FilterName": "EventResultDetails",
        "Rules": [
            {
                "Field": "EventOriginalType",
                "FieldValues": [
                    "230"                                        
                ]
            },
            {
                "Field": "EventResultDetails",
                "FieldValues": [
                    "BADKEY","NOTZONE"                                        
                ]
            }
        ]
    }
]

特定のドメインでイベントを収集しない

このフィルターは、microsoft.com、google.com、amazon.com のサブドメインからのイベント、または facebook.com または center.local からのイベントを収集しないようにコネクタに指示します。

Microsoft Sentinel ポータルの使用:

Equals 演算子とリスト *.microsoft.com,*.google.com,facebook.com,*.amazon.com,center.local を使用して DnsQuery フィールドを設定します。

ワイルドカードを使用する場合は、次の考慮事項を確認してください。

AMA コネクタ経由の Windows DNS のドメインを除外するスクリーンショット。

1 つのフィールドで異なる値を定義するには、OR 演算子を使用します。

API を使用する:

ワイルドカードを使用する場合は、次の考慮事項を確認してください。

"Filters": [ 

    { 

        "FilterName": "SampleFilter", 

        "Rules": [ 

            { 

                "Field": "DnsQuery", 

                "FieldValues": [ 

                    "*.microsoft.com", "*.google.com", "facebook.com", "*.amazon.com","center.local"                                                                               

                ] 

            }, 

         } 

    } 

] 

ASIM を使用した正規化

このコネクタは、Advanced Security Information Model (ASIM) パーサーを使用して完全に正規化されます。 コネクタにより、分析ログから生成されたイベントが、ASimDnsActivityLogs という名前の正規化されたテーブルにストリーミングされます。 このテーブルは、1 つの統合言語を使用して、今後すべての DNS コネクタで共有される翻訳ツールとして機能します。

すべての DNS データを統合し、構成されているすべてのソース全体にまたがって分析を実行する、ソースに依存しないパーサーの場合は、ASIM DNS 統合パーサー _Im_Dns を使用します。

ASIM 統合パーサーは、ネイティブ ASimDnsActivityLogs テーブルを補完します。 ネイティブ テーブルは ASIM に準拠していますが、クエリ時にのみ使用できるエイリアスなどの機能を追加したり、ASimDnsActivityLogs を他の DNS データ ソースと組み合わせたりするには、このパーサーが必要です。

ASIM DNS スキーマは、分析ログの Windows DNS サーバーにログされた DNS プロトコル アクティビティを表します。 このスキーマは、フィールドと値を定義する公式パラメーター リストと RFC によって管理されます。

正規化されたフィールド名に変換された Windows DNS サーバー フィールドのリストを参照してください。

この記事では、AMA コネクタを使用して Windows DNS イベントを設定してデータをアップロードし、Windows DNS ログをフィルター処理する方法について説明しました。 Microsoft Azure Sentinel の詳細については、次の記事を参照してください。