De ASIM(Advanced Security Information Model) DNS-normalisatieschemaverwijzing (openbare preview)
Het DNS-informatiemodel wordt gebruikt om gebeurtenissen te beschrijven die zijn gerapporteerd door een DNS-server of een DNS-beveiligingssysteem en wordt gebruikt door Microsoft Sentinel om bronagnostische analyses in te schakelen.
Zie Normalization and the Advanced Security Information Model (ASIM) voor meer informatie.
Belangrijk
Het DNS-normalisatieschema bevindt zich momenteel in PREVIEW. Deze functie wordt geleverd zonder service level agreement en wordt niet aanbevolen voor productieworkloads.
De Aanvullende voorwaarden voor Azure-previews omvatten aanvullende juridische voorwaarden die van toepassing zijn op Azure-functies die in bèta of preview zijn of die anders nog niet algemeen beschikbaar zijn.
Schemaoverzicht
Het ASIM DNS-schema vertegenwoordigt de activiteit van het DNS-protocol. Dns-servers en apparaten die DNS-aanvragen verzenden naar een DNS-serverlogboekactiviteit. De activiteit van het DNS-protocol omvat DNS-query's, DNS-serverupdates en DNS-bulkgegevensoverdracht. Omdat het schema protocolactiviteit vertegenwoordigt, wordt het beheerd door RFC's en officieel toegewezen parameterlijsten, waarnaar in dit artikel wordt verwezen, indien van toepassing. Het DNS-schema vertegenwoordigt geen controlegebeurtenissen voor DNS-servers.
De belangrijkste activiteit die door DNS-servers wordt gerapporteerd, is een DNS-query waarvoor het EventType
veld is ingesteld Query
.
De belangrijkste velden in een DNS-gebeurtenis zijn:
DnsQuery, waarmee de domeinnaam wordt gerapporteerd waarvoor de query is uitgegeven.
SrcIpAddr (aliased to IpAddr), dat het IP-adres vertegenwoordigt van waaruit de aanvraag is gegenereerd. DNS-servers bieden doorgaans het veld SrcIpAddr, maar DNS-clients bieden dit veld soms niet en geven alleen het veld SrcHostname op.
EventResultDetails, die rapporteert of de aanvraag is geslaagd en zo niet, waarom.
Indien beschikbaar, dnsResponseName, dat het antwoord bevat dat door de server aan de query is verstrekt. ASIM vereist geen parsering van het antwoord en de indeling ervan varieert tussen bronnen.
Als u dit veld in bronagnostische inhoud wilt gebruiken, zoekt u de inhoud met de
has
ofcontains
operators.
DNS-gebeurtenissen die op het clientapparaat worden verzameld, kunnen ook gebruikers- en procesgegevens bevatten.
Richtlijnen voor het verzamelen van DNS-gebeurtenissen
DNS is een uniek protocol dat een groot aantal computers kan kruisen. Omdat DNS gebruikmaakt van UDP, worden aanvragen en antwoorden losgekoppeld en zijn ze niet rechtstreeks aan elkaar gerelateerd.
In de volgende afbeelding ziet u een vereenvoudigde DNS-aanvraagstroom, inclusief vier segmenten. Een echte aanvraag kan complexer zijn, met meer betrokken segmenten.
Aangezien aanvraag- en antwoordsegmenten niet rechtstreeks met elkaar zijn verbonden in de DNS-aanvraagstroom, kan volledige logboekregistratie leiden tot aanzienlijke duplicatie.
Het meest waardevolle segment dat moet worden vastgelegd, is het antwoord op de client. Het antwoord bevat de domeinnaamquery's, het opzoekresultaat en het IP-adres van de client. Hoewel veel DNS-systemen alleen dit segment registreren, is er waarde in het vastleggen van de andere onderdelen. Een DNS-cachevergiftigingsaanval maakt bijvoorbeeld vaak gebruik van nepreacties van een upstream-server.
Als uw gegevensbron volledige DNS-logboekregistratie ondersteunt en u ervoor hebt gekozen om meerdere segmenten te registreren, past u uw query's aan om duplicatie van gegevens in Microsoft Sentinel te voorkomen.
U kunt uw query bijvoorbeeld wijzigen met de volgende normalisatie:
_Im_Dns | where SrcIpAddr != "127.0.0.1" and EventSubType == "response"
Parsers
Zie het overzicht van ASIM-parsers voor meer informatie over ASIM-parsers.
Out-of-the-box parsers
Als u parsers wilt gebruiken die alle out-of-the-box parsers van ASIM samenvoegen en ervoor zorgen dat uw analyse wordt uitgevoerd op alle geconfigureerde bronnen, gebruikt u de samenvoegingsparser _Im_Dns
als de tabelnaam in uw query.
Raadpleeg voor de lijst met DNS-parsers Microsoft Sentinel out-of-the-box de lijst met ASIM-parsers.
Uw eigen genormaliseerde parsers toevoegen
Bij het implementeren van aangepaste parsers voor het Dns-informatiemodel, noemt u uw KQL-functies met behulp van de indeling vimDns<vendor><Product>
. Raadpleeg het artikel ASIM-parsers beheren voor meer informatie over het toevoegen van uw aangepaste parsers aan de DNS-parser.
Parserparameters filteren
De DNS-parsers ondersteunen filterparameters. Hoewel deze parameters optioneel zijn, kunnen ze de queryprestaties verbeteren.
De volgende filterparameters zijn beschikbaar:
Name | Type | Description |
---|---|---|
begintijd | datetime | Filter alleen DNS-query's die op of na deze tijd zijn uitgevoerd. |
eindtijd | datetime | Filter alleen DNS-query's die op of vóór deze tijd zijn uitgevoerd. |
srcipaddr | tekenreeks | Filter alleen DNS-query's van dit bron-IP-adres. |
domain_has_any | dynamisch/tekenreeks | Filter alleen DNS-query's waarbij de domain (of query ) een van de vermelde domeinnamen heeft, inclusief als onderdeel van het gebeurtenisdomein. De lengte van de lijst is beperkt tot 10.000 items. |
responsecodename | tekenreeks | Filter alleen DNS-query's waarvoor de naam van de antwoordcode overeenkomt met de opgegeven waarde. Bijvoorbeeld: NXDOMAIN |
response_has_ipv4 | tekenreeks | Filter alleen DNS-query's waarin het antwoordveld het opgegeven IP-adres of IP-adresvoorvoegsel bevat. Gebruik deze parameter als u wilt filteren op één IP-adres of voorvoegsel. Resultaten worden niet geretourneerd voor bronnen die geen antwoord geven. |
response_has_any_prefix | dynamisch | Filter alleen DNS-query's waarin het antwoordveld een van de vermelde IP-adressen of IP-adresvoorvoegsels bevat. Voorvoegsels moeten eindigen op een . , bijvoorbeeld: 10.0. . Gebruik deze parameter als u wilt filteren op een lijst met IP-adressen of voorvoegsels. Resultaten worden niet geretourneerd voor bronnen die geen antwoord geven. De lengte van de lijst is beperkt tot 10.000 items. |
eventtype | tekenreeks | Filter alleen DNS-query's van het opgegeven type. Als er geen waarde is opgegeven, worden alleen opzoekquery's geretourneerd. |
Als u bijvoorbeeld alleen DNS-query's van de laatste dag wilt filteren die de domeinnaam niet konden omzetten, gebruikt u:
_Im_Dns (responsecodename = 'NXDOMAIN', starttime = ago(1d), endtime=now())
Als u alleen DNS-query's wilt filteren voor een opgegeven lijst met domeinnamen, gebruikt u:
let torProxies=dynamic(["tor2web.org", "tor2web.com", "torlink.co"]);
_Im_Dns (domain_has_any = torProxies)
Sommige parameters kunnen beide lijst met waarden van het type dynamic
of één tekenreekswaarde accepteren. Als u een letterlijke lijst wilt doorgeven aan parameters die een dynamische waarde verwachten, gebruikt u expliciet een dynamische letterlijke waarde. Bijvoorbeeld: dynamic(['192.168.','10.'])
Genormaliseerde inhoud
Zie dns-querybeveiligingsinhoud voor een volledige lijst met analyseregels die gebruikmaken van genormaliseerde DNS-gebeurtenissen.
Schemadetails
Het DNS-informatiemodel is afgestemd op het OSSEM DNS-entiteitsschema.
Zie de DNS-parameterreferentie voor Internet Assigned Numbers Authority (IANA) voor meer informatie.
Algemene ASIM-velden
Belangrijk
Velden die voor alle schema's gelden, worden uitgebreid beschreven in het artikel Algemene ASIM-velden .
Algemene velden met specifieke richtlijnen
De volgende lijst vermeldt velden met specifieke richtlijnen voor DNS-gebeurtenissen:
Veld | Klas | Type | Beschrijving |
---|---|---|---|
EventType | Verplicht | Enumerated | Geeft de bewerking aan die door de record is gerapporteerd. Voor DNS-records is deze waarde de DNS-op-code. Voorbeeld: Query |
EventSubType | Optioneel | Enumerated | request of response . Voor de meeste bronnen worden alleen de antwoorden geregistreerd en daarom is de waarde vaak reactie. |
EventResultDetails | Verplicht | Enumerated | Voor DNS-gebeurtenissen levert dit veld de DNS-antwoordcode. Opmerkingen: - IANA definieert niet de case voor de waarden, dus analyse moet de case normaliseren. - Als de bron alleen een numerieke antwoordcode en geen antwoordcodenaam biedt, moet de parser een opzoektabel bevatten om deze waarde te verrijken. - Als deze record een aanvraag vertegenwoordigt en geen antwoord, stelt u deze in op N.V. Voorbeeld: NXDOMAIN |
EventSchemaVersion | Verplicht | String | De versie van het schema dat hier wordt beschreven, is 0.1.7. |
EventSchema | Verplicht | String | De naam van het schema dat hier wordt beschreven, is Dns. |
Dvc-velden | - | - | Voor DNS-gebeurtenissen verwijzen apparaatvelden naar het systeem dat de DNS-gebeurtenis rapporteert. |
Alle algemene velden
Velden die in de onderstaande tabel worden weergegeven, zijn gebruikelijk voor alle ASIM-schema's. Elke hierboven opgegeven richtlijn overschrijft de algemene richtlijnen voor het veld. Een veld kan bijvoorbeeld optioneel zijn in het algemeen, maar verplicht voor een specifiek schema. Zie het artikel algemene ASIM-velden voor meer informatie over elk veld.
Klas | Velden |
---|---|
Verplicht | - EventCount - EventStartTime - EventEndTime - EventType - EventResult - EventProduct - EventVendor - EventSchema - EventSchemaVersion - Dvc |
Aanbevolen | - EventResultDetails - EventSeverity - EventUid - DvcIpAddr - DvcHostname - DvcDomain - DvcDomainType - DvcFQDN - DvcId - DvcIdType - DvcAction |
Optioneel | - EventMessage - EventSubType - EventOriginalUid - EventOriginalType - EventOriginalSubType - EventOriginalResultDetails - EventOriginalSeverity - EventProductVersion - EventReportUrl - EventOwner - DvcZone - DvcMacAddr - DvcOs - DvcOsVersion - DvcOriginalAction - DvcInterface - AdditionalFields - DvcDescription - DvcScopeId - DvcScope |
Bronsysteemvelden
Veld | Klas | Type | Description |
---|---|---|---|
Src | Alias | String | Een unieke id van het bronapparaat. Dit veld kan de velden SrcDvcId, SrcHostname of SrcIpAddr aliasen. Voorbeeld: 192.168.12.1 |
SrcIpAddr | Aanbevolen | IP-adres | Het IP-adres van de client die de DNS-aanvraag heeft verzonden. Voor een recursieve DNS-aanvraag is deze waarde doorgaans het rapportageapparaat en in de meeste gevallen ingesteld op 127.0.0.1 . Voorbeeld: 192.168.12.1 |
SrcPortNumber | Optioneel | Geheel getal | Bronpoort van de DNS-query. Voorbeeld: 54312 |
IpAddr | Alias | Alias naar SrcIpAddr | |
SrcGeoCountry | Optioneel | Land/regio | Het land dat is gekoppeld aan het bron-IP-adres. Voorbeeld: USA |
SrcGeoRegion | Optioneel | Regio | De regio die is gekoppeld aan het bron-IP-adres. Voorbeeld: Vermont |
SrcGeoCity | Optioneel | City | De plaats die is gekoppeld aan het bron-IP-adres. Voorbeeld: Burlington |
SrcGeoL dankbaarheid | Optioneel | Breedtegraad | De breedtegraad van de geografische coördinaat die is gekoppeld aan het bron-IP-adres. Voorbeeld: 44.475833 |
SrcGeoLongitude | Optioneel | Lengtegraad | De lengtegraad van de geografische coördinaat die is gekoppeld aan het bron-IP-adres. Voorbeeld: 73.211944 |
SrcRiskLevel | Optioneel | Geheel getal | Het risiconiveau dat aan de bron is gekoppeld. De waarde moet worden aangepast aan een bereik van 0 tot, met 0 voor goedaardig en 100 voor 100 een hoog risico.Voorbeeld: 90 |
SrcOriginalRiskLevel | Optioneel | Geheel getal | Het risiconiveau dat is gekoppeld aan de bron, zoals gerapporteerd door het rapportageapparaat. Voorbeeld: Suspicious |
SrcHostname | Aanbevolen | String | De hostnaam van het bronapparaat, met uitzondering van domeingegevens. Voorbeeld: DESKTOP-1282V4D |
Hostnaam | Alias | Alias naar SrcHostname | |
SrcDomain | Aanbevolen | String | Het domein van het bronapparaat. Voorbeeld: Contoso |
SrcDomainType | Voorwaardelijk | Enumerated | Het type SrcDomain, indien bekend. Mogelijke waarden zijn onder andere: - Windows (zoals: contoso )- FQDN (zoals: microsoft.com )Vereist als SrcDomain wordt gebruikt. |
SrcFQDN | Optioneel | String | De hostnaam van het bronapparaat, inclusief domeingegevens, indien beschikbaar. Opmerking: dit veld ondersteunt zowel de traditionele FQDN-indeling als de Indeling windows-domein\hostnaam. Het veld SrcDomainType weerspiegelt de gebruikte indeling. Voorbeeld: Contoso\DESKTOP-1282V4D |
SrcDvcId | Optioneel | String | De id van het bronapparaat zoals gerapporteerd in de record. Bijvoorbeeld: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
SrcDvcScopeId | Optioneel | String | De bereik-id van het cloudplatform waartoe het apparaat behoort. SrcDvcScopeId wordt toegewezen aan een abonnements-id in Azure en aan een account-id op AWS. |
SrcDvcScope | Optioneel | String | Het cloudplatformbereik waartoe het apparaat behoort. SrcDvcScope wordt toegewezen aan een abonnements-id in Azure en aan een account-id in AWS. |
SrcDvcIdType | Voorwaardelijk | Enumerated | Het type SrcDvcId, indien bekend. Mogelijke waarden zijn onder andere: - AzureResourceId - MDEid Als er meerdere id's beschikbaar zijn, gebruikt u de eerste id uit de lijst en slaat u de andere id's op in respectievelijk de SrcDvcAzureResourceId en SrcDvcMDEid. Opmerking: dit veld is vereist als SrcDvcId wordt gebruikt. |
SrcDeviceType | Optioneel | Enumerated | Het type bronapparaat. Mogelijke waarden zijn onder andere: - Computer - Mobile Device - IOT Device - Other |
SrcDescription | Optioneel | String | Een beschrijvende tekst die aan het apparaat is gekoppeld. Voorbeeld: Primary Domain Controller . |
Brongebruikersvelden
Veld | Klas | Type | Description |
---|---|---|---|
SrcUserId | Optioneel | String | Een machineleesbare, alfanumerieke, unieke weergave van de brongebruiker. Zie de entiteit Gebruiker voor meer informatie en voor alternatieve velden voor aanvullende id's. Voorbeeld: S-1-12-1-4141952679-1282074057-627758481-2916039507 |
SrcUserScope | Optioneel | String | Het bereik, zoals Microsoft Entra-tenant, waarin SrcUserId en SrcUsername worden gedefinieerd. of meer informatie en lijst met toegestane waarden, zie UserScope in het artikel Schemaoverzicht. |
SrcUserScopeId | Optioneel | String | De bereik-id, zoals Microsoft Entra Directory-id, waarin SrcUserId en SrcUsername worden gedefinieerd. Zie UserScopeId in het artikel Schemaoverzicht voor meer informatie en een lijst met toegestane waarden. |
SrcUserIdType | Voorwaardelijk | UserIdType | Het type id dat is opgeslagen in het veld SrcUserId . Zie UserIdType in het artikel Schemaoverzicht voor meer informatie en een lijst met toegestane waarden. |
SrcUsername | Optioneel | Username | De gebruikersnaam van de bron, inclusief domeingegevens, indien beschikbaar. Zie De entiteit Gebruiker voor meer informatie. Voorbeeld: AlbertE |
SrcUsernameType | Voorwaardelijk | UsernameType | Hiermee geeft u het type van de gebruikersnaam op die is opgeslagen in het veld SrcUsername . Zie UsernameType in het artikel Schemaoverzicht voor meer informatie en een lijst met toegestane waarden. Voorbeeld: Windows |
Gebruiker | Alias | Alias naar SrcUsername | |
SrcUserType | Optioneel | UserType | Het type brongebruiker. Zie UserType in het artikel Schemaoverzicht voor meer informatie en een lijst met toegestane waarden. Bijvoorbeeld: Guest |
SrcUserSessionId | Optioneel | String | De unieke id van de aanmeldingssessie van de actor. Voorbeeld: 102pTUgC3p8RIqHvzxLCHnFlg |
SrcOriginalUserType | Optioneel | String | Het oorspronkelijke type brongebruiker, indien opgegeven door de bron. |
Bronprocesvelden
Veld | Klas | Type | Description |
---|---|---|---|
SrcProcessName | Optioneel | String | De bestandsnaam van het proces waarmee de DNS-aanvraag is gestart. Deze naam wordt doorgaans beschouwd als de procesnaam. Voorbeeld: C:\Windows\explorer.exe |
Verwerken | Alias | Alias naar de SrcProcessName Voorbeeld: C:\Windows\System32\rundll32.exe |
|
SrcProcessId | Optioneel | String | De proces-id (PID) van het proces dat de DNS-aanvraag heeft gestart. Voorbeeld: 48610176 Opmerking: Het type wordt gedefinieerd als tekenreeks ter ondersteuning van verschillende systemen, maar in Windows en Linux moet deze waarde numeriek zijn. Als u een Windows- of Linux-computer gebruikt en een ander type gebruikt, moet u de waarden converteren. Als u bijvoorbeeld een hexadecimale waarde hebt gebruikt, converteert u deze naar een decimale waarde. |
SrcProcessGuid | Optioneel | String | Een gegenereerde unieke id (GUID) van het proces dat de DNS-aanvraag heeft gestart. Voorbeeld: EF3BD0BD-2B74-60C5-AF5C-010000001E00 |
Doelsysteemvelden
Veld | Klas | Type | Description |
---|---|---|---|
Dst | Alias | String | Een unieke id van de server die de DNS-aanvraag heeft ontvangen. Dit veld kan de velden DstDvcId, DstHostname of DstIpAddr aliasen. Voorbeeld: 192.168.12.1 |
DstIpAddr | Optioneel | IP-adres | Het IP-adres van de server die de DNS-aanvraag heeft ontvangen. Voor een reguliere DNS-aanvraag is deze waarde doorgaans het rapportageapparaat en in de meeste gevallen ingesteld op 127.0.0.1 .Voorbeeld: 127.0.0.1 |
DstGeoCountry | Optioneel | Land/regio | Het land dat is gekoppeld aan het doel-IP-adres. Zie Logische typen voor meer informatie. Voorbeeld: USA |
DstGeoRegion | Optioneel | Regio | De regio of status die is gekoppeld aan het doel-IP-adres. Zie Logische typen voor meer informatie. Voorbeeld: Vermont |
DstGeoCity | Optioneel | City | De plaats die is gekoppeld aan het doel-IP-adres. Zie Logische typen voor meer informatie. Voorbeeld: Burlington |
DstGeoL dankbaarheid | Optioneel | Breedtegraad | De breedtegraad van de geografische coördinaat die is gekoppeld aan het doel-IP-adres. Zie Logische typen voor meer informatie. Voorbeeld: 44.475833 |
DstGeoLongitude | Optioneel | Lengtegraad | De lengtegraad van de geografische coördinaat die is gekoppeld aan het doel-IP-adres. Zie Logische typen voor meer informatie. Voorbeeld: 73.211944 |
DstRiskLevel | Optioneel | Geheel getal | Het risiconiveau dat aan de bestemming is gekoppeld. De waarde moet worden aangepast aan een bereik van 0 tot 100, dat 0 goedaardig is en 100 een hoog risico is. Voorbeeld: 90 |
DstOriginalRiskLevel | Optioneel | Geheel getal | Het risiconiveau dat aan de bestemming is gekoppeld, zoals gerapporteerd door het rapportageapparaat. Voorbeeld: Malicious |
DstPortNumber | Optioneel | Geheel getal | Doelpoortnummer. Voorbeeld: 53 |
DstHostname | Optioneel | String | De hostnaam van het doelapparaat, met uitzondering van domeingegevens. Als er geen apparaatnaam beschikbaar is, slaat u het relevante IP-adres op in dit veld. Voorbeeld: DESKTOP-1282V4D Opmerking: deze waarde is verplicht als DstIpAddr is opgegeven. |
DstDomain | Optioneel | String | Het domein van het doelapparaat. Voorbeeld: Contoso |
DstDomainType | Voorwaardelijk | Enumerated | Het type DstDomain, indien bekend. Mogelijke waarden zijn onder andere: - Windows (contoso\mypc) - FQDN (learn.microsoft.com) Vereist als DstDomain wordt gebruikt. |
DstFQDN | Optioneel | String | De hostnaam van het doelapparaat, inclusief domeingegevens, indien beschikbaar. Voorbeeld: Contoso\DESKTOP-1282V4D Opmerking: dit veld ondersteunt zowel de traditionele FQDN-indeling als de Indeling windows-domein\hostnaam. Het DstDomainType weerspiegelt de gebruikte indeling. |
DstDvcId | Optioneel | String | De id van het doelapparaat zoals gerapporteerd in de record. Voorbeeld: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
DstDvcScopeId | Optioneel | String | De bereik-id van het cloudplatform waartoe het apparaat behoort. DstDvcScopeId wordt toegewezen aan een abonnements-id in Azure en aan een account-id op AWS. |
DstDvcScope | Optioneel | String | Het cloudplatformbereik waartoe het apparaat behoort. DstDvcScope wordt toegewezen aan een abonnements-id in Azure en aan een account-id op AWS. |
DstDvcIdType | Voorwaardelijk | Enumerated | Het type DstDvcId, indien bekend. Mogelijke waarden zijn onder andere: - AzureResourceId - MDEidIf Als er meerdere id's beschikbaar zijn, gebruikt u de eerste id uit de bovenstaande lijst en slaat u de andere id's op in respectievelijk de velden DstDvcAzureResourceId of DstDvcMDEid . Vereist als DstDeviceId wordt gebruikt. |
DstDeviceType | Optioneel | Enumerated | Het type van het doelapparaat. Mogelijke waarden zijn onder andere: - Computer - Mobile Device - IOT Device - Other |
DstDescription | Optioneel | String | Een beschrijvende tekst die aan het apparaat is gekoppeld. Voorbeeld: Primary Domain Controller . |
DNS-specifieke velden
Veld | Klas | Type | Description |
---|---|---|---|
DnsQuery | Verplicht | String | Het domein dat de aanvraag probeert op te lossen. Opmerkingen: - Sommige bronnen verzenden geldige FQDN-query's in een andere indeling. In het DNS-protocol zelf bevat de query bijvoorbeeld een punt (.) aan het einde, die moet worden verwijderd. - Hoewel het DNS-protocol het type waarde in dit veld beperkt tot een FQDN, staan de meeste DNS-servers elke waarde toe en dit veld is daarom niet beperkt tot FQDN-waarden. Met name dns-tunnelingaanvallen kunnen ongeldige FQDN-waarden in het queryveld gebruiken. - Hoewel het DNS-protocol meerdere query's in één aanvraag toestaat, is dit scenario zeldzaam, als het helemaal niet wordt gevonden. Als de aanvraag meerdere query's heeft, slaat u de eerste op in dit veld en houdt u de rest optioneel in het veld AdditionalFields . Voorbeeld: www.malicious.com |
Domein | Alias | Alias naar DnsQuery. | |
DnsQueryType | Optioneel | Geheel getal | De codes voor het type DNS-bronrecord. Voorbeeld: 28 |
DnsQueryTypeName | Aanbevolen | Enumerated | De namen van het type DNS-resourcerecord. Opmerkingen: - IANA definieert niet de case voor de waarden, dus analyse moet het hoofdlettergebruik normaliseren als dat nodig is. - De waarde ANY wordt ondersteund voor de antwoordcode 255.- De waarde TYPExxxx wordt ondersteund voor niet-toegewezen antwoordcodes, waarbij xxxx de numerieke waarde van de antwoordcode is, zoals gerapporteerd door de BIND DNS-server.-Als de bron alleen een numerieke querytypecode en geen naam van het querytype bevat, moet de parser een opzoektabel bevatten om deze waarde te verrijken. Voorbeeld: AAAA |
DnsResponseName | Optioneel | String | De inhoud van het antwoord, zoals opgenomen in de record. De DNS-antwoordgegevens zijn inconsistent voor rapportageapparaten, zijn complex om te parseren en hebben minder waarde voor bronagnostische analyses. Daarom vereist het informatiemodel geen parsering en normalisatie, en Microsoft Sentinel gebruikt een hulpfunctie om antwoordinformatie te verstrekken. Zie Dns-antwoord verwerken voor meer informatie. |
DnsResponseCodeName | Alias | Alias naar EventResultDetails | |
DnsResponseCode | Optioneel | Geheel getal | De numerieke DNS-antwoordcode. Voorbeeld: 3 |
TransactionIdHex | Aanbevolen | String | De unieke ID van de DNS-query zoals toegewezen door de DNS-client, in hexadecimale indeling. Houd er rekening mee dat deze waarde deel uitmaakt van het DNS-protocol en verschilt van DnsSessionId, de sessie-id van de netwerklaag, meestal toegewezen door het rapportageapparaat. |
NetworkProtocol | Optioneel | Enumerated | Het transportprotocol dat wordt gebruikt door de netwerkomzettings gebeurtenis. De waarde kan UDP of TCP zijn en wordt meestal ingesteld op UDP voor DNS. Voorbeeld: UDP |
NetworkProtocolVersion | Optioneel | Enumerated | De versie van NetworkProtocol. Wanneer u deze gebruikt om onderscheid te maken tussen IP-versie, gebruikt u de waarden IPv4 en IPv6 . |
DnsQueryClass | Optioneel | Geheel getal | De DNS-klasse-id. In de praktijk wordt alleen de IN-klasse (ID 1) gebruikt en daarom is dit veld minder waardevol. |
DnsQueryClassName | Optioneel | String | De naam van de DNS-klasse. In de praktijk wordt alleen de IN-klasse (ID 1) gebruikt en daarom is dit veld minder waardevol. Voorbeeld: IN |
DnsFlags | Optioneel | String | Het vlagveld, zoals opgegeven door het rapportageapparaat. Als er vlaggegevens worden opgegeven in meerdere velden, voegt u deze samen met komma's als scheidingsteken. Omdat DNS-vlaggen complex zijn om te parseren en minder vaak worden gebruikt door analyses, parseren en normalisatie zijn niet vereist. Microsoft Sentinel kan een hulpfunctie gebruiken om informatie over vlaggen te verstrekken. Zie Dns-antwoord verwerken voor meer informatie. Voorbeeld: ["DR"] |
DnsNetworkDuration | Optioneel | Geheel getal | De hoeveelheid tijd, in milliseconden, voor het voltooien van de DNS-aanvraag. Voorbeeld: 1500 |
Duur | Alias | Alias naar DnsNetworkDuration | |
DnsFlagsAuthenticated | Optioneel | Booleaanse waarde | De DNS-vlag AD , die is gerelateerd aan DNSSEC, geeft aan in een antwoord dat alle gegevens die zijn opgenomen in de antwoord- en instantiesecties van het antwoord zijn geverifieerd door de server volgens het beleid van die server. Zie RFC 3655 Section 6.1 voor meer informatie. |
DnsFlagsAuthoritative | Optioneel | Booleaanse waarde | De DNS-vlag AA geeft aan of het antwoord van de server gezaghebbend is |
DnsFlagsCheckingDisabled | Optioneel | Booleaanse waarde | De DNS-vlag CD , die is gerelateerd aan DNSSEC, geeft aan in een query dat niet-geverifieerde gegevens acceptabel zijn voor het systeem dat de query verzendt. Zie RFC 3655 Section 6.1 voor meer informatie. |
DnsFlagsRecursionAvailable | Optioneel | Booleaanse waarde | De DNS-vlag RA geeft aan in een antwoord dat de server recursieve query's ondersteunt. |
DnsFlagsRecursionDesired | Optioneel | Booleaanse waarde | De DNS-vlag RD geeft aan in een aanvraag dat de client wilt dat de server recursieve query's gebruikt. |
DnsFlagsTruncated | Optioneel | Booleaanse waarde | De DNS-vlag TC geeft aan dat een antwoord is afgekapt omdat het de maximale antwoordgrootte heeft overschreden. |
DnsFlagsZ | Optioneel | Booleaanse waarde | De DNS-vlag is een afgeschafte DNS-vlag Z , die kan worden gerapporteerd door oudere DNS-systemen. |
DnsSessionId | Optioneel | tekenreeks | De DNS-sessie-id zoals gerapporteerd door het rapportageapparaat. Deze waarde verschilt van TransactionIdHex, de unieke ID van de DNS-query zoals toegewezen door de DNS-client. Voorbeeld: EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55 |
SessionId | Alias | Alias naar DnsSessionId | |
DnsResponseIpCountry | Optioneel | Land/regio | Het land dat is gekoppeld aan een van de IP-adressen in het DNS-antwoord. Zie Logische typen voor meer informatie. Voorbeeld: USA |
DnsResponseIpRegion | Optioneel | Regio | De regio of status die is gekoppeld aan een van de IP-adressen in het DNS-antwoord. Zie Logische typen voor meer informatie. Voorbeeld: Vermont |
DnsResponseIpCity | Optioneel | City | De plaats die is gekoppeld aan een van de IP-adressen in het DNS-antwoord. Zie Logische typen voor meer informatie. Voorbeeld: Burlington |
DnsResponseIpL-dankbaarheid | Optioneel | Breedtegraad | De breedtegraad van de geografische coördinaat die is gekoppeld aan een van de IP-adressen in het DNS-antwoord. Zie Logische typen voor meer informatie. Voorbeeld: 44.475833 |
DnsResponseIpLongitude | Optioneel | Lengtegraad | De lengtegraad van de geografische coördinaat die is gekoppeld aan een van de IP-adressen in het DNS-antwoord. Zie Logische typen voor meer informatie. Voorbeeld: 73.211944 |
Inspectievelden
De volgende velden worden gebruikt om een inspectie weer te geven die door een DNS-beveiligingsapparaat wordt uitgevoerd. De bedreigingsgerelateerde velden vertegenwoordigen één bedreiging die is gekoppeld aan het bronadres, het doeladres, een van de IP-adressen in het antwoord of het DNS-querydomein. Als meer dan één bedreiging is geïdentificeerd als een bedreiging, kunnen gegevens over andere IP-adressen in het veld AdditionalFields
worden opgeslagen.
Veld | Klas | Type | Description |
---|---|---|---|
UrlCategory | Optioneel | String | Een DNS-gebeurtenisbron kan ook de categorie van de aangevraagde domeinen opzoeken. Het veld heet UrlCategory om af te stemmen op het netwerkschema van Microsoft Sentinel. DomainCategory wordt toegevoegd als een alias die past bij DNS. Voorbeeld: Educational \\ Phishing |
DomainCategory | Alias | Alias naar UrlCategory. | |
NetworkRuleName | Optioneel | String | De naam of id van de regel die de bedreiging heeft geïdentificeerd. Voorbeeld: AnyAnyDrop |
NetworkRuleNumber | Optioneel | Geheel getal | Het nummer van de regel waarmee de bedreiging is geïdentificeerd. Voorbeeld: 23 |
Regel | Alias | String | De waarde van NetworkRuleName of de waarde van NetworkRuleNumber. Als de waarde van NetworkRuleNumber wordt gebruikt, moet het type worden geconverteerd naar tekenreeks. |
ThreatId | Optioneel | String | De id van de bedreiging of malware die is geïdentificeerd in de netwerksessie. Voorbeeld: Tr.124 |
ThreatCategory | Optioneel | String | Als een DNS-gebeurtenisbron ook DNS-beveiliging biedt, kan deze ook de DNS-gebeurtenis evalueren. Het kan bijvoorbeeld zoeken naar het IP-adres of domein in een bedreigingsinformatiedatabase en het domein of IP-adres toewijzen aan een bedreigingscategorie. |
ThreatIpAddr | Optioneel | IP-adres | Een IP-adres waarvoor een bedreiging is geïdentificeerd. Het veld ThreatField bevat de naam van het veld ThreatIpAddr . Als een bedreiging wordt geïdentificeerd in het veld Domein , moet dit veld leeg zijn. |
ThreatField | Voorwaardelijk | Enumerated | Het veld waarvoor een bedreiging is geïdentificeerd. De waarde is SrcIpAddr ofwel , DstIpAddr of Domain DnsResponseName . |
ThreatName | Optioneel | String | De naam van de bedreiging die is geïdentificeerd, zoals gerapporteerd door het rapportageapparaat. |
ThreatConfidence | Optioneel | Geheel getal | Het betrouwbaarheidsniveau van de geïdentificeerde bedreiging, genormaliseerd tot een waarde tussen 0 en 100. |
ThreatOriginalConfidence | Optioneel | String | Het oorspronkelijke betrouwbaarheidsniveau van de geïdentificeerde bedreiging, zoals gerapporteerd door het rapportageapparaat. |
ThreatRiskLevel | Optioneel | Geheel getal | Het risiconiveau dat is gekoppeld aan de geïdentificeerde bedreiging, genormaliseerd tot een waarde tussen 0 en 100. |
ThreatOriginalRiskLevel | Optioneel | String | Het oorspronkelijke risiconiveau dat is gekoppeld aan de geïdentificeerde bedreiging, zoals gerapporteerd door het rapportageapparaat. |
ThreatIsActive | Optioneel | Booleaanse waarde | Waar als de geïdentificeerde bedreiging wordt beschouwd als een actieve bedreiging. |
ThreatFirstReportedTime | Optioneel | datetime | De eerste keer dat het IP-adres of domein als een bedreiging is geïdentificeerd. |
ThreatLastReportedTime | Optioneel | datetime | De laatste keer dat het IP-adres of domein is geïdentificeerd als een bedreiging. |
Afgeschafte aliassen en velden
De volgende velden zijn aliassen die worden onderhouden voor compatibiliteit met eerdere versies. Ze zijn verwijderd uit het schema op 31 december 2021.
Query
(alias naarDnsQuery
)QueryType
(alias naarDnsQueryType
)QueryTypeName
(alias naarDnsQueryTypeName
)ResponseName
(alias naarDnsReasponseName
)ResponseCodeName
(alias naarDnsResponseCodeName
)ResponseCode
(alias naarDnsResponseCode
)QueryClass
(alias naarDnsQueryClass
)QueryClassName
(alias naarDnsQueryClassName
)Flags
(alias naarDnsFlags
)SrcUserDomain
Schema-updates
De wijzigingen in versie 0.1.2 van het schema zijn:
- Het veld
EventSchema
is toegevoegd. - Toegewezen vlagveld toegevoegd, waarmee het gecombineerde veld Vlaggen wordt vergroot:
DnsFlagsAuthoritative
, ,DnsFlagsCheckingDisabled
DnsFlagsRecursionAvailable
,DnsFlagsRecursionDesired
, ,DnsFlagsTruncated
enDnsFlagsZ
.
De wijzigingen in versie 0.1.3 van het schema zijn:
- Het schema bevat nu expliciet documenten
Src*
enDst*
Process*
User*
velden. - Er zijn meer
Dvc*
velden toegevoegd die overeenkomen met de meest recente definitie van algemene velden. - Toegevoegd
Src
enDst
als aliassen aan een toonaangevende id voor de bron- en doelsystemen. - Er is optioneel
DnsNetworkDuration
een alias aan toegevoegd enDuration
er is een alias aan toegevoegd. - Optionele velden geografische locatie en risiconiveau toegevoegd.
De wijzigingen in versie 0.1.4 van het schema zijn:
- De optionele velden
ThreatIpAddr
,ThreatField
, ,ThreatName
,ThreatConfidence
,ThreatOriginalConfidence
,ThreatOriginalRiskLevel
, ,ThreatIsActive
en .ThreatFirstReportedTime
ThreatLastReportedTime
De wijzigingen in versie 0.1.5 van het schema zijn:
- De velden
SrcUserScope
,SrcUserSessionId
, ,SrcDvcScopeId
,SrcDvcScope
,DstDvcScopeId
, ,DstDvcScope
, enDvcScopeId
.DvcScope
De wijzigingen in versie 0.1.6 van het schema zijn:
- De velden
DnsResponseIpCountry
, , ,DnsResponseIpCity
enDnsResponseIpLatitude
DnsResponseIpLongitude
DnsResponseIpRegion
.
De wijzigingen in versie 0.1.7 van het schema zijn:
- De velden
SrcDescription
, , ,DstDescription
,DstOriginalRiskLevel
,SrcUserScopeId
, ,NetworkProtocolVersion
,Rule
,RuleName
, , enRuleNumber
.ThreatId
SrcOriginalRiskLevel
Bronspecifieke verschillen
Het doel van normaliseren is ervoor te zorgen dat alle bronnen consistente telemetrie bieden. Een bron die niet de vereiste telemetrie levert, zoals verplichte schemavelden, kan niet worden genormaliseerd. Bronnen die doorgaans alle vereiste telemetrie leveren, zelfs als er enkele discrepanties zijn, kunnen echter worden genormaliseerd. Verschillen kunnen van invloed zijn op de volledigheid van queryresultaten.
De volgende tabel bevat bekende discrepanties:
Bron | Verschillen |
---|---|
Microsoft DNS-server verzameld met behulp van de DNS-connector en de Log Analytics-agent | De connector biedt niet het verplichte DnsQuery-veld voor de oorspronkelijke gebeurtenis-id 264 (reactie op een dynamische update). De gegevens zijn beschikbaar in de bron, maar worden niet doorgestuurd door de connector. |
Corelight Zeek | Corelight Zeek kan het verplichte DnsQuery-veld niet opgeven. We hebben dit gedrag waargenomen in bepaalde gevallen waarin de naam van de DNS-antwoordcode is NXDOMAIN . |
DNS-antwoord verwerken
In de meeste gevallen bevatten vastgelegde DNS-gebeurtenissen geen antwoordgegevens, die mogelijk groot en gedetailleerd zijn. Als uw record meer antwoordgegevens bevat, slaat u deze op in het veld ResponseName zoals deze wordt weergegeven in de record.
U kunt ook een extra KQL-functie _imDNS<vendor>Response_
opgeven die het niet-geparseerde antwoord als invoer gebruikt en dynamische waarde retourneert met de volgende structuur:
[
{
"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"
}
...
]
De velden in elke woordenlijst in de dynamische waarde komen overeen met de velden in elk DNS-antwoord. De part
vermelding moet ofwel answer
, authority
of additional
om het deel weer te geven in het antwoord waartoe de woordenlijst behoort.
Tip
Om optimale prestaties te garanderen, roept u de imDNS<vendor>Response
functie alleen aan wanneer dat nodig is en pas na een eerste filter om betere prestaties te garanderen.
DNS-vlaggen verwerken
Parseren en normaliseren zijn niet vereist voor vlaggegevens. Sla in plaats daarvan de vlaggegevens op die worden geleverd door het rapportageapparaat in het veld Vlaggen . Als u de waarde van afzonderlijke vlaggen rechtstreeks bepaalt, kunt u ook de velden toegewezen vlaggen gebruiken.
U kunt ook een extra KQL-functie _imDNS<vendor>Flags_
opgeven die het niet-geparseerde antwoord gebruikt, of toegewezen vlagvelden, als invoer en een dynamische lijst retourneert, met Booleaanse waarden die elke vlag in de volgende volgorde vertegenwoordigen:
- Geverifieerd (AD)
- Gezaghebbend (AA)
- Uitgeschakeld controleren (CD)
- Recursie beschikbaar (RA)
- Recursie Desired (RD)
- Afgekapt (TC)
- Z
Volgende stappen
Zie voor meer informatie: