Referenz zum Schema für die DNS-Normalisierung des erweiterten Sicherheitsinformationsmodells (Advanced Security Information Model, ASIM) (öffentliche Vorschau)

Das DNS-Informationsmodell dient zur Beschreibung von Ereignissen, die von einem DNS-Server oder einem DNS-Sicherheitssystem gemeldet werden. Es wird von Microsoft Sentinel verwendet, um quellenagnostische Analysen zu ermöglichen.

Weitere Informationen finden Sie unter Normalisierung und das erweiterte Sicherheitsinformationsmodell (ASIM).

Wichtig

Das DNS-Normalisierungsschema befindet sich derzeit in der VORSCHAUPHASE. Dieses Feature wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen.

In den zusätzlichen Nutzungsbestimmungen für Microsoft Azure-Vorschauen finden Sie weitere rechtliche Bedingungen, die für Azure-Features gelten, die sich in der Beta- oder Vorschauversion befinden oder anderweitig noch nicht zur allgemeinen Verfügbarkeit freigegeben sind.

Schemaübersicht

Das ASIM-DNS-Schema stellt die DNS-Protokollaktivität dar. Sowohl DNS-Server als auch Geräte, die DNS-Anforderungen an einen DNS-Server senden, protokollieren DNS-Aktivitäten. Die DNS-Protokollaktivität umfasst DNS-Abfragen, DNS-Serverupdates und DNS-Massendatenübertragungen. Da das Schema die Protokollaktivität darstellt, wird es von RFCs und offiziell zugewiesenen Parameterlisten bestimmt, auf die in diesem Artikel gegebenenfalls verwiesen wird. Das DNS-Schema stellt keine DNS-Serverüberwachungsereignisse dar.

Die wichtigste Aktivität, die von DNS-Servern gemeldet wird, ist eine DNS-Abfrage, bei der das Feld EventType auf Query festgelegt ist.

Die wichtigsten Felder eines DNS-Ereignisses sind:

  • DnsQuery, das den Domänennamen angibt, für den die Abfrage ausgegeben wurde.

  • SrcIpAddr (mit dem Alias IpAddr), das die IP-Adresse darstellt, von der die Anforderung generiert wurde. DNS-Server bieten in der Regel das Feld SrcIpAddr, DNS-Clients bieten dieses Feld jedoch manchmal nicht und bieten nur das Feld SrcHostname.

  • EventResultDetails, das angibt, ob die Anforderung erfolgreich war, und falls nicht, warum.

  • Falls verfügbar, DnsResponseName, das die Antwort enthält, die vom Server für die Abfrage bereitgestellt wurde. ASIM erfordert keine Analyse der Antwort und das Format variiert je nach Quelle.

    Um dieses Feld in quellenunabhängigen Inhalten zu verwenden, müssen Sie den Inhalt mithilfe der Operatoren has oder contains durchsuchen.

DNS-Ereignisse, die auf dem Clientgerät gesammelt werden, können auch Benutzer- und Prozessinformationen enthalten.

Leitlinien zum Sammeln von DNS-Ereignissen

DNS ist insofern ein besonderes Protokoll, als es sich über eine große Anzahl von Computern erstrecken kann. Da DNS außerdem UDP verwendet, sind Anforderungen und Antworten voneinander entkoppelt und stehen nicht in direktem Zusammenhang.

Die folgende Abbildung zeigt einen vereinfachten DNS-Anforderungsflow, einschließlich vier Segmenten. Eine reale Anforderung kann komplexer sein, sobald mehr Segmente beteiligt sind.

Simplified DNS request flow.

Da Anforderungs- und Antwortsegmente im DNS-Anforderungsflow nicht direkt miteinander verbunden sind, kann die vollständige Protokollierung zu erheblicher Duplizierung führen.

Das wertvollste zu protokollierende Segment ist die Antwort an den Client. Die Antwort enthält die Abfragen des Domänennamens, das Abfrageergebnis und die IP-Adresse des Clients. Zwar protokollieren viele DNS-Systeme nur dieses Segment, aber es ist sinnvoll, auch die anderen Teile zu protokollieren. Ein DNS-Cache-Poisoning-Angriff nutzt beispielsweise häufig gefälschte Antworten von einem vorgelagerten Server aus.

Wenn Ihre Datenquelle die vollständige DNS-Protokollierung unterstützt und Sie sich entschieden haben, mehrere Segmente zu protokollieren, passen Sie Ihre Abfragen an, um in Microsoft Sentinel Datenduplizierung zu vermeiden.

Beispielsweise können Sie Ihre Abfrage mit der folgenden Normalisierung ändern:

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

Parser

Weitere Informationen zu ASIM-Parsern finden Sie in der Übersicht über ASIM-Parser.

Sofort einsatzbereite Parser

Um Parser zu verwenden, die alle sofort einsatzbereiten ASIM-Parser vereinheitlichen, und um sicherzustellen, dass Ihre Analyse über alle konfigurierten Quellen hinweg ausgeführt wird, verwenden Sie den vereinheitlichenden Parser _Im_Dns als Tabellennamen in Ihrer Abfrage.

Die Liste der DNS-Parser, die Microsoft Sentinel einsatzbereit zur Verfügung stellt, finden Sie in der ASIM-Parserliste.

Hinzufügen eigener normalisierter Parser

