Delen via


Communityquery's voor geavanceerde opsporing toevoegen aan Microsoft Defender XDR en Microsoft Sentinel

Het maken en delen van Geavanceerde opsporingsquery's in Microsoft Defender verbetert niet alleen uw eigen beveiligingsbewerkingen, maar draagt ook bij aan de bredere community van Defender-gebruikers. Deze handleiding begeleidt u bij het maken van nieuwe of het wijzigen van bestaande query's en het publiceren van query's in de sectie Communityquery's in de Microsoft Defender portal.

Als u de stappen in dit artikel volgt, zorgt u ervoor dat uw query's toegankelijk zijn voor alle klanten, waardoor anderen bedreigingen effectiever kunnen detecteren en tegelijkertijd samenwerking en gedeeld leren in het beveiligingsecosysteem worden bevorderd.

Schermopname van communityquery's in Geavanceerde opsporing in de Microsoft Defender-portal.

Vereisten

  • Een GitHub-account.

  • De procedures in dit artikel maken gebruik van Visual Studio Code (VS Code) voor het forken, klonen, maken en synchroniseren van query's van en naar de Azure Sentinel GitHub-opslagplaats. Er zijn verschillende hulpprogramma's met verschillende instructies beschikbaar voor al deze taken.

  • Een Microsoft 365-abonnement met Geavanceerde opsporing. Bijvoorbeeld:

    • Microsoft Defender XDR
    • Microsoft Sentinel
    • Abonnement 2 voor Microsoft Defender voor Office 365

Stap 1: de Azure Sentinel GitHub-opslagplaats splitsen naar uw GitHub-account

Omdat u geen beheerdersmachtigingen hebt voor de Azure Sentinel GitHub-opslagplaats, moet u de opslagplaats splitsen en is uw GitHub-account de enige beschikbare bestemming.

  1. Open de Azure Sentinel GitHub-opslagplaats op https://github.com/Azure/Azure-Sentinel/.

  2. Selecteer Fork om uw eigen kopie van de opslagplaats te maken. Controleer op de pagina Een nieuwe fork maken die wordt geopend de volgende standaardinstellingen:

    • Eigenaar: Controleer of de naam van uw GitHub-account wordt weergegeven.
    • Naam van opslagplaats: controleer de waarde Azure-Sentinel.
    • Beschrijving: controleer de beschrijvingstekst.
    • Alleen de hoofdbranch kopiëren: controleer of deze optie is geselecteerd.

    Wanneer u klaar bent op de pagina Een nieuwe fork maken, selecteert u Nieuwe fork maken.

    Schermopname van de bovenkant van de Azure Sentinel GitHub-opslagplaats met Fork geselecteerd.

    Schermopname van de pagina Een nieuwe fork maken.

  3. Nadat de fork is gemaakt, gaat u naar de URL van de Azure-Sentinel opslagplaatsfork in uw GitHub-account: https://github.com/<YourGitHubAccountName>/Azure-Sentinel. Selecteer code op deze pagina. Selecteer op het tabblad Lokaal van de vervolgkeuzelijst die wordt geopend de optie URL naar klembord kopiëren op het tabblad HTTPS van de sectie Klonen . De gekopieerde URL is: https://github.com/<YourGitHubAccountName>/Azure-Sentinel.git.

    Schermopname van URL naar klembord kopiëren vanaf de knop Code op de geforkte kopie van de Azure-Sentinel-pagina.

Stap 2: Kloon de GitHub-opslagplaats naar uw lokale computer

