Advanced Security Information Model (ASIM) DNS 正規化スキーマのリファレンス (パブリック プレビュー)

DNS 情報モデルは、DNS サーバーまたは DNS セキュリティ システムによって報告されるイベントを記述するために使用され、ソースに依存しない分析を有効にするために Microsoft Sentinel によって使用されます。

詳細については、「正規化と Advanced Security Information Model (ASIM)」を参照してください。

重要

現在、DNS 正規化スキーマはプレビュー段階です。 この機能は、サービス レベル アグリーメントなしで提供されており、運用環境のワークロード用には推奨されていません。

Azure プレビューの追加使用条件には、ベータ版、プレビュー版、またはまだ一般提供されていない Azure 機能に適用される追加の法律条項が含まれています。

スキーマの概要

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 は応答の解析を必要とせず、その形式はソースによって異なります。

    ソースに依存しないコンテンツでこのフィールドを使用するには、hasORcontains 演算子を使用してコンテンツを検索します。

クライアント デバイスで収集された DNS イベントには、ユーザープロセスの情報が含まれる場合もあります。

DNS イベントの収集に関するガイドライン

DNS は、多数のコンピューターが対象になる可能性があるという点でユニークなプロトコルです。 また、DNS では UDP が使用されるので、要求と応答は切り離されており、互いに直接関連付けられていません。

次の図は、4 つのセグメントを含む簡略化された DNS 要求フローを示したものです。 実際の要求は、もっと複雑で、さらに多くのセグメントが含まれる場合があります。

Simplified DNS request flow.

DNS 要求フローでは要求と応答のセグメントは互いに直接接続されないので、完全なログ記録を行うと大量の重複が発生する可能性があります。

ログに記録する最も重要なセグメントは、クライアントへの応答です。 応答は、ドメイン名クエリ、検索結果、およびクライアントの IP アドレスを提供します。 多くの DNS システムではこのセグメントのみがログに記録されますが、他のもログに記録する価値のある部分があります。 たとえば、DNS キャッシュのポイズニング攻撃では、多くの場合、アップストリーム サーバーからの偽の応答が利用されます。

データ ソースで完全な DNS ログがサポートされていて、複数のセグメントのログ記録を選択してある場合は、クエリを調整して、Microsoft Sentinel でのデータの重複を防ぎます。

たとえば、次の正規化を使用してクエリを変更することがあります。

_Im_Dns | where SrcIpAddr != "127.0.0.1" and EventSubType == "response"

パーサー

ASIM パーサーの詳細については、ASIM パーサーの概要に関する各ページを参照してください。

すぐに使えるパーサー

すぐに使えるすべての ASIM パーサーをまとめたパーサーを使用し、すべての構成済みソースにわたって分析が確実に実行されるようにするには、クエリ内で _Im_Dns をテーブル名として使用します。

Microsoft Sentinel が提供する DNS パーサーの一覧については、ASIM パーサーの一覧を参照してください。

独自の正規化されたパーサーを追加する

DNS 情報モデルのカスタム パーサーを実装するときは、vimDns<vendor><Product> 形式を使用して KQL 関数に名前を付けます。 DNS 統一パーサーにカスタム パーサーを追加する方法については、ASIM パーサーの管理に関する記事を参照してください。

パーサー パラメーターのフィルター処理

DNS パーサーは、フィルター処理パラメーターをサポートしています。 これらのパーサーは省略可能ですが、クエリのパフォーマンスを向上させることができます。

次のフィルター処理パラメーターを使用できます。

名前 説明
starttime DATETIME この時間以降に実行された DNS クエリのみをフィルター処理します。
endtime DATETIME この時間以前に実行が完了した DNS クエリのみをフィルター処理します。
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 クエリのみをフィルター処理します。 このパラメーターは、単一の 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 エンティティ スキーマに合わせて調整されています。

詳細については、Internet Assigned Numbers Authority (IANA) の DNS パラメーター リファレンスに関するページを参照してください。

一般的な ASIM フィールド

重要

すべてのスキーマに共通するフィールドの詳細については、ASIM 共通フィールドに関する記事を参照してください。

特定のガイドラインを持つ共通フィールド

次の一覧には、DNS イベントに関する具体的なガイドラインが含まれたフィールドを示しています。

フィールド クラス Type 説明
EventType Mandatory Enumerated レコードによって報告される操作を示します。

