La faille Trojan Source permet aux pirates d’intégrer des logiciels malveillants directement dans le code source

La Faille Trojan Source Permet Aux Pirates D'intégrer Des Logiciels

En bref : les acteurs malveillants doivent généralement exploiter des bugs dans une application ou un système d’exploitation, mais les chercheurs en sécurité ont découvert une faille qui leur permet d’intégrer des logiciels malveillants directement dans le code source, ce qui permet des attaques dévastatrices de la chaîne d’approvisionnement.

Les chercheurs de l’Université de Cambridge Nicholas Boucher et Ross Anderson ont découvert une nouvelle classe de vulnérabilités qui peuvent être utilisées par des acteurs malveillants pour intégrer des logiciels malveillants visuellement trompeurs directement dans le code source des applications.

La nouvelle technique, surnommée « Trojan Source », est un moyen efficace d’injecter des logiciels malveillants pratiquement invisibles pour les examinateurs humains. Pour y parvenir, un pirate informatique aurait besoin d’exploiter certaines subtilités dans les normes de codage de texte comme Unicode, ce qui est une chose relativement facile à faire par rapport à l’utilisation de chaînes de vulnérabilités zero-day pour exploiter des systèmes cibles.

La faille Trojan Source permet aux pirates dintegrer des logiciels

Puisque nous parlons d’Unicode, cette faille affecte à peu près tous les langages de programmation modernes tels que Rust, Java, Python, Go, C, C++, C# et JavaScript. Un attaquant peut appliquer ce qu’on appelle un « remplacer bidirectionnel » pour intégrer des mots de gauche à droite dans une phrase de droite à gauche et vice versa, et cette technique peut être utilisée pour réorganiser les jetons dans le code source au niveau de l’encodage pour tromper essentiellement le compilateur ou l’interpréteur à voir une logique différente de celle qu’un examinateur humain verrait dans ce code source.

Les chercheurs avertissent que cela ouvre la porte à la falsification du code open source utilisé dans diverses organisations à travers le monde. Ils notent que « cette attaque est particulièrement puissante dans le contexte des chaînes d’approvisionnement logicielles. Si un adversaire réussit à commettre des vulnérabilités ciblées dans un code open source en trompant les examinateurs humains, le logiciel en aval héritera probablement de la vulnérabilité.

La faille Trojan Source permet aux pirates dintegrer des logiciels

Pour le dire différemment, l’attaque fonctionne en anagrammant un programme dans un autre programme, ce qui incite le compilateur/interprète à traiter le code qui ne semble pas être du code pour un examinateur humain. Si un attaquant parvient à intégrer du code malveillant dans des dépendances et des bibliothèques largement utilisées, la puissance de l’attaque est multipliée de manière exponentielle. Les chercheurs soulignent également que les compilateurs et les interprètes sont vulnérables à une autre technique connue sous le nom d’attaque par homoglyphes où les pirates peuvent remplacer les lettres latines par des caractères similaires d’autres alphabets Unicode.

Le groupe de travail Rust Security Response exhorte les développeurs à passer à la version 1.56.1 de Rust, qui présente deux façons de détecter et de rejeter le code contenant des points de code malveillants. Pour une lecture approfondie de Trojan Source, consultez le rapport des chercheurs de Cambridge. Le code de preuve de concept est également disponible sur GitHub.