Udostępnij za pośrednictwem


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

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.

    Przykład wykonania wielu zapytań na stronie **Nowe zapytanie** w portalu Microsoft Defender

    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.

    Otwieranie nowej karty przez wybranie pozycji Utwórz nową w zaawansowanym polowaniu w portalu Microsoft Defender

    Następnie można uruchamiać różne zapytania bez otwierania nowej karty przeglądarki.

    Uruchamianie różnych zapytań bez opuszczania zaawansowanej strony wyszukiwania zagrożeń w portalu Microsoft Defender

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.

Sekcja **Wprowadzenie** na stronie **Zaawansowane wyszukiwanie zagrożeń** w portalu Microsoft Defender

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.

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.