AMA コネクタを使用して Windows DNS サーバーからデータをStreamしてフィルター処理する

この記事では、Azure Monitor Agent (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 登録エラーの表示を試みるクライアントを特定します。

注:

AMA コネクタ経由の Windows DNS イベントでは、分析ログ イベントのみがサポートされます。

前提条件

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

  • Microsoft Sentinelに対して有効になっている Log Analytics ワークスペース。
  • コンテンツ ハブからWindows Server DNS ソリューションの一部としてインストールされている AMA データ コネクタ経由の Windows DNS イベント。
  • Windows Server 2016 以降がサポートされているか、監査修正プログラムを使用して R2 をWindows Server 2012。
  • DNS-Server 分析イベント ログが有効になっている状態でインストールされた DNS サーバーの役割。 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 名、サブスクリプション、およびリソース グループは、ワークスペース名、現在のサブスクリプション、コネクタが選択されたリソース グループに基づいて自動的に設定されます。 例:

    A M A コネクタ経由で Windows D N S 用の新しい DC R を作成するスクリーンショット。

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

  5. コネクタをインストールしてログを収集する VM を選択します。 例:

    A M A コネクタ経由で Windows D N S のリソースを選択するスクリーンショット。

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

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

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

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

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

要求 URL とヘッダー

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Insights/dataCollectionRules/{dataCollectionRuleName}?api-version={latest-supported-version}

サポートされている最新の API バージョンについては、「データ収集規則 - REST API (Azure Monitor)」を参照してください。 |Microsoft Learn

DCR ドキュメントの API バージョンの外観のスクリーンショット。

要求本文

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

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

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

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

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

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

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

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

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

    A M A コネクタ経由で Windows D N S のフィルターを作成するスクリーンショット。

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

    A M A コネクタ経由で Windows D N S のフィルターにフィールドを追加するスクリーンショット。

  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. 値が 256、257260Equals 演算子を使用して、EventOriginalType フィールドを使用してフィルターを作成します。

    A M A コネクタ経由で Windows D N S のイベント ID を除外するスクリーンショット。

  2. 上記で定義した EventOriginalType フィールドを使用し、 And 演算子を使用してフィルターを作成します。これには、 DNSQueryTypeName フィールドも AAAA に設定されています。

    A M A コネクタ経由で Windows D N S のイベント 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"                                        
                ]
            }
        ]
    }
]

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

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

Microsoft Sentinel ポータルの使用:

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

ワイルドカードの使用に関するこれらの考慮事項 を確認してください

A M A コネクタ経由で Windows D N S のドメインを除外するスクリーンショット。

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

API の使用:

ワイルドカードの使用に関するこれらの考慮事項 を確認してください

"Filters": [ 
    { 
        "FilterName": "SampleFilter", 
        "Rules": [ 
            { 
                "Field": "DnsQuery", 
                "FieldValues": [ 
                    "*.microsoft.com", "*.google.com", "facebook.com", "*.amazon.com","center.local"                                                                               
                ]
            }
        ]
    }
]

ASIM を使用した正規化

このコネクタは、 高度なセキュリティ情報モデル (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 Sentinelの詳細については、次の記事を参照してください。