DNS レコードの場合、この値は DNS の操作コードになります。

例: Query
EventSubType オプション Enumerated request または response のいずれかです。

ほとんどのソースでは、応答だけがログに記録されるため、多くの場合、この値は response になります。
EventResultDetails Mandatory Enumerated DNS イベントの場合、このフィールドには DNS 応答コードが表示されます。

:
- IANA では値の大文字と小文字は定義されていないので、分析では大文字と小文字を正規化する必要があります。
- ソースで数値の応答コードのみが提供され、応答コードの名前が提供されない場合は、パーサーでこの値をエンリッチするためにルックアップ テーブルを含める必要があります。
- このレコードが応答ではなく要求を表している場合は、NA に設定します。

例: NXDOMAIN
EventSchemaVersion Mandatory String ここに記載されているスキーマのバージョンは 0.1.7 です。
EventSchema Mandatory String ここに記載されているスキーマの名前は Dns です。
Dvc フィールド - - DNS イベントの場合、デバイス フィールドは DNS イベントを報告するシステムを指します。

すべての共通フィールド

下の表に示すフィールドは、すべての ASIM スキーマに共通です。 上で指定されているガイドラインは、フィールドの一般的なガイドラインに優先します。 たとえば、フィールドは一般的には省略可能ですが、特定のスキーマでは必須です。 各フィールドの詳細については、ASIM 共通フィールドに関するアーティクルを参照してください。

クラス Fields
Mandatory - 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

ソース システム フィールド

フィールド クラス Type 説明
Src エイリアス String ソース デバイスの一意識別子。

このフィールドは、SrcDvcIdSrcHostname、または SrcIpAddr フィールドの別名になる可能性があります。

例: 192.168.12.1
SrcIpAddr 推奨 IP アドレス DNS 要求を送信したクライアントの IP アドレスです。 再帰的な DNS 要求の場合、この値は通常はレポート デバイスであり、ほとんどの場合、127.0.0.1 に設定されます。

例: 192.168.12.1
SrcPortNumber オプション Integer DNS クエリの送信元ポート。

例: 54312
IpAddr エイリアス SrcIpAddr の別名
SrcGeoCountry 省略可能 発信元 IP アドレスに関連付けられている国。

例: USA
SrcGeoRegion 省略可能 リージョン 発信元 IP アドレスに関連付けられているリージョン。

例: Vermont
SrcGeoCity オプション City 発信元 IP アドレスに関連付けられている都市。

例: Burlington
SrcGeoLatitude 省略可能 Latitude 発信元 IP アドレスに関連付けられている地理的座標の緯度。

例: 44.475833
SrcGeoLongitude 省略可能 Longitude 発信元 IP アドレスに関連付けられている地理的座標の経度。

例: 73.211944
SrcRiskLevel オプション Integer ソースに関連付けられているリスク レベル。 この値は、0 から 100 の範囲に調整する必要があります。0 は問題なし、100 は高リスクを意味します。

例: 90
SrcOriginalRiskLevel オプション Integer レポート デバイスによって報告された、ソースに関連付けられているリスク レベル。

例: Suspicious
SrcHostname 推奨 String ドメイン情報を除いた、ソース デバイスのホスト名。

例: DESKTOP-1282V4D
hostname エイリアス SrcHostname の別名
SrcDomain 推奨 String ソース デバイスのドメイン。

例: Contoso
SrcDomainType 条件付き Enumerated SrcDomain の種類 (既知の場合)。 次の値を指定できます。
- Windows (例: contoso)
- FQDN (例: microsoft.com)

SrcDomain が使用されている場合は必須です。
SrcFQDN オプション String ソース デバイスのホスト名 (使用可能な場合はドメイン情報を含む)。

: このフィールドでは、従来の FQDN 形式と Windows のドメイン\ホスト名形式の両方がサポートされています。 SrcDomainType フィールドには、使用されている形式が反映されます。

例: Contoso\DESKTOP-1282V4D
SrcDvcId オプション String レコードで報告されるソース デバイスの ID。

