Referens för DNS-normaliseringsschema för Advanced Security Information Model (ASIM)

DNS-informationsmodellen används för att beskriva händelser som rapporterats av en DNS-server eller ett DNS-säkerhetssystem och används av Microsoft Sentinel för att aktivera källagnostisk analys.

Mer information finns i Normalisering och ASIM (Advanced Security Information Model).

Schemaöversikt

ASIM DNS-schemat representerar DNS-protokollaktivitet. Både DNS-servrar och enheter som skickar DNS-begäranden till en DNS-serverlogg dns-aktivitet. DNS-protokollaktiviteten omfattar DNS-frågor, DNS-serveruppdateringar och massöverföring av DNS-data. Eftersom schemat representerar protokollaktiviteten styrs det av RFC:er och officiellt tilldelade parameterlistor, som refereras till i den här artikeln när det är lämpligt. DNS-schemat representerar inte DNS-servergranskningshändelser.

Den viktigaste aktiviteten som rapporteras av DNS-servrar är en DNS-fråga som fältet EventType är inställt på Query.

De viktigaste fälten i en DNS-händelse är:

  • DnsQuery, som rapporterar domännamnet som frågan utfärdades för.

  • SrcIpAddr (alias till IpAddr), som representerar DEN IP-adress som begäran genererades från. DNS-servrar tillhandahåller vanligtvis fältet SrcIpAddr, men DNS-klienter tillhandahåller ibland inte det här fältet och anger bara fältet SrcHostname .

  • EventResultDetails, som rapporterar om begäran lyckades och om inte, varför.

  • När det är tillgängligt innehåller DnsResponseName, som innehåller svaret från servern på frågan. ASIM kräver inte parsning av svaret, och dess format varierar mellan källor.

    Om du vill använda det här fältet i källagnostiskt innehåll söker du i innehållet med operatorerna has eller contains .

DNS-händelser som samlas in på klientenheten kan också innehålla information om användare och processer .

Riktlinjer för insamling av DNS-händelser

DNS är ett unikt protokoll eftersom det kan korsa ett stort antal datorer. Eftersom DNS använder UDP kopplas även begäranden och svar bort och är inte direkt relaterade till varandra.

Följande bild visar ett förenklat DNS-begärandeflöde, inklusive fyra segment. En verklig begäran kan vara mer komplex, med fler segment inblandade.

Förenklat flöde för DNS-begäranden.

Eftersom segmenten för begäran och svar inte är direkt anslutna till varandra i DNS-begärandeflödet kan fullständig loggning resultera i betydande duplicering.

Det mest värdefulla segmentet att logga är svaret på klienten. Svaret innehåller domännamnsfrågor, uppslagsresultatet och klientens IP-adress. Många DNS-system loggar bara det här segmentet, men det finns ett värde i loggningen av de andra delarna. Till exempel drar en förgiftningsattack i DNS-cache ofta nytta av falska svar från en överordnad server.

Om datakällan stöder fullständig DNS-loggning och du har valt att logga flera segment justerar du dina frågor för att förhindra dataduplicering i Microsoft Sentinel.

Du kan till exempel ändra frågan med följande normalisering:

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

Tolkar

Mer information om ASIM-parsers finns i översikten över ASIM-parsers.

Färdiga parsers

Om du vill använda parsers som förenar alla asim-parsers och se till att analysen körs över alla konfigurerade källor använder du den enande parsern _Im_Dns som tabellnamn i frågan.

Listan över DNS-parsare Microsoft Sentinel innehåller färdiga anvisningar finns i ASIM-parsningslistan.

Lägg till dina egna normaliserade parsers

När du implementerar anpassade parsers för Dns-informationsmodellen namnger du dina KQL-funktioner med formatet vimDns<vendor><Product>. Läs artikeln Hantera ASIM-parsers för att lära dig hur du lägger till dina anpassade parsers i DNS-enande parsern.

Filtrera parserparametrar

DNS-parsarna stöder filtreringsparametrar. Även om de här parametrarna är valfria kan de förbättra frågeprestandan.

Följande filtreringsparametrar är tillgängliga:

