Une vulnérabilité a été découverte dans un grand nombre de compilateurs qui vous permet de masquer le code malveillant

Des experts de l'Université de Cambridge ont publié des informations sur une vulnérabilité dangereuse (CVE-2021-42574), qui affecte presque touscompilateurs de code source modernes. L'article Trojan Source décrit une attaque insidieuse qui permet aux pirates de cacher du code malveillant dans le code source de divers programmes.

L'attaque est basée sur la façon dont les compilateursgérer les identifiants uniques utilisés pour déterminer l'orientation du texte – de gauche à droite ou de droite à gauche. La faiblesse réside dans l’algorithme Unicode Bidi, qui permet d’utiliser ensemble des mots écrits de droite à gauche et de gauche à droite. Grâce à cet algorithme, vous pouvez combiner des mots arabes et anglais. Cela permet de lire un texte écrit de droite à gauche, de gauche à droite et vice versa.

Dans certains cas, les capacités de l'algorithmeUnicode Bidi ne suffit pas à modifier la façon dont ces mots sont affichés et des caractères de contrôle spéciaux sont utilisés dans de tels cas. Cependant, si la même ligne combine des mots avec des directions de texte différentes, alors en utilisant ces caractères de contrôle, vous pouvez modifier la direction dans laquelle le compilateur lit ce texte et, par exemple, faire en sorte que les lignes qui ressemblent à des commentaires agissent comme du code exécutable.


</ img>

En utilisant cette méthode, vous pouvez ajouter des fichiers malveillantsinstruction dans le code source normal, et rendre le texte de cette instruction invisible lors de la visualisation du code à l'aide d'un commentaire ultérieur. Cela insérera des caractères complètement différents, qui pourraient en fait être du code arbitraire. Le code source final reste sémantiquement correct, mais une fois compilé, quelque chose de complètement différent se produit.

Lors de la visualisation et de l'analyse d'un tel code sourcele programmeur verra du code avec des commentaires qui n'éveillent aucun soupçon, mais le compilateur ou l'interprète inversera l'ordre logique des symboles et le commentaire innocent se transformera en code supplémentaire inséré dans le programme. L'erreur est présente dans presque tous les compilateurs &#8211; pour les langages de programmation C, C++ (gcc et clang), C#, JavaScript (Node.js), Java (OpenJDK 16), Rust, Go et Python ; dans une variété d'éditeurs de code populaires, notamment VS Code, Emacs, Atom et dans les interfaces d'affichage du code source dans GitHub, Gitlab, BitBucket et tous les produits Atlassian.

Source : source du cheval de Troie, zdnet

</ p>