例: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
SrcDvcScopeId 省略可能 String デバイスが属するクラウド プラットフォームのスコープ ID。 SrcDvcScopeId は、Azure ではサブスクリプション ID に、AWS ではアカウント ID にマップされます。
SrcDvcScope 省略可能 String デバイスが属するクラウド プラットフォームのスコープ。 SrcDvcScope は、Azure ではサブスクリプション ID に、AWS ではアカウント ID にマップされます。
SrcDvcIdType 条件付き Enumerated SrcDvcId の種類 (既知の場合)。 次の値を指定できます。
- AzureResourceId
- MDEid

複数の ID を使用できる場合は、このリストの最初のものを使用し、他のものはそれぞれ SrcDvcAzureResourceId および SrcDvcMDEid に格納します。

: SrcDvcId が使用されている場合、このフィールドは必須です。
SrcDeviceType オプション Enumerated ソース デバイスの種類。 次の値を指定できます。
- Computer
- Mobile Device
- IOT Device
- Other
SrcDescription 省略可能 String デバイスに関連付けられる説明のテキスト。 (例: Primary Domain Controller)。

ソース ユーザー フィールド

フィールド クラス Type 説明
SrcUserId オプション String ソース ユーザーの、コンピューターが判読できる英数字の一意表現。 詳細と追加の ID の代替フィールドについては、「ユーザー エンティティ」を参照してください。

例: S-1-12-1-4141952679-1282074057-627758481-2916039507
SrcUserScope 省略可能 String SrcUserIdSrcUsername が定義されている Microsoft Entra テナントなどのスコープ。 使用できる値の詳細と一覧については、スキーマの概要に関する記事の「UserScope」を参照してください。
SrcUserScopeId オプション String SrcUserIdSrcUsername が定義されている Microsoft Entra ディレクトリ ID などのスコープ ID。 使用できる値の詳細と一覧については、スキーマの概要に関する記事の「UserScopeId」を参照してください。
SrcUserIdType 条件付き UserIdType SrcUserId フィールドに格納されている ID の種類。 使用できる値の詳細と一覧については、スキーマの概要に関する記事の「UserIdType」を参照してください。
SrcUsername オプション ユーザー名 使用可能な場合はドメイン情報を含む、ソースのユーザー名。 詳細については、「ユーザー エンティティ」を参照してください。

例: AlbertE
SrcUsernameType 条件付き UsernameType SrcUsername フィールドに格納されているユーザー名の種類を指定します。 使用できる値の詳細と一覧については、スキーマの概要に関する記事の「UsernameType」を参照してください。

例: Windows
User エイリアス SrcUsername の別名
SrcUserType オプション UserType 送信元ユーザーの種類。 使用できる値の詳細と一覧については、スキーマの概要に関する記事の「UserType」を参照してください。

例: Guest
SrcUserSessionId 省略可能 String アクターのサインイン セッションの一意の ID。

例: 102pTUgC3p8RIqHvzxLCHnFlg
SrcOriginalUserType オプション String ソースによって提供されている場合、元のソース ユーザーの種類。

ソース プロセス フィールド

フィールド クラス Type 説明
SrcProcessName オプション String DNS 要求を開始するプロセスのファイル名です。 この名前は通常、プロセス名と見なされます。

例: C:\Windows\explorer.exe
Process エイリアス SrcProcessName の別名

例: C:\Windows\System32\rundll32.exe
SrcProcessId オプション String DNS 要求を開始するプロセスのプロセス ID (PID) です。

例: 48610176

: さまざまなシステムに対応するために、型は "文字列" として定義されますが、Windows と Linux ではこの値は数値である必要があります。

Windows または Linux のマシンを使用しており、かつ別の型を使用した場合は、必ず値を変換してください。 たとえば、16 進数の値を使用した場合は、10 進数の値に変換します。
SrcProcessGuid オプション String DNS 要求を開始したプロセスの生成された一意の識別子 (GUID) です。

例: EF3BD0BD-2B74-60C5-AF5C-010000001E00

ターゲット システムのフィールド

フィールド クラス Type 説明
Dst エイリアス String DNS 要求を受信するサーバーの一意の識別子です。

このフィールドは、DstDvcIdDstHostname、または DstIpAddr フィールドの別名になる可能性があります。

例: 192.168.12.1
DstIpAddr オプション IP アドレス DNS 要求を受信するサーバーの IP アドレスです。 通常の DNS 要求の場合、この値は通常はレポート デバイスであり、ほとんどの場合、127.0.0.1 に設定されます。

例: 127.0.0.1
DstGeoCountry オプション ターゲット IP アドレスに関連付けられている国。 詳細については、「論理型」を参照してください。