Wenn Sie benutzerdefinierte Parser für das DNS-Informationsmodell implementieren, verwenden Sie das Format vimDns<vendor><Product> für die Benennung Ihrer KQL-Funktionen. Im Artikel Verwalten von ASIM-Parsern erfahren Sie, wie Sie Ihre benutzerdefinierten Parser dem vereinheitlichenden DNS-Parser hinzufügen.

Filtern von Parser-Parametern

Die DNS-Parser unterstützen Filterparameter. Diese Parser sind optional, können aber die Abfrageleistung verbessern.

Die folgenden Filterparameter sind verfügbar:

Name Typ Beschreibung
StartTime datetime Filtert nur DNS-Abfragen, die zu oder nach dieser Zeit ausgeführt wurden.
EndTime datetime Filtert nur DNS-Abfragen, deren Ausführung zu oder vor diesem Zeitpunkt beendet wurde.
srcipaddr Zeichenfolge Filtert nur DNS-Abfragen von dieser Quell-IP-Adresse.
domain_has_any dynamic/string Filtert nur DNS-Abfragen, bei denen das domain (oder query) irgendeinen der aufgeführten Domänennamen enthält, auch als Teil der Ereignisdomäne. Die Länge der Liste ist auf 10.000 Elemente beschränkt.
responsecodename Zeichenfolge Filtern nur DNS-Abfragen, bei denen der Name des Antwortcodes mit dem angegebenen Wert übereinstimmt.
Beispiel: NXDOMAIN
response_has_ipv4 Zeichenfolge Filtert nur DNS-Abfragen, bei denen das Antwortfeld die angegebene IP-Adresse oder das IP-Adresspräfix enthält. Verwenden Sie diesen Parameter, wenn Sie nach einer einzelnen IP-Adresse oder einem Präfix filtern möchten.

Für Quellen, die keine Antwort liefern, werden keine Ergebnisse zurückgegeben.
Antwort_hat_beliebigen_präfix dynamisch Filtert nur DNS-Abfragen, bei denen das Antwortfeld eine der aufgeführten IP-Adressen oder eines der aufgeführten IP-Adress-Präfixe enthält. Präfixe müssen mit einem Punkt (.) enden. Beispiel: 10.0.

Verwenden Sie diesen Parameter, wenn Sie nach einer Liste von IP-Adressen oder Präfixen filtern möchten.

Für Quellen, die keine Antwort liefern, werden keine Ergebnisse zurückgegeben. Die Länge der Liste ist auf 10.000 Elemente beschränkt.
EventType Zeichenfolge Filtert nur DNS-Abfragen des angegebenen Typs. Wenn kein Wert angegeben wird, werden nur Lookup-Abfragen zurückgegeben.

Verwenden Sie zum Beispiel Folgendes, um nur DNS-Abfragen vom letzten Tag zu filtern, die den Domänennamen nicht auflösen konnten:

_Im_Dns (responsecodename = 'NXDOMAIN', starttime = ago(1d), endtime=now())

Verwenden Sie Folgendes, um nur DNS-Abfragen nach einer angegebenen Liste von Domänennamen zu filtern:

let torProxies=dynamic(["tor2web.org", "tor2web.com", "torlink.co"]);
_Im_Dns (domain_has_any = torProxies)

Einige Parameter können sowohl eine Liste von Werten des Typs dynamic als auch einen einzelnen Zeichenfolgenwert akzeptieren. Um eine Literalliste an Parameter zu übergeben, die einen dynamischen Wert erwarten, verwenden Sie explizit ein dynamisches Literal. Beispiel: dynamic(['192.168.','10.'])

Normalisierter Inhalt

Eine vollständige Liste der Analyseregeln, die normalisierte DNS-Ereignisse verwenden, finden Sie unter Sicherheitsinhalt von DNS-Abfragen.

Schemadetails

Das DNS-Informationsmodell orientiert sich am OSSEM-DNS-Entitätsschema.

Weitere Informationen finden Sie in der Referenz zu den DNS-Parametern der Internet Assigned Numbers Authority (IANA) .

Allgemeine ASIM-Felder

Wichtig

Felder, die allen Schemas gemeinsam sind, werden im Artikel Allgemeine ASIM-Felder ausführlich beschrieben.

Allgemeine Felder mit bestimmten Richtlinien

In der folgenden Liste werden Felder erwähnt, die bestimmte Richtlinien für DNS-Ereignisse enthalten:

Feld Klasse Typ Beschreibung
EventType Obligatorisch. Enumerated Gibt den vom Datensatz gemeldeten Vorgang an.

Bei DNS-Einträgen ist dieser Wert der Code des DNS-Vorgangs.

Beispiel: Query
EventSubType Optional Enumerated Entweder request oder response

Bei den meisten Quellen werden nur die Antworten protokolliert, daher ist der Wert oft Antwort.
EventResultDetails Obligatorisch. Enumerated Für DNS-Ereignisse stellt dieses Feld den DNS-Antwortcode zur Verfügung.

Hinweise:
– IANA legt keine Groß-/Kleinschreibung für die Werte fest, sodass die Groß-/Kleinschreibung für Analysen normalisiert werden muss.
– Wenn die Quelle nur einen numerischen Antwortcode und keinen Namen dafür angibt, muss der Parser eine Lookuptabelle enthalten, damit der Code mit diesem Wert angereichert werden kann.
– Wenn dieser Datensatz eine Anforderung und keine Antwort darstellt, muss er auf NA festgelegt werden.