Namn Typ Beskrivning
Starttime Datetime Filtrera endast DNS-frågor som kördes vid eller efter den här tiden. Den här parametern filtrerar fältet TimeGenerated , som är standarddesignatorn för tidpunkten för händelsen, oavsett parserspecifik mappning av fälten EventStartTime och EventEndTime.
Endtime Datetime Filtrera endast DNS-frågor som har körts vid eller före den här tiden. Den här parametern filtrerar fältet TimeGenerated , som är standarddesignatorn för tidpunkten för händelsen, oavsett parserspecifik mappning av fälten EventStartTime och EventEndTime.
srcipaddr sträng Filtrera endast DNS-frågor från den här käll-IP-adressen.
domain_has_any dynamisk/sträng Filtrera endast DNS-frågor där domain (eller query) har något av de angivna domännamnen, inklusive som en del av händelsedomänen. Listans längd är begränsad till 10 000 objekt.
responsecodename sträng Filtrera endast DNS-frågor som svarskodens namn matchar det angivna värdet för.
Till exempel: NXDOMAIN
response_has_ipv4 sträng Filtrera endast DNS-frågor där svarsfältet innehåller angiven IP-adress eller IP-adressprefix. Använd den här parametern när du vill filtrera på en enskild IP-adress eller ett prefix.

Resultat returneras inte för källor som inte ger något svar.
response_has_any_prefix Dynamisk Filtrera endast DNS-frågor där svarsfältet innehåller någon av de angivna IP-adresserna eller IP-adressprefixen. Prefix ska sluta med , .till exempel: 10.0..

Använd den här parametern när du vill filtrera på en lista med IP-adresser eller prefix.

Resultat returneras inte för källor som inte ger något svar. Listans längd är begränsad till 10 000 objekt.
Eventtype sträng Filtrera endast DNS-frågor av den angivna typen. Om inget värde anges returneras endast uppslagsfrågor.

Om du till exempel bara vill filtrera DNS-frågor från den senaste dagen som inte kunde matcha domännamnet använder du:

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

Om du bara vill filtrera DNS-frågor efter en angiven lista med domännamn använder du:

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

Vissa parametrar kan acceptera både en lista med värden av typen dynamic eller ett enda strängvärde. Om du vill skicka en literallista till parametrar som förväntar sig ett dynamiskt värde använder du uttryckligen en dynamisk literal. Till exempel: dynamic(['192.168.','10.'])

Normaliserat innehåll

En fullständig lista över analysregler som använder normaliserade DNS-händelser finns i Säkerhetsinnehåll för DNS-frågor.

Schemainformation

DNS-informationsmodellen är i linje med OSSEM DNS-entitetsschemat.

Mer information finns i DNS-parameterreferensen för Internet Assigned Numbers Authority (IANA).

Vanliga ASIM-fält

Viktigt

Fält som är gemensamma för alla scheman beskrivs i detalj i artikeln vanliga ASIM-fält .

Vanliga fält med specifika riktlinjer

I följande lista nämns fält som har specifika riktlinjer för DNS-händelser:

Fält Klass Typ Beskrivning
EventType Obligatorisk Uppräknade Anger åtgärden som rapporterats av posten.

För DNS-poster är det här värdet DNS-op-koden.

Exempel: Query
EventSubType Valfritt Uppräknade Antingen request eller response.

För de flesta källor loggas bara svaren, och därför är värdet ofta svar.
EventResultDetails Obligatorisk Uppräknade För DNS-händelser innehåller det här fältet DNS-svarskoden.

Anmärkningar:
– IANA definierar inte skiftläget för värdena, så analys måste normalisera ärendet.
– Om källan endast innehåller en numerisk svarskod och inte ett svarskodnamn måste parsern innehålla en uppslagstabell för att berika med det här värdet.
– Om den här posten representerar en begäran och inte ett svar anger du till NA.

Exempel: NXDOMAIN
EventSchemaVersion Obligatorisk SchemaVersion (sträng) Den version av schemat som dokumenteras här är 0.1.7.
EventSchema Obligatorisk Uppräknade Namnet på schemat som dokumenteras här är Dns.
Dvc-fält - - För DNS-händelser refererar enhetsfält till systemet som rapporterar DNS-händelsen.

Alla vanliga fält

Fält som visas i tabellen nedan är gemensamma för alla ASIM-scheman. Eventuella riktlinjer som anges ovan åsidosätter de allmänna riktlinjerna för fältet. Ett fält kan till exempel vara valfritt i allmänhet, men obligatoriskt för ett visst schema. Mer information om varje fält finns i artikeln vanliga ASIM-fält .

