
Nous annonçons une semaine de bugs préhistoriques. La vulnérabilité de l'archiveur WinRAR, découverte et fermée fin janvier, a été décrite en détail par les spécialistes de Check Point Software (
actualités ,
recherches originales). Dans le pire des cas, une violation vous permet de décompresser le fichier malveillant vers un emplacement arbitraire sur votre disque dur, par exemple, dans le répertoire d'exécution automatique de Windows.
Cette vulnérabilité vous fait penser à l'utilisation de bibliothèques tierces difficiles à vérifier dans votre logiciel, mais pas seulement. Aujourd'hui, nous parlerons brièvement du problème lui-même, de la décision des développeurs de WinRAR d'abandonner la bibliothèque pour décompresser les archives au format ACE, et nous aborderons également le sujet de la mise à jour de WinRAR sur les ordinateurs des utilisateurs. Regard vers l'avenir: bien que les nouvelles aient provoqué une résonance sérieuse, il s'agit probablement d'une histoire de fin heureuse. Mais la classe de vulnérabilités associée au traitement des archives arrivant sur votre ordinateur mérite une attention particulière.
Dans le rapport d'origine, avant de démontrer le problème, il y a beaucoup de détails (intéressants), mais regardons tout de suite le résultat.
L'archive préparée est enregistrée sur le bureau, l'utilisateur essaie de la décompresser, mais à la place, le fichier exécutable est écrit dans le répertoire d'exécution automatique. Comment est-ce arrivé? Les chercheurs ont utilisé la technologie de fuzzing, à savoir le package
WinAFL , pris en charge par l'équipe de Google Project Zero et qui est la version Windows de
la boucle floue américaine . Comme d'autres outils similaires, WinAFL vous permet d'examiner la sécurité (ou la stabilité) des logiciels en transmettant des données aléatoires (ou pas tout à fait) à l'application et en préservant la réaction. Les fuzzers peuvent être considérés comme une sorte de "baguette magique" d'un chercheur en sécurité. Ils aident à détecter divers plantages de programmes là où ils ne devraient pas se trouver.
Cependant, un rapport Check Point montre que les choses ne sont pas si simples. La recherche de WinAAR avec WinAFL a permis d'identifier plusieurs plantages inattendus de l'application et a conduit les chercheurs vers une bibliothèque qui traite les archives au format ACE - une norme d'archivage propriétaire. Cette bibliothèque (unacev2.dll) a été mise à jour pour la dernière fois en 2006 et ne disposait pas de mécanismes de protection standard (tels que ASLR ou DEP). De plus, elle était présente dans toutes les versions de WinRAR au cours des 19 dernières années et, comme il s'est avéré plus tard, tout ce temps était vulnérable. Au moment où le bogue a été découvert, les développeurs de WinRAR n'avaient pas accès à son code source. ACE était généralement un archiveur commercial à un moment donné, la bibliothèque de déballage était gratuite, mais vous ne pouviez légalement créer des archives dans ce format qu'en utilisant l'utilitaire propriétaire WinACE (il a été mis à jour jusqu'en 2007,
le site Web du programme existait jusqu'en 2017; et maintenant c'est clairement un logiciel abandonné )
Pour trouver une vulnérabilité simple comme Path Traversal, lorsque l'archiveur décompresse le fichier dans un répertoire arbitraire, cela ne fonctionnait pas, j'ai dû reconstituer un utilitaire de fuzzing, mais cette fois après avoir étudié les fonctionnalités de format en utilisant à la fois le programme WinACE original et le
code distribué gratuitement pour le décompresser vers Python. Lors du prochain voyage pour des problèmes aléatoires, les chercheurs ont trouvé un fichier qui n'était pas enregistré du tout où WinAFL était censé enregistrer le résultat de l'exécution de la bibliothèque.

