Les hackers remplissent des projets GitHub qui cachent du code malveillant.
Les cybercriminels masquent du code malveillant avec des caractères Unicode « invisibles »
Des recherches récentes de la société Aikido Security ont montré qu'au début du mois de mars, 151 projets contenant un code espion caché sont apparus sur GitHub. Les paquets malveillants utilisent des caractères Unicode qui apparaissent pour l’œil humain comme des espaces ou des lignes vides, mais lorsqu’ils sont exécutés en JavaScript, ils se transforment en byte‑code exécutable et atteignent la fonction `eval()`.
Comment l’attaque fonctionne
1. Noms de bibliothèques
Les paquets portent les mêmes noms que des solutions commerciales connues (par exemple «React» ou «Node.js»). Cela pousse les développeurs à les considérer comme sûrs et à les inclure dans leurs projets.
2. Code « lisible » + fragments cachés
La majorité du code ressemble à un programme normal, facilement lisible. À l’intérieur se trouvent des blocs remplis de caractères « invisibles ». Lors d’une inspection manuelle ils disparaissent, mais lors de l’exécution ils s’activent.
3. Répertoires de test
De tels paquets malveillants ont déjà été découverts non seulement sur GitHub, mais aussi dans NPM, Open VSX et le marketplace Visual Studio Code.
Pourquoi il est difficile de les repérer
- Les modifications apportées aux projets semblent normales : mise à jour de version, corrections de bugs, refactoring.
- Selon les experts, les attaquants utilisent des modèles linguistiques d’IA volumineux pour automatiser la falsification du code. Cela permet de préparer rapidement plus de 150 projets sans travail manuel.
Histoire des caractères
Les caractères Unicode correspondant aux lettres latines ont été ajoutés au système il y a plusieurs décennies. Depuis 2024, ils sont utilisés par les hackers pour masquer des requêtes malveillantes vers des chat‑bots et du code dans les dépôts. Les outils d’analyse statique traditionnels ne les détectent pas ; seuls lors de l’exécution JavaScript, de petits décodeurs révèlent le byte‑code réel.
Que faire aux développeurs
1. Vérifiez les dépendances – avant d’intégrer des bibliothèques externes, examinez attentivement leur code source et l’historique des modifications.
2. Contrôles automatiques – utilisez des linters, des scanners à la recherche de caractères « invisibles » et des outils d’analyse du comportement dynamique.
3. Mettez à jour – surveillez que les paquets ne soient pas supprimés après le téléchargement ; cela peut indiquer une menace cachée.
Perspectives
Si les hypothèses concernant l’utilisation de l’IA dans ce schéma se confirment, détecter et éliminer ces attaques deviendra de plus en plus difficile. Néanmoins, une approche consciente de la vérification du code source et des dépendances reste la meilleure protection contre de telles menaces.
Commentaires (0)
Partagez votre avis — merci de rester courtois et dans le sujet.
Connectez-vous pour commenter