Klass Fält
Obligatorisk - EventCount
- EventStartTime
- EventEndTime
- Eventtype
- EventResult
- EventProduct
- EventVendor
- EventSchema
- EventSchemaVersion
- Dvc
Rekommenderas - EventResultDetails
- EventSeverity
- EventUid
- DvcIpAddr
- DvcHostname
- DvcDomain
- DvcDomainType
- DvcFQDN
- DvcId
- DvcIdType
- DvcAction
Valfritt - EventMessage
- EventSubType
- EventOriginalUid
- EventOriginalType
- EventOriginalSubType
- EventOriginalResultDetails
- EventOriginalSeverity
- EventProductVersion
- EventReportUrl
- EventOwner
- DvcZone
- DvcMacAddr
- DvcOs
- DvcOsVersion
- DvcOriginalAction
- DvcInterface
- AdditionalFields
- DvcDescription
- DvcScopeId
- DvcScope

Källsystemfält

Fält Klass Typ Beskrivning
Src Alias Sträng En unik identifierare för källenheten.

Det här fältet kan ha alias för fälten SrcDvcId, SrcHostname eller SrcIpAddr .

Exempel: 192.168.12.1
SrcIpAddr Rekommenderas IP-adress IP-adressen för klienten som skickade DNS-begäran. För en rekursiv DNS-begäran är det här värdet vanligtvis rapporteringsenheten och i de flesta fall inställt på 127.0.0.1.

Exempel: 192.168.12.1
SrcPortNumber Valfritt Heltal Källporten för DNS-frågan.

Exempel: 54312
IpAddr Alias Alias till SrcIpAddr
SrcGeoCountry Valfritt Land Det land/den region som är associerad med källans IP-adress.

Exempel: USA
SrcGeoRegion Valfritt Region Den region som är associerad med källans IP-adress.

Exempel: Vermont
SrcGeoCity Valfritt Ort Den ort som är associerad med källans IP-adress.

Exempel: Burlington
SrcGeoLatitude Valfritt Latitude Latitud för den geografiska koordinat som är associerad med källans IP-adress.

Exempel: 44.475833
SrcGeoLongitude Valfritt Longitud Longitud för den geografiska koordinat som är associerad med källans IP-adress.

Exempel: 73.211944
SrcRiskLevel Valfritt Heltal Den risknivå som är associerad med källan. Värdet ska justeras till ett intervall på 0 till , med 0 för godartad och 100100för hög risk.

Exempel: 90
SrcOriginalRiskLevel Valfritt Sträng Den risknivå som är associerad med källan, enligt rapporteringsenhetens rapporter.

Exempel: Suspicious
SrcHostname Rekommenderas Värdnamn (sträng) Källenhetens värdnamn, exklusive domäninformation.

Exempel: DESKTOP-1282V4D
Hostname Alias Alias till SrcHostname
SrcDomain Rekommenderas Domän (sträng) Källenhetens domän.

Exempel: Contoso
SrcDomainType Villkorsstyrd Uppräknade Typen av SrcDomain, om det är känt. Möjliga värden inkluderar:
- Windows (till exempel: contoso)
- FQDN (till exempel: microsoft.com)

Krävs om SrcDomain används.
SrcFQDN Valfritt FQDN (sträng) Källenhetens värdnamn, inklusive domäninformation när det är tillgängligt.

Obs! Det här fältet stöder både traditionellt FQDN-format och Windows-domän\värddatornamnformat. Fältet SrcDomainType återspeglar det format som används.

Exempel: Contoso\DESKTOP-1282V4D
SrcDvcId Valfritt Sträng ID:t för källenheten enligt rapporten i posten.

Till exempel: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
SrcDvcScopeId Valfritt Sträng Molnplattformens omfångs-ID som enheten tillhör. SrcDvcScopeId mappas till ett prenumerations-ID på Azure och till ett konto-ID på AWS.
SrcDvcScope Valfritt Sträng Molnplattformsomfånget som enheten tillhör. SrcDvcScope mappar till ett prenumerations-ID på Azure och till ett konto-ID på AWS.
SrcDvcIdType Villkorsstyrd Uppräknade Typen av SrcDvcId, om det är känt. Möjliga värden inkluderar:
- AzureResourceId
- MDEid

Om flera ID:er är tillgängliga använder du det första från listan och lagrar de andra i SrcDvcAzureResourceId respektive SrcDvcMDEid.

Obs! Det här fältet krävs om SrcDvcId används.
SrcDeviceType Valfritt Uppräknade Typ av källenhet. Möjliga värden inkluderar:
- Computer
- Mobile Device
- IOT Device
- Other
SrcDescription Valfritt Sträng En beskrivande text som är associerad med enheten. Till exempel: Primary Domain Controller.