Beispiel: NXDOMAIN
EventSchemaVersion Obligatorisch. String Die Version des hier dokumentierten Schemas lautet 0.1.7.
EventSchema Obligatorisch. String Der Name des hier dokumentierten Schemas ist Dns.
Dvc-Felder - - Gerätefelder für DNS-Ereignisse verweisen auf das System, das das DNS-Ereignis meldet.

Alle allgemeinen Felder

Felder, die in der folgenden Tabelle angezeigt werden, sind für alle ASIM-Schemas gleich. Jede oben angegebene Richtlinie setzt die allgemeinen Richtlinien für das Feld außer Kraft. Beispielsweise kann ein Feld im Allgemeinen optional, aber für ein bestimmtes Schema obligatorisch sein. Weitere Informationen zu den einzelnen Feldern finden Sie im Artikel ASIM: Allgemeine Felder.

Klasse Fields
Obligatorisch. - EventCount
- EventStartTime
- EventEndTime
- EventType
- EventResult
- EventProduct
- EventVendor
- EventSchema
- EventSchemaVersion
- Dvc
Empfohlen - EventResultDetails
- EventSeverity
- EventUid
- DvcIpAddr
- DvcHostname
- DvcDomain
- DvcDomainType
- DvcFQDN
- DvcId
- DvcIdType
- DvcAction
Optional - EventMessage
- EventSubType
- EventOriginalUid
- EventOriginalType
- EventOriginalSubType
- EventOriginalResultDetails
- EventOriginalSeverity
- EventProductVersion
- EventReportUrl
- EventOwner
- DvcZone
- DvcMacAddr
- DvcOs
- DvcOsVersion
- DvcOriginalAction
- DvcInterface
- AdditionalFields
- DvcDescription
- DvcScopeId
- DvcScope

Felder für „Quellsystem“

Feld Klasse type BESCHREIBUNG
Src Alias String Der eindeutige Bezeichner des Quellgeräts.

Dieses Feld kann ein Alias für die Felder SrcDvcId, SrcHostname oder SrcIpAddr sein.

Ein Beispiel: 192.168.12.1
SrcIpAddr Empfohlen IP-Adresse Die IP-Adresse des Clients, der die DNS-Anforderung gesendet hat. Bei einer rekursiven DNS-Anforderung ist dieser Wert in der Regel das meldende Gerät und in den meisten Fällen auf 127.0.0.1 festgelegt.

Beispiel: 192.168.12.1
SrcPortNumber Optional Integer Quellport der DNS-Abfrage.

Beispiel: 54312
IpAddr Alias Alias für SrcIpAddr
SrcGeoCountry Optional Land Das Land/die Region, das bzw. die der Quell-IP-Adresse zugeordnet ist.

Beispiel: USA
SrcGeoRegion Optional Region Die der Quell-IP-Adresse zugeordnete Region.

Beispiel: Vermont
SrcGeoCity Optional City Die Stadt, die der Quell-IP-Adresse zugeordnet ist.

Beispiel: Burlington
SrcGeoLatitude Optional Breitengrad Der Breitengrad der geografischen Koordinate, die der Quell-IP-Adresse zugeordnet ist.

Beispiel: 44.475833
SrcGeoLongitude Optional Längengrad Der Längengrad der geografischen Koordinate, die der Quell-IP-Adresse zugeordnet ist.

Beispiel: 73.211944
SrcRiskLevel Optional Integer Die der Quelle zugeordnete Risikostufe. Der Wert sollte auf einen Bereich zwischen 0 und 100 angepasst werden, wobei 0 unbedenklich ist und 100 ein hohes Risiko darstellt.

Beispiel: 90
SrcOriginalRiskLevel Optional Integer Das mit der Quelle verbundene Risikolevel, wie vom Gerät gemeldet.

Beispiel: Suspicious
SrcHostname Empfohlen String Der Hostname des Quellgeräts ohne Domäneninformationen.

Beispiel: DESKTOP-1282V4D
Hostname Alias Alias für SrcHostname
SrcDomain Empfohlen String Die Domäne des Quellgeräts.

Beispiel: Contoso
SrcDomainType Bedingt Enumerated Der Typ von SrcDomain, sofern bekannt. Mögliche Werte sind:
- Windows (Beispiel: contoso)
- FQDN (Beispiel: microsoft.com)

Erforderlich, wenn SrcDomain verwendet wird.
SrcFQDN Optional String Der Hostname des Quellgeräts ggf. mit Informationen zur Domäne.

Hinweis: Dieses Feld unterstützt sowohl das herkömmliche FQDN-Format als auch das Windows-Format „Domäne\Hostname“. Das Feld SrcDomainType spiegelt das verwendete Format wider.

Beispiel: Contoso\DESKTOP-1282V4D
SrcDvcId Optional String Die ID des Quellgeräts, wie im Datensatz angegeben.

Beispiel: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
SrcDvcScopeId Optional String Die ID des Cloudplattformbereichs, zu dem das Gerät gehört. SrcDvcScopeId wird einer Abonnement-ID in Azure und einer Konto-ID in AWS zugeordnet.
SrcDvcScope Optional String Der Cloudplattformbereich, zu dem das Gerät gehört. SrcDvcScopeId wird einer Abonnement-ID in Azure und einer Konto-ID in AWS zugeordnet.
SrcDvcIdType Bedingt Enumerated Der Typ von SrcDvcId, sofern bekannt. Mögliche Werte sind:
- AzureResourceId
- MDEid