Nadat u de Azure Sentinel GitHub-opslagplaats hebt gesplits naar uw GitHub-account, moet u een lokale kloon van de opslagplaats op uw computer maken om te kunnen werken.

  1. Open VS Code. Als u zich nog niet in een schone sessie bevindt zonder dat andere bestanden zijn geopend, selecteert uNieuw vensterbestand> of drukt u op Ctrl+Shift+N.

  2. Selecteer Broncodebeheer of druk op Ctrl+Shift+G

    Schermopname van Visual Studio Code met Broncodebeheer geselecteerd.

  3. Selecteer in de flyout Broncodebeheer die wordt geopend de optie Opslagplaats klonen.

    Schermopname van Kloonopslagplaats in Visual Studio Code met Kloonopslagplaats geselecteerd.

  4. Plak in het dialoogvenster dat wordt geopend de https://github.com/<YourGitHubAccountName>/Azure-Sentinel.git URL die u in stap 1.3 hebt gekopieerd in het vak en selecteer vervolgens Klonen van URL die onder het vak wordt weergegeven.

    Schermopname van het dialoogvenster Opslagplaats klonen in Visual Studio Code met de geforkte GitHub-URL die is ingevoerd en Klonen uit URL geselecteerd.

  5. Zoek of maak een lokale bovenliggende map (bijvoorbeeld C:\GitHub) voor de gekloonde fork van de opslagplaats in het dialoogvenster Kies een map om in te klonen https://github.com/<YourGitHubAccountName>/Azure-Sentinel.git en selecteer vervolgens Als opslagplaatsdoel selecteren. De lokale kloon van de geforkte opslagplaats bevindt zich in de <ParentFolder>\<RepositoryName> map (bijvoorbeeld C:\GitHub\Azure-Sentinel).

    Schermopname van het dialoogvenster Kies een map om in te klonen met een bovenliggende doelmap geselecteerd en gemarkeerd.

  6. Wacht enkele minuten totdat het klonen van de Azure-Sentinel opslagplaats is voltooid.

    Schermopname van het voortgangsdialoogvenster in Visual Studio Code terwijl de Azure-Sentinel opslagplaats wordt gekloond.

  7. Nadat het klonen is voltooid, wordt het dialoogvenster Wilt u de kloonopslagplaats openen? geopend. Selecteer Openen om de gekloonde opslagplaats in VS Code te openen (bijvoorbeeld de map en de C:\GitHub\Azure-Sentinel inhoud ervan).

    Schermopname van de Wilt u de kloonopslagplaats openen? dialoogvenster van Visual Studio Code dat wordt geopend nadat het klonen van de opslagplaats is voltooid, met Openen gemarkeerd.

  8. Als u onlangs de mapstructuur op uw lokale station hebt gemaakt, ontvangt u mogelijk de melding Hebt u de auteurs van de bestanden in deze map vertrouwd? die verwijst naar de Azure-Sentinel map (u vertrouwt hen).

    Als u toekomstige opslagplaatsen wilt vertrouwen die u in de bovenliggende map kloont (bijvoorbeeld C:\GitHub), selecteert u De auteurs van alle bestanden in de bovenliggende map <ParentFolderName>vertrouwen.

    Als u wilt doorgaan, selecteert u Ja, ik vertrouw de auteurs.

    Schermopname van de optie Vertrouwt u de auteurs van de bestanden in deze map? dialoogvenster van Visual Studio Code dat kan worden geopend, met Ja, ik vertrouw de auteurs gemarkeerd.

Stap 3: een werkbranch maken in de gekloonde opslagplaats op uw lokale computer

Nadat u Ja, ik vertrouw de auteurs hebt geselecteerd, wordt VS Code geopend in de Verkenner-weergave met de Azure-Sentinel map geselecteerd. U kunt alle bestanden en mappen uit de bovenliggende opslagplaats op GitHub bekijken.

Standaard is de hoofdvertakking (hoofdvertakking) actief wanneer u de gekloonde fork van de opslagplaats opent. Breng geen updates aan in de hoofdvertakking . Maak in plaats daarvan een werkbranch in uw lokaal gekloonde, gesplitste kopie van de opslagplaats om uit te werken.

  1. Selecteer in VS Code de naam van de actieve vertakking in de linkerbenedenhoek (die waarschijnlijk master is).

    Schermopname van de actieve (open) vertakking die is gemarkeerd in Visual Studio Code.

  2. Selecteer in het dialoogvenster dat wordt geopend de optie Nieuwe vertakking maken van... en selecteer vervolgens master (andere beschikbare vertakkingen worden ook weergegeven in de lijst).

    Schermopname van het dialoogvenster dat wordt geopend nadat u de actieve vertakking (openen) in Visual Studio Code hebt geselecteerd met Nieuwe vertakking maken van... Gemarkeerd.

    Schermopname van het dialoogvenster dat wordt geopend nadat u Nieuwe vertakking maken hebt geselecteerd vanuit... in Visual Studio Code met de hoofdvertakking gemarkeerd.

  3. Voer in het dialoogvenster Geef een nieuwe vertakkingsnaam op dat wordt geopend een geschikte naam voor de vertakking in (bijvoorbeeld new-mdo-queries) en druk op Enter om te bevestigen.

    Schermopname van het dialoogvenster Geef een nieuwe vertakkingsnaam op dat wordt geopend in Visual Studio Code, met de waarde new-mdo-query's ingevoerd.

