Partager via


Intégration d’AMSI (Anti-malware Scan Interface) à Microsoft Defender Antivirus

S’applique à :

  • Microsoft Defender XDR
  • Antivirus Microsoft Defender
  • Microsoft Defender pour point de terminaison P1 & P2
  • Microsoft Defender pour les PME
  • Microsoft Defender pour les particuliers

Plateformes :

  • Windows 10 et versions ultérieures
  • Windows Server 2016 et versions ultérieures

Microsoft Defender pour point de terminaison utilise l’interface d’analyse anti-programme malveillant (AMSI) pour améliorer la protection contre les programmes malveillants sans fichier, les attaques dynamiques basées sur des scripts et d’autres cybermenaces non traditionnelles. Cet article décrit les avantages de l’intégration d’AMSI, les types de langages de script qu’elle prend en charge et comment activer AMSI pour améliorer la sécurité.

Qu’est-ce que les programmes malveillants sans fichier ?

Les programmes malveillants sans fichier jouent un rôle essentiel dans les cyberattaques modernes, en utilisant des techniques furtives pour éviter la détection. Plusieurs grandes épidémies de ransomware ont utilisé des méthodes sans fichier dans le cadre de leurs chaînes de destruction.

Les programmes malveillants sans fichier utilisent des outils existants qui sont déjà présents sur un appareil compromis, tels que PowerShell.exe ou wmic.exe. Les programmes malveillants peuvent infiltrer un processus, exécuter du code dans son espace mémoire et appeler ces outils intégrés. Les attaquants réduisent considérablement leur empreinte et échappent aux mécanismes de détection traditionnels.

Étant donné que la mémoire est volatile et que les logiciels malveillants sans fichier ne placent pas de fichiers sur le disque, l’établissement de la persistance à l’aide de programmes malveillants sans fichier peut être difficile. Un exemple de la persistance des programmes malveillants sans fichier a été de créer une clé d’exécution de Registre qui lance une applet de commande PowerShell « one-liner ». Cette commande a lancé un script PowerShell obfusqué qui a été stocké dans l’objet BLOB du Registre. Le script PowerShell obfusqué contenait un chargeur d’exécutable portable (PE) réfléchissant qui a chargé un pe codé en Base64 à partir du registre. Le script stocké dans le Registre a garanti la persistance du programme malveillant.

Les attaquants utilisent plusieurs techniques sans fichier qui peuvent rendre les implants de logiciels malveillants furtifs et évasifs. Ces techniques sont les suivantes :

  • Injection de DLL réfléchissantes : l’injection de DLL réfléchissantes implique le chargement manuel de DLL malveillantes dans une mémoire de processus sans qu’il soit nécessaire que ces DLL soient sur le disque. La DLL malveillante peut être hébergée sur un ordinateur distant contrôlé par un attaquant et fournie via un canal réseau intermédiaire (par exemple, le protocole TLS ) ou incorporée sous une forme obfusquée à l’intérieur de vecteurs d’infection, tels que des macros et des scripts. Cette configuration entraîne l’évasion du mécanisme de système d’exploitation qui surveille et effectue le suivi du chargement des modules exécutables. Un exemple de programme malveillant qui utilise l’injection de DLL réfléchissante est HackTool:Win32/Mikatz!dha.

  • Exploits de mémoire : les adversaires utilisent des exploits de mémoire sans fichier pour exécuter du code arbitraire à distance sur les machines victimes. Par exemple, la menace UIWIX utilise l’exploit EternalBlue, qui a été utilisé à la fois par Petya et WannaCry, pour installer la porte dérobée DoublePulsar, et réside entièrement dans la mémoire du noyau (table de répartition SMB). Contrairement à Petya et Wannacry, UIWIX ne supprime aucun fichier sur le disque.

  • Techniques basées sur des scripts : les langages de script fournissent des moyens puissants pour fournir des charges utiles exécutables en mémoire uniquement. Les fichiers de script peuvent incorporer des codes shell encodés ou des fichiers binaires qu’ils peuvent déchiffrer à la volée au moment de l’exécution et s’exécuter via des objets .NET ou directement avec des API sans avoir à les écrire sur le disque. Les scripts eux-mêmes peuvent être masqués dans le Registre, lus à partir de flux réseau ou exécutés manuellement dans la ligne de commande par un attaquant, sans jamais toucher le disque.

    Remarque

    Ne désactivez pas PowerShell pour bloquer les programmes malveillants sans fichier. PowerShell est un outil de gestion puissant et sécurisé. Il est important pour de nombreuses fonctions système et informatiques. Les attaquants utilisent des scripts PowerShell malveillants comme technique de post-exploitation qui ne peut avoir lieu qu’après qu’une compromission initiale s’est déjà produite. Son mauvais usage est un symptôme d’une attaque qui commence par d’autres actions malveillantes telles que l’exploitation de logiciels, l’ingénierie sociale ou le vol d’informations d’identification. L’essentiel est d’empêcher un attaquant d’entrer dans la position où il peut utiliser PowerShell.

    Conseil

    La réduction du nombre de scripts PowerShell non signés dans votre environnement permet d’améliorer votre posture de sécurité. Voici des instructions sur la façon dont vous pouvez ajouter la signature aux scripts PowerShell utilisés dans votre environnement Hey, Scripting Guy ! Comment puis-je signer des scripts Windows PowerShell avec une infrastructure À clé publique Windows d’entreprise ? (Partie 2 sur 2) | Blog sur les scripts

  • Persistance WMI : certains attaquants utilisent le référentiel WMI (Windows Management Instrumentation) pour stocker des scripts malveillants qui sont ensuite appelés régulièrement à l’aide de liaisons WMI. Microsoft Defender Antivirus bloque la plupart des programmes malveillants à l’aide de détections génériques, heuristiques et basées sur le comportement, ainsi que de modèles Machine Learning locaux et cloud. Microsoft Defender Antivirus protège contre les programmes malveillants sans fichier grâce à ces fonctionnalités :

    • Détection des techniques basées sur des scripts à l’aide d’AMSI, qui permet d’inspecter PowerShell et d’autres types de scripts, même avec plusieurs couches d’obfuscation
    • Détection et correction des techniques de persistance WMI en analysant le référentiel WMI, à la fois régulièrement et chaque fois qu’un comportement anormal est observé
    • Détection de l’injection de DLL réfléchissante par le biais de techniques d’analyse de mémoire améliorées et d’une surveillance comportementale