Wenn mehrere IDs verfügbar sind, verwenden Sie die erste aus der Liste, und speichern Sie die anderen in den Feldern SrcDvcAzureResourceId bzw. SrcDvcMDEid.

Hinweis: Dieses Feld ist erforderlich, wenn das Feld SrcDvcId verwendet wird.
SrcDeviceType Optional Enumerated Der Typ des Quellgeräts. Mögliche Werte sind:
- Computer
- Mobile Device
- IOT Device
- Other
SrcDescription Optional String Ein mit dem Gerät verknüpfter beschreibender Text. Beispiel: Primary Domain Controller.

Felder für „Quellbenutzer“

Feld Klasse type BESCHREIBUNG
SrcUserId Optional String Eine maschinenlesbare, alphanumerische, eindeutige Darstellung des Quellbenutzers. Weitere Informationen und alternative Felder für zusätzliche IDs finden Sie unter Die Benutzerentität.

Beispiel: S-1-12-1-4141952679-1282074057-627758481-2916039507
SrcUserScope Optional String Der Bereich (z. B. der Microsoft Entra-Mandant), in dem SrcUserId und SrcUsername definiert sind. Weitere Informationen und eine Liste der zulässigen Werte finden Sie unter UserScope im Artikel Schemaübersicht.
SrcUserScopeId Optional String Die Bereichs-ID, z. B. die Microsoft Entra-Verzeichnis-ID, in der SrcUserId und SrcUsername definiert sind. Weitere Informationen und eine Liste der zulässigen Werte finden Sie unter UserScopeId im Artikel Schemaübersicht.
SrcUserIdType Bedingt UserIdType Der Typ der ID, die im Feld SrcUserId gespeichert ist. Weitere Informationen und eine Liste der zulässigen Werte finden Sie unter UserIdType im Artikel „Schemaübersicht“.
SrcUsername Optional Username Der Quellbenutzername einschließlich Informationen zur Domäne, falls verfügbar. Weitere Informationen finden Sie unter Benutzerentität.

Beispiel: AlbertE
SrcUsernameType Bedingt UsernameType Gibt den Typ des Benutzernamens an, der im Feld SrcUsername gespeichert ist. Weitere Informationen und eine Liste der zulässigen Werte finden Sie unter UsernameType im Artikel „Schemaübersicht“.

Beispiel: Windows
User Alias Alias für SrcUsername
SrcUserType Optional UserType Der Typ des Quellbenutzers. Weitere Informationen und eine Liste der zulässigen Werte finden Sie unter UserType im Artikel „Schemaübersicht“.

Beispiel: Guest
SrcUserSessionId Optional String Die eindeutige ID der Anmeldesitzung des Akteurs.

Beispiel: 102pTUgC3p8RIqHvzxLCHnFlg
SrcOriginalUserType Optional String Der ursprüngliche Quellbenutzertyp, sofern von der Quelle bereitgestellt.

Quellprozessfelder

Feld Klasse type BESCHREIBUNG
SrcProcessName Optional String Der Dateiname des Prozesses, der die DNS-Anforderung initiiert hat. Dieser Name wird in der Regel als Prozessname betrachtet.

Beispiel: C:\Windows\explorer.exe
Process Alias Alias für SrcProcessName

Beispiel: C:\Windows\System32\rundll32.exe
SrcProcessId Optional String Die Prozess-ID (PID) des Prozesses, der die DNS-Anforderung initiiert hat.

Beispiel: 48610176

Hinweis: Der Typ ist als Zeichenfolge definiert, um unterschiedliche Systeme zu unterstützen, aber unter Windows und Linux muss dieser Wert numerisch sein.

Wenn Sie einen Windows- oder Linux-Computer verwenden und einen anderen Typ verwendet haben, stellen Sie sicher, dass Sie die Werte konvertieren. Wenn Sie beispielsweise einen Hexadezimalwert verwendet haben, konvertieren Sie diesen in einen Dezimalwert.
SrcProcessGuid Optional String Ein generierter eindeutiger Bezeichner (GUID) für den Prozess, der die DNS-Anforderung initiiert hat.

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

Felder für „Zielsystem“

Feld Klasse type BESCHREIBUNG
Dst Alias String Ein eindeutiger Bezeichner des Servers, der die DNS-Anforderung empfangen hat.

Dieses Feld kann ein Alias für die Felder DstDvcId, DstHostname oder DstIpAddr sein.

Beispiel: 192.168.12.1
DstIpAddr Optional IP-Adresse Die IP-Adresse des Servers, der die DNS-Anforderung empfangen hat. Bei einer herkömmlichen DNS-Anforderung ist dieser Wert in der Regel das meldende Gerät und in den meisten Fällen auf 127.0.0.1 festgelegt.

Beispiel: 127.0.0.1
DstGeoCountry Optional Land Das Land/die Region, das bzw. die der Ziel-IP-Adresse zugeordnet ist. Weitere Informationen finden Sie unter Logische Typen.

Beispiel: USA
DstGeoRegion Optional Region Die der Ziel-IP-Adresse zugeordnete Region bzw. der Staat. Weitere Informationen finden Sie unter Logische Typen.