例: USA
DstGeoRegion 省略可能 リージョン ターゲット IP アドレスに関連付けられているリージョンまたは州。 詳細については、「論理型」を参照してください。

例: Vermont
DstGeoCity オプション City ターゲット IP アドレスに関連付けられている都市。 詳細については、「論理型」を参照してください。

例: Burlington
DstGeoLatitude 省略可能 Latitude ターゲット IP アドレスに関連付けられている地理的座標の緯度。 詳細については、「論理型」を参照してください。

例: 44.475833
DstGeoLongitude 省略可能 Longitude ターゲット IP アドレスに関連付けられている地理的座標の経度。 詳細については、「論理型」を参照してください。

例: 73.211944
DstRiskLevel 省略可能 Integer 送信先に関連付けられているリスク レベル。 この値は、0 から 100 の範囲に調整する必要があります。0 は問題なし、100 は高リスクです。

例: 90
DstOriginalRiskLevel オプション Integer レポート デバイスによって報告された、ターゲットに関連付けられているリスク レベル。

例: Malicious
DstPortNumber オプション Integer 送信先ポート番号。

例: 53
DstHostname オプション String ドメイン情報を除いた、ターゲット デバイスのホスト名。 デバイス名を使用できない場合は、関連する IP アドレスをこのフィールドに格納します。

例: DESKTOP-1282V4D

: DstIpAddr が指定されている場合、この値は必須です。
DstDomain オプション String ターゲット デバイスのドメイン。

例: Contoso
DstDomainType 条件付き Enumerated DstDomain の種類 (既知の場合)。 次の値を指定できます。
- Windows (contoso\mypc)
- FQDN (learn.microsoft.com)

DstDomain が使用されている場合は必須です。
DstFQDN オプション String 使用可能な場合はドメイン情報を含む、ターゲット デバイスのホスト名。

例: Contoso\DESKTOP-1282V4D

: このフィールドでは、従来の FQDN 形式と Windows のドメイン\ホスト名形式の両方がサポートされています。 DstDomainType フィールドには、使用されている形式が反映されます。
DstDvcId オプション String レコードで報告されるターゲット デバイスの ID。

例: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
DstDvcScopeId オプション String デバイスが属するクラウド プラットフォームのスコープ ID。 DstDvcScopeId は、Azure ではサブスクリプション ID に、AWS ではアカウント ID にマップされます。
DstDvcScope 省略可能 String デバイスが属するクラウド プラットフォームのスコープ。 DstDvcScope は、Azure ではサブスクリプション ID に、AWS ではアカウント ID にマップされます。
DstDvcIdType 条件付き Enumerated DstDvcId の種類 (既知の場合)。 次の値を指定できます。
- AzureResourceId
- MDEidIf

複数の ID を使用できる場合は、上のリストの最初のものを使用し、他のものはそれぞれ DstDvcAzureResourceId または DstDvcMDEid フィールドに格納します。

DstDeviceId が使用されている場合は必須です。
DstDeviceType オプション Enumerated ターゲット デバイスの種類。 次の値を指定できます。
- Computer
- Mobile Device
- IOT Device
- Other
DstDescription オプション String デバイスに関連付けられる説明のテキスト。 (例: Primary Domain Controller)。

DNS に固有のフィールド

フィールド クラス Type 説明
DnsQuery Mandatory String 要求が解決しようとするドメインです。

:
- 一部のソースでは、有効な FQDN クエリが別の形式で送信されます。 たとえば、DNS プロトコル自体では、このクエリの末尾にドット (.) が含まれているため、これを削除する必要があります。
- DNS プロトコルでは、このフィールドの値の種類が FQDN に制限されますが、ほとんどの DNS サーバーでは任意の値が許可されるため、このフィールドは FQDN 値のみに限定されません。 特に、DNS トンネリング攻撃では、クエリ フィールド内の無効な FQDN 値が使用される恐れがあります。
- DNS プロトコルでは 1 つの要求に複数のクエリを含めることができますが、このようなシナリオは行われるとしてもまれです。 要求に複数のクエリがある場合は、最初のものをこのフィールドに格納し、必要に応じて残りを AdditionalFields フィールドに保持します。

例: www.malicious.com
Domain エイリアス DnsQuery の別名。
DnsQueryType オプション Integer DNS リソース レコード タイプ コードです。

