DNS 情報モデルは、DNS サーバーまたは DNS セキュリティ システムによって報告されるイベントを記述するために使用され、ソースに依存しない分析を有効にするためにMicrosoft Sentinelによって使用されます。
詳細については、「 正規化と高度なセキュリティ情報モデル (ASIM)」を参照してください。
スキーマの概要
ASIM DNS スキーマは、DNS プロトコル アクティビティを表します。 DNS サーバーと DNS 要求を DNS サーバーログ DNS アクティビティに送信するデバイスの両方。 DNS プロトコル アクティビティには、DNS クエリ、DNS サーバーの更新、DNS 一括データ転送が含まれます。 スキーマはプロトコル アクティビティを表しているため、RFC と正式に割り当てられたパラメーター リストによって管理されます。このパラメーター リストは、必要に応じてこの記事で参照されます。 DNS スキーマは、DNS サーバー監査イベントを表しません。
DNS サーバーによって報告される最も重要なアクティビティは、 EventType フィールドが Query に設定されている DNS クエリです。
DNS イベントの最も重要なフィールドは次のとおりです。
クエリが発行されたドメイン名を報告する DnsQuery。
SrcIpAddr (IpAddr にエイリアス付き) は、要求の生成元の IP アドレスを表します。 DNS サーバーは通常 SrcIpAddr フィールドを提供しますが、DNS クライアントがこのフィールドを提供せず、 SrcHostname フィールドのみを提供する場合があります。
EventResultDetails。要求が成功したかどうかを報告し、成功しなかった場合は理由を報告します。
使用可能な場合、 DnsResponseName は、サーバーからクエリに対して提供された回答を保持します。 ASIM は応答の解析を必要とせず、その形式はソースによって異なります。
ソースに依存しないコンテンツでこのフィールドを使用するには、
has演算子またはcontains演算子を使用してコンテンツを検索します。
クライアント デバイスで収集された DNS イベントには、 ユーザー と プロセス の情報も含まれる場合があります。
DNS イベントを収集するためのガイドライン
DNS は、多数のコンピューターをまたがる可能性がある点で固有のプロトコルです。 また、DNS では UDP が使用されるため、要求と応答は結合解除され、相互に直接関連しません。
次の図は、4 つのセグメントを含む簡略化された DNS 要求フローを示しています。 実際の要求は複雑になる可能性があり、セグメントが多くなります。
要求セグメントと応答セグメントは DNS 要求フロー内で直接接続されていないため、完全なログ記録によって大幅な重複が発生する可能性があります。
ログに記録する最も重要なセグメントは、クライアントへの応答です。 応答は、ドメイン名クエリ、ルックアップ結果、およびクライアントの IP アドレスを提供します。 多くの DNS システムはこのセグメントのみをログに記録しますが、他の部分のログ記録には価値があります。 たとえば、DNS キャッシュポイズニング攻撃では、アップストリーム サーバーからの偽の応答を利用することがよくあります。
データ ソースが完全な DNS ログをサポートしていて、複数のセグメントをログに記録することを選択した場合は、クエリを調整して、Microsoft Sentinelでのデータの重複を防ぎます。
たとえば、次の正規化を使用してクエリを変更できます。
_Im_Dns | where SrcIpAddr != "127.0.0.1" and EventSubType == "response"
パーサー
ASIM パーサーの詳細については、 ASIM パーサーの概要に関するページを参照してください。
すぐに使用するパーサー
すべての ASIM アウト オブ ザ ボックス パーサーを統合し、構成されているすべてのソースで分析を確実に実行するパーサーを使用するには、統合パーサー _Im_Dns をクエリのテーブル名として使用します。
すぐに使用できる DNS パーサー Microsoft Sentinelの一覧については、ASIM パーサーの一覧を参照してください。
独自の正規化されたパーサーを追加する
Dns 情報モデルにカスタム パーサーを実装する場合は、 vimDns<vendor><Product>形式を使用して KQL 関数に名前を付けます。 カスタム パーサーを DNS 統合パーサーに追加する方法については、 ASIM パーサーの管理 に関する記事を参照してください。
パーサー パラメーターのフィルター処理
DNS パーサーでは、 フィルター パラメーターがサポートされています。 これらのパラメーターは省略可能ですが、クエリのパフォーマンスを向上させることができます。
次のフィルター パラメーターを使用できます。
| 名前 | 型 | 説明 |
|---|---|---|
| starttime | 日付型 | この時刻以降に実行された DNS クエリのみをフィルター処理します。 このパラメーターは、EventStartTime フィールドと EventEndTime フィールドのパーサー固有のマッピングに関係なく、イベントの時刻の標準指定子である TimeGenerated フィールドでフィルター処理します。 |
| endtime | 日付型 | この時刻以前に実行が完了した DNS クエリのみをフィルター処理します。 このパラメーターは、EventStartTime フィールドと EventEndTime フィールドのパーサー固有のマッピングに関係なく、イベントの時刻の標準指定子である TimeGenerated フィールドでフィルター処理します。 |
| srcipaddr | string | このソース IP アドレスからの DNS クエリのみをフィルター処理します。 |
| domain_has_any | dynamic/string |
domain (または query) に、イベント ドメインの一部など、一覧表示されているドメイン名が含まれる DNS クエリのみをフィルター処理します。 リストの長さは 10,000 項目に制限されています。 |
| responsecodename | string | 応答コード名が指定された値と一致する DNS クエリのみをフィルター処理します。 例: NXDOMAIN |
| response_has_ipv4 | string | 指定された IP アドレスまたは IP アドレス プレフィックスが応答フィールドに含まれている DNS クエリのみをフィルター処理します。 1 つの IP アドレスまたはプレフィックスでフィルター処理する場合は、このパラメーターを使用します。 応答を提供しないソースの結果は返されません。 |
| response_has_any_prefix | 動的 | 一覧表示されている IP アドレスまたは IP アドレス プレフィックスのいずれかが応答フィールドに含まれている DNS クエリのみをフィルター処理します。 プレフィックスは、 .で終わる必要があります (例: 10.0.)。 IP アドレスまたはプレフィックスの一覧でフィルター処理する場合は、このパラメーターを使用します。 応答を提供しないソースの結果は返されません。 リストの長さは 10,000 項目に制限されています。 |
| Eventtype | string | 指定した種類の DNS クエリのみをフィルター処理します。 値が指定されていない場合は、参照クエリのみが返されます。 |
たとえば、ドメイン名の解決に失敗した最終日の DNS クエリのみをフィルター処理するには、次を使用します。
_Im_Dns (responsecodename = 'NXDOMAIN', starttime = ago(1d), endtime=now())
ドメイン名の指定した一覧に対して DNS クエリのみをフィルター処理するには、次のコマンドを使用します。
let torProxies=dynamic(["tor2web.org", "tor2web.com", "torlink.co"]);
_Im_Dns (domain_has_any = torProxies)
一部のパラメーターでは、 dynamic 型の値の両方のリストまたは単一の文字列値を受け取ることができます。 動的な値が必要なパラメーターにリテラル リストを渡すには、 動的リテラルを明示的に使用します。 例: dynamic(['192.168.','10.'])
正規化されたコンテンツ
正規化された DNS イベントを使用する分析ルールの完全な一覧については、「 DNS クエリのセキュリティ コンテンツ」を参照してください。
スキーマの詳細
DNS 情報モデルは、 OSSEM DNS エンティティ スキーマに合わせて調整されます。
詳細については、 インターネット割り当て番号機関 (IANA) DNS パラメーターリファレンスを参照してください。
一般的な ASIM フィールド
重要
すべてのスキーマに共通のフィールドについては、 ASIM 共通フィールド に関する記事を参照してください。
特定のガイドラインを含む一般的なフィールド
次の一覧では、DNS イベントに関する特定のガイドラインがあるフィールドについて説明します。
| Field | クラス | 型 | 説明 |
|---|---|---|---|
| EventType | 必須 | 列挙 | レコードによって報告される操作を示します。 DNS レコードの場合、この値は DNS 操作コードになります。 例: Query |
| EventSubType | 省略可能 | 列挙 |
request または response のどちらかです。 ほとんどのソースでは、 応答のみがログに記録されるため、値は多くの場合 応答です。 |
| EventResultDetails | 必須 | 列挙 | DNS イベントの場合、このフィールドは DNS 応答コードを提供します。 注: - IANA では値の大文字と小文字が定義されていないため、分析ではケースを正規化する必要があります。 - ソースが応答コード名ではなく数値応答コードのみを提供する場合、パーサーには、この値を使用してエンリッチするルックアップ テーブルを含める必要があります。 - このレコードが応答ではなく要求を表す場合は、 NA に設定します。 例: NXDOMAIN |
| EventSchemaVersion | 必須 | SchemaVersion (String) | ここに記載されているスキーマのバージョンは 0.1.7 です。 |
| EventSchema | 必須 | 列挙 | ここに記載されているスキーマの名前は Dns です。 |
| Dvc フィールド | - | - | DNS イベントの場合、デバイス フィールドは DNS イベントを報告するシステムを参照します。 |
すべての共通フィールド
次の表に示すフィールドは、すべての ASIM スキーマに共通です。 上記で指定したガイドラインは、フィールドの一般的なガイドラインをオーバーライドします。 たとえば、フィールドは一般的には省略可能ですが、特定のスキーマでは必須です。 各フィールドの詳細については、 ASIM 共通フィールド に関する記事を参照してください。
| クラス | フィールド |
|---|---|
| 必須 |
-
EventCount - EventStartTime - EventEndTime - Eventtype - EventResult - EventProduct - EventVendor - EventSchema - EventSchemaVersion - Dvc |
| 推奨 |
-
EventResultDetails - EventSeverity - EventUid - DvcIpAddr - DvcHostname - DvcDomain - DvcDomainType - DvcFQDN - DvcId - DvcIdType - DvcAction |
| 省略可能 |
-
EventMessage - EventSubType - EventOriginalUid - EventOriginalType - EventOriginalSubType - EventOriginalResultDetails - EventOriginalSeverity - EventProductVersion - EventReportUrl - EventOwner - DvcZone - DvcMacAddr - DvcOs - DvcOsVersion - DvcOriginalAction - DvcInterface - AdditionalFields - DvcDescription - DvcScopeId - DvcScope |
ソース システムフィールド
| フィールド | クラス | 型 | 説明 |
|---|---|---|---|
| Src | Alias | 文字列 | ソース デバイスの一意識別子。 このフィールドは、 SrcDvcId、 SrcHostname、または SrcIpAddr フィールドに別名を付 けることができます。 例: 192.168.12.1 |
| SrcIpAddr | 推奨 | IP アドレス | DNS 要求を送信したクライアントの IP アドレス。 再帰 DNS 要求の場合、通常、この値はレポート デバイスであり、ほとんどの場合は 127.0.0.1 に設定されます。 例: 192.168.12.1 |
| SrcPortNumber | 省略可能 | 整数 | DNS クエリのソース ポート。 例: 54312 |
| IpAddr | Alias | SrcIpAddr へのエイリアス | |
| SrcGeoCountry | 省略可能 | 国 | 送信元 IP アドレスに関連付けられている国/地域。 例: USA |
| SrcGeoRegion | 省略可能 | Region | ソース IP アドレスに関連付けられているリージョン。 例: Vermont |
| SrcGeoCity | 省略可能 | City | ソース IP アドレスに関連付けられている都市。 例: Burlington |
| SrcGeoLatitude | 省略可能 | Latitude | ソース IP アドレスに関連付けられている地理的座標の緯度。 例: 44.475833 |
| SrcGeoLongitude | 省略可能 | Longitude | ソース IP アドレスに関連付けられている地理的座標の経度。 例: 73.211944 |
| SrcRiskLevel | 省略可能 | 整数 | ソースに関連付けられているリスク レベル。 値は100する0の範囲に調整する必要があります。リスクが高い場合は問題のない100に0します。例: 90 |
| SrcOriginalRiskLevel | 省略可能 | 文字列 | レポート デバイスによって報告されるソースに関連付けられているリスク レベル。 例: Suspicious |
| SrcHostname | 推奨 | Hostname (String) | ドメイン情報を除くソース デバイスのホスト名。 例: DESKTOP-1282V4D |
| Hostname | Alias | SrcHostname へのエイリアス | |
| SrcDomain | 推奨 | ドメイン (文字列) | ソース デバイスのドメイン。 例: Contoso |
| SrcDomainType | 条件 付き | 列挙 |
SrcDomain の型 (既知の場合)。 次の値を指定できます。 - Windows (例: contoso)- FQDN (例: microsoft.com)SrcDomain を使用する場合は必須です。 |
| SrcFQDN | 省略可能 | FQDN (文字列) | ソース デバイスのホスト名(使用可能な場合はドメイン情報を含む)。 注: このフィールドは、従来の FQDN 形式と Windows ドメイン\ホスト名形式の両方をサポートします。 SrcDomainType フィールドには、使用される形式が反映されます。 例: Contoso\DESKTOP-1282V4D |
| SrcDvcId | 省略可能 | 文字列 | レコードで報告されるソース デバイスの ID。 例: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
| SrcDvcScopeId | 省略可能 | 文字列 | デバイスが属するクラウド プラットフォーム スコープ ID。 SrcDvcScopeId は、Azureのサブスクリプション ID と AWS のアカウント ID にマップされます。 |
| SrcDvcScope | 省略可能 | 文字列 | デバイスが属するクラウド プラットフォーム スコープ。 SrcDvcScope は、Azureのサブスクリプション ID と AWS のアカウント ID にマップされます。 |
| SrcDvcIdType | 条件 付き | 列挙 |
SrcDvcId の型 (既知の場合)。 次の値を指定できます。 - AzureResourceId- MDEid複数の ID が使用可能な場合は、リストの最初の ID を使用し、他の ID をそれぞれ SrcDvcAzureResourceId と SrcDvcMDEid に格納します。 注: SrcDvcId を使用する場合は、このフィールドが必要です。 |
| SrcDeviceType | 省略可能 | 列挙 | ソース デバイスの種類。 次の値を指定できます。 - Computer- Mobile Device- IOT Device- Other |
| SrcDescription | 省略可能 | 文字列 | デバイスに関連付けられている説明テキスト。 例: Primary Domain Controller。 |
ソース ユーザー フィールド
| フィールド | クラス | 型 | 説明 |
|---|---|---|---|
| SrcUserId | 省略可能 | 文字列 | ソース ユーザーのコンピューターで読み取り可能な英数字の一意の表現。 詳細および追加の ID の代替フィールドについては、「 ユーザー エンティティ」を参照してください。 例: S-1-12-1-4141952679-1282074057-627758481-2916039507 |
| SrcUserScope | 省略可能 | 文字列 | SrcUserId と SrcUsername が定義されているMicrosoft Entraテナントなどのスコープ。 または、許可される値の詳細と一覧については、スキーマの概要に関する記事の UserScope を参照してください。 |
| SrcUserScopeId | 省略可能 | 文字列 | SrcUserId と SrcUsername が定義されているMicrosoft Entra ディレクトリ ID などのスコープ ID。 許可される値の詳細と一覧については、スキーマの概要に関する記事の「UserScopeId」を参照してください。 |
| SrcUserIdType | 条件 付き | UserIdType | SrcUserId フィールドに格納されている ID の型。 許可される値の詳細と一覧については、スキーマの概要に関する記事の「UserIdType」を参照してください。 |
| SrcUsername | 省略可能 | ユーザー名 (文字列) | 使用可能な場合はドメイン情報を含むソース ユーザー名。 詳細については、「 ユーザー エンティティ」を参照してください。 例: AlbertE |
| SrcUsernameType | 条件 付き | UsernameType |
SrcUsername フィールドに格納されているユーザー名の種類を指定します。 許可される値の詳細と一覧については、スキーマの概要に関する記事の UsernameType に関する記事を参照してください。 例: Windows |
| ユーザー | Alias | SrcUsername へのエイリアス | |
| SrcUserType | 省略可能 | UserType | ソース ユーザーの種類。 許可される値の詳細と一覧については、スキーマの概要に関する記事の「UserType」を参照してください。 例: Guest |
| SrcUserSessionId | 省略可能 | 文字列 | アクターのサインイン セッションの一意の ID。 例: 102pTUgC3p8RIqHvzxLCHnFlg |
| SrcOriginalUserType | 省略可能 | 文字列 | ソースによって指定された場合は、元のソース ユーザーの種類。 |
ソース プロセス フィールド
| フィールド | クラス | 型 | 説明 |
|---|---|---|---|
| SrcProcessName | 省略可能 | 文字列 | DNS 要求を開始したプロセスのファイル名。 通常、この名前はプロセス名と見なされます。 例: C:\Windows\explorer.exe |
| プロセス | Alias |
SrcProcessName のエイリアス 例: C:\Windows\System32\rundll32.exe |
|
| SrcProcessId | 省略可能 | 文字列 | DNS 要求を開始したプロセスのプロセス ID (PID)。 例: 48610176 注: 型は、さまざまなシステムをサポートするために文字列として定義されていますが、Windows では、この値Linux数値にする必要があります。 Windows または Linux コンピューターを使用していて、別の種類を使用している場合は、必ず値を変換してください。 たとえば、16 進値を使用した場合は、10 進値に変換します。 |
| SrcProcessGuid | 省略可能 | GUID (文字列) | DNS 要求を開始したプロセスの生成された一意識別子 (GUID)。 例: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
宛先システム フィールド
| フィールド | クラス | 型 | 説明 |
|---|---|---|---|
| Dst | Alias | 文字列 | DNS 要求を受信したサーバーの一意識別子。 このフィールドは、 DstDvcId、 DstHostname、または DstIpAddr フィールドに 別名を付けることができます。 例: 192.168.12.1 |
| DstIpAddr | 省略可能 | IP アドレス | DNS 要求を受信したサーバーの IP アドレス。 通常の DNS 要求の場合、この値は通常、レポート デバイスであり、ほとんどの場合は 127.0.0.1 に設定されます。例: 127.0.0.1 |
| DstGeoCountry | 省略可能 | 国 | 宛先 IP アドレスに関連付けられている国/地域。 詳細については、「 論理型」を参照してください。 例: USA |
| DstGeoRegion | 省略可能 | Region | 宛先 IP アドレスに関連付けられているリージョン (状態)。 詳細については、「 論理型」を参照してください。 例: Vermont |
| DstGeoCity | 省略可能 | City | 宛先 IP アドレスに関連付けられている都市。 詳細については、「 論理型」を参照してください。 例: Burlington |
| DstGeoLatitude | 省略可能 | Latitude | 宛先 IP アドレスに関連付けられている地理的座標の緯度。 詳細については、「 論理型」を参照してください。 例: 44.475833 |
| DstGeoLongitude | 省略可能 | Longitude | 宛先 IP アドレスに関連付けられている地理的座標の経度。 詳細については、「 論理型」を参照してください。 例: 73.211944 |
| DstRiskLevel | 省略可能 | 整数 | 宛先に関連付けられているリスク レベル。 値は 0 から 100 の範囲に調整する必要があります。0 は問題なし、100 は高リスクです。 例: 90 |
| DstOriginalRiskLevel | 省略可能 | 文字列 | レポート デバイスによって報告される、宛先に関連付けられているリスク レベル。 例: Malicious |
| DstPortNumber | 省略可能 | 整数 | 宛先ポート番号。 例: 53 |
| DstHostname | 省略可能 | Hostname (String) | ドメイン情報を除く宛先デバイスのホスト名。 使用可能なデバイス名がない場合は、このフィールドに関連する IP アドレスを格納します。 例: DESKTOP-1282V4D注: DstIpAddr が指定されている場合、この値は必須です。 |
| DstDomain | 省略可能 | ドメイン (文字列) | 宛先デバイスのドメイン。 例: Contoso |
| DstDomainType | 条件 付き | 列挙 |
DstDomain の型 (既知の場合)。 次の値を指定できます。 - Windows (contoso\mypc)- FQDN (learn.microsoft.com)DstDomain を使用する場合は必須です。 |
| DstFQDN | 省略可能 | FQDN (文字列) | ドメイン情報 (使用可能な場合) を含む宛先デバイスのホスト名。 例: Contoso\DESKTOP-1282V4D 注: このフィールドは、従来の FQDN 形式と Windows ドメイン\ホスト名形式の両方をサポートします。 DstDomainType には、使用される形式が反映されます。 |
| DstDvcId | 省略可能 | 文字列 | レコードで報告される宛先デバイスの ID。 例: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
| DstDvcScopeId | 省略可能 | 文字列 | デバイスが属するクラウド プラットフォーム スコープ ID。 DstDvcScopeId は、Azureのサブスクリプション ID と AWS のアカウント ID にマップされます。 |
| DstDvcScope | 省略可能 | 文字列 | デバイスが属するクラウド プラットフォーム スコープ。 DstDvcScope は、Azureのサブスクリプション ID と AWS のアカウント ID にマップされます。 |
| DstDvcIdType | 条件 付き | 列挙 |
DstDvcId の型 (既知の場合)。 次の値を指定できます。 - AzureResourceId- MDEidIf複数の ID が使用可能な場合は、上の一覧の最初の ID を使用し、他の ID をそれぞれ DstDvcAzureResourceId フィールドまたは DstDvcMDEid フィールドに格納します。 DstDeviceId を使用する場合は必須です。 |
| DstDeviceType | 省略可能 | 列挙 | 宛先デバイスの種類。 次の値を指定できます。 - Computer- Mobile Device- IOT Device- Other |
| DstDescription | 省略可能 | 文字列 | デバイスに関連付けられている説明テキスト。 例: Primary Domain Controller。 |
DNS 固有のフィールド
| フィールド | クラス | 型 | 説明 |
|---|---|---|---|
| DnsQuery | 必須 | 文字列 | 要求が解決を試みるドメイン。 注: - 一部のソースは、別の形式で有効な FQDN クエリを送信します。 たとえば、DNS プロトコル自体では、クエリの末尾にドット (.) が含まれています。これは削除する必要があります。 - DNS プロトコルは、このフィールドの値の種類を FQDN に制限しますが、ほとんどの DNS サーバーは任意の値を許可するため、このフィールドは FQDN 値のみに限定されません。 特に、DNS トンネリング攻撃では、クエリ フィールドで無効な FQDN 値が使用される可能性があります。 - DNS プロトコルでは 1 つの要求で複数のクエリを許可しますが、このシナリオがまったく見つからない場合はまれです。 要求に複数のクエリがある場合は、最初のクエリをこのフィールドに格納し、必要に応じて残りを [AdditionalFields ] フィールドに保持します。 例: www.malicious.com |
| ドメイン | Alias | DnsQuery へのエイリアス。 | |
| DnsQueryType | 省略可能 | 整数 |
DNS リソース レコードの種類コード。 例: 28 |
| DnsQueryTypeName | 推奨 | 列挙 |
DNS リソース レコードの種類名。 注: - IANA では値の大文字と小文字が定義されていないため、分析では必要に応じてケースを正規化する必要があります。 - ANY 値は、応答コード 255 でサポートされています。- TYPExxxx 値はマップされていない応答コードでサポートされます。 xxxx は、BIND DNS サーバーによって報告された応答コードの数値です。-ソースが数値クエリ型コードのみを提供し、クエリ型名を指定しない場合、パーサーはこの値を使用してエンリッチするルックアップ テーブルを含める必要があります。 例: AAAA |
| DnsResponseName | 省略可能 | 文字列 | レコードに含まれる応答の内容。 DNS 応答データは、レポート デバイス間で一貫性がなく、解析が複雑であり、ソースに依存しない分析の価値が低くなります。 したがって、情報モデルは解析と正規化を必要とせず、Microsoft Sentinelは補助関数を使用して応答情報を提供します。 詳細については、「 DNS 応答の処理」を参照してください。 |
| DnsResponseCodeName | Alias | EventResultDetails へのエイリアス | |
| DnsResponseCode | 省略可能 | 整数 |
DNS 数値応答コード。 例: 3 |
| TransactionIdHex | 推奨 | 16 進数 (文字列) | DNS クライアントによって割り当てられた DNS クエリの一意の ID (16 進形式)。 この値は DNS プロトコルの一部であり、通常はレポート デバイスによって割り当てられるネットワーク層セッション ID である DnsSessionId とは異なります。 |
| NetworkProtocol | 省略可能 | 列挙 | ネットワーク解決イベントによって使用されるトランスポート プロトコル。 値は UDP または TCP であり、最も一般的に DNS の 場合は UDP に設定されます。 例: UDP |
| NetworkProtocolVersion | 省略可能 | 列挙 |
NetworkProtocol のバージョン。 IP バージョンを区別するために使用する場合は、 IPv4 と IPv6の値を使用します。 |
| DnsQueryClass | 省略可能 | 整数 |
DNS クラス ID。 実際には、 IN クラス (ID 1) のみが使用されるため、このフィールドの価値は低くなります。 |
| DnsQueryClassName | 推奨 | DnsQueryClassName (String) |
DNS クラス名。 実際には、 IN クラス (ID 1) のみが使用されるため、このフィールドの価値は低くなります。 例: IN |
| DnsFlags | 省略可能 | 文字列 | レポート デバイスによって提供されるフラグ フィールド。 フラグ情報が複数のフィールドに指定されている場合は、区切り記号としてコンマで連結します。 DNS フラグは解析が複雑であり、分析ではあまり使用されないため、解析と正規化は必要ありません。 Microsoft Sentinelは、補助関数を使用してフラグ情報を提供できます。 詳細については、「 DNS 応答の処理」を参照してください。 例: ["DR"] |
| DnsNetworkDuration | 省略可能 | 整数 | DNS 要求が完了するまでの時間 (ミリ秒単位)。 例: 1500 |
| Duration | Alias | DnsNetworkDuration へのエイリアス | |
| DnsFlagsAuthenticated | 省略可能 | ブール型 | DNS AD フラグは、DNSSEC に関連しており、応答の応答セクションと機関セクションに含まれるすべてのデータがそのサーバーのポリシーに従ってサーバーによって検証されたことを応答で示します。 詳細については、「 RFC 3655 セクション 6.1 」を参照してください。 |
| DnsFlagsAuthoritative | 省略可能 | ブール型 | DNS AA フラグは、サーバーからの応答が権限を持っていたかどうかを示します |
| DnsFlagsCheckingDisabled | 省略可能 | ブール型 | DNS CD フラグは、DNSSEC に関連しており、検証されていないデータがクエリを送信するシステムに許容されることをクエリで示します。 詳細については、「 RFC 3655 セクション 6.1 」を参照してください。 |
| DnsFlagsRecursionAvailable | 省略可能 | ブール型 | DNS RA フラグは、サーバーが再帰クエリをサポートしていることを応答で示します。 |
| DnsFlagsRecursionDesired | 省略可能 | ブール型 | DNS RD フラグは、クライアントがサーバーで再帰クエリを使用することを要求で示します。 |
| DnsFlagsTruncated | 省略可能 | ブール型 | DNS TC フラグは、応答が最大応答サイズを超えたため切り捨てられたことを示します。 |
| DnsFlagsZ | 省略可能 | ブール型 | DNS Z フラグは非推奨の DNS フラグであり、古い DNS システムによって報告される可能性があります。 |
| DnsSessionId | 省略可能 | string | レポート デバイスによって報告される DNS セッション識別子。 この値は、DNS クライアントによって割り当てられた DNS クエリの一意の ID である TransactionIdHex とは異なります。 例: EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55 |
| SessionId | Alias | DnsSessionId へのエイリアス | |
| DnsResponseIpCountry | 省略可能 | 国 | DNS 応答のいずれかの IP アドレスに関連付けられている国/地域。 詳細については、「 論理型」を参照してください。 例: USA |
| DnsResponseIpRegion | 省略可能 | Region | DNS 応答のいずれかの IP アドレスに関連付けられているリージョン (状態)。 詳細については、「 論理型」を参照してください。 例: Vermont |
| DnsResponseIpCity | 省略可能 | City | DNS 応答の IP アドレスのいずれかに関連付けられている都市。 詳細については、「 論理型」を参照してください。 例: Burlington |
| DnsResponseIpLatitude | 省略可能 | Latitude | DNS 応答の IP アドレスの 1 つに関連付けられている地理的座標の緯度。 詳細については、「 論理型」を参照してください。 例: 44.475833 |
| DnsResponseIpLongitude | 省略可能 | Longitude | DNS 応答の IP アドレスの 1 つに関連付けられている地理的座標の経度。 詳細については、「 論理型」を参照してください。 例: 73.211944 |
検査フィールド
次のフィールドは、DNS セキュリティ デバイスが実行した検査を表すために使用されます。 脅威に関連するフィールドは、送信元アドレス、宛先アドレス、応答内のいずれかの IP アドレス、または DNS クエリ ドメインに関連付けられている 1 つの脅威を表します。 複数の脅威が脅威として識別された場合は、他の IP アドレスに関する情報をフィールド AdditionalFieldsに格納できます。
| フィールド | クラス | 型 | 説明 |
|---|---|---|---|
| UrlCategory | 省略可能 | 文字列 | DNS イベント ソースは、要求されたドメインのカテゴリを検索することもできます。 フィールドは UrlCategory と呼ばれ、Microsoft Sentinelネットワーク スキーマに合わせて調整されます。 DomainCategory は、DNS に適したエイリアスとして追加されます。 例: Educational \\ Phishing |
| DomainCategory | Alias | UrlCategory へのエイリアス。 | |
| RuleName | 省略可能 | 文字列 | 脅威を特定したルールの名前または ID。 例: AnyAnyDrop |
| RuleNumber | 省略可能 | 整数 | 脅威を特定したルールの数。 例: 23 |
| Rule | Alias | 文字列 | RuleName の値、または RuleNumber の値のいずれか。 RuleNumber の値を使用する場合は、型を文字列に変換する必要があります。 |
| RuleNumber | 省略可能 | int | アラートに関連付けられているルールの数。 例えば。 123456 |
| RuleName | 省略可能 | string | アラートに関連付けられているルールの名前または ID。 例えば。 Server PSEXEC Execution via Remote Access |
| ThreatId | 省略可能 | 文字列 | ネットワーク セッションで特定された脅威またはマルウェアの ID。 例: Tr.124 |
| ThreatCategory | 省略可能 | 文字列 | DNS イベント ソースでも DNS セキュリティが提供される場合は、DNS イベントも評価される可能性があります。 たとえば、脅威インテリジェンス データベース内の IP アドレスまたはドメインを検索し、脅威カテゴリを使用してドメインまたは IP アドレスを割り当てることができます。 |
| ThreatIpAddr | 省略可能 | IP アドレス | 脅威が特定された IP アドレス。 ThreatField フィールドには、ThreatIpAddr が表すフィールドの名前が含まれています。 [ ドメイン] フィールドで脅威が特定された場合、このフィールドは空である必要があります。 |
| ThreatField | 条件 付き | 列挙 | 脅威が特定されたフィールド。 値は、 SrcIpAddr、 DstIpAddr、 Domain、または DnsResponseNameのいずれかです。 |
| ThreatName | 省略可能 | 文字列 | レポート デバイスによって報告された、特定された脅威の名前。 |
| ThreatConfidence | 省略可能 | ConfidenceLevel (整数) | 特定された脅威の信頼レベルを、0 から 100 の値に正規化します。 |
| ThreatOriginalConfidence | 省略可能 | 文字列 | レポート デバイスによって報告された、特定された脅威の元の信頼レベル。 |
| ThreatRiskLevel | 省略可能 | RiskLevel (整数) | 特定された脅威に関連するリスク レベルを、0 から 100 の値に正規化します。 |
| ThreatOriginalRiskLevel | 省略可能 | 文字列 | レポート デバイスによって報告された、特定された脅威に関連付けられた元のリスク レベル。 |
| ThreatIsActive | 省略可能 | ブール型 | True を指定すると、特定された脅威がアクティブな脅威と見なされます。 |
| ThreatFirstReportedTime | 省略可能 | 日付型 | IP アドレスまたはドメインが脅威として初めて識別された場合。 |
| ThreatLastReportedTime | 省略可能 | 日付型 | IP アドレスまたはドメインが脅威として識別された最後の時刻。 |
非推奨のエイリアスとフィールド
次のフィールドは、下位互換性のために維持されるエイリアスです。 2021 年 12 月 31 日にスキーマから削除されました。
-
Query(エイリアスからDnsQuery) -
QueryType(エイリアスからDnsQueryType) -
QueryTypeName(エイリアスからDnsQueryTypeName) -
ResponseName(エイリアスからDnsResponseName) -
ResponseCodeName(エイリアスからDnsResponseCodeName) -
ResponseCode(エイリアスからDnsResponseCode) -
QueryClass(エイリアスからDnsQueryClass) -
QueryClassName(エイリアスからDnsQueryClassName) -
Flags(エイリアスからDnsFlags) SrcUserDomain
スキーマの更新
スキーマのバージョン 0.1.2 の変更は次のとおりです。
- フィールド
EventSchemaを追加しました。 -
DnsFlagsAuthoritative、DnsFlagsCheckingDisabled、DnsFlagsRecursionAvailable、DnsFlagsRecursionDesired、DnsFlagsTruncated、DnsFlagsZの組み合わせフラグ フィールドを拡張する専用フラグ フィールドが追加されました。
スキーマのバージョン 0.1.3 の変更は次のとおりです。
- スキーマでは、
Src*、Dst*、Process*、User*の各フィールドが明示的に文書化されるようになりました。 - 最新の共通フィールド定義と一致するように、さらに
Dvc*フィールドを追加しました。 -
SrcとDstをエイリアスとして、移行元と移行先のシステムの先頭の識別子に追加しました。 - 省略可能な
DnsNetworkDurationとDuration(エイリアス) を追加しました。 - オプションの [地理的位置] フィールドと [リスク レベル] フィールドを追加しました。
スキーマのバージョン 0.1.4 の変更は次のとおりです。
- 省略可能なフィールド
ThreatIpAddr、ThreatField、ThreatName、ThreatConfidence、ThreatOriginalConfidence、ThreatOriginalRiskLevel、ThreatIsActive、ThreatFirstReportedTime、ThreatLastReportedTimeを追加しました。
スキーマのバージョン 0.1.5 の変更は次のとおりです。
- フィールド
SrcUserScope、SrcUserSessionId、SrcDvcScopeId、SrcDvcScope、DstDvcScopeId、DstDvcScope、DvcScopeId、DvcScopeを追加しました。
スキーマのバージョン 0.1.6 の変更は次のとおりです。
- フィールド
DnsResponseIpCountry、DnsResponseIpRegion、DnsResponseIpCity、DnsResponseIpLatitude、DnsResponseIpLongitudeを追加しました。
スキーマのバージョン 0.1.7 の変更は次のとおりです。
-
SrcDescription、SrcOriginalRiskLevel、DstDescription、DstOriginalRiskLevel、SrcUserScopeId、NetworkProtocolVersion、Rule、RuleName、RuleNumber、ThreatIdの各フィールドを追加しました。
ソース固有の不一致
正規化の目標は、すべてのソースが一貫性のあるテレメトリを提供できるようにすることです。 必須のスキーマ フィールドなど、必要なテレメトリを提供しないソースを正規化することはできません。 ただし、一般的に必要なすべてのテレメトリを提供するソースは、一部の不一致がある場合でも正規化できます。 不一致は、クエリ結果の完全性に影響する可能性があります。
次の表に、既知の相違点を示します。
| ソース | 不一致 |
|---|---|
| DNS コネクタと Log Analytics エージェントを使用して収集された Microsoft DNS サーバー | コネクタは、元のイベント ID 264 (動的更新への応答) に必須の DnsQuery フィールドを提供しません。 データはソースで使用できますが、コネクタによって転送されません。 |
| Corelight Zeek | Corelight Zeek では、必須の DnsQuery フィールドが提供されない場合があります。 このような動作は、DNS 応答コード名が NXDOMAINされている特定のケースで観察されています。 |
DNS 応答の処理
ほとんどの場合、ログに記録された DNS イベントには応答情報が含まれず、大規模で詳細な場合があります。 レコードにさらに多くの応答情報が含まれている場合は、レコードに表示される ResponseName フィールドに格納します。
また、 _imDNS<vendor>Response_ と呼ばれる追加の KQL 関数を指定することもできます。これは、解析されていない応答を入力として受け取り、次の構造体を使用して動的値を返します。
[
{
"part": "answer"
"query": "yahoo.com."
"TTL": 1782
"Class": "IN"
"Type": "A"
"Response": "74.6.231.21"
}
{
"part": "authority"
"query": "yahoo.com."
"TTL": 113066
"Class": "IN"
"Type": "NS"
"Response": "ns5.yahoo.com"
}
...
]
動的値の各ディクショナリのフィールドは、各 DNS 応答のフィールドに対応します。
partエントリには、ディクショナリが属する応答の部分を反映するために、answer、authority、またはadditionalのいずれかを含める必要があります。
ヒント
最適なパフォーマンスを確保するには、必要な場合にのみ imDNS<vendor>Response 関数を呼び出し、初期フィルター処理の後にのみ呼び出してパフォーマンスを向上させます。
DNS フラグの処理
フラグ データには、解析と正規化は必要ありません。 代わりに、レポート デバイスによって提供されるフラグ データを [ フラグ ] フィールドに格納します。 個々のフラグの値を簡単に決定する場合は、専用フラグ フィールドを使用することもできます。
また、 _imDNS<vendor>Flags_ と呼ばれる追加の KQL 関数を提供することもできます。この関数は、解析されていない応答または専用フラグ フィールドを入力として受け取り、動的リストを返し、各フラグを次の順序で表すブール値で返します。
- Authenticated (AD)
- 権限あり (AA)
- 無効の確認 (CD)
- 利用可能な再帰 (RA)
- 再帰 Desired (RD)
- 切り捨て (TC)
- Z
次の手順
詳細については、以下を参照してください。