Udostępnij za pośrednictwem


Dodawanie zapytań społeczności zaawansowanego wyszukiwania zagrożeń do Microsoft Defender XDR i Microsoft Sentinel

Tworzenie i udostępnianie zapytań zaawansowanego wyszukiwania zagrożeń w Microsoft Defender nie tylko rozszerza własne operacje zabezpieczeń, ale także przyczynia się do szerszej społeczności użytkowników usługi Defender. Ten przewodnik przeprowadzi Cię przez proces tworzenia nowych lub modyfikowania istniejących zapytań oraz publikowania ich w sekcji Zapytania społeczności w portalu Microsoft Defender.

Wykonanie kroków opisanych w tym artykule zapewnia, że zapytania są dostępne dla wszystkich klientów, co ułatwia innym osobom skuteczniejsze wykrywanie zagrożeń przy jednoczesnym promowaniu współpracy i uczenia współdzielonego w ekosystemie zabezpieczeń.

Zrzut ekranu przedstawiający zapytania społeczności w obszarze Zaawansowane wyszukiwanie zagrożeń w portalu Microsoft Defender.

Wymagania wstępne

  • Konto usługi GitHub.

  • W procedurach w tym artykule użyto Visual Studio Code (VS Code) do tworzenia rozwidlenia, klonowania, tworzenia i synchronizowania zapytań do i z repozytorium GitHub usługi Azure Sentinel. Dla wszystkich tych zadań są dostępne różne narzędzia z różnymi instrukcjami.

  • Subskrypcja platformy Microsoft 365 obejmująca zaawansowane wyszukiwanie zagrożeń. Przykład:

    • Microsoft Defender XDR
    • Microsoft Sentinel
    • Ochrona usługi Office 365 w usłudze Microsoft Defender plan 2

Krok 1. Tworzenie rozwidlenia repozytorium Usługi Azure Sentinel GitHub na koncie usługi GitHub

Ponieważ nie masz uprawnień administratora do repozytorium Usługi Azure Sentinel GitHub, musisz rozwidlić repozytorium, a jedynym dostępnym miejscem docelowym jest konto usługi GitHub.

  1. Otwórz repozytorium GitHub usługi Azure Sentinel pod adresem https://github.com/Azure/Azure-Sentinel/.

  2. Wybierz pozycję Rozwidlenie , aby utworzyć własną kopię repozytorium. Na stronie Tworzenie nowego rozwidlenia , która zostanie otwarta, przejrzyj następujące ustawienia domyślne:

    • Właściciel: sprawdź, czy nazwa konta usługi GitHub jest wyświetlana.
    • Nazwa repozytorium: sprawdź wartość Azure-Sentinel.
    • Opis: Sprawdź tekst opisu.
    • Skopiuj tylko gałąź główną: sprawdź, czy wybrano tę opcję.

    Po zakończeniu pracy na stronie Tworzenie nowego rozwidlenia wybierz pozycję Utwórz nowy rozwidlenie.

    Zrzut ekranu przedstawiający górną część repozytorium GitHub usługi Azure Sentinel z wybranym rozwidleniem.

    Zrzut ekranu przedstawiający stronę Tworzenie nowego rozwidlenia.

  3. Po pomyślnym utworzeniu rozwidlenia zostanie wyświetlony adres URL rozwidlenia repozytorium Azure-Sentinel na koncie usługi GitHub: https://github.com/<YourGitHubAccountName>/Azure-Sentinel. Na tej stronie wybierz pozycję Kod. Na lokalnej karcie listy rozwijanej, która zostanie otwarta, wybierz pozycję Kopiuj adres URL do schowka na karcie HTTPS sekcji Klonuj . Skopiowany adres URL to: https://github.com/<YourGitHubAccountName>/Azure-Sentinel.git.

    Zrzut ekranu przedstawiający przycisk Kopiuj adres URL do schowka z poziomu przycisku Kod na rozwidleniach strony Azure-Sentinel.

Krok 2. Klonowanie repozytorium GitHub na komputer lokalny