Beispiel: Vermont
DstGeoCity Optional City Die Stadt, die der Ziel-IP-Adresse zugeordnet ist. Weitere Informationen finden Sie unter Logische Typen.

Beispiel: Burlington
DstGeoLatitude Optional Breitengrad Der Breitengrad der geografischen Koordinate, die der Ziel-IP-Adresse zugeordnet ist. Weitere Informationen finden Sie unter Logische Typen.

Beispiel: 44.475833
DstGeoLongitude Optional Längengrad Der Längengrad der geografischen Koordinate, die der Ziel-IP-Adresse zugeordnet ist. Weitere Informationen finden Sie unter Logische Typen.

Beispiel: 73.211944
DstRiskLevel Optional Integer Die dem Ziel zugeordnete Risikostufe. Der Wert sollte auf einen Bereich zwischen 0 und 100 angepasst werden, wobei 0 unbedenklich ist und 100 ein hohes Risiko darstellt.

Beispiel: 90
DstOriginalRiskLevel Optional Integer Das mit dem Ziel verbundene Risikolevel, wie vom Gerät gemeldet.

Beispiel: Malicious
DstPortNumber Optional Integer Zielportnummer.

Beispiel: 53
DstHostname Optional String Der Hostname des Zielgeräts ohne Domäneninformationen. Wenn kein Gerätename verfügbar ist, speichern Sie die entsprechende IP-Adresse in diesem Feld.

Beispiel: DESKTOP-1282V4D

Hinweis: Dieser Wert ist obligatorisch, wenn DstIpAddr angegeben wird.
DstDomain Optional String Die Domäne des Zielgeräts.

Beispiel: Contoso
DstDomainType Bedingt Enumerated Der Typ von DstDomain, sofern bekannt. Mögliche Werte sind:
- Windows (contoso\mypc)
- FQDN (learn.microsoft.com)

Erforderlich, wenn DstDomain verwendet wird.
DstFQDN Optional String Der Hostname des Zielgeräts einschließlich Domäneninformationen, sofern verfügbar.

Beispiel: Contoso\DESKTOP-1282V4D

Hinweis: Dieses Feld unterstützt sowohl das herkömmliche FQDN-Format als auch das Windows-Format „Domäne\Hostname“. DstDomainType spiegelt das verwendete Format wider.
DstDvcId Optional String Die ID des Zielgeräts, wie im Datensatz angegeben.

Beispiel: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
DstDvcScopeId Optional String Die ID des Cloudplattformbereichs, zu dem das Gerät gehört. DstDvcScopeId wird einer Abonnement-ID in Azure und einer Konto-ID in AWS zugeordnet.
DstDvcScope Optional String Der Cloudplattformbereich, zu dem das Gerät gehört. DstDvcScope wird einer Abonnement-ID in Azure und einer Konto-ID in AWS zugeordnet.
DstDvcIdType Bedingt Enumerated Der Typ von DstDvcId, sofern bekannt. Mögliche Werte sind:
- AzureResourceId
- MDEidIf

Wenn mehrere IDs verfügbar sind, verwenden Sie die erste aus der obigen Liste, und speichern Sie die anderen in den Feldern DstDvcAzureResourceId bzw. DstDvcMDEid.

Erforderlich, wenn DstDeviceId verwendet wird.
DstDeviceType Optional Enumerated Der Typ des Zielgeräts. Mögliche Werte sind:
- Computer
- Mobile Device
- IOT Device
- Other
DstDescription Optional String Ein mit dem Gerät verknüpfter beschreibender Text. Beispiel: Primary Domain Controller.

DNS-spezifische Felder

Feld Klasse type BESCHREIBUNG
DnsQuery Obligatorisch. String Die Domäne, die die Anforderung aufzulösen versucht.

Hinweise:
– Einige Quellen senden gültige FQDN-Abfragen in einem anderen Format. Beispielsweise enthält die Abfrage im DNS-Protokoll selbst einen Punkt (.) am Ende, der entfernt werden muss.
– Während das DNS-Protokoll den Werttyp in diesem Feld auf einen FQDN beschränkt, erlauben die meisten DNS-Server einen beliebigen Wert, daher ist dieses Feld nicht nur auf FQDN-Werte beschränkt. Insbesondere können DNS-Tunnelangriffe ungültige FQDN-Werte im Abfragefeld verwenden.
– Das DNS-Protokoll lässt zwar mehrere Abfragen in einer einzigen Anforderung zu, aber dieses Szenario ist, wenn überhaupt, nur selten anzutreffen. Wenn die Anforderung mehrere Abfragen enthält, speichern Sie die erste in diesem Feld und die übrigen optional im Feld AdditionalFields.

Beispiel: www.malicious.com
Domäne Alias Alias für DnsQuery.
DnsQueryType Optional Integer Die Codes des DNS-Ressourcendatensatztyps.

Beispiel: 28
DnsQueryTypeName Empfohlen Enumerated Die Namen des DNS-Ressourcendatensatztyps.

Hinweise:
– IANA legt keine Groß-/Kleinschreibung für die Werte fest, sodass sie für Analysen bei Bedarf normalisiert werden muss.
– Der Wert ANY wird für den Antwortcode 255 unterstützt.
– Der Wert TYPExxxx wird für nicht zugeordnete Antwortcodes unterstützt. Dabei ist xxxx der numerische Wert des Antwortcodes, der vom BIND-DNS-Server angegeben wird.
– Wenn die Quelle nur einen numerischen Code für den Abfragetyp und keinen Namen dafür angibt, muss der Parser eine Lookuptabelle enthalten, damit der Code mit diesem Wert angereichert werden kann.