Källanvändarfält

Fält Klass Typ Beskrivning
SrcUserId Valfritt Sträng En maskinläsbar, alfanumerisk, unik representation av källanvändaren. Mer information och alternativa fält för ytterligare ID:n finns i Entiteten Användare.

Exempel: S-1-12-1-4141952679-1282074057-627758481-2916039507
SrcUserScope Valfritt Sträng Omfånget, till exempel Microsoft Entra klientorganisation, där SrcUserId och SrcUsername definieras. eller mer information och lista över tillåtna värden finns i UserScope i artikeln Schemaöversikt.
SrcUserScopeId Valfritt Sträng Omfångs-ID, till exempel Microsoft Entra katalog-ID, där SrcUserId och SrcUsername definieras. Mer information och lista över tillåtna värden finns i UserScopeId i artikeln Schemaöversikt.
SrcUserIdType Villkorsstyrd UserIdType Typen av ID som lagras i fältet SrcUserId . Mer information och lista över tillåtna värden finns i UserIdType i artikeln Schemaöversikt.
SrcUsername Valfritt Användarnamn (sträng) Källans användarnamn, inklusive domäninformation när det är tillgängligt. Mer information finns i Användarentiteten.

Exempel: AlbertE
SrcUsernameType Villkorsstyrd UsernameType Anger typen av användarnamn som lagras i fältet SrcUsername . Mer information och lista över tillåtna värden finns i UsernameType i artikeln Schemaöversikt.

Exempel: Windows
Användaren Alias Alias för SrcUsername
SrcUserType Valfritt UserType Typ av källanvändare. Mer information och lista över tillåtna värden finns i UserType i artikeln Schemaöversikt.

Till exempel: Guest
SrcUserSessionId Valfritt Sträng Det unika ID:t för inloggningssessionen för aktören.

Exempel: 102pTUgC3p8RIqHvzxLCHnFlg
SrcOriginalUserType Valfritt Sträng Den ursprungliga källanvändartypen, om den tillhandahålls av källan.

Källprocessfält

Fält Klass Typ Beskrivning
SrcProcessName Valfritt Sträng Filnamnet på den process som initierade DNS-begäran. Det här namnet anses vanligtvis vara processnamnet.

Exempel: C:\Windows\explorer.exe
Process Alias Alias för SrcProcessName

Exempel: C:\Windows\System32\rundll32.exe
SrcProcessId Valfritt Sträng Process-ID (PID) för den process som initierade DNS-begäran.

Exempel: 48610176

Obs! Typen definieras som sträng för att stödja olika system, men i Windows och Linux måste det här värdet vara numeriskt.

Om du använder en Windows- eller Linux dator och använder en annan typ ska du konvertera värdena. Om du till exempel använde ett hexadecimalt värde konverterar du det till ett decimalvärde.
SrcProcessGuid Valfritt GUID (sträng) En genererad unik identifierare (GUID) för den process som initierade DNS-begäran.

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

Målsystemfält

Fält Klass Typ Beskrivning
Dst Alias Sträng En unik identifierare för servern som tog emot DNS-begäran.

Det här fältet kan vara alias för fälten DstDvcId, DstHostname eller DstIpAddr .

Exempel: 192.168.12.1
DstIpAddr Valfritt IP-adress IP-adressen för servern som tog emot DNS-begäran. För en vanlig DNS-begäran är det här värdet vanligtvis rapporteringsenheten och i de flesta fall inställt på 127.0.0.1.

Exempel: 127.0.0.1
DstGeoCountry Valfritt Land Det land/den region som är associerad med mål-IP-adressen. Mer information finns i Logiska typer.

Exempel: USA
DstGeoRegion Valfritt Region Den region eller det tillstånd som är associerat med målets IP-adress. Mer information finns i Logiska typer.

Exempel: Vermont
DstGeoCity Valfritt Ort Den stad som är associerad med målets IP-adress. Mer information finns i Logiska typer.

Exempel: Burlington
DstGeoLatitude Valfritt Latitude Latitud för den geografiska koordinat som är associerad med målets IP-adress. Mer information finns i Logiska typer.

Exempel: 44.475833
DstGeoLongitude Valfritt Longitud Longitud för den geografiska koordinat som är associerad med målets IP-adress. Mer information finns i Logiska typer.

Exempel: 73.211944
DstRiskLevel Valfritt Heltal Den risknivå som är associerad med målet. Värdet bör justeras till ett intervall på 0 till 100, vilket 0 är godartat och 100 är en hög risk.