例: 28
DnsQueryTypeName 推奨 Enumerated DNS リソース レコード タイプです。

:
- IANA では値の大文字と小文字は定義されていないので、分析では必要に応じて大文字と小文字を正規化する必要があります。
- 値 ANY は応答コード 255 でサポートされています。
- マップされていない応答コードでは、値 TYPExxxx がサポートされています。ここで xxxx は、BIND DNS サーバから報告された応答コードの数値です。
- ソースで数値のクエリの種類コードのみが提供され、クエリの種類の名前が提供されない場合は、パーサーでこの値をエンリッチするためにルックアップ テーブルを含める必要があります。

例: AAAA
DnsResponseName オプション String レコードに含まれる応答の内容。

DNS 応答データは、レポート デバイスの間で一貫性がなく、解析が複雑であり、ソースに依存しない分析としての価値は高くありません。 したがって、情報モデルでの解析と正規化は必要なく、Microsoft Sentinel では補助関数を使用して応答情報が提供されます。 詳細については、「DNS の応答の処理」を参照してください。
DnsResponseCodeName エイリアス EventResultDetails のエイリアス
DnsResponseCode オプション Integer DNS 数値応答コード

例: 3
TransactionIdHex 推奨 String DNS クライアントによって割り当てられた DNS クエリの一意の ID (16 進数形式)。 この値は DNS プロトコルの一部であり、DnsSessionId (通常、レポート デバイスによって割り当てられるネットワーク層セッション ID) とは異なります。
NetworkProtocol オプション Enumerated ネットワーク解決イベントによって使用されるトランスポート プロトコル。 値は UDP または TCP であり、DNS の場合は UDP に設定されるのが普通です。

例: UDP
NetworkProtocolVersion オプション Enumerated NetworkProtocol のバージョン。 IP バージョンを区別するために使用する場合、値 IPv4IPv6 を使用します。
DnsQueryClass オプション Integer DNS クラス ID

実際には、IN クラス (ID 1) のみが使用されるため、このフィールドの価値は高くありません。
DnsQueryClassName オプション String DNS クラスの名前

実際には、IN クラス (ID 1) のみが使用されるため、このフィールドの価値は高くありません。

例: IN
DnsFlags オプション String レポート デバイスによって提供されるフラグ フィールド。 フラグ情報が複数のフィールドで提供されている場合は、区切り記号としてコンマを使用して連結します。

DNS フラグの解析は複雑であり、分析で頻繁に使用されることがないため、解析と正規化は必要ありません。 Microsoft Sentinel では、補助機能を使用してフラグ情報を提供できます。 詳細については、「DNS の応答の処理」を参照してください。

例: ["DR"]
DnsNetworkDuration オプション Integer DNS 要求の完了にかかる時間 (ミリ秒単位)。

例: 1500
Duration エイリアス DnsNetworkDuration の別名
DnsFlagsAuthenticated 省略可能 ブール型 DNSSEC に関連する DNS の AD フラグは、応答において、応答の回答セクションと権限セクションに含まれるすべてのデータが、サーバーのポリシーに従ってそのサーバーによって検証されたことを示します。 詳細については、「RFC 3655 セクション 6.1」を参照してください。
DnsFlagsAuthoritative 省略可能 ブール型 DNS の AA フラグは、サーバーからの応答に権限があったかどうかを示します
DnsFlagsCheckingDisabled 省略可能 ブール型 DNSSEC に関連する DNS の CD フラグは、クエリにおいて、検証されていないデータがクエリを送信しているシステムで許容されることを示します。 詳細については、「RFC 3655 セクション 6.1」を参照してください。
DnsFlagsRecursionAvailable 省略可能 ブール型 DNS の RA フラグは、応答において、サーバーが再帰クエリをサポートすることを示します。
DnsFlagsRecursionDesired 省略可能 ブール型 DNS の RD フラグは、要求において、サーバーが再帰クエリを使用するのをクライアントが望むことを示します。
DnsFlagsTruncated オプション Boolean DNS の TC フラグは、最大応答サイズを超えたために応答が切り詰められたことを示します。
DnsFlagsZ 省略可能 ブール型 DNS の Z フラグは非推奨の DNS フラグであり、古い DNS システムによって報告される可能性があります。
DnsSessionId 省略可能 string レポート デバイスによって報告された DNS セッション識別子。 この値は、TransactionIdHex (DNS クライアントによって割り当てられる DNS クエリの一意の ID) とは異なります。