Beispiel: AAAA
DnsResponseName Optional String Der Inhalt der Antwort, wie im Datensatz enthalten.

Die DNS-Antwortdaten sind auf den meldenden Geräten inkonsistent, schwierig zu analysieren und von weniger Nutzen für quellagnostische Analysen. Daher muss das Informationsmodell nicht analysiert und normalisiert werden. Microsoft Sentinel stellt Antwortinformationen mit einer Hilfsfunktion bereit. Weitere Informationen finden Sie unter Behandeln der DNS-Antwort.
DnsResponseCodeName Alias Alias für EventResultDetails.
DnsResponseCode Optional Integer Der numerische DNS-Antwortcode.

Beispiel: 3
TransactionIdHex Empfohlen String Die eindeutige DNS-Abfrage-ID, die vom DNS-Client zugewiesen wird, im Hexadezimalformat. Beachten Sie, dass dieser Wert Teil des DNS-Protokolls ist und sich von DnsSessionId, der Sitzungs-ID auf Netzwerkebene, unterscheidet, die in der Regel vom meldenden Gerät zugewiesen wird.
NetworkProtocol Optional Enumerated Das vom Netzwerkauflösungsereignis verwendete Transportprotokoll. Der Wert kann UDP oder TCP sein und wird für DNS in der Regel auf UDP festgelegt.

Beispiel: UDP
NetworkProtocolVersion Optional Enumerated Die Version von NetworkProtocol. Wenn Sie sie verwenden, um zwischen der IP-Version zu unterscheiden, verwenden Sie die Werte IPv4 und IPv6.
DnsQueryClass Optional Integer Die DNS-Klassen-ID.

In der Praxis wird nur die IN-Klasse (ID 1) verwendet, daher ist dieses Feld weniger nützlich.
DnsQueryClassName Optional String Der DNS-Klassenname.

In der Praxis wird nur die IN-Klasse (ID 1) verwendet, daher ist dieses Feld weniger nützlich.

Beispiel: IN
DnsFlags Optional String Das Feld mit Flags, wie vom meldenden Gerät bereitgestellt. Wenn Flaginformationen in mehreren Feldern bereitgestellt werden, verketten Sie sie mit Komma als Trennzeichen.

Da DNS-Flags kompliziert zu parsen sind und seltener in Analysen verwendet werden, sind Parsen und Normalisieren nicht erforderlich. Microsoft Sentinel kann eine Hilfsfunktion verwenden, um Flaginformationen bereitzustellen. Weitere Informationen finden Sie unter Behandeln der DNS-Antwort.

Beispiel: ["DR"]
DnsNetworkDuration Optional Integer Die Zeitspanne in Millisekunden für den Abschluss der DNS-Anforderung.

Beispiel: 1500
Duration Alias Alias für DnsNetworkDuration
DnsFlagsAuthenticated Optional Boolean Das DNS Flag AD, das mit DNSSEC zusammenhängt, zeigt in einer Antwort an, dass alle in den Antwort- und Autoritätsabschnitten der Antwort enthaltenen Daten vom Server gemäß den Richtlinien dieses Servers überprüft wurden. Weitere Informationen finden Sie unter RFC 3655, Abschnitt 6.1.
DnsFlagsAuthoritative Optional Boolean Das DNS Flag AA zeigt an, ob die Antwort des Servers autoritativ war
DnsFlagsCheckingDisabled Optional Boolean Das DNS Flag CD, das mit DNSSEC zusammenhängt, zeigt in einer Abfrage an, dass nicht verifizierte Daten für das System, das die Abfrage sendet, akzeptabel sind. Weitere Informationen finden Sie unter RFC 3655, Abschnitt 6.1.
DnsFlagsRecursionAvailable Optional Boolesch Das DNS Flag RA zeigt in einer Antwort an, dass dieser Server rekursive Abfragen unterstützt.
DnsFlagsRecursionDesired Optional Boolean Das DNS Flag RD zeigt in einer Anforderung an, dass der Client möchte, dass der Server rekursive Abfragen verwendet.
DnsFlagsTruncated Optional Boolean Das DNS-Flag TC zeigt an, dass eine Antwort abgeschnitten wurde, weil sie die maximale Antwortgröße überschritten hat.
DnsFlags Optional Boolean Das DNS Flag Z ist ein veraltetes DNS-Flag, das möglicherweise von älteren DNS-Systemen gemeldet wird.
DnsSessionId Optional Zeichenfolge Der DNS-Sitzungsbezeichner, der vom meldenden Gerät gemeldet wird. Dieser Wert unterscheidet sich von TransactionIdHex, der eindeutigen DNS-Abfrage-ID, die vom DNS-Client zugewiesen wird.

Beispiel: EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55
SessionId Alias Alias für DnsSessionId
DnsResponseIpCountry Optional Land Das Land, das einer der IP-Adressen in der DNS-Antwort zugeordnet ist. Weitere Informationen finden Sie unter Logische Typen.

Beispiel: USA
DnsResponseIpRegion Optional Region Die Region oder der Staat in einem Land, die bzw. der eine der IP-Adressen in der DNS-Antwort zugeordnet ist. Weitere Informationen finden Sie unter Logische Typen.