Po rozwidleniu repozytorium Usługi Azure Sentinel GitHub do konta usługi GitHub należy utworzyć lokalny klon repozytorium na komputerze, aby można było z nich korzystać.

  1. Otwórz program VS Code. Jeśli nie jesteś jeszcze w czystej sesji bez innych otwartych plików, wybierz pozycję Nowy plik>okna lub naciśnij CTRL+Shift+N.

  2. Wybierz pozycję Kontrola źródła lub naciśnij CTRL+Shift+G

    Zrzut ekranu przedstawiający Visual Studio Code z wybraną kontrolką źródła.

  3. W wyświetlonym menu wysuwowym Kontrola źródła wybierz pozycję Sklonuj repozytorium.

    Zrzut ekranu przedstawiający repozytorium klonowania w Visual Studio Code z wybranym repozytorium klonowania.

  4. W wyświetlonym oknie dialogowym wklej https://github.com/<YourGitHubAccountName>/Azure-Sentinel.git adres URL skopiowany w kroku 1.3 w polu, a następnie wybierz pozycję Klonuj z adresu URL wyświetlanego pod polem.

    Zrzut ekranu przedstawiający okno dialogowe Klonowanie repozytorium w Visual Studio Code z wprowadzonym rozwidlonym adresem URL usługi GitHub i wybraną opcją Klonuj z adresu URL.

  5. W oknie dialogowym Wybieranie folderu do sklonowania https://github.com/<YourGitHubAccountName>/Azure-Sentinel.git do otwarcia znajdź lub utwórz lokalny folder nadrzędny (na przykład C:\GitHub) dla sklonowanego rozwidlenia repozytorium, a następnie wybierz pozycję Wybierz jako miejsce docelowe repozytorium. Lokalny klon rozwidlonego repozytorium znajduje się w folderze <ParentFolder>\<RepositoryName> (na przykład C:\GitHub\Azure-Sentinel).

    Zrzut ekranu przedstawiający okno dialogowe Wybieranie folderu do sklonowania z wybranym i wyróżnionym docelowym folderem nadrzędnym.

  6. Poczekaj kilka minut na ukończenie klonowania repozytorium Azure-Sentinel.

    Zrzut ekranu przedstawiający okno dialogowe postępu w Visual Studio Code podczas klonowania repozytorium Azure-Sentinel.

  7. Po zakończeniu klonowania zostanie otwarte okno dialogowe Czy chcesz otworzyć repozytorium klonowania? Wybierz pozycję Otwórz , aby otworzyć sklonowane repozytorium w programie C:\GitHub\Azure-Sentinel VS Code (na przykład folder i jego zawartość).

    Zrzut ekranu przedstawiający stronę Czy chcesz otworzyć repozytorium klonowania? okno dialogowe z okna dialogowego Visual Studio Code, które zostanie otwarte po zakończeniu klonowania repozytorium z wyróżnionym pozycją Otwórz.

  8. Jeśli struktura folderów została niedawno utworzona na dysku lokalnym, może zostać wyświetlony komunikat Czy ufasz autorom plików w tym folderze?, który odnosi się do folderu Azure-Sentinel (ufasz im).

    Aby zaufać wszelkim przyszłym repozytoriom, które są klonowane w folderze nadrzędnym (na przykład C:\GitHub), wybierz pozycję Ufaj autorom wszystkich plików w folderze <ParentFolderName>nadrzędnym .

    Aby kontynuować, wybierz pozycję Tak, ufam autorom.

    Zrzut ekranu przedstawiający listę Czy ufasz autorom plików w tym folderze? okno dialogowe z Visual Studio Code okna dialogowego, które może zostać otwarte z wyróżnionymi wartościami Tak. Ufam wyróżnionym autorom.

Krok 3. Tworzenie gałęzi roboczej w sklonowanym repozytorium na komputerze lokalnym

Po wybraniu pozycji Tak ufam autorom program VS Code zostanie otwarty w widoku Eksploratora z wybranym folderem Azure-Sentinel . Wszystkie pliki i foldery można wyświetlić z repozytorium nadrzędnego w usłudze GitHub.

Domyślnie gałąź główna (główna) jest aktywna po otwarciu sklonowanego rozwidlenia repozytorium. Nie wprowadzaj aktualizacji w gałęzi głównej . Zamiast tego utwórz gałąź roboczą w lokalnie sklonowanej, rozwidlonej kopii repozytorium, z która będzie działać.

  1. W programie VS Code wybierz nazwę aktywnej gałęzi w lewym dolnym rogu (co jest prawdopodobnie wzorcem).

    Zrzut ekranu przedstawiający aktywną (otwartą) gałąź wyróżnioną w Visual Studio Code.

  2. W wyświetlonym oknie dialogowym wybierz pozycję Utwórz nową gałąź z..., a następnie wybierz pozycję master (inne dostępne gałęzie również pojawią się na liście).

    Zrzut ekranu przedstawiający okno dialogowe, które zostanie otwarte po wybraniu aktywnej (otwartej) gałęzi w Visual Studio Code z opcją Utwórz nową gałąź z... podświetlony.

    Zrzut ekranu przedstawiający okno dialogowe, które zostanie otwarte po wybraniu pozycji Utwórz nową gałąź z... w Visual Studio Code z wyróżnioną gałęzią główną.

  3. W oknie dialogowym Podaj nową nazwę gałęzi , które zostanie otwarte, wprowadź odpowiednią nazwę dla gałęzi (na przykład ), a następnie naciśnij Enter, new-mdo-queriesaby potwierdzić.

    Zrzut ekranu przedstawiający okno dialogowe Podaj nową nazwę gałęzi, które zostanie otwarte w Visual Studio Code, z wprowadzona wartością new-mdo-queries.