Exempel: 90
DstOriginalRiskLevel Valfritt Sträng Den risknivå som är associerad med målet, enligt rapporteringsenhetens rapporter.

Exempel: Malicious
DstPortNumber Valfritt Heltal Målportnummer.

Exempel: 53
DstHostname Valfritt Värdnamn (sträng) Målenhetens värdnamn, exklusive domäninformation. Om inget enhetsnamn är tillgängligt lagrar du relevant IP-adress i det här fältet.

Exempel: DESKTOP-1282V4D

Obs! Det här värdet är obligatoriskt om DstIpAddr anges.
DstDomain Valfritt Domän (sträng) Målenhetens domän.

Exempel: Contoso
DstDomainType Villkorsstyrd Uppräknade Typ av DstDomain, om det är känt. Möjliga värden inkluderar:
- Windows (contoso\mypc)
- FQDN (learn.microsoft.com)

Krävs om DstDomain används.
DstFQDN Valfritt FQDN (sträng) Målenhetens värdnamn, inklusive domäninformation när det är tillgängligt.

Exempel: Contoso\DESKTOP-1282V4D

Obs! Det här fältet stöder både traditionellt FQDN-format och Windows-domän\värddatornamnformat. DstDomainType återspeglar det format som används.
DstDvcId Valfritt Sträng ID:t för målenheten enligt rapporten i posten.

Exempel: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3
DstDvcScopeId Valfritt Sträng Molnplattformens omfångs-ID som enheten tillhör. DstDvcScopeId mappas till ett prenumerations-ID på Azure och till ett konto-ID på AWS.
DstDvcScope Valfritt Sträng Molnplattformsomfånget som enheten tillhör. DstDvcScope mappas till ett prenumerations-ID på Azure och till ett konto-ID på AWS.
DstDvcIdType Villkorsstyrd Uppräknade Typ av DstDvcId, om det är känt. Möjliga värden inkluderar:
- AzureResourceId
- MDEidIf

Om flera ID:er är tillgängliga använder du det första från listan ovan och lagrar de andra i fälten DstDvcAzureResourceId respektive DstDvcMDEid .

Krävs om DstDeviceId används.
DstDeviceType Valfritt Uppräknade Typ av målenhet. Möjliga värden inkluderar:
- Computer
- Mobile Device
- IOT Device
- Other
DstDescription Valfritt Sträng En beskrivande text som är associerad med enheten. Till exempel: Primary Domain Controller.

DNS-specifika fält

Fält Klass Typ Beskrivning
DnsQuery Obligatorisk Sträng Domänen som begäran försöker matcha.

Anmärkningar:
– Vissa källor skickar giltiga FQDN-frågor i ett annat format. I själva DNS-protokollet innehåller frågan till exempel en punkt (.) i slutet, som måste tas bort.
– Dns-protokollet begränsar typen av värde i det här fältet till ett fullständigt domännamn, men de flesta DNS-servrar tillåter valfritt värde, och det här fältet är därför inte begränsat till endast FQDN-värden. Framför allt kan DNS-tunnelattacker använda ogiltiga FQDN-värden i frågefältet.
– Dns-protokollet tillåter flera frågor i en enda begäran, men det här scenariot är ovanligt, om det finns alls. Om begäran har flera frågor lagrar du den första i det här fältet och behåller sedan resten i fältet AdditionalFields .

Exempel: www.malicious.com
Domän Alias Alias till DnsQuery.
DnsQueryType Valfritt Heltal Koder för DNS-resursposttyp.

Exempel: 28
DnsQueryTypeName Rekommenderas Uppräknade Namn på DNS-resursposttyp.

Anmärkningar:
– IANA definierar inte skiftläget för värdena, så analys måste normalisera ärendet efter behov.
– Värdet ANY stöds för svarskoden 255.
– Värdet TYPExxxx stöds för ommappade svarskoder, där xxxx är det numeriska värdet för svarskoden, enligt rapporten från BIND DNS-servern.
-Om källan endast innehåller en numerisk frågetypkod och inte ett namn på frågetypen måste parsern innehålla en uppslagstabell för att berika med det här värdet.

Exempel: AAAA
DnsResponseName Valfritt Sträng Innehållet i svaret, som ingår i posten.