Beispiel: Vermont
DnsResponseIpCity Optional City Der Ort, der einer der IP-Adressen in der DNS-Antwort zugeordnet ist. Weitere Informationen finden Sie unter Logische Typen.

Beispiel: Burlington
DnsResponseIpLatitude Optional Breitengrad Der Breitengrad der geografischen Koordinate, die einer der IP-Adressen in der DNS-Antwort zugeordnet ist. Weitere Informationen finden Sie unter Logische Typen.

Beispiel: 44.475833
DnsResponseIpLongitude Optional Längengrad Der Längengrad der geografischen Koordinate, die einer der IP-Adressen in der DNS-Antwort zugeordnet ist. Weitere Informationen finden Sie unter Logische Typen.

Beispiel: 73.211944

Inspektionsfelder

Mit den folgenden Feldern wird eine Inspektion dargestellt, die ein DNS-Sicherheitsgerät durchgeführt hat. Die bedrohungsbezogenen Felder stellen eine einzige Bedrohung dar, die entweder der Quelladresse, der Zieladresse, einer der IP-Adressen in der Antwort oder der DNS-Abfragedomäne zugeordnet ist. Wenn mehrere Bedrohungen identifiziert wurden, können Informationen zu anderen IP-Adressen im Feld AdditionalFields gespeichert werden.

Feld Klasse type BESCHREIBUNG
UrlCategory Optional String Eine DNS-Ereignisquelle kann auch die Kategorie der angeforderten Domänen nachschlagen. Das Feld heißt UrlCategory, um es am Microsoft Sentinel-Netzwerkschema zu orientieren.

DomainCategory wird als ein zu DNS passender Alias hinzugefügt.

Beispiel: Educational \\ Phishing
DomainCategory Alias Alias für UrlCategory.
NetworkRuleName Optional String Der Name oder die ID der Regel, die die Bedrohung identifiziert hat.

Beispiel: AnyAnyDrop
NetworkRuleNumber Optional Integer Die Nummer der Regel, die die Bedrohung identifiziert hat.

Beispiel: 23
Regel Alias String Entweder der Wert NetworkRuleName oder der Wert NetworkRuleNumber. Bei Verwendung des Werts NetworkRuleNumber sollte der Typ in eine Zeichenfolge konvertiert werden.
ThreatId Optional String Die ID der in der Netzwerksitzung identifizierten Bedrohung oder Schadsoftware.

Beispiel: Tr.124
ThreatCategory Optional String Wenn eine DNS-Ereignisquelle auch sicherheitsrelevante DNS-Informationen liefert, kann sie auch das DNS-Ereignis auswerten. So kann sie beispielsweise die IP-Adresse oder Domäne in einer Threat Intelligence-Datenbank suchen und der Domäne oder IP-Adresse eine Bedrohungskategorie zuweisen.
ThreatIpAddr Optional IP-Adresse Eine IP-Adresse, für die eine Bedrohung identifiziert wurde. Das Feld ThreatField enthält den Namen des Felds, das ThreatIpAddr darstellt. Wenn eine Bedrohung im Feld Domäne identifiziert wird, sollte dieses Feld leer sein.
ThreatField Bedingt Enumerated Das Feld, für das eine Bedrohung identifiziert wurde. Der Wert lautet entweder SrcIpAddr, DstIpAddr, Domain oder DnsResponseName.
ThreatName Optional String Der Name der identifizierten Bedrohung, wie vom meldenden Gerät gemeldet
ThreatConfidence Optional Integer Die Konfidenzstufe der identifizierten Bedrohung, normalisiert auf einen Wert zwischen 0 und 100
ThreatOriginalConfidence Optional String Die ursprüngliche Konfidenzstufe der identifizierten Bedrohung, wie vom meldenden Gerät gemeldet.
ThreatRiskLevel Optional Integer Die Risikostufe, die der identifizierten Bedrohung zugeordnet ist, normalisiert auf einen Wert zwischen 0 und 100
ThreatOriginalRiskLevel Optional String Die ursprüngliche Risikostufe, die der identifizierten Bedrohung zugeordnet ist, wie vom meldenden Gerät gemeldet
ThreatIsActive Optional Boolean TRUE, wenn die identifizierte Bedrohung als aktive Bedrohung betrachtet wird.
ThreatFirstReportedTime Optional datetime Das erste Mal, dass die IP-Adresse oder Domäne als Bedrohung identifiziert wurde
ThreatLastReportedTime Optional datetime Das letzte Mal, dass die IP-Adresse oder Domäne als Bedrohung identifiziert wurde

Veraltete Aliase und Felder

Die folgenden Felder sind Aliase, die aus Gründen der Abwärtskompatibilität beibehalten werden. Sie wurden am 31. Dezember 2021 aus dem Schema entfernt.

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

Schemaupdates

In der Version 0.1.2 des Schemas wurde Folgendes geändert:

  • Das Feld EventSchema wurde hinzugefügt.
  • Ein dediziertes Flagfeld wurde hinzugefügt, das das kombinierte Flags-Feld ergänzt: DnsFlagsAuthoritative, DnsFlagsCheckingDisabled, DnsFlagsRecursionAvailable, DnsFlagsRecursionDesired, DnsFlagsTruncated und DnsFlagsZ.