例: EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55
SessionId エイリアス DnsSessionId の別名
DnsResponseIpCountry オプション DNS 応答内のいずれかの IP アドレスに関連付けられている国。 詳細については、「論理型」を参照してください。

例: USA
DnsResponseIpRegion 省略可能 リージョン DNS 応答内のいずれかの IP アドレスに関連付けられているリージョンまたは州。 詳細については、「論理型」を参照してください。

例: Vermont
DnsResponseIpCity オプション City DNS 応答内のいずれかの IP アドレスに関連付けられている都市。 詳細については、「論理型」を参照してください。

例: Burlington
DnsResponseIpLatitude Optional Latitude DNS 応答内の IP アドレスのいずれかに関連付けられている地理的座標の緯度。 詳細については、「論理型」を参照してください。

例: 44.475833
DnsResponseIpLongitude Optional Longitude DNS 応答内の IP アドレスのいずれかに関連付けられている地理的座標の経度。 詳細については、「論理型」を参照してください。

例: 73.211944

検査のフィールド

以下のフィールドは、DNS セキュリティデバイスが実行した検査を表すために使用されます。 脅威関連フィールドは、送信元アドレス、宛先アドレス、応答または DNS クエリ ドメインの IP アドレスのいずれかに関連付けられている単一の脅威を表します。 複数の脅威が脅威として特定された場合は、他の IP アドレスに関する情報をフィールドAdditionalFieldsに格納できます。

フィールド クラス Type 説明
UrlCategory オプション String DNS イベント ソースで、要求されたドメインのカテゴリが検索されることもあります。 フィールドは、Microsoft Sentinel のネットワーク スキーマに合わせて UrlCategory と呼ばれます。

DomainCategory は、DNS に適合する別名として追加されます。

例: Educational \\ Phishing
DomainCategory エイリアス UrlCategory の別名。
NetworkRuleName オプション String 脅威を特定したルールの名前または ID。

例: AnyAnyDrop
NetworkRuleNumber オプション Integer 脅威を特定したルールの番号。

例: 23
Rule エイリアス String NetworkRuleNameの値または NetworkRuleNumber の値のいずれか。 NetworkRuleNumber の値を使用する場合は、型を文字列に変換する必要があります。
ThreatId オプション String ネットワーク セッションで識別された脅威またはマルウェアの ID。

例: Tr.124
ThreatCategory 省略可能 String DNS イベント ソースで DNS セキュリティも提供される場合は、DNS イベントも評価されている可能性があります。 たとえば、脅威インテリジェンス データベースで IP アドレスまたはドメインが検索され、脅威カテゴリでドメインまたは IP アドレスに割り当られる場合があります。
ThreatIpAddr 省略可能 IP アドレス 脅威が特定された IP アドレス。 ThreatField フィールドには、ThreatIpAddr が表すフィールドの名前が含まれています。 [ドメイン] フィールドで脅威が特定された場合、このフィールドは空である必要があります。
ThreatField 条件付き Enumerated 脅威が特定されたフィールド。 値は、 SrcIpAddrDstIpAddrDomain、または DnsResponseNameです。
ThreatName オプション String レポート デバイスによって報告される、特定された脅威の名前。
ThreatConfidence 省略可能 Integer 識別された脅威の信頼レベル。0 から 100 の間の値に正規化されます。
ThreatOriginalConfidence 省略可能 String レポート デバイスによって報告される、特定された脅威の元の信頼レベル。
ThreatRiskLevel オプション Integer 特定された脅威に関連するリスク レベルを、0 から 100 の値に正規化します。
ThreatOriginalRiskLevel オプション String レポート デバイスによって報告された、特定された脅威に関連付けられている元のリスク レベル。
ThreatIsActive オプション ブール型 特定された脅威がアクティブな脅威と見なされる場合は True。
ThreatFirstReportedTime オプション DATETIME IP アドレスまたはドメインが脅威として初めて識別された場合。
ThreatLastReportedTime オプション DATETIME 最後に IP アドレスまたはドメインが脅威として識別された時刻。

非推奨の別名とフィールド