DNS-svarsdata är inkonsekventa mellan rapporteringsenheter, är komplexa att parsa och har mindre värde för källagnostisk analys. Informationsmodellen kräver därför inte parsning och normalisering, och Microsoft Sentinel använder en hjälpfunktion för att tillhandahålla svarsinformation. Mer information finns i Hantera DNS-svar.
DnsResponseCodeName Alias Alias för EventResultDetails
DnsResponseCode Valfritt Heltal Den numeriska DNS-svarskoden.

Exempel: 3
TransactionIdHex Rekommenderas Hexadecimalt (sträng) DNS-frågans unika ID som tilldelats av DNS-klienten, i hexadecimalt format. Observera att det här värdet är en del av DNS-protokollet och skiljer sig från DnsSessionId, nätverksskiktets sessions-ID, som vanligtvis tilldelas av rapporteringsenheten.
NetworkProtocol Valfritt Uppräknade Transportprotokollet som används av nätverksmatchningshändelsen. Värdet kan vara UDP eller TCP och är oftast inställt på UDP för DNS.

Exempel: UDP
NetworkProtocolVersion Valfritt Uppräknade Versionen av NetworkProtocol. När du använder den för att skilja mellan IP-version använder du värdena IPv4 och IPv6.
DnsQueryClass Valfritt Heltal DNS-klass-ID.

I praktiken används endast IN-klassen (ID 1) och därför är det här fältet mindre värdefullt.
DnsQueryClassName Rekommenderas DnsQueryClassName (sträng) DNS-klassnamnet.

I praktiken används endast IN-klassen (ID 1) och därför är det här fältet mindre värdefullt.

Exempel: IN
DnsFlags Valfritt Sträng Fältet flaggor som tillhandahålls av rapporteringsenheten. Om flagginformation anges i flera fält sammanfogar du dem med kommatecken som avgränsare.

Eftersom DNS-flaggor är komplexa att parsa och används mindre ofta av analys krävs inte parsning och normalisering. Microsoft Sentinel kan använda en hjälpfunktion för att tillhandahålla information om flaggor. Mer information finns i Hantera DNS-svar.

Exempel: ["DR"]
DnsNetworkDuration Valfritt Heltal Hur lång tid, i millisekunder, för slutförandet av DNS-begäran.

Exempel: 1500
Varaktighet Alias Alias för DnsNetworkDuration
DnsFlagsAuthenticated Valfritt Boolesk DNS-flaggan AD , som är relaterad till DNSSEC, anger i ett svar att alla data som ingår i svars- och auktoritetsavsnitten i svaret har verifierats av servern enligt serverns principer. Mer information finns i RFC 3655 Avsnitt 6.1 för mer information.
DnsFlagsAuthoritative Valfritt Boolesk DNS-flaggan AA anger om svaret från servern var auktoritativt
DnsFlagsCheckingDisabled Valfritt Boolesk DNS-flaggan CD , som är relaterad till DNSSEC, anger i en fråga att icke-verifierade data är godtagbara för systemet som skickar frågan. Mer information finns i RFC 3655 Avsnitt 6.1 för mer information.
DnsFlagsRecursionAvailable Valfritt Boolesk DNS-flaggan RA anger i ett svar att servern stöder rekursiva frågor.
DnsFlagsRecursionDesired Valfritt Boolesk DNS-flaggan RD anger i en begäran att klienten vill att servern ska använda rekursiva frågor.
DnsFlagsTruncated Valfritt Boolesk DNS-flaggan TC anger att ett svar trunkerades eftersom det överskred den maximala svarsstorleken.
DnsFlagsZ Valfritt Boolesk DNS-flaggan Z är en inaktuell DNS-flagga som kan rapporteras av äldre DNS-system.
DnsSessionId Valfritt sträng DNS-sessionsidentifieraren enligt rapporteringsenhetens rapport. Det här värdet skiljer sig från TransactionIdHex, dns-frågans unika ID som tilldelats av DNS-klienten.

Exempel: EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55
Sessionid Alias Alias till DnsSessionId
DnsResponseIpCountry Valfritt Land Det land/den region som är associerad med en av IP-adresserna i DNS-svaret. Mer information finns i Logiska typer.

Exempel: USA
DnsResponseIpRegion Valfritt Region Den region eller det tillstånd som är associerat med en av IP-adresserna i DNS-svaret. Mer information finns i Logiska typer.

Exempel: Vermont
DnsResponseIpCity Valfritt Ort Den stad som är associerad med en av IP-adresserna i DNS-svaret. Mer information finns i Logiska typer.