Aktywna gałąź zmienia się z głównej na nowo utworzoną gałąź.

Aby oddzielić pracę od różnych zapytań, możesz utworzyć wiele gałęzi roboczych o różnych nazwach, powtarzając poprzednie kroki opisane w tej sekcji.

Przejdź do następnej sekcji, aby rozpocząć tworzenie lub modyfikowanie zapytań.

Krok 4. Tworzenie zapytań zaawansowanego wyszukiwania zagrożeń w gałęzi roboczej w sklonowanym repozytorium na komputerze lokalnym

Po otwarciu programu VS Code w celu utworzenia lub zaktualizowania zapytań zawsze sprawdź, czy żądana gałąź robocza to aktywna gałąź (nie główna):

Zrzut ekranu przedstawiający aktywną (otwartą) gałąź wyróżnioną w Visual Studio Code, która jest teraz nową gałęzią utworzoną w poprzednim kroku.

Jeśli tak nie jest, wybierz nazwę aktywnej gałęzi w lewym dolnym rogu, a następnie wybierz gałąź roboczą z sekcji gałęzi .

  1. Teraz możesz tworzyć zapytania wyszukiwania zagrożeń w gałęzi roboczej. Na przykład następujące zapytanie język zapytań Kusto (KQL) jest podstawowym raportem adresatów, którzy otrzymują najwięcej wiadomości wyłudzających informacje.

    EmailEvents
    | where ThreatTypes has "Phish" and EmailDirection == "Inbound"
    | summarize count() by RecipientEmailAddress
    | sort by count_
    | top 15 by count_
    
  2. Przetestuj zapytanie na stronie Zaawansowane wyszukiwanie zagrożeń w portalu usługi Defender pod adresem https://security.microsoft.com/v2/advanced-hunting , aby upewnić się, że zapytanie nie zawiera błędów i zwraca dane zgodnie z oczekiwaniami.

    Zrzut ekranu przedstawiający stronę Zaawansowane wyszukiwanie zagrożeń w portalu usługi Defender z poprzednim przykładowym zapytaniem i wynikami bez błędów.

  3. W widoku Eksploratora programu VS Code przejdź do jednego z następujących folderów nadrzędnych na podstawie użycia i dostępności zapytania w portalu usługi Defender:

    • \Azure-Sentinel\Hunting Queries\Microsoft 365 Defender\Email Queries: dostępne w sekcji Zapytania społeczności na karcie Zapytania na stronie Zaawansowane wyszukiwanie zagrożeń w portalu usługi Defender pod adresem https://security.microsoft.com/v2/advanced-hunting.
    • \Azure-Sentinel\Solutions\Microsoft Defender XDR\Hunting Queries\Email Queries: Dostępne jako zapytania Sentinel (rozwiązanie Microsoft Defender XDR).

    W większości przypadków należy ostatecznie utworzyć plik zapytania w obu lokalizacjach, aby można było użyć zapytania w obu scenariuszach.

  4. W programie VS Code utwórz nowy plik yaml w odpowiednim podfoldecie tych lokalizacji. Istnieje wiele podfolderów do wyboru. W naszym przykładzie nazwa logiczna i lokalizacja naszego nowego pliku zapytania znajduje się Top users receiving phish.yamlPhish w podfoldecie.

    Więcej informacji na temat wymagań i struktury pliku yaml można znaleźć w przewodniku po stylu zapytań w witrynie typu wiki repozytorium Azure-Sentinel.

    Użyj polecenia cmdlet New-Guid w Windows PowerShell, aby utworzyć unikatowy identyfikator GUID dla właściwości identyfikatora pliku zapytania (na przykład 36f68d74-3e45-44d8-9915-0d35b7567bcf).

    Gotowy Top users receiving phish.yaml plik wygląda mniej więcej tak:

    id: 36f68d74-3e45-44d8-9915-0d35b7567bcf
    name: Friendly name describing the query
    description: |
      A short description of what the query does.
    description-detailed: |
      A much longer description of the intention of the query within Defender for Office 365.
    requiredDataConnectors:
    - connectorId: MicrosoftThreatProtection
      dataTypes:
      - EmailEvents
    tactics:
      - InitialAccess
    relevantTechniques:
      - T1566
    query: |
      EmailEvents
      | where ThreatTypes has "Phish" and EmailDirection == "Inbound"
      | summarize count() by RecipientEmailAddress
      | sort by count_
      | top 15 by count_
    version: l.0.0
    
  5. Po zakończeniu i zapisaniu pliku zapytania w jednej lokalizacji skopiuj plik do innej lokalizacji, aby można było użyć zapytania zarówno w obszarze Zaawansowane wyszukiwanie zagrożeń, jak i Microsoft Sentinel.

