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
odercontains
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.
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 (video2.skills-academy.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 toDnsQuery
)QueryType
(alias toDnsQueryType
)QueryTypeName
(alias toDnsQueryTypeName
)ResponseName
(alias toDnsReasponseName
)ResponseCodeName
(alias toDnsResponseCodeName
)ResponseCode
(alias toDnsResponseCode
)QueryClass
(alias toDnsQueryClass
)QueryClassName
(alias toDnsQueryClassName
)Flags
(alias toDnsFlags
)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
undDnsFlagsZ
.
In der Version 0.1.3 des Schemas wurde Folgendes geändert:
- Das Schema dokumentiert jetzt explizit die Felder
Src*
,Dst*
,Process*
undUser*
. - Es wurden weitere
Dvc*
-Felder hinzugefügt, die mit der aktuellen Definition allgemeiner Felder übereinstimmen. - Hinzufügung von
Src
undDst
als Aliase zu einem führenden Bezeichner für das Quell- und das Zielsystem. - Hinzufügung der optionalen Aliase
DnsNetworkDuration
undDuration
. - 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
undThreatLastReportedTime
wurden hinzugefügt.
In der Version 0.1.5 des Schemas wurde Folgendes geändert:
- Die Felder
SrcUserScope
,SrcUserSessionId
,SrcDvcScopeId
,SrcDvcScope
,DstDvcScopeId
,DstDvcScope
,DvcScopeId
undDvcScope
wurden hinzugefügt.
In der Version 0.1.6 des Schemas wurde Folgendes geändert:
- Die Felder
DnsResponseIpCountry
,DnsResponseIpRegion
,DnsResponseIpCity
,DnsResponseIpLatitude
undDnsResponseIpLongitude
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
undThreatId
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
- Sehen Sie sich das ASIM-Webinar an, oder befassen Sie sich mit den Folien.
- Übersicht über das erweiterte Sicherheitsinformationsmodell (Advanced Security Information Model, ASIM)
- Schemas für das erweiterte Sicherheitsinformationsmodell (Advanced Security Information Model, ASIM)
- Parser für das erweiterte Sicherheitsinformationsmodell (Advanced Security Information Model, ASIM)
- Inhalte für das erweiterte Sicherheitsinformationsmodell (Advanced Security Information Model, ASIM)