次のフィールドは、下位互換性のために残されている別名です。 これらは、2021 年 12 月 31 日にスキーマから削除されました。

  • Query (別名 DnsQuery)
  • QueryType (別名 DnsQueryType)
  • QueryTypeName (別名 DnsQueryTypeName)
  • ResponseName (別名 DnsReasponseName)
  • ResponseCodeName (別名 DnsResponseCodeName)
  • ResponseCode (別名 DnsResponseCode)
  • QueryClass (別名 DnsQueryClass)
  • QueryClassName (別名 DnsQueryClassName)
  • Flags (別名 DnsFlags)
  • SrcUserDomain

スキーマの更新

バージョン 0.2.1 のスキーマの変更点を次に示します。

  • フィールド EventSchema が追加されました。
  • 結合されたフラグ フィールドを拡張する次の専用フラグ フィールドが追加されました。DnsFlagsAuthoritativeDnsFlagsCheckingDisabledDnsFlagsRecursionAvailableDnsFlagsRecursionDesiredDnsFlagsTruncatedDnsFlagsZ

バージョン 0.1.3 のスキーマの変更点を次に示します。

  • スキーマで Src*Dst*Process*、および User* のフィールドが明示的に文書化されました。
  • 最新の共通フィールド定義と一致するように Dvc* フィールドが追加されました。
  • SrcDst がソースと送信先のシステムの先頭の識別子に別名として追加されました。
  • 省略可能な DnsNetworkDuration とその別名 Duration が追加されました。
  • 省略可能な地域とリスク レベルのフィールドが追加されました。

バージョン 0.1.4 のスキーマの変更点を次に示します。

  • 省略可能なフィールド ThreatIpAddrThreatFieldThreatNameThreatConfidenceThreatOriginalConfidenceThreatOriginalRiskLevelThreatIsActiveThreatFirstReportedTimeThreatLastReportedTime を追加しました。

バージョン 0.1.5 のスキーマの変更点を次に示します。

  • フィールド SrcUserScopeSrcUserSessionIdSrcDvcScopeIdSrcDvcScopeDstDvcScopeIdDstDvcScopeDvcScopeIdDvcScope が追加されました。

バージョン 0.1.6 のスキーマの変更点は、次のとおりです。

  • フィールド DnsResponseIpCountryDnsResponseIpRegionDnsResponseIpCityDnsResponseIpLatitudeDnsResponseIpLongitudeが追加されました。

バージョン 0.1.7 のスキーマの変更点は、次のとおりです。

  • フィールド SrcDescriptionSrcOriginalRiskLevelDstDescriptionDstOriginalRiskLevelSrcUserScopeIdNetworkProtocolVersionRuleRuleNameRuleNumberThreatId が追加されました。

ソース固有の相違点

すべてのソースが一貫性のあるテレメトリを提供することが標準化の目標です。 必須のスキーマフィールドなど、必須のテレメトリを提供しないソースは、正規化できません。 ただし、なんらかの不一致がある場合でも、通常、必要となるすべてのテレメトリを提供するソースは正規化できます。 不一致により、クエリ結果の完全性に影響がおよぶ場合があります。

次の表に、既知の不一致を示します。

source 不一致
DNS コネクタと Log Analytics エージェントを使用して収集された Microsoft DNS Server コネクタでは、元のイベント 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 エントリには、ディクショナリが属する応答の部分を反映する answerauthority、または additional が含まれる必要があります。

ヒント

パフォーマンスを最適にするには、必要な場合にだけ、最初のフィルター処理の後でのみ imDNS<vendor>Response 関数を呼び出して、パフォーマンスが向上するようにします。

DNS のフラグの処理

フラグ データを解析および正規化する必要はありません。 代わりに、レポート デバイスによって提供されたフラグ データを Flags フィールドに格納します。 個々のフラグの値を簡単に決定できる場合は、専用のフラグ フィールドを使用することもできます。

また、_imDNS<vendor>Flags_ という名前の追加の KQL 関数を提供することもできます。この関数は、解析されていない応答または専用フラグ フィールドを入力として受け取り、次の順序で各フラグを表すブール値が含まれる動的なリストを返します。

  • 認証済み (AD)
  • 権限 (AA)
  • 無効の確認 (CD)
  • 再帰が利用可能 (RA)
  • 再帰が望ましい (RD)
  • 切り詰め (TC)
  • Z

次のステップ

詳細については、次を参照してください。