Kürzlich habe ich Auf Twitter geteilt Wie Sie mithilfe von Microsoft Defender Advanced Threat Protection (MDATP) eine Abfrage ausführen können, um festzustellen, ob ein Benutzer in Outlook auf einen Link geklickt hat. Falls Sie MDATP noch nicht kennen: Es ist in Ihrer Microsoft 365 E5-Lizenz enthalten und eine Erweiterung des Ihnen möglicherweise bekannten Windows Defender.
Was ist Microsoft Defender Advanced Threat Protection?
Microsoft Microsoft Defender Advanced Threat Protection (MDATP) ist eine Plattform, die Unternehmensnetzwerke dabei unterstützt, fortgeschrittene Bedrohungen zu verhindern, zu erkennen, zu untersuchen und darauf zu reagieren. MDATP bietet zahlreiche Endpunkte, die sowohl bei der Reaktion auf Sicherheitsvorfälle als auch bei der Bedrohungssuche genutzt werden können.
Der Offizielle Dokumentation Es gibt mehrere API-Endpunkte, mit denen Sie Warnungen und Indikatoren abrufen, erstellen und aktualisieren können. Zusätzlich finden Sie hier eine kurze Liste einiger Informationen, die Sie abrufen können, oder Aktionen, die Sie mit den erweiterten Bedrohungsschutz-APIs von Microsoft Defender durchführen können:
- Erhalten Sie alle Benachrichtigungen zu einer Domäne, Datei, IP-Adresse, einem Rechner oder Benutzer.
- Informationen darüber abrufen, wer an einem bestimmten Rechner angemeldet ist.
- Prüfen Sie, ob eine Domain oder IP-Adresse in Ihrer Organisation bereits aufgetreten ist.
Dies sind nur einige der interessanten verfügbaren APIs, aber die für mich überzeugendste – und die, über die wir sprechen werden – ist fortgeschrittene Jagd.
Interaktion mit Microsoft Defender Advanced Threat Protection
Ich habe ein neues Bundle für Swimlane geschrieben, das die gesamten Microsoft Defender ATP API-Endpunkte kapselt. Für unsere Nicht-Kunden möchte ich jedoch zeigen, wie Sie mit den Microsoft Defender ATP APIs interagieren können. PowerShell Core Und Python.
Um mit den erweiterten Bedrohungsschutz-APIs von Microsoft Defender interagieren zu können, benötigen Sie Folgendes:
- Microsoft 365 E5-Lizenz oder Zugang zu MDATP.
- Auf mindestens einem Endpunkt muss MDATP installiert und aktiv sein.
- Die Möglichkeit, eine neue Anwendung in Azure Active Directory zu erstellen.
Als Erstes erstellen wir eine neue Anwendung in Azure Active Directory. Sie können eine neue Anwendung in Azure AD im Abschnitt „Azure Active Directory“ erstellen und dann zu folgendem Menüpunkt navigieren: App-Registrierungen. Klicken Sie auf Neuregistrierung Klicken Sie auf die Schaltfläche und geben Sie Ihrer Anwendung einen Namen. Registrieren.

Kopieren und speichern Sie Ihre Client-ID Und Mieter-ID an einem sicheren Ort (wir benötigen diese Information gleich). Wählen Sie anschließend die/den/das aus. API-Berechtigungen Abschnitt und klicken Berechtigung hinzufügen. Sie sollten auf der linken Seite eine neue Klinge haben.
Wenn diese neue Klinge geöffnet ist, wählen Sie die Die von meiner Organisation verwendeten APIs Registerkarte. Möglicherweise müssen Sie in der Suchleiste filtern, aber Sie sollten Folgendes sehen: WindowsDefenderATP Als Option aufgeführt. Falls nicht, stellen Sie bitte sicher, dass Sie Zugriff auf diese API haben, bevor Sie fortfahren.

Wählen Sie die WindowsDefenderATP API und dann auswählen Anwendungsberechtigungen. Sobald Sie die Auswahl getroffen haben Anwendungsberechtigungen, Es wird Ihnen eine Liste der Berechtigungen angezeigt. In diesem Beispiel wähle ich alle aus, um Zugriff auf alle verfügbaren Endpunkte zu erhalten. Bitte entscheiden Sie jedoch selbst, welche Berechtigungen Sie wählen.
Sobald Sie die gewünschten Berechtigungen ausgewählt haben, klicken Sie Berechtigungen hinzufügen Ganz unten und dann auf dem Hauptbildschirm sollten Sie sicherstellen, dass Sie die Option auswählen. Zustimmung des Großverwalters.