Exempel: Burlington
DnsResponseIpLatitude Valfritt Latitude Latitud för den geografiska koordinat som är associerad med en av IP-adresserna i DNS-svaret. Mer information finns i Logiska typer.

Exempel: 44.475833
DnsResponseIpLongitude Valfritt Longitud Longitud för den geografiska koordinat som är associerad med en av IP-adresserna i DNS-svaret. Mer information finns i Logiska typer.

Exempel: 73.211944

Kontrollfält

Följande fält används för att representera en inspektion som en DNS-säkerhetsenhet utförde. De hotrelaterade fälten representerar ett enda hot som är associerat med antingen källadressen, måladressen, en av IP-adresserna i svaret eller DNS-frågedomänen. Om mer än ett hot har identifierats som ett hot kan information om andra IP-adresser lagras i fältet AdditionalFields.

Fält Klass Typ Beskrivning
UrlCategory Valfritt Sträng En DNS-händelsekälla kan också slå upp kategorin för de begärda domänerna. Fältet kallas UrlCategory för att justera med Microsoft Sentinel nätverksschema.

DomainCategory läggs till som ett alias som passar DNS.

Exempel: Educational \\ Phishing
DomainCategory Alias Alias till UrlCategory.
RuleName Valfritt Sträng Namnet eller ID:t för regeln som identifierade hotet.

Exempel: AnyAnyDrop
RuleNumber Valfritt Heltal Numret på regeln som identifierade hotet.

Exempel: 23
Regel Alias Sträng Antingen värdet för RuleName eller värdet för RuleNumber. Om värdet för RuleNumber används ska typen konverteras till sträng.
RuleNumber Valfritt int Numret på regeln som är associerad med aviseringen.

E.g. 123456
RuleName Valfritt sträng Namnet eller ID:t för regeln som är associerad med aviseringen.

E.g. Server PSEXEC Execution via Remote Access
ThreatId Valfritt Sträng ID:t för det hot eller den skadliga kod som identifierades i nätverkssessionen.

Exempel: Tr.124
ThreatCategory Valfritt Sträng Om en DNS-händelsekälla också tillhandahåller DNS-säkerhet kan den också utvärdera DNS-händelsen. Den kan till exempel söka efter IP-adressen eller domänen i en hotinformationsdatabas och tilldela domänen eller IP-adressen med en hotkategori.
ThreatIpAddr Valfritt IP-adress En IP-adress för vilken ett hot har identifierats. Fältet ThreatField innehåller namnet på fältet ThreatIpAddr representerar. Om ett hot identifieras i fältet Domän ska det här fältet vara tomt.
ThreatField Villkorsstyrd Uppräknade Det fält för vilket ett hot identifierades. Värdet är antingen SrcIpAddr, DstIpAddr, Domaineller DnsResponseName.
ThreatName Valfritt Sträng Namnet på det hot som identifierats, enligt rapporteringsenhetens rapporter.
ThreatConfidence Valfritt ConfidenceLevel (heltal) Konfidensnivån för det identifierade hotet normaliserades till ett värde mellan 0 och 100.
ThreatOriginalConfidence Valfritt Sträng Den ursprungliga konfidensnivån för det identifierade hotet, enligt rapporteringsenhetens rapporter.
ThreatRiskLevel Valfritt RiskLevel (heltal) Den risknivå som är associerad med det identifierade hotet, normaliserad till ett värde mellan 0 och 100.
ThreatOriginalRiskLevel Valfritt Sträng Den ursprungliga risknivån som är associerad med det identifierade hotet, enligt rapporteringsenhetens rapporter.
ThreatIsActive Valfritt Boolesk Sant om det identifierade hotet anses vara ett aktivt hot.
ThreatFirstReportedTime Valfritt Datetime Första gången IP-adressen eller domänen identifierades som ett hot.
ThreatLastReportedTime Valfritt Datetime Senaste gången IP-adressen eller domänen identifierades som ett hot.

Inaktuella alias och fält

Följande fält är alias som underhålls för bakåtkompatibilitet. De togs bort från schemat den 31 december 2021.

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

Schemauppdateringar

Ändringarna i version 0.1.2 av schemat är:

  • Fältet har lagts till EventSchema.
  • Ett dedikerat flaggfält har lagts till, vilket utökar det kombinerade fältet Flaggor : DnsFlagsAuthoritative, DnsFlagsCheckingDisabled, DnsFlagsRecursionAvailable, DnsFlagsRecursionDesired, DnsFlagsTruncatedoch DnsFlagsZ.

