Microsoft Defender for Endpoint - Threat Hunting Cheat Sheet

Photo by Max Duzij on Unsplash

Microsoft Defender for Endpoint - Threat Hunting Cheat Sheet

Les personnes utilisant la solution Microsoft Defender for Endpoint bénéficient d'un module dédié à la recherche de menace très performant, Advanced Hunting.

Threat Hunting - Kesako ?

Le Threat Hunting est une technique qui consiste à rechercher proactivement des cybermenaces qui sont présentes dans un réseau mais n’ont pas encore été détectées. Cela est particulièrement utile pour mener des investigations lorsqu'on soupçonne une attaque ou que l'on désire faire une levée de doute.

Grâce à une analyse approfondie, il est possible d'identifier des éventuels IOC (Indicators of Compromise) qui prouveraient que nous avons été victime d'une cyber-attaque.

Chez CISEL, ça se passe comment ?

Grâce à notre service Managed Endpoint Protection qui inclut une couche EDR en complément de l'EPP traditionnel, nos clients bénéficient d'une protection en temps réel, mais également d'une meilleure réponse à incident grâce à l'EDR qui offre les outils nécessaires pour investiguer de manière proactive ou alors réactive suite à une suspicion d'incident.

Registre des requêtes

Avec plus de 2'000 postes de travail et serveurs sous gestion, les équipes opérationnelles de CISEL ont l'habitude d'utiliser le module de Threat Hunting de Microsoft Defender for Endpoint pour identifier des IOC. Les chapitres ci-dessous listent les requêtes les plus utiles. Le langage utilisé est Kusto (KLQ)

Abonnez-vous au blog pour recevoir les updates concernant cet article !

Detect Hidden PowerShell Windows

Les fenêtres PowerShell cachées sont souvent des indicateurs précieux, car il n'y a en principe pas de raison de cacher ce type de fenêtre. Les logiciels malveillants aiment cacher ce genre de fenêtre.

// Finds all PowerShell execution events wherein the PowerShell window has been explicitly hidden.
DeviceProcessEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName =~ "powershell.exe"
| where InitiatingProcessCommandLine has "-Command"
| where InitiatingProcessCommandLine has "-w hidden" or InitiatingProcessCommandLine has "-windowstyle hidden"
| project Timestamp, DeviceName, InitiatingProcessCommandLine
| top 100 by Timestamp

Log4Shell Identification

Dans le cas du fameux Log4Shell, une des difficultés pour l'IT était d'identifier rapidement quelles applications utilisaient la librairie log4j. Cette requête peut grandement aider.

// Find software that use log4j library
DeviceTvmSoftwareInventory
| where SoftwareName contains "log4j"
| project DeviceName, SoftwareName, SoftwareVersion

CVE vulnerable software

Dans la majorité des cas, une vulnérabilité est associée à un numéro spécifique de CVE. Il est possible d'utiliser ce numéro de CVE pour identifier les applications vulnérables.

//Software vulnerable to specific CVE
DeviceTvmSoftwareVulnerabilities
| where CveId contains "CVE-2021-44228"
| distinct DeviceName, OSPlatform, SoftwareVendor, SoftwareName, SoftwareVersion

Detecting specific outgoing connexion

Dans le cas de certaines attaques, certains IOC sont connus et sans solution centralisée, il est impossible de connaître quels équipements ont établi une connexion sortante vers des IP spécifiques. Cette requête permet d'identifier quel équipement et quel processus en question a établi une connexion sortante.

//List all device who made outgoing connection to specific IP
DeviceNetworkEvents
| where RemoteIP in~ (  "8.8.8.8", "1.1.1.1" )
| where Timestamp > ago(15d)
| project Timestamp, DeviceName, RemoteIP, RemotePort, Protocol, InitiatingProcessFileName

A propos de l'auteur

imageedit_2_2965616244.png

Cyrill Gremaud Security Solutions Architect @ CISEL Informatique SA