Pourquoi AMSI ?

AMSI fournit un niveau d’inspection plus approfondi pour les logiciels malveillants qui utilisent des techniques d’obfuscation et d’évasion sur les hôtes de script intégrés de Windows. En intégrant AMSI, Microsoft Defender pour point de terminaison offre des couches de protection supplémentaires contre les menaces avancées.

Langages de script pris en charge

  • PowerShell
  • Jscript
  • VBScript
  • Hôte de script Windows (wscript.exe et cscript.exe)
  • .NET Framework 4.8 ou version ultérieure (analyse de tous les assemblys)
  • WMI (Windows Management Instrumentation)

Si vous utilisez Microsoft 365 Apps, AMSI prend également en charge JavaScript, VBA et XLM.

ACTUELLEMENT, AMSI ne prend pas en charge Python ou Perl.

Activation d’AMSI

Pour activer AMSI, vous devez activer l’analyse des scripts. Consultez Configurer les options d’analyse pour Microsoft Defender Antivirus.

Consultez également Defender Policy CSP - Gestion des clients Windows.

Ressources AMSI

Les API AMSI (Anti-malware Scan Interface) sont disponibles pour les développeurs et les fournisseurs d’antivirus à implémenter.

D’autres produits Microsoft tels qu’Exchange et Sharepoint utilisent également l’intégration d’AMSI.

Davantage de ressources pour vous protéger contre les attaques sans fichier

  • Windows Defender Application Control et AppLocker. Applique des stratégies d’intégrité de code fortes et autorise uniquement les applications approuvées à s’exécuter. Dans le contexte des programmes malveillants sans fichier, WDAC verrouille PowerShell en mode de langage limité, ce qui limite les fonctionnalités de langage étendues qui peuvent conduire à l’exécution de code non vérifiable, telles que les scripts .NET directs, l’appel des API Win32 via l’applet de commande Add-Type et l’interaction avec les objets COM. Cela atténue essentiellement les attaques par injection de DLL réfléchissantes basées sur PowerShell.

  • La réduction de la surface d’attaque aide les administrateurs à se protéger contre les vecteurs d’attaque courants.

  • Activez la protection basée sur la virtualisation de l’intégrité du code. Atténue les attaques de mémoire du noyau par le biais de l’intégrité du code d’hyperviseur (HVCI), ce qui rend difficile l’injection de code malveillant à l’aide de vulnérabilités logicielles en mode noyau.