Als Nächstes gehen Sie zu Zertifikate & Geheimnisse Abschnitt und erstellen Sie einen Geheimnis des neuen Kunden. Sobald dies erstellt ist, speichern Sie es bitte zusammen mit den anderen Geheimnissen, die wir zuvor gespeichert haben.
Nachdem wir nun unsere Geheimnisse haben, können wir die beiden von mir erstellten Dateien verwenden, die die Verwendung der MDATP-APIs zum Abrufen von Daten demonstrieren. Token sowohl für zukünftige Authentifizierungsprozesse als auch zur direkten Interaktion mit der MDATP-API.
PowerShell Core
Ich habe eine bereitgestellt PS1 Eine Datei, die Sie als Referenz verwenden können. Diese Datei enthält zwei PowerShell-Funktionen, die wir am Ende bei Bedarf aufrufen:
- Get-MDATPToken: Führt eine OAuth2-Authentifizierung durch und ruft ein Token ab, das wir bei allen nachfolgenden Aufrufen der MDATP-API-Endpunkte verwenden werden.
- Invoke-MDATPQuery: Ruft einen fortgeschrittene Jagd Anfrage an das MDATP erweiterte Abfragen/Ausführen Endpunkt.
Mithilfe dieser beiden Funktionen können wir Abfragen auf unseren Endpunkten ausführen, auf denen MDATP installiert ist.
Als Erstes besorgen wir uns unser Token:
$Token = Get-MDATPToken -ClientId 'OUR_CLIENT_ID' -ClientSecret 'CLIENT_SECRET' -TenantId 'TENANT_ID''
Als Nächstes können wir eine einfache Abfrage definieren:
$query = @" "RegistryEvents | limit 10" "@
Oder komplexere Abfragen wie diese, um zu prüfen, ob ein Benutzer in Outlook auf einen Link geklickt hat. Glücklicherweise, Microsoft hat eine fantastische Ressource bereitgestellt Beispielabfragen zur Verwendung.
$query = @" let minTimeRange = ago(7d); let outlookLinks = MiscEvents | where EventTime > minTimeRange and ActionType == "BrowserLaunchedToOpenUrl" and isnotempty(RemoteUrl) | where InitiatingProcessFileName =~ "outlook.exe" or InitiatingProcessFileName =~ "runtimebroker.exe" | project EventTime, MachineId, ComputerName, RemoteUrl, InitiatingProcessFileName, ParsedUrl=parse_url(RemoteUrl) | extend WasOutlookSafeLink=(tostring(ParsedUrl.Host) endswith "safelinks.protection.outlook.com") | project EventTime, MachineId, ComputerName, WasOutlookSafeLink, InitiatingProcessFileName, OpenedLink=iff(WasOutlookSafeLink, url_decode(tostring(ParsedUrl["Query Parameters"]["url"])), RemoteUrl); let alerts = AlertEvents | summarize (FirstDetectedActivity, Title)=argmin(EventTime, Title) by AlertId, MachineId | where FirstDetectedActivity > minTimeRange; alerts | join kind=inner (outlookLinks) on MachineId | where FirstDetectedActivity - EventTime between (0min..3min) | summarize FirstDetectedActivity=min(FirstDetectedActivity), AlertTitles=makeset(Title) by OpenedLink, InitiatingProcessFileName, EventTime=bin(EventTime, 1tick), ComputerName, MachineId, WasOutlookSafeLink "@
Nachdem wir nun unser Token und unsere Abfrage haben, können wir unsere Abfrage mit dem Invoke-MDATPQuery Funktion:
Invoke-MDATPTQuery -Token $Token -Query $query
Das war's!
Python
Genau wie in unserem PowerShell-Beispiel habe ich zwei Python-Klassen erstellt, die bei der Authentifizierung und der Ausführung erweiterter Abfragen helfen:
- MDATPConnector: Führt eine OAuth2-Authentifizierung durch und ruft ein Token ab, das wir bei allen nachfolgenden Aufrufen der MDATP-API-Endpunkte verwenden werden.
- MDATPQuery: Ruft einen fortgeschrittene Jagd Anfrage an das MDATP erweiterte Abfragen/Ausführen Endpunkt.
Erstellen Sie zunächst ein MDATPConnector-Objekt, indem Sie Ihre Geheimnisse angeben:
connector = MDATPConnector( __CLIENT_ID__, __CLIENT_SECRET__, __TENANT_ID__ )
Als Nächstes führen wir der Einfachheit halber diese kleinere Abfrage aus:
query = ''' "RegistryEvents | limit 10" ''''
Nun müssen wir unser MDATPConnector-Objekt und unsere Abfrage an die MDATPQuery-Klasse übergeben und diese dann ausführen:
mdatp = MDATPQuery(connector, query) print(mdatp.execute())
Das war's!
Ich hoffe, Sie haben mehr über Microsoft Defender Advanced Threat Protection erfahren! Halten Sie Ausschau nach unserem neuen Paket, das Folgendes umfasst: Erweiterte Abfragen und alle anderen Endpunkte, die innerhalb der MDATP-API verfügbar sind.
Demo anfordern
Vereinbaren Sie eine Live-Demonstration von Swimlane Turbine mit unseren Experten! Erfahren Sie, wie unsere KI-gestützte Sicherheitsautomatisierungsplattform Ihnen helfen kann, die komplexesten Probleme in Ihrer gesamten Sicherheitsorganisation zu lösen.

