Code malveillant dissimulé dans des projets GitHub via Unicode
Des attaquants utilisent des caractères Unicode invisibles pour cacher du code malveillant dans des projets GitHub, trompant les développeurs avec des paquets apparemment légitimes.
Des attaquants utilisent des caractères Unicode invisibles pour cacher du code malveillant dans des projets GitHub, trompant les développeurs avec des paquets apparemment légitimes.
© RusPhotoBank
Des chercheurs en cybersécurité ont mis au jour une campagne de grande ampleur où des attaquants publient des projets GitHub contenant du code malveillant dissimulé. Ces dépôts utilisent des caractères Unicode spéciaux, quasiment indétectables lors d'une revue visuelle du code. Pour les développeurs, ils apparaissent comme des espaces ou des lignes vides, mais lorsqu'ils sont interprétés, ce code peut se décoder correctement et exécuter des actions néfastes.
Selon les experts d'Aikido Security, au moins 151 paquets préparés de cette manière sont apparus sur la plateforme entre le 3 et le 9 mars. Ces projets se font souvent passer pour des bibliothèques populaires ou des outils logiciels connus, augmentant le risque que des développeurs les utilisent par inadvertance. À première vue, le code semble sûr et lisible, mais des fonctions dangereuses sont cachées dans des séquences de caractères invisibles, rendant les vérifications manuelles traditionnelles inefficaces pour détecter la menace. Des observations similaires ont déjà été documentées sur d'autres plateformes, notamment NPM, Open VSX et le marché des extensions VS Code.
Les experts associent cette campagne à un groupe provisoirement nommé Glassworm. Identifier ses membres est extrêmement difficile car les dépôts paraissent très crédibles. Ils présentent régulièrement des mises à jour de documentation, des changements de version, des corrections de bugs et des refontes de code, imitant ainsi le développement actif d'un projet. Les spécialistes suggèrent que pour générer un grand volume de modifications aussi réalistes, les attaquants pourraient avoir utilisé des modèles d'IA générative.
Techniquement, l'attaque exploite le fait que certains caractères Unicode sont visuellement indiscernables des espaces vides, mais peuvent être interprétés comme des lettres de l'alphabet latin. En pratique, un petit décodeur intégré extrait les octets réels de ces symboles et les transmet à une fonction d'exécution de code. Les projets découverts pourraient ne représenter qu'une petite partie de l'ensemble de la campagne, notent les chercheurs, car les paquets malveillants sont souvent supprimés après avoir obtenu suffisamment de téléchargements.