De actieve vertakking verandert van master in de nieuwe vertakking die u hebt gemaakt.

Als u uw werk voor verschillende query's wilt scheiden, kunt u meerdere werkvertakkingen met verschillende namen maken door de vorige stappen in deze sectie te herhalen.

Ga naar de volgende sectie om te beginnen met het maken of wijzigen van query's.

Stap 4: Geavanceerde opsporingsquery's maken in de werkbranch in de gekloonde opslagplaats op uw lokale computer

Wanneer u VS Code opent om query's te maken of bij te werken, controleert u altijd of de gewenste werkvertakking de actieve vertakking is (niet de master):

Schermopname van de actieve (open) vertakking gemarkeerd in Visual Studio Code. Dit is nu de nieuwe vertakking die u in de vorige stap hebt gemaakt.

Als dat niet zo is, selecteert u de naam van de actieve vertakking in de linkerbenedenhoek en selecteert u vervolgens de werkbranch in de sectie Vertakkingen .

  1. U kunt nu opsporingsquery's maken in uw werkbranch. De volgende KQL-query (Kusto-querytaal) is bijvoorbeeld een basisrapport van geadresseerden die de meeste phishingberichten ontvangen.

    EmailEvents
    | where ThreatTypes has "Phish" and EmailDirection == "Inbound"
    | summarize count() by RecipientEmailAddress
    | sort by count_
    | top 15 by count_
    
  2. Test de query op de pagina Geavanceerde opsporing in de Defender-portal op https://security.microsoft.com/v2/advanced-hunting om ervoor te zorgen dat de query geen fouten bevat en gegevens retourneert zoals verwacht.

    Schermopname van de pagina Geavanceerde opsporing in de Defender-portal met de vorige voorbeeldquery en resultaten zonder fouten.

  3. Ga in de Verkenner-weergave van VS Code naar een van de volgende bovenliggende mappen op basis van het gebruik en de beschikbaarheid van de query in de Defender-portal:

    • \Azure-Sentinel\Hunting Queries\Microsoft 365 Defender\Email Queries: Beschikbaar in de sectie Community-query's op het tabblad Query's van de pagina Geavanceerde opsporing in de Defender-portal op https://security.microsoft.com/v2/advanced-hunting.
    • \Azure-Sentinel\Solutions\Microsoft Defender XDR\Hunting Queries\Email Queries: beschikbaar als Sentinel query's (Microsoft Defender XDR Solution).

    In de meeste gevallen moet u uiteindelijk het querybestand op beide locaties maken, zodat u de query in beide scenario's kunt gebruiken.

  4. Maak in VS Code een nieuw YAML-bestand in de juiste submap van deze locaties. Er zijn veel submappen waaruit u kunt kiezen. In ons voorbeeld bevinden Top users receiving phish.yaml zich een logische naam en locatie voor het nieuwe querybestand in de Phish submap.

    Meer informatie over de vereisten en structuur van het .yaml-bestand vindt u in De querystijlhandleiding op de wiki Azure-Sentinel opslagplaats.

    Gebruik de cmdlet New-Guid in Windows PowerShell om een unieke GUID te maken voor de id-eigenschap van het querybestand (bijvoorbeeld 36f68d74-3e45-44d8-9915-0d35b7567bcf).

    Het voltooide Top users receiving phish.yaml bestand ziet er ongeveer als volgt uit:

    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. Nadat u het querybestand op de ene locatie hebt opgeslagen, kopieert u het bestand naar de andere locatie, zodat u de query kunt gebruiken in zowel Geavanceerde opsporing als Microsoft Sentinel.

