Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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) .
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 Querywartość .
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
haspomocą 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 | Typ | Opis |
|---|---|---|
| godzina rozpoczęcia | data/godzina | Filtruj tylko zapytania DNS uruchamiane w czasie lub po tym czasie. |
| godzina zakończenia | data/godzina | Filtruj tylko zapytania DNS, które zakończyły działanie w lub przed tym razem. |
| srcipaddr | ciąg | 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 | ciąg | Filtruj tylko zapytania DNS, dla których nazwa kodu odpowiedzi jest zgodna z podaną wartością. Na przykład: NXDOMAIN. |
| response_has_ipv4 | ciąg | 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 | ciąg | 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ą. |
| Szczegóły zdarzenia | 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 | SchemaVersion (String) | Wersja schematu udokumentowanego tutaj to 0.1.7. |
| EventSchema | Obowiązkowy | Enumerated | 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).
Pola systemu źródłowego
| Pole | Klasa | Typ | 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 powiedział: | 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.1wartość . 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 100wartością , z wartością 0 dla łagodnego i 100 wysokiego ryzyka.Przykład: 90 |
| SrcOriginalRiskLevel | Opcjonalnie | String | Poziom ryzyka skojarzony ze źródłem, zgodnie z raportem urządzenia raportowania. Przykład: Suspicious |
| SrcHostname (nazwa hosta src) | Zalecane | Nazwa hosta (String) | Nazwa hosta urządzenia źródłowego z wyłączeniem informacji o domenie. Przykład: DESKTOP-1282V4D |
| Nazwa hosta | Alias | Alias do SrcHostname | |
| Domena Src | Zalecane | Dziedzina (ciąg znaków) | Domena urządzenia źródłowego. Przykład: Contoso |
| Typ_domeny Src | 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 | FQDN (struna) | 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 |
| Identyfikator SrcDvcId | Opcjonalnie | String | Identyfikator urządzenia źródłowego zgłoszony w rekordzie. Na przykład: ac7e9755-8eae-4ffc-8a02-50ed7a2216c3. |
| Identyfikator 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 (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- MDEidJeś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 |
| Opis SrcDescription | Opcjonalnie | String | Tekst opisowy skojarzony z urządzeniem. Na przykład: Primary Domain Controller. |
Pola użytkownika źródłowego
| Pole | Klasa | Typ | Opis |
|---|---|---|---|
| Identyfikator użytkownika 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. |
| Nazwa użytkownika Src | Opcjonalnie | Nazwa użytkownika (String) | Ź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 (Typ nazwy użytkownika) | 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 | Typ | 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.1wartość .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 | String | 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 | Nazwa hosta (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-1282V4DUwaga: ta wartość jest obowiązkowa, jeśli określono wartość DstIpAddr . |
| DstDomena | Opcjonalnie | Dziedzina (ciąg znaków) | Domena urządzenia docelowego. Przykład: Contoso |
| DstDomainType (Typ domeny) | 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 | FQDN (struna) | 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 (Zakres) | 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- MDEidIfJeś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 |
| Opis DstDescription | Opcjonalnie | String | Tekst opisowy skojarzony z urządzeniem. Na przykład: Primary Domain Controller. |
Pola specyficzne dla systemu DNS
| Pole | Klasa | Typ | 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 | Szesnastkowy (ciąg łańcuchowy) | 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. |
| Protokół sieciowy | 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 | Zalecane | DnsQueryClassName (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 | logiczny | 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 | logiczny | Flaga DNS AA wskazuje, czy odpowiedź z serwera była autorytatywna |
| DnsFlagsCheckingDisabled | Opcjonalnie | logiczny | 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 | logiczny | Flaga DNS RA wskazuje w odpowiedzi, że serwer obsługuje zapytania cykliczne. |
| DnsFlagsRecursionDesired | Opcjonalnie | logiczny | Flaga DNS RD wskazuje w żądaniu, że klient chce, aby serwer używał zapytań cyklicznych. |
| DnsFlagsTruncated | Opcjonalnie | logiczny | Flaga DNS TC wskazuje, że odpowiedź została obcięta, ponieważ przekroczyła maksymalny rozmiar odpowiedzi. |
| DnsFlagsZ | Opcjonalnie | logiczny | Flaga DNS jest przestarzałą flagą DNS Z , która może być zgłaszana przez starsze systemy DNS. |
| DnsSessionId | Opcjonalnie | ciąg | 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 | Typ | 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. | |
| RuleName | Opcjonalnie | String | Nazwa lub identyfikator reguły, która zidentyfikowała zagrożenie. Przykład: AnyAnyDrop |
| RuleNumber | Opcjonalnie | Integer | Liczba reguł, która zidentyfikowała zagrożenie. Przykład: 23 |
| Reguła | Alias | String | Wartość RuleName lub wartość RuleNumber. Jeśli jest używana wartość RuleNumber , typ powinien zostać przekonwertowany na ciąg. |
| RuleNumber | Opcjonalnie | int | Liczba reguł skojarzonych z alertem. np. 123456 |
| RuleName | Opcjonalnie | ciąg | Nazwa lub identyfikator reguły skojarzonej z alertem. np. Server PSEXEC Execution via Remote Access |
| 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. |
| Pole zagrożeń | Warunkowe | Enumerated | Pole, dla którego zidentyfikowano zagrożenie. Wartość to SrcIpAddr, , DstIpAddrDomainlub DnsResponseName. |
| ThreatName | Opcjonalnie | String | Nazwa zidentyfikowanego zagrożenia zgłoszonego przez urządzenie raportowania. |
| ThreatConfidence | Opcjonalnie | Poziom Ufności (Liczba całkowita) | 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 | RiskLevel (Liczba całkowita) | 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 | logiczny | Prawda, jeśli zidentyfikowane zagrożenie jest uznawane za aktywne zagrożenie. |
| ThreatFirstReportedTime | Opcjonalnie | data/godzina | Po raz pierwszy adres IP lub domena zostały zidentyfikowane jako zagrożenie. |
| ThreatLastReportedTime | Opcjonalnie | data/godzina | 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 doDnsResponseName) -
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, ,DnsFlagsCheckingDisabledDnsFlagsRecursionAvailable,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
Srcaliasy iDstjako aliasy do wiodącego identyfikatora dla systemów źródłowych i docelowych. - Dodano opcjonalny
DnsNetworkDurationiDurationalias do niego. - Dodano opcjonalne pola Lokalizacja geograficzna i Poziom ryzyka.
Zmiany w wersji 0.1.4 schematu to:
- Dodano opcjonalne pola
ThreatIpAddr, ,ThreatFieldThreatNameThreatConfidenceThreatOriginalConfidenceThreatOriginalRiskLevelThreatIsActive,ThreatFirstReportedTime, i .ThreatLastReportedTime
Zmiany w wersji 0.1.5 schematu to:
- Dodano pola
SrcUserScope, , ,SrcUserSessionIdSrcDvcScopeIdSrcDvcScopeDstDvcScopeIdDstDvcScope,DvcScopeIdi .DvcScope
Zmiany w wersji 0.1.6 schematu to:
- Dodano pola
DnsResponseIpCountry, ,DnsResponseIpRegion,DnsResponseIpCityDnsResponseIpLatitude, iDnsResponseIpLongitude.
Zmiany w wersji 0.1.7 schematu to:
- Dodano pola
SrcDescription,SrcOriginalRiskLevelDstDescriptionDstOriginalRiskLevelSrcUserScopeIdNetworkProtocolVersionRule, ,RuleNameRuleNumberi .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, authoritylub 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)