In der Version 0.1.3 des Schemas wurde Folgendes geändert:

  • Das Schema dokumentiert jetzt explizit die Felder Src*, Dst*, Process* und User*.
  • Es wurden weitere Dvc*-Felder hinzugefügt, die mit der aktuellen Definition allgemeiner Felder übereinstimmen.
  • Hinzufügung von Src und Dst als Aliase zu einem führenden Bezeichner für das Quell- und das Zielsystem.
  • Hinzufügung der optionalen Aliase DnsNetworkDuration und Duration.
  • Hinzufügung der optionalen Felder „Geo Location“ und „Risk Level“.

In der Version 0.1.4 des Schemas wurde Folgendes geändert:

  • Die optionalen Felder ThreatIpAddr, ThreatField, ThreatName, ThreatConfidence, ThreatOriginalConfidence, ThreatOriginalRiskLevel, ThreatIsActive, ThreatFirstReportedTime und ThreatLastReportedTime wurden hinzugefügt.

In der Version 0.1.5 des Schemas wurde Folgendes geändert:

  • Die Felder SrcUserScope, SrcUserSessionId, SrcDvcScopeId, SrcDvcScope, DstDvcScopeId, DstDvcScope, DvcScopeId und DvcScope wurden hinzugefügt.

In der Version 0.1.6 des Schemas wurde Folgendes geändert:

  • Die Felder DnsResponseIpCountry, DnsResponseIpRegion, DnsResponseIpCity, DnsResponseIpLatitude und DnsResponseIpLongitude wurden hinzugefügt.

In der Version 0.1.7 des Schemas wurde Folgendes geändert:

  • Die Felder SrcDescription, SrcOriginalRiskLevel, DstDescription, DstOriginalRiskLevel, SrcUserScopeId, NetworkProtocolVersion, Rule, RuleName, RuleNumber und ThreatId wurden hinzugefügt.

Quellspezifische Abweichungen

Ziel der Normalisierung ist es, sicherzustellen, dass alle Quellen konsistente Telemetriedaten bereitstellen. Eine Quelle, die nicht die erforderlichen Telemetriedaten bereitstellt, wie z. B. obligatorische Schemafelder, kann nicht normalisiert werden. Quellen, die in der Regel alle erforderlichen Telemetriedaten bereitstellen, können jedoch normalisiert werden, selbst wenn einige Abweichungen bestehen. Abweichungen können sich auf die Vollständigkeit der Abfrageergebnisse auswirken.

In der folgenden Tabelle sind bekannte Abweichungen aufgeführt:

`Source` Abweichungen
Microsoft DNS Server: Gesammelt mithilfe des DNS-Connectors und des Log Analytics-Agents Der Connector stellt nicht das obligatorische DnsQuery-Feld für die ursprüngliche Ereignis-ID 264 (Antwort auf ein dynamisches Update) bereit. Die Daten sind in der Quelle verfügbar, werden jedoch nicht vom Connector weitergeleitet.
Corelight Zeek Corelight Zeek stellt möglicherweise nicht das erforderliche DnsQuery-Feld bereit. Wir haben ein solches Verhalten in bestimmten Fällen beobachtet, in denen der Name des DNS-Antwortcodes NXDOMAIN lautet.

Behandeln der DNS-Antwort

In den meisten Fällen enthalten die protokollierten DNS-Ereignisse keine Antwortinformationen, die umfangreich und detailliert sein können. Wenn Ihr Datensatz weitere Antwortinformationen enthält, speichern Sie diese im Feld ResponseName, so wie sie im Datensatz angezeigt werden.

Sie können auch eine zusätzliche KQL-Funktion mit dem Namen _imDNS<vendor>Response_ bereitstellen, die die nicht analysierte Antwort als Eingabe verwendet und einen dynamischen Wert mit der folgenden Struktur zurückgibt:

[
    {
        "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"
    }
    ...
]

Die Felder in den einzelnen Wörterbüchern im dynamischen Wert entsprechen den Feldern in jeder DNS-Antwort. Der Eintrag part sollte entweder answer, authority oder additional enthalten, um den Teil der Antwort wiederzugeben, zu dem das Wörterbuch gehört.

Tipp

Um eine optimale Leistung zu gewährleisten, rufen Sie die Funktion imDNS<vendor>Response nur bei Bedarf und nur nach anfänglicher Filterung auf, um eine bessere Leistung zu gewährleisten.

Behandeln von DNS-Flags

Analyse und Normalisierung sind für Flagdaten nicht erforderlich. Speichern Sie stattdessen die vom meldenden Gerät bereitgestellten Flagdaten im Feld Flags. Wenn die Bestimmung des Wertes einzelner Flags unkompliziert ist, können Sie auch die dedizierten Flag-Felder verwenden.

Sie können auch eine zusätzliche KQL-Funktion namens _imDNS<vendor>Flags_ bereitstellen, die die nicht analysierte Antwort oder dedizierten Flag-Felder als Eingabe annimmt und eine dynamische Liste mit booleschen Werten zurückgibt, die jedes Flag in der folgenden Reihenfolge repräsentieren:

  • Authentifiziert (AD)
  • Autoritativ (AA)
  • Überprüfung deaktiviert (CD)
  • Rekursion verfügbar (RA)
  • Rekursion gewünscht (RD)
  • Abgeschnitten (TC)
  • Z

Nächste Schritte

Weitere Informationen finden Sie unter