Stap 5: de wijzigingen van uw lokale computer synchroniseren met de fork in uw GitHub-account

Nadat u .yaml-querybestanden hebt toegevoegd in de gekloonde opslagplaats op uw lokale computer, moet u deze updates terug synchroniseren naar de geforkte kopie van de Azure Sentinel-opslagplaats in uw GitHub-account.

  1. Selecteer in VS Code de weergave Broncodebeheer .

    Schermopname van Visual Studio Code met de weergave Broncodebeheer gemarkeerd.

  2. In het dialoogvenster dat wordt geopend, worden alle bestanden weergegeven die zijn gewijzigd in de huidige vertakking:

    Schermopname van de weergave Broncodebeheer in Visual Studio Code met Wijzigingen gemarkeerd.

    • Als u op de bestandsnaam klikt, wordt het gewijzigde bestand geopend met de gewijzigde tekst gemarkeerd. U kunt de wijzigingen controleren op problemen of fouten voordat u doorgaat.

    • Voer in het vak Bericht een korte beschrijving van de wijzigingen in. Gebruik beknopte taal. Bijvoorbeeld : Er is een query toegevoegd om de belangrijkste Phish-geadresseerden weer te geven. Wanneer u klaar bent, selecteert u Doorvoeren.

      Schermopname van de weergave Broncodebeheer in Visual Studio Code met het vak Bericht ingevuld en de knop Doorvoeren gemarkeerd.

    • Als u de werkvertakking en de bijbehorende updates voor het eerst synchroniseert met de fork in uw GitHub-account, ziet u De publicatievertakking die u moet selecteren.

      Schermopname van de weergave Broncodebeheer in Visual Studio Code met de knop Vertakking publiceren gemarkeerd.

    Wanneer u in de toekomst lokale wijzigingen in de werkvertakking synchroniseert met de fork in uw GitHub-account, ziet u in plaats daarvan Wijzigingen synchroniseren .

Stap 6: maak een pull-aanvraag van de fork in uw GitHub-account naar de openbare Azure Sentinel-opslagplaats

Nadat u de updates hebt gesynchroniseerd met de geforkte kopie van de opslagplaats in uw GitHub-account, maakt u een pull-aanvraag om deze wijzigingen weer samen te voegen in de openbare Azure Sentinel GitHub-opslagplaats.

Tip

Zolang de pull-aanvraag niet is samengevoegd, kunt u stap 4 en stap 5 herhalen om de bronbestanden in de geforkte kopie van de opslagplaats bij te werken, waardoor de actieve pull-aanvraag wordt gewijzigd.

  1. Ga naar de https://github.com/<YourGitHubAccountName>/Azure-Sentinel koppeling in stap 1.

  2. Vernieuw zo nodig de pagina om de melding te zien dat de werkvertakking die u in de vorige stap hebt gesynchroniseerd, recente wijzigingen heeft. Selecteer Vergelijken & pull-aanvraag. vertakking heeft recente wijzigingen.

    Schermopname van de pagina Vergelijken & pull-aanvraag.

  3. Volg zo nodig de richtlijnen in de beschrijving en het antwoord.

  4. Als u verdere wijzigingen wilt aanbrengen, kunt u Concept pull-aanvraag maken selecteren om aan te geven dat de pull-aanvraag nog niet klaar is om te worden beoordeeld en goedgekeurd. U kunt echter meestal Pull-aanvraag maken selecteren om door te gaan.

  5. Iemand met de machtigingen om de pull-aanvraag samen te voegen, controleert uw wijzigingen. De revisor kan aanvullende wijzigingen aanvragen om te voldoen aan de standaarden van de opslagplaats. U kunt stap 4 en stap 5 gebruiken om aangevraagde wijzigingen aan te brengen op uw lokale computer en deze weer te synchroniseren met uw fork, zodat ze worden opgenomen in de pull-aanvraag.

Zie ook