Poznaj zaawansowany język zapytań wyszukiwania zagrożeń
Zaawansowane wyszukiwanie zagrożeń jest oparte na języku zapytań Kusto. Operatory i instrukcje Kusto umożliwiają tworzenie zapytań, które lokalizują informacje w wyspecjalizowanym schemacie.
Obejrzyj ten krótki film wideo, aby poznać przydatne podstawy języka zapytań Kusto.
Aby lepiej zrozumieć te pojęcia, uruchom pierwsze zapytanie.
Wypróbuj pierwsze zapytanie
W portalu Microsoft Defender przejdź do pozycji Wyszukiwanie zagrożeń, aby uruchomić pierwsze zapytanie. Skorzystaj z następującego przykładu:
// Finds PowerShell execution events that could involve a download
union DeviceProcessEvents, DeviceNetworkEvents
| where Timestamp > ago(7d)
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
"DownloadFile",
"DownloadData",
"DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp
Uruchamianie tego zapytania w zaawansowanym wyszukiwaniu
Opisz zapytanie i określ tabele do wyszukania
Na początku zapytania dodano krótki komentarz, aby opisać, do czego służy. Ten komentarz pomaga, jeśli później zdecydujesz się zapisać zapytanie i udostępnić je innym osobom w organizacji.
// Finds PowerShell execution events that could involve a download
Samo zapytanie zwykle rozpoczyna się od nazwy tabeli, po której następuje kilka elementów rozpoczynających się potokiem (|
). W tym przykładzie zaczniemy od utworzenia unii dwóch tabel DeviceProcessEvents
i DeviceNetworkEvents
, i w razie potrzeby dodamy elementy potokowe.
union DeviceProcessEvents, DeviceNetworkEvents
Ustawianie zakresu czasu
Pierwszy element potokowy to filtr czasu o zakresie do poprzednich siedmiu dni. Ograniczenie zakresu czasu pomaga zapewnić, że zapytania działają dobrze, zwracają możliwe do zarządzania wyniki i nie przekraczają limitu czasu.
| where Timestamp > ago(7d)
Uwaga
Filtry czasu Kusto są w formacie UTC niezależnie od strefy czasowej określonej w ustawieniach.
Sprawdzanie określonych procesów
Po zakresie czasu natychmiast następuje wyszukiwanie nazw plików procesów reprezentujących aplikację programu PowerShell.
// Pivoting on PowerShell processes
| where FileName in~ ("powershell.exe", "powershell_ise.exe")
Wyszukiwanie określonych ciągów poleceń
Następnie zapytanie szuka ciągów w wierszach poleceń, które są zwykle używane do pobierania plików przy użyciu programu PowerShell.
// Suspicious commands
| where ProcessCommandLine has_any("WebClient",
"DownloadFile",
"DownloadData",
"DownloadString",
"WebRequest",
"Shellcode",
"http",
"https")
Dostosowywanie kolumn wyników i długości
Teraz, gdy zapytanie jasno identyfikuje dane, które chcesz zlokalizować, możesz zdefiniować, jak wyglądają wyniki.
project
zwraca określone kolumny i top
ogranicza liczbę wyników. Te operatory pomagają zapewnić, że wyniki są dobrze sformatowane i dość duże i łatwe do przetworzenia.
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine,
FileName, ProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, RemoteIPType
| top 100 by Timestamp
Wybierz pozycję Uruchom zapytanie , aby wyświetlić wyniki.
Porada
Wyniki zapytań można wyświetlać jako wykresy i szybko dostosowywać filtry. Aby uzyskać wskazówki, przeczytaj o pracy z wynikami zapytania
Poznaj typowe operatory zapytań
Właśnie uruchomiono pierwsze zapytanie i masz ogólne pojęcie o jego składnikach. Nadszedł czas, aby nieco wycofać się i poznać pewne podstawy. Język zapytań Kusto używany przez zaawansowane wyszukiwanie zagrożeń obsługuje szereg operatorów, w tym następujące typowe.
Operator | Opis i użycie |
---|---|
where |
Przefiltruj tabelę do podzestawu wierszy, które spełniają predykat. |
summarize |
Utwórz tabelę, która agreguje zawartość tabeli wejściowej. |
join |
Scal wiersze dwóch tabel, tworząc nową tabelę, dopasowując wartości określonych kolumn z każdej tabeli. Obejrzyj artykuł Łączenie tabel w języku KQL , aby dowiedzieć się, jak to zrobić. |
count |
Zwraca liczbę rekordów w zestawie rekordów wejściowych. |
top |
Zwróć pierwsze rekordy N posortowane według określonych kolumn. |
limit |
Wróć do określonej liczby wierszy. |
project |
Wybierz kolumny do uwzględnienia, zmień nazwę lub upuść, a następnie wstaw nowe obliczone kolumny. |
extend |
Utwórz kolumny obliczeniowe i dołącz je do zestawu wyników. |
makeset |
Zwraca tablicę dynamiczną (JSON) zestawu unikatowych wartości, które wyrażenie przyjmuje w grupie. |
find |
Znajdź wiersze zgodne z predykatem w zestawie tabel. |
Aby wyświetlić dynamiczny przykład tych operatorów, uruchom je w sekcji Wprowadzenie w zaawansowanym polowaniu.
Omówienie typów danych
Zaawansowane wyszukiwanie zagrożeń obsługuje typy danych Kusto, w tym następujące typowe typy:
Typ danych | Implikacje dotyczące opisu i zapytania |
---|---|
datetime |
Dane i informacje o czasie zwykle reprezentują znaczniki czasu zdarzenia. Zobacz obsługiwane formaty daty/godziny |
string |
Ciąg znaków w formacie UTF-8 ujęty w cudzysłowy pojedyncze (' ) lub cudzysłów (" ).
Przeczytaj więcej o ciągach |
bool |
Ten typ danych obsługuje true lub false stany.
Zobacz obsługiwane literały i operatory |
int |
32-bitowa liczba całkowita |
long |
64-bitowa liczba całkowita |
Aby dowiedzieć się więcej o tych typach danych, przeczytaj o typach danych skalarnych Kusto.
Uzyskiwanie pomocy podczas pisania zapytań
Skorzystaj z następujących funkcji, aby szybciej pisać zapytania:
- Autosuggest — podczas pisania zapytań zaawansowane wyszukiwanie zagrożeń zapewnia sugestie z funkcji IntelliSense.
- Drzewo schematów — reprezentacja schematu zawierająca listę tabel i ich kolumn znajduje się obok obszaru roboczego. Aby uzyskać więcej informacji, umieść kursor nad elementem. Kliknij dwukrotnie element, aby wstawić go do edytora zapytań.
-
Dokumentacja schematu — dokumentacja w portalu z opisami tabel i kolumn, a także obsługiwane typy zdarzeń (
ActionType
wartości) i przykładowe zapytania
Praca z wieloma zapytaniami w edytorze
Edytor zapytań umożliwia eksperymentowanie z wieloma zapytaniami. Aby użyć wielu zapytań:
Rozdziel każde zapytanie pustym wierszem.
Umieść kursor na dowolnej części zapytania, aby wybrać to zapytanie przed jego uruchomieniem. Spowoduje to uruchomienie tylko wybranego zapytania. Aby uruchomić inne zapytanie, przesuń kursor odpowiednio i wybierz pozycję Uruchom zapytanie.
Aby uzyskać bardziej wydajny obszar roboczy, możesz również użyć wielu kart na tej samej stronie wyszukiwania zagrożeń. Wybierz pozycję Nowe zapytanie , aby otworzyć kartę dla nowego zapytania.
Następnie można uruchamiać różne zapytania bez otwierania nowej karty przeglądarki.
Uwaga
Użycie wielu kart przeglądarki z zaawansowanym wyszukiwaniem zagrożeń może spowodować utratę niezapisanych zapytań. Aby temu zapobiec, użyj funkcji tabulacji w ramach zaawansowanego wyszukiwania zagrożeń zamiast oddzielnych kart przeglądarki.
Używanie przykładowych zapytań
Sekcja Wprowadzenie zawiera kilka prostych zapytań przy użyciu powszechnie używanych operatorów. Spróbuj uruchomić te zapytania i wykonuj w nich niewielkie modyfikacje.
Uwaga
Oprócz podstawowych przykładów zapytań można również uzyskać dostęp do udostępnionych zapytań dla konkretnych scenariuszy wyszukiwania zagrożeń. Zapoznaj się z udostępnionymi zapytaniami po lewej stronie lub repozytorium zapytań usługi GitHub.
Dokumentacja języka zapytań dostępu
Aby uzyskać więcej informacji na temat języka zapytań Kusto i obsługiwanych operatorów, zobacz dokumentację języka zapytań Kusto.
Uwaga
Niektóre tabele w tym artykule mogą nie być dostępne w Ochrona punktu końcowego w usłudze Microsoft Defender. Włącz Microsoft Defender XDR, aby wyszukiwać zagrożenia przy użyciu większej liczby źródeł danych. Zaawansowane przepływy pracy wyszukiwania zagrożeń można przenieść z Ochrona punktu końcowego w usłudze Microsoft Defender do Microsoft Defender XDR, wykonując kroki opisane w temacie Migrowanie zaawansowanych zapytań wyszukiwania zagrożeń z Ochrona punktu końcowego w usłudze Microsoft Defender.
Tematy pokrewne
- Omówienie zaawansowanego wyszukiwania zagrożeń
- Praca z wynikami zapytań
- Używanie zapytań udostępnionych
- Wyszukiwanie zagrożeń na urządzeniach, w wiadomościach e-mail, aplikacjach i tożsamościach
- Analiza schematu
- Stosowanie najlepszych rozwiązań dla zapytań
Porada
Chcesz dowiedzieć się więcej? Zaangażuj się w społeczność rozwiązań zabezpieczających firmy Microsoft w naszej społeczności technicznej Społeczność techniczna usługi Microsoft Defender XDR.