Poznaj zaawansowany język zapytań wyszukiwania zagrożeń
Dotyczy:
- Microsoft Defender XDR
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")
Search dla 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 |
Twórca 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:
- Automatyczne sugerowanie — podczas pisania zapytań zaawansowane wyszukiwanie zagrożeń zapewnia sugestie z funkcji IntelliSense.
- Drzewo schematów — obok obszaru roboczego znajduje się reprezentacja schematu zawierająca listę tabel i ich kolumn. 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ługiwanymi typami zdarzeń (
ActionType
wartościami) i przykładowymi zapytaniami
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.