Ändringarna i version 0.1.3 av schemat är:

  • Schemat dokumenterar Src*nu uttryckligen fälten , Dst*Process* och User* .
  • Dvc* Fler fält har lagts till för att matcha den senaste definitionen för vanliga fält.
  • Har lagts Src till och Dst som alias till en ledande identifierare för käll- och målsystemen.
  • Lade till valfritt DnsNetworkDuration och Duration, ett alias till det.
  • Valfria fält för geoplats och risknivå har lagts till.

Ändringarna i version 0.1.4 av schemat är:

  • De valfria fälten ThreatIpAddr, ThreatField, ThreatName, ThreatConfidence, ThreatOriginalConfidence, ThreatOriginalRiskLevel, ThreatIsActive, ThreatFirstReportedTimeoch ThreatLastReportedTimehar lagts till.

Ändringarna i version 0.1.5 av schemat är:

  • Fälten , , , , , , DstDvcScopeoch DvcScopeIdDvcScopehar lagts SrcUserScopetill. DstDvcScopeIdSrcDvcScopeSrcDvcScopeIdSrcUserSessionId

Ändringarna i version 0.1.6 av schemat är:

  • Fälten , DnsResponseIpRegion, DnsResponseIpCity, DnsResponseIpLatitudeoch DnsResponseIpLongitudehar lagts DnsResponseIpCountrytill.

Ändringarna i version 0.1.7 av schemat är:

  • Fälten , , , , , , NetworkProtocolVersion, Rule, RuleName, RuleNumberoch ThreatIdhar lagts SrcDescriptiontill. SrcUserScopeIdDstOriginalRiskLevelDstDescriptionSrcOriginalRiskLevel

Källspecifika avvikelser

Målet med normalisering är att säkerställa att alla källor tillhandahåller konsekvent telemetri. En källa som inte tillhandahåller nödvändig telemetri, till exempel obligatoriska schemafält, kan inte normaliseras. Källor som vanligtvis tillhandahåller all nödvändig telemetri, även om det finns vissa avvikelser, kan dock normaliseras. Avvikelser kan påverka frågeresultatens fullständighet.

I följande tabell visas kända avvikelser:

Source Avvikelser
Microsoft DNS-server som samlats in med HJÄLP av DNS-anslutningsappen och Log Analytics-agenten Anslutningsappen tillhandahåller inte det obligatoriska DnsQuery-fältet för ursprungligt händelse-ID 264 (svar på en dynamisk uppdatering). Data är tillgängliga vid källan, men vidarebefordras inte av anslutningsappen.
Corelight Zeek Corelight Zeek kanske inte tillhandahåller det obligatoriska DnsQuery-fältet. Vi har observerat sådant beteende i vissa fall där DNS-svarskodens namn är NXDOMAIN.

Hantera DNS-svar

I de flesta fall innehåller loggade DNS-händelser inte svarsinformation, vilket kan vara stort och detaljerat. Om din post innehåller mer svarsinformation lagrar du den i fältet ResponseName som den visas i posten.

Du kan också ange en extra KQL-funktion med namnet _imDNS<vendor>Response_, som tar det oförseparerade svaret som indata och returnerar dynamiskt värde med följande struktur:

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

Fälten i varje ordlista i det dynamiska värdet motsvarar fälten i varje DNS-svar. Posten part ska innehålla antingen answer, authorityeller additional för att återspegla delen i svaret som ordlistan tillhör.

Tips

För att säkerställa optimala prestanda anropar du bara funktionen när det imDNS<vendor>Response behövs och först efter en inledande filtrering för att säkerställa bättre prestanda.

Hantera DNS-flaggor

Parsning och normalisering krävs inte för flaggdata. Lagra i stället de flaggdata som tillhandahålls av rapporteringsenheten i fältet Flaggor . Om det är enkelt att fastställa värdet för enskilda flaggor kan du också använda fälten för dedikerade flaggor.

Du kan också ange en extra KQL-funktion med namnet _imDNS<vendor>Flags_, som tar det oparserade svaret eller dedikerade flaggfält som indata och returnerar en dynamisk lista, med booleska värden som representerar varje flagga i följande ordning:

  • Autentiserad (AD)
  • Auktoritativt (AA)
  • Kontrollerar inaktiverad (CD)
  • Rekursion tillgänglig (RA)
  • Önskad rekursion (RD)
  • Trunkerad (TC)
  • Z

Nästa steg

Mer information finns i: