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 は応答の解析を必要とせず、その形式はソースによって異なります。
ソースに依存しないコンテンツでこのフィールドを使用するには、
has
ORcontains
演算子を使用してコンテンツを検索します。
クライアント デバイスで収集された 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
をテーブル名として使用します。
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 | ソース デバイスの一意識別子。 このフィールドは、SrcDvcId、SrcHostname、または 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 | SrcUserId と SrcUsername が定義されている Microsoft Entra テナントなどのスコープ。 使用できる値の詳細と一覧については、スキーマの概要に関する記事の「UserScope」を参照してください。 |
SrcUserScopeId | オプション | String | SrcUserId と SrcUsername が定義されている 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 要求を受信するサーバーの一意の識別子です。 このフィールドは、DstDvcId、DstHostname、または 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 バージョンを区別するために使用する場合、値 IPv4 と IPv6 を使用します。 |
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 | 脅威が特定されたフィールド。 値は、 SrcIpAddr 、 DstIpAddr 、 Domain 、または 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
が追加されました。 - 結合されたフラグ フィールドを拡張する次の専用フラグ フィールドが追加されました。
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
が追加されました。
ソース固有の相違点
すべてのソースが一貫性のあるテレメトリを提供することが標準化の目標です。 必須のスキーマフィールドなど、必須のテレメトリを提供しないソースは、正規化できません。 ただし、なんらかの不一致がある場合でも、通常、必要となるすべてのテレメトリを提供するソースは正規化できます。 不一致により、クエリ結果の完全性に影響がおよぶ場合があります。
次の表に、既知の不一致を示します。
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
エントリには、ディクショナリが属する応答の部分を反映する answer
、authority
、または additional
が含まれる必要があります。
ヒント
パフォーマンスを最適にするには、必要な場合にだけ、最初のフィルター処理の後でのみ imDNS<vendor>Response
関数を呼び出して、パフォーマンスが向上するようにします。
DNS のフラグの処理
フラグ データを解析および正規化する必要はありません。 代わりに、レポート デバイスによって提供されたフラグ データを Flags フィールドに格納します。 個々のフラグの値を簡単に決定できる場合は、専用のフラグ フィールドを使用することもできます。
また、_imDNS<vendor>Flags_
という名前の追加の KQL 関数を提供することもできます。この関数は、解析されていない応答または専用フラグ フィールドを入力として受け取り、次の順序で各フラグを表すブール値が含まれる動的なリストを返します。
- 認証済み (AD)
- 権限 (AA)
- 無効の確認 (CD)
- 再帰が利用可能 (RA)
- 再帰が望ましい (RD)
- 切り詰め (TC)
- Z
次のステップ
詳細については、次を参照してください。