Le fait est que l'archiveur ACE vous permet d'enregistrer le chemin d'accès complet au fichier compressé. Dans une situation normale, ce chemin est ajouté au chemin de décompression sélectionné lors de la décompression. Lors du fuzzing, il s'est avéré que certains ensembles de données permettaient de rendre le chemin absolu, c'est-à-dire de décompresser le fichier non pas là où l'utilisateur l'a indiqué, mais n'importe où, mais ce n'est pas très bon. De plus, cela semble être simple - vous devez appliquer la même astuce lorsque vous ne travaillez pas directement avec la bibliothèque, mais avec WinRAR lui-même, non? Pas vraiment: la vulnérabilité n'a pas été reproduite. Je ne raconterai pas tout l'historique de la recherche de la bonne combinaison de paramètres et de contourner une autre étape de validation dans WinRAR lui-même: le programme vérifie et supprime le crime du chemin de sauvegarde afin d'éviter de telles situations. Mais il vérifie, comme il s'est avéré, toutes les options possibles.

Voilà ce qui s'est passé. Il s'agit d'une capture d'écran de l'analyse d'une archive «préparée» à l'aide du code Python mentionné ci-dessus. Le double c: \\ au début du chemin est traité par la bibliothèque unacev2 et WinRAR lui-même afin que le fichier soit écrit dans un répertoire arbitraire. Cela semble être un exploit prêt? Encore une fois non, ou plutôt pas vraiment. Toute tentative d'écriture de l'exécutable dans le répertoire d'exécution automatique dans cette configuration déclenchera la protection de Windows. Mais les chercheurs ont réussi à trouver un moyen de contourner cette limitation si le fichier est enregistré dans le répertoire de l'utilisateur, par exemple, dans le dossier Téléchargements ou sur le bureau (ce qui est fort probable). Comme indiqué dans la vidéo au début, le fichier préparé a été enregistré dans le répertoire de lancement automatique de l'utilisateur en naviguant vers un dossier plus haut dans le chemin du fichier.
Quel est le résultat? Dans WinRAR 5.70 Beta 1, la vulnérabilité a été corrigée en abandonnant complètement l'utilisation d'une bibliothèque obsolète pour travailler avec les fichiers ACE. Il est peu probable que quiconque en soit sérieusement contrarié. Soit dit en passant, les conseils donnés dans un
article sur le site Web de ZDNet - «N'ouvrez pas d'archives suspectes au format ACE» - sont un peu faux. WinRAR ne détecte pas les fichiers par permission, et l'exploit fonctionnera avec une version vulnérable du programme, même si l'archive ACE préparée a l'extension RAR (ou toute autre). N'ouvrez pas d'archives suspectes - c'est bien, mais il faut généralement les mettre à jour.
Maintenant, prenez votre esprit hors du poste pendant une minute et voyez quelle version de WinRAR vous avez installée (sauf, bien sûr, si vous utilisez cet archiveur). Pour référence: la version 5.50 est sortie en 2017, 5.00 - en 2012, 3.90 - en 2009. Avec une certaine probabilité, la date de sortie de WinRAR correspondra approximativement à la date de configuration initiale du système, car il n'y a toujours pas de fonction de mise à jour automatique dans ce programme. Comme vous pouvez le voir sur le tweet de la société de courtage de vulnérabilité Zerodium, il existe une demande d'exploits de travail dans les archiveurs. Des vulnérabilités telles que celles trouvées dans la bibliothèque des archives ACE peuvent être utilisées pour des attaques massives ou ciblées contre les ordinateurs des victimes. Il convient de noter que les chances de succès d'un tel bug sont loin d'être absolues. Il est fort probable que l'archive infectée sera bloquée par le service de messagerie (par exemple, pour GMail, par exemple, les archives protégées par mot de passe et les archives contenant des fichiers exécutables à l'intérieur n'y sont pas ignorées) ou par un logiciel antivirus. À moins, bien sûr, que vous ne l'ayez.
Néanmoins, tous ces rappels ennuyeux de la nécessité de mettre à jour l'une des dizaines de programmes installés sur l'ordinateur ont du sens. Sinon, il est facile de passer à côté d'une vulnérabilité grave qui fonctionnera au moment le plus inopportun. En toute honnêteté, nous notons que de graves problèmes dans WinRAR
apparaissent rarement.
Avis de non-responsabilité: les opinions exprimées dans ce recueil ne coïncident pas toujours avec la position officielle de Kaspersky Lab. Chers rédacteurs recommandent généralement de traiter toute opinion avec un scepticisme sain.