Pour gérer vos consentements :
Categories: Cybersécurité

Une faille fait basculer les antivirus du côté obscur

Et si les meilleurs malwares étaient… les antivirus ? Il y avait, au programme de la Black Hat Europe 2022, une session touchant à ce sujet. Plus précisément, au détournement de ces logiciels – EDR inclus – pour en faire des wipers.

Ces souches malveillantes – qui émaillent notamment le conflit russo-ukrainien – n’exploitent pas toutes la même méthode de destruction. Les plus « basiques » suppriment des éléments. Dans le contexte de Windows, ça ne signifie pas « effacer », mais simplement invoquer la fonction DeleteFile(). Laquelle libère, dans la table d’allocation (MFT), l’entrée correspondante.

Les wipers majeurs, de DoubleZero à Shamoon en passant par CaddyWiper, vont plus loin. Après l’opération de suppression, ils écrivent un nouveau fichier à la même entrée MFT, ce qui efface l’ancien. D’autres écrivent directement sur le disque comme s’il s’agissait d’un périphérique.

Double problème. D’une part, l’une et l’autre technique exigent des privilèges. De l’autre, reposant sur un processus (le wiper) qui utilise les API Windows, elles laissent des traces.

Un fichier pour un autre : le potentiel destructeur des jonctions

Les antivirus/EDR ont de commun qu’ils peuvent automatiquement supprimer (ou mettre en quarantaine) des fichiers identifiés comme malveillants. C’est sur cette fonctionnalité que repose le détournement. Le principe : faire en sorte que cette opération s’applique à un autre fichier que celui qu’elle est censée toucher.

Les liens symboliques semblent tout indiqués pour mettre en place le stratagème. Seulement, vu les failles qui l’exploitent, Microsoft a défini une permission spécifique pour créer ces liens ; et l’a réservée, par défaut, aux admins.

Le système de fichiers NTFS embarque toutefois un mécanisme alternatif qui ne nécessite pas de privilèges : les jonctions. On peut le mettre à profit pour effectuer des attaques de type TOCTOU (time-of-check to time-of-use). L’idée est de s’intercaler, dans le flux de l’AV/EDR, entre les étapes de détection et de suppression.

Un exemple :

– On souhaite supprimer un pilote, situé dans le dossier \Windows\System32\Drivers

– On recrée ce dossier, mais dans \temp (manipulable sans privilèges)

– Dans ce dossier, on crée un fichier malveillant du même nom que le pilote

– Après sa détection, mais avant sa suppression, on enlève le contenu de \temp et on établit une jonction vers le dossier d’origine

– Le pilote est alors supprimé

Ça, c’est la théorie. Dans la pratique, il arrive que des AV/EDR empêchent, immédiatement après la création du fichier malveillant, de le supprimer, ainsi que le dossier qui le contient. Certains, en outre, estiment qu’une fois le fichier malveillant éliminé, la menace n’existe plus, et qu’il n’y a donc pas lieu de traiter la jonction. Bilan : il faut trouver une fenêtre de tir plus précise.

L’EDR SentinelOne toujours vulnérable ?

La solution a consisté à conditionner l’opération de suppression à un redémarrage. Elle a impliqué de capturer le handle (identifiant) du fichier malveillant et de le laisser ouvert.

Certains antivirus conservent une liste des éléments à supprimer après reboot. D’autres utilisent l’API Windows pour reporter la suppression, via un drapeau appliqué à la fonction MoveFileEx.

Ce drapeau manipule le registre Windows, en déclenchant l’ajout, dans la valeur PendingFileRenameOperations, d’entrées correspondant aux chemins à supprimer. Aussi, il requiert des privilèges admin… dont l’antivirus bénéficie. Le redémarrage effectué, Windows procède effectivement aux suppressions. Mais surtout, il traite les jonctions. La boucle est ainsi bouclée.

Sur onze produits testés, six se sont révélés vulnérables. Nommément, Defender, Defender pour points de terminaison, SentinelOne EDR, Trend Micro Apex One, Avast Antivirus et AVG Antivirus.

Signalées en juin-juillet, les failles sont aujourd’hui colmatées. Chez Microsoft, le correctif est intégré dans la version 1.1.19700.2 du moteur antivirus. Trend Micro l’a inclus dans son hotfix 23573 & patch_b11136 ; Avast et AVG, dans leur version 22.10. Pas de communication officielle chez SentinelOne.

Photo d’illustration © lolloj – Shutterstock

Recent Posts

Pour son premier LLM codeur ouvert, Mistral AI choisit une architecture alternative

Pour développer une version 7B de son modèle Codestral, Mistral AI n'a pas utilisé de…

5 heures ago

Microsoft x Inflection AI : l’autorité de la concurrence britannique lance son enquête

L’Autorité de la concurrence et des marchés (CMA) britannique ouvre une enquête sur les conditions…

7 heures ago

Thomas Gourand, nouveau Directeur Général de Snowflake en France

Thomas Gourand est nommé Directeur Général pour la France. Il est chargé du développement de…

9 heures ago

Accord Microsoft-CISPE : comment Google a tenté la dissuasion

Pour dissuader le CISPE d'un accord avec Microsoft, Google aurait mis près de 500 M€…

9 heures ago

Vers des mises à jour cumulatives intermédiaires pour Windows

Pour réduire la taille des mises à jour de Windows, Microsoft va mettre en place…

10 heures ago

RH, finances, stratégie… Les complexités de la Dinum

De l'organisation administrative à la construction budgétaire, la Cour des comptes pointe le fonctionnement complexe…

1 jour ago