Dokumentacja schematu normalizacji DNS w modelu zaawansowanego zabezpieczeń zabezpieczeń (ASIM) (publiczna wersja zapoznawcza)
Model informacji DNS służy do opisywania zdarzeń zgłaszanych przez serwer DNS lub system zabezpieczeń DNS i jest używany przez usługę Microsoft Sentinel do włączania analizy niezależnej od źródła.
Aby uzyskać więcej informacji, zobacz Normalizacja i Model zaawansowanych informacji o zabezpieczeniach (ASIM) .
Ważne
Schemat normalizacji DNS jest obecnie w wersji zapoznawczej. Ta funkcja jest udostępniana bez umowy dotyczącej poziomu usług i nie jest zalecana w przypadku obciążeń produkcyjnych.
Dodatkowe postanowienia dotyczące wersji zapoznawczej platformy Azure obejmują dodatkowe postanowienia prawne dotyczące funkcji platformy Azure, które są dostępne w wersji beta, wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej.
Przegląd schematu
Schemat DNS ASIM reprezentuje działanie protokołu DNS. Zarówno serwery DNS, jak i urządzenia wysyłające żądania DNS do aktywności DNS dziennika serwera DNS. Działanie protokołu DNS obejmuje zapytania DNS, aktualizacje serwera DNS i zbiorcze transfery danych DNS. Ponieważ schemat reprezentuje działanie protokołu, jest on zarządzany przez RFC i oficjalnie przypisane listy parametrów, które są przywołyane w tym artykule, jeśli jest to konieczne. Schemat DNS nie reprezentuje zdarzeń inspekcji serwera DNS.
Najważniejszym działaniem zgłaszanym przez serwery DNS jest zapytanie DNS, dla którego EventType
pole jest ustawione na Query
wartość .
Najważniejsze pola w zdarzeniu DNS to:
DnsQuery, który zgłasza nazwę domeny, dla której zostało wystawione zapytanie.
SrcIpAddr (aliased to IpAddr), który reprezentuje adres IP, z którego wygenerowano żądanie. Serwery DNS zazwyczaj udostępniają pole SrcIpAddr, ale klienci DNS czasami nie udostępniają tego pola i udostępniają tylko pole SrcHostname .
EventResultDetails, który zgłasza, czy żądanie zakończyło się pomyślnie, a jeśli nie, dlaczego.
Jeśli jest dostępna, DnsResponseName, która przechowuje odpowiedź dostarczoną przez serwer do zapytania. Usługa ASIM nie wymaga analizowania odpowiedzi, a jego format różni się między źródłami.
Aby użyć tego pola w zawartości niezależnej od źródła, wyszukaj zawartość za
has
pomocą operatorów lubcontains
.
Zdarzenia DNS zebrane na urządzeniu klienckim mogą również zawierać informacje o użytkowniku i procesie .
Wskazówki dotyczące zbierania zdarzeń DNS
DNS jest unikatowym protokołem, który może przekraczać dużą liczbę komputerów. Ponadto, ponieważ usługa DNS używa protokołu UDP, żądania i odpowiedzi są de-sprzężone i nie są bezpośrednio powiązane ze sobą.
Na poniższej ilustracji przedstawiono uproszczony przepływ żądań DNS, w tym cztery segmenty. Rzeczywiste żądanie może być bardziej złożone, przy użyciu większej liczby segmentów.
Ponieważ segmenty żądań i odpowiedzi nie są bezpośrednio połączone ze sobą w przepływie żądań DNS, pełne rejestrowanie może spowodować znaczne duplikowanie.
Najbardziej cenną segmentem do zarejestrowania jest odpowiedź na klienta. Odpowiedź zawiera zapytania o nazwę domeny, wynik wyszukiwania i adres IP klienta. Chociaż wiele systemów DNS rejestruje tylko ten segment, istnieje wartość rejestrowania innych części. Na przykład atak zatrucia pamięcią podręczną DNS często wykorzystuje fałszywe odpowiedzi z nadrzędnego serwera.
Jeśli źródło danych obsługuje pełne rejestrowanie DNS i wybrano rejestrowanie wielu segmentów, dostosuj zapytania, aby zapobiec duplikowaniu danych w usłudze Microsoft Sentinel.
Możesz na przykład zmodyfikować zapytanie przy użyciu następującej normalizacji:
_Im_Dns | where SrcIpAddr != "127.0.0.1" and EventSubType == "response"
Parsery
Aby uzyskać więcej informacji na temat analizatorów ASIM, zobacz omówienie analizatorów ASIM.
Analizatory gotowe do użycia
Aby użyć analizatorów, które ujednolicają wszystkie gotowe analizatory ASIM i upewnij się, że analiza jest uruchamiana we wszystkich skonfigurowanych źródłach, użyj analizatora jednofikującego _Im_Dns
jako nazwy tabeli w zapytaniu.
Aby uzyskać listę analizatorów DNS, usługa Microsoft Sentinel udostępnia gotowe do użycia, zapoznaj się z listą analizatorów ASIM.
Dodawanie własnych znormalizowanych analizatorów
Podczas implementowania niestandardowych analizatorów dla modelu informacji DNS nazwij funkcje KQL przy użyciu formatu vimDns<vendor><Product>
. Zapoznaj się z artykułem Zarządzanie analizatorami ASIM, aby dowiedzieć się, jak dodać analizatory niestandardowe do analizatora ujednolicania DNS.
Parametry analizatora filtrowania
Analizatory DNS obsługują parametry filtrowania. Chociaż te parametry są opcjonalne, mogą zwiększyć wydajność zapytań.
Dostępne są następujące parametry filtrowania:
Nazwisko | Pisz | Opis |
---|---|---|
godzina rozpoczęcia | datetime | Filtruj tylko zapytania DNS uruchamiane w czasie lub po tym czasie. |
godzina zakończenia | datetime | Filtruj tylko zapytania DNS, które zakończyły działanie w lub przed tym razem. |
srcipaddr | string | Filtruj tylko zapytania DNS z tego źródłowego adresu IP. |
domain_has_any | dynamic/string | Filtruj tylko zapytania DNS, w których domain element (lub query ) ma dowolną z wymienionych nazw domen, w tym jako część domeny zdarzeń. Długość listy jest ograniczona do 10 000 elementów. |
nazwa kodu odpowiedzi | string | Filtruj tylko zapytania DNS, dla których nazwa kodu odpowiedzi jest zgodna z podaną wartością. Na przykład: NXDOMAIN . |
response_has_ipv4 | string | Filtruj tylko zapytania DNS, w których pole odpowiedzi zawiera podany adres IP lub prefiks adresu IP. Użyj tego parametru, jeśli chcesz filtrować według pojedynczego adresu IP lub prefiksu. Wyniki nie są zwracane dla źródeł, które nie zapewniają odpowiedzi. |
response_has_any_prefix | dynamiczna | Filtruj tylko zapytania DNS, w których pole odpowiedzi zawiera dowolne z wymienionych adresów IP lub prefiksów adresów IP. Prefiksy powinny kończyć się elementem . , na przykład : 10.0. . Użyj tego parametru, jeśli chcesz filtrować na liście adresów IP lub prefiksów. Wyniki nie są zwracane dla źródeł, które nie zapewniają odpowiedzi. Długość listy jest ograniczona do 10 000 elementów. |
typ zdarzenia | string | Filtruj tylko zapytania DNS określonego typu. Jeśli żadna wartość nie zostanie określona, zwracane są tylko zapytania odnośników. |
Aby na przykład filtrować tylko zapytania DNS z ostatniego dnia, którego nie udało się rozpoznać nazwy domeny, użyj:
_Im_Dns (responsecodename = 'NXDOMAIN', starttime = ago(1d), endtime=now())
Aby filtrować tylko zapytania DNS dla określonej listy nazw domen, użyj:
let torProxies=dynamic(["tor2web.org", "tor2web.com", "torlink.co"]);
_Im_Dns (domain_has_any = torProxies)
Niektóre parametry mogą akceptować zarówno listę wartości typu dynamic
, jak i pojedynczego ciągu. Aby przekazać listę literałów do parametrów, które oczekują wartości dynamicznej, jawnie użyj literału dynamicznego. Na przykład: dynamic(['192.168.','10.'])
.
Znormalizowana zawartość
Aby uzyskać pełną listę reguł analizy korzystających z znormalizowanych zdarzeń DNS, zobacz Zawartość zabezpieczeń zapytań DNS.
Szczegóły schematu
Model informacji DNS jest zgodny ze schematem jednostki DNS OSSEM.
Aby uzyskać więcej informacji, zobacz dokumentacja parametrów DNS urzędu IANA (Internet Assigned Numbers Authority).
Typowe pola karty ASIM
Ważne
Pola wspólne dla wszystkich schematów zostały szczegółowo opisane w artykule ASIM Common Fields (Wspólne pola karty ASIM).
Typowe pola z określonymi wytycznymi
Na poniższej liście wymieniono pola, które mają określone wytyczne dotyczące zdarzeń DNS:
Pole | Klasa | Type | Opis |
---|---|---|---|
EventType | Obowiązkowy | Enumerated | Wskazuje operację zgłoszoną przez rekord. W przypadku rekordów DNS ta wartość będzie kodem operacji DNS. Przykład: Query |
EventSubType | Opcjonalnie | Enumerated | request lub response . W przypadku większości źródeł rejestrowane są tylko odpowiedzi, dlatego wartość jest często odpowiedzią. |
EventResultDetails | Obowiązkowy | Enumerated | W przypadku zdarzeń DNS to pole zawiera kod odpowiedzi DNS. Uwagi: — IANA nie definiuje przypadku wartości, więc analiza musi znormalizować wielkość liter. — Jeśli źródło zawiera tylko kod odpowiedzi liczbowej, a nie nazwę kodu odpowiedzi, analizator musi zawierać tabelę odnośników, aby wzbogacić tę wartość. — Jeśli ten rekord reprezentuje żądanie, a nie odpowiedź, ustaw wartość NA. Przykład: NXDOMAIN |
EventSchemaVersion | Obowiązkowy | String | Wersja schematu udokumentowanego tutaj to 0.1.7. |
EventSchema | Obowiązkowy | String | Nazwa schematu udokumentowanego tutaj to Dns. |
Pola dvc | - | - | W przypadku zdarzeń DNS pola urządzeń odwołują się do systemu, który zgłasza zdarzenie DNS. |
Wszystkie typowe pola
Pola wyświetlane w poniższej tabeli są wspólne dla wszystkich schematów ASIM. Wszelkie wytyczne określone powyżej zastępują ogólne wytyczne dotyczące pola. Na przykład pole może być ogólnie opcjonalne, ale obowiązkowe dla określonego schematu. Aby uzyskać więcej informacji na temat każdego pola, zobacz artykuł Common Fields ( Wspólne pola karty ASIM).
Klasa | Pola |
---|---|
Obowiązkowy | - EventCount - EventStartTime - EventEndTime - EventType - EventResult - EventProduct - EventVendor - EventSchema - EventSchemaVersion - Dvc |
Zalecane | - EventResultDetails - EventSeverity - Identyfikator zdarzenia - DvcIpAddr - DvcHostname - DvcDomain - DvcDomainType - DvcFQDN - DvcId - DvcIdType - DvcAction |
Opcjonalnie | - EventMessage - EventSubType - EventOriginalUid - EventOriginalType - EventOriginalSubType - EventOriginalResultDetails - EventOriginalSeverity - EventProductVersion - EventReportUrl - Właściciel zdarzenia - DvcZone - DvcMacAddr - DvcOs - DvcOsVersion - DvcOriginalAction - DvcInterface - Dodatkowe pola - DvcDescription - DvcScopeId - DvcScope |
Pola systemu źródłowego
Pole | Klasa | Type | Opis |
---|---|---|---|
Src | Alias | String | Unikatowy identyfikator urządzenia źródłowego. To pole może aliasować pola SrcDvcId, SrcHostname lub SrcIpAddr . Przykład: 192.168.12.1 |
SrcIpAddr | Zalecane | Adres IP | Adres IP klienta, który wysłał żądanie DNS. W przypadku cyklicznego żądania DNS ta wartość zazwyczaj będzie urządzeniem raportowania, a w większości przypadków ustawiona na 127.0.0.1 wartość . Przykład: 192.168.12.1 |
SrcPortNumber | Opcjonalnie | Integer | Port źródłowy zapytania DNS. Przykład: 54312 |
IpAddr | Alias | Alias do SrcIpAddr | |
SrcGeoCountry | Opcjonalnie | Kraj | Kraj/region skojarzony ze źródłowym adresem IP. Przykład: USA |
SrcGeoRegion | Opcjonalnie | Region (Region) | Region skojarzony ze źródłowym adresem IP. Przykład: Vermont |
SrcGeoCity | Opcjonalnie | City | Miasto skojarzone ze źródłowym adresem IP. Przykład: Burlington |
SrcGeoLatitude | Opcjonalnie | Szerokość | Szerokość geograficzna współrzędnych geograficznych skojarzonych z źródłowym adresem IP. Przykład: 44.475833 |
SrcGeoLongitude | Opcjonalnie | Długość | Długość geograficzna współrzędnej geograficznej skojarzonej z źródłowym adresem IP. Przykład: 73.211944 |
SrcRiskLevel | Opcjonalnie | Integer | Poziom ryzyka skojarzony ze źródłem. Wartość powinna być dostosowana do zakresu 0 wartości z 100 wartością , z wartością 0 dla łagodnego i 100 wysokiego ryzyka.Przykład: 90 |
SrcOriginalRiskLevel | Opcjonalnie | Integer | Poziom ryzyka skojarzony ze źródłem, zgodnie z raportem urządzenia raportowania. Przykład: Suspicious |
SrcHostname | Zalecane | String | Nazwa hosta urządzenia źródłowego z wyłączeniem informacji o domenie. Przykład: DESKTOP-1282V4D |
Nazwa hosta | Alias | Alias do SrcHostname | |
SrcDomain | Zalecane | String | Domena urządzenia źródłowego. Przykład: Contoso |
SrcDomainType | Warunkowe | Enumerated | Typ SrcDomain, jeśli jest znany. Możliwe wartości to: - Windows (na przykład: contoso )- FQDN (na przykład: microsoft.com )Wymagane, jeśli jest używany SrcDomain . |
SrcFQDN | Opcjonalnie | String | Nazwa hosta urządzenia źródłowego, w tym informacje o domenie, gdy są dostępne. Uwaga: to pole obsługuje zarówno tradycyjny format FQDN, jak i format domena\nazwa_hosta systemu Windows. Pole SrcDomainType odzwierciedla używany format. Przykład: Contoso\DESKTOP-1282V4D |
SrcDvcId | Opcjonalnie | String | Identyfikator urządzenia źródłowego zgłoszony w rekordzie. Na przykład: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 . |
SrcDvcScopeId | Opcjonalnie | String | Identyfikator zakresu platformy w chmurze, do którego należy urządzenie. SrcDvcScopeId mapuje identyfikator subskrypcji na platformę Azure i identyfikator konta na platformie AWS. |
SrcDvcScope | Opcjonalnie | String | Zakres platformy w chmurze, do którego należy urządzenie. SrcDvcScope mapuje identyfikator subskrypcji na platformę Azure i identyfikator konta na platformie AWS. |
SrcDvcIdType | Warunkowe | Enumerated | Typ SrcDvcId, jeśli jest znany. Możliwe wartości to: - AzureResourceId - MDEid Jeśli dostępnych jest wiele identyfikatorów, użyj pierwszego z listy i zapisz pozostałe w odpowiednio SrcDvcAzureResourceId i SrcDvcMDEid. Uwaga: to pole jest wymagane, jeśli jest używany identyfikator SrcDvcId . |
SrcDeviceType | Opcjonalnie | Enumerated | Typ urządzenia źródłowego. Możliwe wartości to: - Computer - Mobile Device - IOT Device - Other |
SrcDescription | Opcjonalnie | String | Tekst opisowy skojarzony z urządzeniem. Na przykład: Primary Domain Controller . |
Pola użytkownika źródłowego
Pole | Klasa | Type | Opis |
---|---|---|---|
SrcUserId | Opcjonalnie | String | Czytelna dla maszyny, alfanumeryczna, unikatowa reprezentacja użytkownika źródłowego. Aby uzyskać więcej informacji i w przypadku pól alternatywnych dla dodatkowych identyfikatorów, zobacz Jednostka Użytkownik. Przykład: S-1-12-1-4141952679-1282074057-627758481-2916039507 |
SrcUserScope | Opcjonalnie | String | Zakres, taki jak dzierżawa firmy Microsoft Entra, w którym zdefiniowano identyfikator SrcUserId i SrcUsername . lub więcej informacji i listy dozwolonych wartości, zobacz UserScope w artykule Omówienie schematu. |
SrcUserScopeId | Opcjonalnie | String | Identyfikator zakresu, taki jak Microsoft Entra Directory ID, w którym zdefiniowano identyfikator SrcUserId i SrcUsername . Aby uzyskać więcej informacji i listę dozwolonych wartości, zobacz UserScopeId w artykule Omówienie schematu. |
SrcUserIdType | Warunkowe | UserIdType | Typ identyfikatora przechowywanego w polu SrcUserId . Aby uzyskać więcej informacji i listę dozwolonych wartości, zobacz UserIdType w artykule Przegląd schematu. |
SrcUsername | Opcjonalnie | Username | Źródłowa nazwa użytkownika, w tym informacje o domenie, gdy są dostępne. Aby uzyskać więcej informacji, zobacz Jednostka Użytkownik. Przykład: AlbertE |
SrcUsernameType | Warunkowe | Typ nazwy użytkownika | Określa typ nazwy użytkownika przechowywanej w polu SrcUsername . Aby uzyskać więcej informacji i listę dozwolonych wartości, zobacz UsernameType w artykule Omówienie schematu. Przykład: Windows |
Użytkownik | Alias | Alias do SrcUsername | |
SrcUserType | Opcjonalnie | UserType | Typ użytkownika źródłowego. Aby uzyskać więcej informacji i listę dozwolonych wartości, zobacz UserType w artykule Omówienie schematu. Na przykład: Guest . |
SrcUserSessionId | Opcjonalnie | String | Unikatowy identyfikator sesji logowania aktora. Przykład: 102pTUgC3p8RIqHvzxLCHnFlg |
SrcOriginalUserType | Opcjonalnie | String | Oryginalny typ użytkownika źródłowego, jeśli jest dostarczany przez źródło. |
Pola procesu źródłowego
Pola systemu docelowego
Pole | Klasa | Type | Opis |
---|---|---|---|
Czasu letniego | Alias | String | Unikatowy identyfikator serwera, który otrzymał żądanie DNS. To pole może aliasuć pola DstDvcId, DstHostname lub DstIpAddr . Przykład: 192.168.12.1 |
DstIpAddr | Opcjonalnie | Adres IP | Adres IP serwera, który odebrał żądanie DNS. W przypadku zwykłego żądania DNS ta wartość zazwyczaj będzie urządzeniem raportowania, a w większości przypadków ustawiona na 127.0.0.1 wartość .Przykład: 127.0.0.1 |
DstGeoCountry | Opcjonalnie | Kraj | Kraj/region skojarzony z docelowym adresem IP. Aby uzyskać więcej informacji, zobacz Typy logiczne. Przykład: USA |
DstGeoRegion | Opcjonalnie | Region (Region) | Region lub stan skojarzony z docelowym adresem IP. Aby uzyskać więcej informacji, zobacz Typy logiczne. Przykład: Vermont |
DstGeoCity | Opcjonalnie | City | Miasto skojarzone z docelowym adresem IP. Aby uzyskać więcej informacji, zobacz Typy logiczne. Przykład: Burlington |
DstGeoLatitude | Opcjonalnie | Szerokość | Szerokość geograficzna współrzędnej geograficznej skojarzonej z docelowym adresem IP. Aby uzyskać więcej informacji, zobacz Typy logiczne. Przykład: 44.475833 |
DstGeoLongitude | Opcjonalnie | Długość | Długość geograficzna współrzędnej geograficznej skojarzonej z docelowym adresem IP. Aby uzyskać więcej informacji, zobacz Typy logiczne. Przykład: 73.211944 |
DstRiskLevel | Opcjonalnie | Integer | Poziom ryzyka skojarzony z miejscem docelowym. Wartość powinna być dostosowana do zakresu od 0 do 100, co 0 jest łagodne i 100 jest wysokim ryzykiem. Przykład: 90 |
DstOriginalRiskLevel | Opcjonalnie | Integer | Poziom ryzyka skojarzony z miejscem docelowym, zgodnie z raportem urządzenia raportowania. Przykład: Malicious |
DstPortNumber | Opcjonalnie | Integer | Numer portu docelowego. Przykład: 53 |
Nazwa hosta Dst | Opcjonalnie | String | Nazwa hosta urządzenia docelowego z wyłączeniem informacji o domenie. Jeśli żadna nazwa urządzenia nie jest dostępna, zapisz odpowiedni adres IP w tym polu. Przykład: DESKTOP-1282V4D Uwaga: ta wartość jest obowiązkowa, jeśli określono wartość DstIpAddr . |
DstDomain | Opcjonalnie | String | Domena urządzenia docelowego. Przykład: Contoso |
DstDomainType | Warunkowe | Enumerated | Typ DstDomain, jeśli jest znany. Możliwe wartości to: - Windows (contoso\mypc) - FQDN (learn.microsoft.com) Wymagane, jeśli jest używana domena DstDomain . |
Nazwa DstFQDN | Opcjonalnie | String | Nazwa hosta urządzenia docelowego, w tym informacje o domenie, gdy są dostępne. Przykład: Contoso\DESKTOP-1282V4D Uwaga: to pole obsługuje zarówno tradycyjny format FQDN, jak i format domena\nazwa_hosta systemu Windows. Typ DstDomainType odzwierciedla używany format. |
DstDvcId | Opcjonalnie | String | Identyfikator urządzenia docelowego zgłoszonego w rekordzie. Przykład: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3 |
DstDvcScopeId | Opcjonalnie | String | Identyfikator zakresu platformy w chmurze, do którego należy urządzenie. DstDvcScopeId mapuje identyfikator subskrypcji na platformę Azure i identyfikator konta na platformie AWS. |
DstDvcScope | Opcjonalnie | String | Zakres platformy w chmurze, do którego należy urządzenie. DstDvcScope mapuje identyfikator subskrypcji na platformę Azure i identyfikator konta na platformie AWS. |
DstDvcIdType | Warunkowe | Enumerated | Typ DstDvcId, jeśli jest znany. Możliwe wartości to: - AzureResourceId - MDEidIf Jeśli dostępnych jest wiele identyfikatorów, użyj pierwszego z powyższej listy i zapisz pozostałe w polach DstDvcAzureResourceId lub DstDvcMDEid . Wymagane, jeśli jest używany identyfikator DstDeviceId . |
DstDeviceType | Opcjonalnie | Enumerated | Typ urządzenia docelowego. Możliwe wartości to: - Computer - Mobile Device - IOT Device - Other |
DstDescription | Opcjonalnie | String | Tekst opisowy skojarzony z urządzeniem. Na przykład: Primary Domain Controller . |
Pola specyficzne dla systemu DNS
Pole | Klasa | Type | Opis |
---|---|---|---|
DnsQuery | Obowiązkowy | String | Domena, którą żądanie próbuje rozpoznać. Uwagi: — Niektóre źródła wysyłają prawidłowe zapytania FQDN w innym formacie. Na przykład w samym protokole DNS zapytanie zawiera kropkę (.) na końcu, która musi zostać usunięta. - Chociaż protokół DNS ogranicza typ wartości w tym polu do nazwy FQDN, większość serwerów DNS zezwala na dowolną wartość, a zatem to pole nie ogranicza się tylko do wartości FQDN. W szczególności ataki tunelowania DNS mogą używać nieprawidłowych wartości nazw FQDN w polu zapytania. - Chociaż protokół DNS umożliwia wykonywanie wielu zapytań w jednym żądaniu, ten scenariusz jest rzadki, jeśli w ogóle zostanie znaleziony. Jeśli żądanie zawiera wiele zapytań, zapisz pierwszy w tym polu, a następnie opcjonalnie zachowaj resztę w polu AdditionalFields . Przykład: www.malicious.com |
Domena | Alias | Alias do zapytania DnsQuery. | |
DnsQueryType | Opcjonalnie | Integer | Kody typów rekordów zasobów DNS. Przykład: 28 |
DnsQueryTypeName | Zalecane | Enumerated | Nazwy typów rekordów zasobów DNS. Uwagi: — Funkcja IANA nie definiuje wielkości liter dla wartości, dlatego analiza musi znormalizować przypadek zgodnie z potrzebami. — Wartość ANY jest obsługiwana dla kodu odpowiedzi 255.— Wartość TYPExxxx jest obsługiwana w przypadku kodów odpowiedzi niezamapowanych, gdzie xxxx jest wartością liczbową kodu odpowiedzi zgłoszonej przez serwer DNS BIND.-Jeśli źródło zawiera tylko kod typu zapytania liczbowego, a nie nazwę typu zapytania, analizator musi zawierać tabelę odnośników, aby wzbogacić tę wartość. Przykład: AAAA |
DnsResponseName | Opcjonalnie | String | Zawartość odpowiedzi, jak zawarto w rekordzie. Dane odpowiedzi DNS są niespójne na urządzeniach raportowania, są złożone do analizowania i mają mniejszą wartość dla analizy niezależnej od źródła. W związku z tym model informacyjny nie wymaga analizowania i normalizacji, a usługa Microsoft Sentinel używa funkcji pomocniczej do dostarczania informacji o odpowiedzi. Aby uzyskać więcej informacji, zobacz Obsługa odpowiedzi DNS. |
DnsResponseCodeName | Alias | Alias do eventResultDetails | |
DnsResponseCode | Opcjonalnie | Integer | Kod odpowiedzi liczbowej DNS. Przykład: 3 |
TransactionIdHex | Zalecane | String | Unikatowy identyfikator zapytania DNS przypisany przez klienta DNS w formacie szesnastkowym. Należy pamiętać, że ta wartość jest częścią protokołu DNS i różni się od dnsSessionId, identyfikator sesji warstwy sieciowej, zwykle przypisywany przez urządzenie raportowania. |
NetworkProtocol | Opcjonalnie | Enumerated | Protokół transportowy używany przez zdarzenie rozpoznawania sieci. Wartość może być UDP lub TCP i jest najczęściej ustawiona na UDP dla systemu DNS. Przykład: UDP |
NetworkProtocolVersion | Opcjonalnie | Enumerated | Wersja networkProtocol. W przypadku używania go do rozróżniania wersji adresu IP użyj wartości IPv4 i IPv6 . |
DnsQueryClass | Opcjonalnie | Integer | Identyfikator klasy DNS. W praktyce jest używana tylko klasa IN (IDENTYFIKATOR 1), dlatego to pole jest mniej cenne. |
DnsQueryClassName | Opcjonalnie | String | Nazwa klasy DNS. W praktyce jest używana tylko klasa IN (IDENTYFIKATOR 1), dlatego to pole jest mniej cenne. Przykład: IN |
DnsFlags | Opcjonalnie | String | Pole flagi podane przez urządzenie raportowania. Jeśli informacje o flagach są podane w wielu polach, połącz je przecinkami jako separator. Ponieważ flagi DNS są złożone do analizowania i są rzadziej używane przez analizę, analizowanie i normalizacja nie są wymagane. Usługa Microsoft Sentinel może używać funkcji pomocniczej do dostarczania informacji o flagach. Aby uzyskać więcej informacji, zobacz Obsługa odpowiedzi DNS. Przykład: ["DR"] |
DnsNetworkDuration | Opcjonalnie | Integer | Czas ukończenia żądania DNS w milisekundach. Przykład: 1500 |
Czas trwania | Alias | Alias do dnsNetworkDuration | |
DnsFlagsAuthenticated | Opcjonalnie | Wartość logiczna | Flaga DNS AD , która jest powiązana z protokołem DNSSEC, wskazuje w odpowiedzi, że wszystkie dane zawarte w sekcjach odpowiedzi i urzędu odpowiedzi zostały zweryfikowane przez serwer zgodnie z zasadami tego serwera. Aby uzyskać więcej informacji, zobacz RFC 3655 Sekcja 6.1 , aby uzyskać więcej informacji. |
DnsFlagsAuthoritative | Opcjonalnie | Wartość logiczna | Flaga DNS AA wskazuje, czy odpowiedź z serwera była autorytatywna |
DnsFlagsCheckingDisabled | Opcjonalnie | Wartość logiczna | Flaga DNS CD , która jest powiązana z protokołem DNSSEC, wskazuje w zapytaniu, że nieweryfikowane dane są akceptowalne dla systemu wysyłającego zapytanie. Aby uzyskać więcej informacji, zobacz RFC 3655 Sekcja 6.1 , aby uzyskać więcej informacji. |
DnsFlagsRecursionAvailable | Opcjonalnie | Wartość logiczna | Flaga DNS RA wskazuje w odpowiedzi, że serwer obsługuje zapytania cykliczne. |
DnsFlagsRecursionDesired | Opcjonalnie | Wartość logiczna | Flaga DNS RD wskazuje w żądaniu, że klient chce, aby serwer używał zapytań cyklicznych. |
DnsFlagsTruncated | Opcjonalnie | Wartość logiczna | Flaga DNS TC wskazuje, że odpowiedź została obcięta, ponieważ przekroczyła maksymalny rozmiar odpowiedzi. |
DnsFlagsZ | Opcjonalnie | Wartość logiczna | Flaga DNS jest przestarzałą flagą DNS Z , która może być zgłaszana przez starsze systemy DNS. |
DnsSessionId | Opcjonalnie | string | Identyfikator sesji DNS zgłoszony przez urządzenie raportowania. Ta wartość różni się od TransactionIdHex, czyli unikatowego identyfikatora zapytania DNS przypisanego przez klienta DNS. Przykład: EB4BFA28-2EAD-4EF7-BC8A-51DF4FDF5B55 |
Identyfikator sesji | Alias | Alias do dnsSessionId | |
DnsResponseIpCountry | Opcjonalnie | Kraj | Kraj/region skojarzony z jednym z adresów IP w odpowiedzi DNS. Aby uzyskać więcej informacji, zobacz Typy logiczne. Przykład: USA |
DnsResponseIpRegion | Opcjonalnie | Region (Region) | Region lub stan skojarzony z jednym z adresów IP w odpowiedzi DNS. Aby uzyskać więcej informacji, zobacz Typy logiczne. Przykład: Vermont |
DnsResponseIpCity | Opcjonalnie | City | Miasto skojarzone z jednym z adresów IP w odpowiedzi DNS. Aby uzyskać więcej informacji, zobacz Typy logiczne. Przykład: Burlington |
DnsResponseIpLatitude | Opcjonalnie | Szerokość | Szerokość geograficzna współrzędnej geograficznej skojarzonej z jednym z adresów IP w odpowiedzi DNS. Aby uzyskać więcej informacji, zobacz Typy logiczne. Przykład: 44.475833 |
DnsResponseIpLongitude | Opcjonalnie | Długość | Długość geograficzna współrzędnej geograficznej skojarzonej z jednym z adresów IP w odpowiedzi DNS. Aby uzyskać więcej informacji, zobacz Typy logiczne. Przykład: 73.211944 |
Pola inspekcji
Poniższe pola są używane do reprezentowania inspekcji, którą wykonano na urządzeniu zabezpieczeń DNS. Pola związane z zagrożeniami reprezentują pojedyncze zagrożenie skojarzone z adresem źródłowym, adresem docelowym, jednym z adresów IP w odpowiedzi lub domenie zapytania DNS. Jeśli jako zagrożenie zidentyfikowano więcej niż jedno zagrożenie, informacje o innych adresach IP mogą być przechowywane w polu AdditionalFields
.
Pole | Klasa | Type | Opis |
---|---|---|---|
UrlCategory | Opcjonalnie | String | Źródło zdarzeń DNS może również wyszukać kategorię żądanych domen. Pole nosi nazwę UrlCategory , aby dopasować je do schematu sieciowego usługi Microsoft Sentinel. DomenaCategory jest dodawana jako alias pasujący do systemu DNS. Przykład: Educational \\ Phishing |
DomainCategory | Alias | Alias adresu URLCategory. | |
NetworkRuleName | Opcjonalnie | String | Nazwa lub identyfikator reguły, która zidentyfikowała zagrożenie. Przykład: AnyAnyDrop |
NetworkRuleNumber | Opcjonalnie | Integer | Liczba reguł, która zidentyfikowała zagrożenie. Przykład: 23 |
Reguła | Alias | String | Wartość NetworkRuleName lub wartość NetworkRuleNumber. Jeśli jest używana wartość NetworkRuleNumber , typ powinien zostać przekonwertowany na ciąg. |
ThreatId | Opcjonalnie | String | Identyfikator zagrożenia lub złośliwego oprogramowania zidentyfikowanego w sesji sieciowej. Przykład: Tr.124 |
ThreatCategory | Opcjonalnie | String | Jeśli źródło zdarzeń DNS zapewnia również zabezpieczenia DNS, może również ocenić zdarzenie DNS. Może na przykład wyszukać adres IP lub domenę w bazie danych analizy zagrożeń i przypisać domenę lub adres IP z kategorią zagrożeń. |
ThreatIpAddr | Opcjonalnie | Adres IP | Adres IP, dla którego zidentyfikowano zagrożenie. Pole ThreatField zawiera nazwę pola ThreatIpAddr reprezentuje. Jeśli w polu Domena zostanie zidentyfikowane zagrożenie, to pole powinno być puste. |
ThreatField | Warunkowe | Enumerated | Pole, dla którego zidentyfikowano zagrożenie. Wartość to SrcIpAddr , , DstIpAddr Domain lub DnsResponseName . |
ThreatName | Opcjonalnie | String | Nazwa zidentyfikowanego zagrożenia zgłoszonego przez urządzenie raportowania. |
ThreatConfidence | Opcjonalnie | Integer | Zidentyfikowany poziom ufności zagrożenia znormalizowany do wartości z zakresu od 0 do 100. |
ThreatOriginalConfidence | Opcjonalnie | String | Oryginalny poziom ufności zidentyfikowanego zagrożenia, zgodnie z raportem urządzenia raportowania. |
ThreatRiskLevel | Opcjonalnie | Integer | Poziom ryzyka skojarzony ze zidentyfikowanym zagrożeniem znormalizowany do wartości z zakresu od 0 do 100. |
ThreatOriginalRiskLevel | Opcjonalnie | String | Oryginalny poziom ryzyka skojarzony z zidentyfikowanym zagrożeniem, zgodnie z raportem urządzenia raportowania. |
ThreatIsActive | Opcjonalnie | Wartość logiczna | Prawda, jeśli zidentyfikowane zagrożenie jest uznawane za aktywne zagrożenie. |
ThreatFirstReportedTime | Opcjonalnie | datetime | Po raz pierwszy adres IP lub domena zostały zidentyfikowane jako zagrożenie. |
ThreatLastReportedTime | Opcjonalnie | datetime | Ostatni raz adres IP lub domena zostały zidentyfikowane jako zagrożenie. |
Przestarzałe aliasy i pola
Poniższe pola to aliasy, które są obsługiwane w celu zapewnienia zgodności z poprzednimi wersjami. Zostały one usunięte ze schematu 31 grudnia 2021 r.
Query
(alias doDnsQuery
)QueryType
(alias doDnsQueryType
)QueryTypeName
(alias doDnsQueryTypeName
)ResponseName
(alias doDnsReasponseName
)ResponseCodeName
(alias doDnsResponseCodeName
)ResponseCode
(alias doDnsResponseCode
)QueryClass
(alias doDnsQueryClass
)QueryClassName
(alias doDnsQueryClassName
)Flags
(alias doDnsFlags
)SrcUserDomain
Aktualizacje schematu
Zmiany w wersji 0.1.2 schematu to:
- Dodano pole
EventSchema
. - Dodano dedykowane pole flagi, które rozszerza połączone pole Flagi:
DnsFlagsAuthoritative
, ,DnsFlagsCheckingDisabled
DnsFlagsRecursionAvailable
,DnsFlagsRecursionDesired
,DnsFlagsTruncated
, iDnsFlagsZ
.
Zmiany w wersji 0.1.3 schematu to:
- Schemat teraz jawnie dokumentuje
Src*
pola ,Dst*
Process*
iUser*
. - Dodano więcej
Dvc*
pól, aby dopasować je do najnowszej typowej definicji pól. - Dodano
Src
aliasy iDst
jako aliasy do wiodącego identyfikatora dla systemów źródłowych i docelowych. - Dodano opcjonalny
DnsNetworkDuration
iDuration
alias do niego. - Dodano opcjonalne pola Lokalizacja geograficzna i Poziom ryzyka.
Zmiany w wersji 0.1.4 schematu to:
- Dodano opcjonalne pola
ThreatIpAddr
, ,ThreatField
ThreatOriginalRiskLevel
ThreatName
ThreatOriginalConfidence
ThreatIsActive
ThreatConfidence
,ThreatFirstReportedTime
, i .ThreatLastReportedTime
Zmiany w wersji 0.1.5 schematu to:
- Dodano pola
SrcUserScope
, , ,SrcDvcScopeId
DstDvcScopeId
SrcDvcScope
DstDvcScope
SrcUserSessionId
,DvcScopeId
i .DvcScope
Zmiany w wersji 0.1.6 schematu to:
- Dodano pola
DnsResponseIpCountry
, ,DnsResponseIpRegion
,DnsResponseIpCity
DnsResponseIpLatitude
, iDnsResponseIpLongitude
.
Zmiany w wersji 0.1.7 schematu to:
- Dodano pola
SrcDescription
,SrcUserScopeId
DstOriginalRiskLevel
NetworkProtocolVersion
Rule
DstDescription
SrcOriginalRiskLevel
, ,RuleName
RuleNumber
i .ThreatId
Rozbieżności specyficzne dla źródła
Celem normalizacji jest zapewnienie, że wszystkie źródła zapewniają spójne dane telemetryczne. Nie można znormalizować źródła, które nie udostępnia wymaganych danych telemetrycznych, takich jak obowiązkowe pola schematu. Jednak źródła, które zwykle dostarczają wszystkie wymagane dane telemetryczne, nawet jeśli występują pewne rozbieżności, mogą być znormalizowane. Rozbieżności mogą mieć wpływ na kompletność wyników zapytania.
W poniższej tabeli wymieniono znane rozbieżności:
Źródło | Rozbieżności |
---|---|
Serwer DNS firmy Microsoft zebrany przy użyciu łącznika DNS i agenta usługi Log Analytics | Łącznik nie udostępnia obowiązkowego pola DnsQuery dla oryginalnego identyfikatora zdarzenia 264 (odpowiedź na aktualizację dynamiczną). Dane są dostępne w źródle, ale nie są przekazywane przez łącznik. |
Corelight Zeek | Corelight Zeek może nie podać obowiązkowego pola DnsQuery. Zaobserwowaliśmy takie zachowanie w niektórych przypadkach, w których nazwa kodu odpowiedzi DNS to NXDOMAIN . |
Obsługa odpowiedzi DNS
W większości przypadków zarejestrowane zdarzenia DNS nie zawierają informacji o odpowiedzi, które mogą być duże i szczegółowe. Jeśli rekord zawiera więcej informacji o odpowiedzi, zapisz go w polu ResponseName , jak jest wyświetlany w rekordzie.
Możesz również podać dodatkową funkcję KQL o nazwie _imDNS<vendor>Response_
, która przyjmuje nieparzystą odpowiedź jako dane wejściowe i zwraca wartość dynamiczną z następującą 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"
}
...
]
Pola w każdym słowniku w wartości dynamicznej odpowiadają polam w każdej odpowiedzi DNS. Wpis part
powinien zawierać wartość answer
, authority
lub additional
, aby odzwierciedlić część w odpowiedzi, do którego należy słownik.
Napiwek
Aby zapewnić optymalną wydajność, wywołaj imDNS<vendor>Response
funkcję tylko w razie potrzeby i dopiero po początkowym filtrowaniu, aby zapewnić lepszą wydajność.
Obsługa flag DNS
Analizowanie i normalizacja nie są wymagane dla danych flagi. Zamiast tego zapisz dane flagi dostarczone przez urządzenie raportowania w polu Flags . Jeśli określenie wartości poszczególnych flag jest proste, możesz również użyć dedykowanych pól flag.
Możesz również podać dodatkową funkcję KQL o nazwie _imDNS<vendor>Flags_
, która przyjmuje nieparzystą odpowiedź lub dedykowane pola flagi, jako dane wejściowe i zwraca listę dynamiczną z wartościami logicznymi reprezentującymi każdą flagę w następującej kolejności:
- Uwierzytelnione (AD)
- Autorytatywne (AA)
- Sprawdzanie wyłączone (CD)
- Rekursja dostępna (RA)
- Żądana rekursja (RD)
- Obcięte (TC)
- Z
Następne kroki
Aby uzyskać więcej informacji, zobacz:
- Obejrzyj seminarium internetowe ASIM lub przejrzyj slajdy
- Omówienie zaawansowanego modelu informacji o zabezpieczeniach (ASIM)
- Schematy zaawansowanego modelu informacji o zabezpieczeniach (ASIM)
- Analizatory zaawansowanego modelu informacji o zabezpieczeniach (ASIM)
- Zawartość usługi Advanced Security Information Model (ASIM)