AMA コネクタを使用して Windows DNS サーバーからデータをストリーミングおよびフィルター処理する
この記事では、Azure Monitor エージェント (AMA) コネクタを使用して、Windows ドメイン ネーム システム (DNS) サーバー ログからイベントをストリーミングおよびフィルター処理する方法について説明します。 その後、データを詳細に分析して、DNS サーバーを脅威や攻撃から保護できます。
AMA とその DNS 拡張機能が Windows Server にインストールされ、DNS 分析ログから Microsoft Sentinel ワークスペースにデータがアップロードされます。 コネクタの詳細情報。
概要
DNS アクティビティを監視することが重要な理由
DNS は広く使用されているプロトコルであり、ホスト名とコンピューターで読み取り可能な IP アドレス間をマップします。 DNS はセキュリティを念頭に置いて設計されていないため、このサービスは悪意のあるアクティビティのターゲットになりやすく、そのログはセキュリティ監視の重要な部分になっています。
DNS サーバーをターゲットとする既知の脅威には、次のようなものがあります。
- DNS サーバーをターゲットとする DDoS 攻撃
- DNS DDoS の増幅
- DNS ハイジャック
- DNS トンネリング
- DNS ポイズニング
- DNS スプーフィング
- NXDOMAIN 攻撃
- ファントム ドメイン攻撃
AMA コネクタ経由の Windows DNS イベント
このプロトコルの全体的なセキュリティを向上させるためにいくつかのメカニズムが導入されましたが、DNS サーバーは依然としてターゲットになりやすいサービスです。 組織は DNS ログを監視して、ネットワーク アクティビティをより深く理解し、ネットワーク内のリソースをターゲットとする疑わしい動作や攻撃を特定できます。 この種の可視性は、AMA コネクタ経由の Windows DNS イベントによって提供されます。
このコネクタを使用すると、次のことができます。
- 悪意のあるドメイン名を解決しようとしているクライアントを特定する。
- DNS サーバーでの要求負荷を表示および監視する。
- 動的 DNS 登録エラーを確認する。
- クエリ対象になる頻度が高いドメイン名と通信量の多いクライアントを特定する。
- 古いリソース レコードを特定する。
- すべての DNS 関連ログを 1 か所で表示する。
AMA コネクタ経由の Windows DNS イベントでのコレクションのしくみ
AMA コネクタでは、ログを収集して解析するために、インストールされている DNS 拡張機能が使用されます。
注意
AMA コネクタ経由の Windows DNS イベントでは、現在、分析イベント アクティビティのみがサポートされています。
このコネクタにより、Microsoft Sentinel ワークスペースにイベントがストリーミングされ、さらに分析されます。
高度なフィルターを使用して、特定のイベントまたは情報を除外できるようになりました。 高度なフィルターを使用すると、監視する価値があるデータのみをアップロードし、コストと帯域幅の使用量を削減できます。
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 を設定する
コネクタは、次の 2 つの方法で設定できます。
- Microsoft Sentinel ポータル。 このセットアップでは、ワークスペースごとに 1 つのデータ収集ルール (DCR) を作成、管理、削除できます。 API を使用して複数の DCR を定義した場合でも、ポータルには 1 つの DCR のみが表示されます。
- API。 このセットアップでは、複数の DCR を作成、管理、削除できます。
前提条件
開始する前に、次のものがあることを確認します。
- 有効になっている Microsoft Sentinel ソリューション。
- 定義済みの Microsoft Sentinel ワークスペース。
- 監査修正プログラムが適用された Windows Server 2012 R2 以降。
- Windows DNS サーバー。
- Azure 仮想マシンではないシステムからイベントを収集するには、Azure Arc がインストールされていることを確認してください。 Azure Monitor エージェント ベースのコネクタを有効にする前に、Azure Arc をインストールして有効にします。 この要件には、次のものが含まれます。
- 物理マシンにインストールされている Windows サーバー
- オンプレミスの仮想マシンにインストールされている Windows サーバー
- Azure 以外のクラウドの仮想マシンにインストールされている Windows サーバー
Microsoft Sentinel ポータル (UI) でコネクタを設定する
コネクタ ページを開き、DCR を作成する
- Azure portal を開き、Microsoft Sentinel サービスに移動します。
- [データ コネクタ] ブレードの検索バーに「DNS」と入力します。
- AMA コネクタ経由の Windows DNS イベントを選択します。
- コネクタの説明の下にある [コネクタ ページを開く] を選びます。
- [構成] 領域で、[データ収集ルールの作成] を選びます。 ワークスペースごとに 1 つの DCR を作成できます。 複数の DCR を作成する必要がある場合は、API を使用します。
DCR 名、サブスクリプション、リソース グループは、ワークスペース名、現在のサブスクリプション、コネクタが選択されたリソース グループに基づいて自動的に設定されます。
リソースの定義 (VM)
[リソース] タブを選び、[リソースの追加] を選びます。
ログを収集するコネクタをインストールする VM を選びます。
変更内容を確認し、[保存]>[適用] を選びます。
望ましくないイベントを除外する
フィルターを使用すると、フィルターで指定したイベントが除外されます。 つまり、Microsoft Sentinel は指定されたイベントのデータを収集しません。 この手順は必要ありませんが、コストを削減し、イベント トリアージを簡素化するのに役立ちます。
フィルターを作成するには、次の操作を行います。
コネクタ ページの [構成] 領域で、[データ収集フィルターの追加] を選びます。
フィルターの名前を入力し、フィルターの種類を選びます。 フィルターの種類は、収集されたイベントの数を減らすパラメーターです。 このパラメーターは、DNS 正規化されたスキーマに従って正規化されます。 フィルター処理に使用できるフィールドのリストを参照してください。
ドロップダウンに一覧表示されている値の中から、フィールドをフィルター処理する値を選択します。
複雑なフィルターを追加するには、[フィルターに除外フィールドを追加] を選び、関連するフィールドを追加します。 以下の「高度なフィルターを使用する」セクションの例を参照してください。
新しいフィルターをさらに追加するには、[新しい除外フィルターの追加] を選択します。
フィルターの追加が完了したら、[追加] を選択します。
コネクタのメイン ページに戻り、[変更の適用] を選択してフィルターを保存し、コネクタにデプロイします。 既存のフィルターまたはフィールドを編集または削除するには、[構成] 領域の下にあるテーブルの編集または削除のアイコンを選択します。
初期デプロイ後にフィールドまたはフィルターを追加するには、[データ収集フィルターの追加] をもう一度選びます。
API を使用してコネクタを設定する
API を使用して DCR を作成できます。 複数の DCR を作成する必要がある場合は、このオプションを使用します。
次の例をテンプレートとして使用して、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",
}
高度なフィルターを使用する
DNS サーバーのイベント ログには、膨大な数のイベントを含めることができます。 高度なフィルター処理を使用すると、データがアップロードされる前に不要なイベントを除外し、貴重なトリアージ時間とコストを節約できます。 フィルターにより、ワークスペースにアップロードされたイベントのストリームから不要なデータが削除されます。
フィルターは、多数のフィールドの組み合わせに基づいています。
- コンマ区切りリストを使用して、各フィールドに複数の値を使用できます。
- 複合フィルターを作成するには、AND 関係で異なるフィールドを使用します。
- 異なるフィルターを組み合わせるには、それらの間に OR 関係を使用します。
フィルター処理に使用できるフィールドを確認します。
ワイルドカードを使用する
高度なフィルターではワイルドカードを使用できます。 ワイルドカードを使用する場合は、次の考慮事項を確認してください。
- 各アスタリスク (
*.
) の後にドットを追加します。 - ドメインのリストの間にスペースを使用しないでください。
- ワイルドカードは、プロトコルに関係なく、ドメインのサブドメイン (
www.domain.com
を含む) にのみ適用されます。 たとえば、高度なフィルターで*.domain.com
を使用する場合は、次のようになります。- フィルターは、プロトコルが HTTPS、FTP などであるかどうかに関係なく、
www.domain.com
とsubdomain.domain.com
に適用されます。 - フィルターは
domain.com
には適用されません。domain.com
にフィルターを適用するには、ワイルドカードを使用せずにドメインを直接指定します。
- フィルターは、プロトコルが HTTPS、FTP などであるかどうかに関係なく、
高度なフィルターの例
特定のイベント ID を収集しない
このフィルターは、IPv6 アドレスを持つ EventID 256 または EventID 257 または EventID 260 を収集しないようにコネクタに指示します。
Microsoft Sentinel ポータルの使用:
Equals 演算子を使用して、EventOriginalType フィールドの値が 256、257、260 のフィルターを作成します。
上記で定義した EventOriginalType フィールドを使用し、And 演算子 (ここにも AAAA に設定した DnsQueryTypeName フィールドを含めます) を使用して、フィルターを作成します。
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 フィールドを設定します。
ワイルドカードを使用する場合は、次の考慮事項を確認してください。
1 つのフィールドで異なる値を定義するには、OR 演算子を使用します。
API を使用する:
ワイルドカードを使用する場合は、次の考慮事項を確認してください。
"Filters": [
{
"FilterName": "SampleFilter",
"Rules": [
{
"Field": "DnsQuery",
"FieldValues": [
"*.microsoft.com", "*.google.com", "facebook.com", "*.amazon.com","center.local"
]
},
}
}
]
次の手順
この記事では、AMA コネクタを使用して Windows DNS イベントを設定してデータをアップロードし、Windows DNS ログをフィルター処理する方法について説明しました。 Microsoft Azure Sentinel の詳細については、次の記事を参照してください。
- データと潜在的な脅威を可視化する方法についての説明。
- Microsoft Sentinel を使用した脅威の検出の概要。
- ブックを使用してデータを監視する。