Krok 5. Synchronizowanie zmian z komputera lokalnego do rozwidlenia na koncie usługi GitHub

Po dodaniu plików zapytań yaml w sklonowanym repozytorium na komputerze lokalnym należy zsynchronizować te aktualizacje z kopią rozwidloną repozytorium usługi Azure Sentinel na koncie usługi GitHub.

  1. W programie VS Code wybierz widok Kontrola źródła .

    Zrzut ekranu przedstawiający Visual Studio Code z wyróżnionym widokiem Kontrola źródła.

  2. W otwieranym oknie dialogowym sekcja Zmiany zawiera listę wszystkich plików zmodyfikowanych w bieżącej gałęzi:

    Zrzut ekranu przedstawiający widok Kontrola źródła w Visual Studio Code z wyróżnionymi zmianami.

    • Jeśli klikniesz nazwę pliku, zostanie otwarty zmodyfikowany plik z wyróżnionym zmodyfikowanym tekstem. Przed kontynuowaniem możesz przejrzeć zmiany dotyczące problemów lub błędów.

    • W polu Komunikat wprowadź krótki opis zmian. Użyj zwięzłego języka. Na przykład dodano zapytanie, aby wyświetlić listę najlepszych adresatów języka Phish. Po zakończeniu wybierz pozycję Zatwierdź.

      Zrzut ekranu przedstawiający widok Kontrola źródła w Visual Studio Code z wypełnionym polem Komunikat i wyróżnionym przyciskiem Zatwierdź.

    • Jeśli synchronizujesz gałąź roboczą i jej aktualizacje z rozwidleniem na koncie usługi GitHub po raz pierwszy, zostanie wyświetlona opcja Publikuj gałąź , którą należy wybrać.

      Zrzut ekranu przedstawiający widok Kontrola źródła w Visual Studio Code z wyróżnionym przyciskiem Publikuj gałąź.

    W przyszłości po zsynchronizowaniu zmian lokalnych w gałęzi roboczej z rozwidleniem na koncie usługi GitHub zostanie wyświetlona funkcja Synchronizuj zmiany .

Krok 6. Tworzenie żądania ściągnięcia z rozwidlenia na koncie usługi GitHub do publicznego repozytorium usługi Azure Sentinel

Po zsynchronizowaniu aktualizacji z rozwidleniem kopii repozytorium na koncie usługi GitHub utworzysz żądanie ściągnięcia, aby scalić te zmiany z powrotem do publicznego repozytorium usługi Azure Sentinel GitHub.

Porada

Jeśli żądanie ściągnięcia nie zostało scalone, możesz powtórzyć kroki 4 i Krok 5 , aby zaktualizować pliki źródłowe w rozwidleniach kopii repozytorium, co modyfikuje aktywne żądanie ściągnięcia.

  1. Przejdź do linku https://github.com/<YourGitHubAccountName>/Azure-Sentinel z kroku 1.

  2. W razie potrzeby odśwież stronę, aby wyświetlić powiadomienie, że gałąź robocza zsynchronizowana w poprzednim kroku ma ostatnie zmiany. Wybierz pozycję Porównaj żądanie ściągnięcia &. Gałąź ma ostatnio wprowadzone zmiany.

    Zrzut ekranu przedstawiający stronę Porównanie żądania ściągnięcia &.

  3. Postępuj zgodnie ze wskazówkami podanymi w opisie i odpowiednio odpowiedz.

  4. Jeśli musisz wprowadzić dalsze zmiany, możesz wybrać pozycję Utwórz robocze żądanie ściągnięcia , aby wskazać, że żądanie ściągnięcia nie jest gotowe do przejrzenia i zatwierdzenia. Jednak zazwyczaj możesz wybrać pozycję Utwórz żądanie ściągnięcia , aby kontynuować.

  5. Osoba z uprawnieniami do scalania żądania ściągnięcia przejrzy Zmiany. Recenzent może zażądać dodatkowych zmian zgodnych ze standardami repozytorium. Możesz użyć kroków 4 i 5 , aby wprowadzić żądane zmiany na komputerze lokalnym i zsynchronizować je z rozwidleniem, aby zostały uwzględnione w żądaniu ściągnięcia.

Zobacz też