Une attaque sophistiquée par empoisonnement de la chaîne d'approvisionnement logicielle a visé la bibliothèque Rust « arrayref », largement utilisée dans le développement de composants critiques. En usurpant l'identité d'un contributeur, des pirates ont injecté un code malveillant capable de dérober les identifiants enregistrés dans les navigateurs Chrome, Brave et Edge sur Windows, macOS et Linux.
Un mécanisme d'infection automatisé
La compromission reposait sur la publication de la version 0.3.10 de la bibliothèque, qui intégrait une dépendance piégée nommée « proc-macro1 ». Ce choix, calqué sur le nom d'un paquet légitime, permettait au compilateur d'exécuter un script malveillant dès la phase de compilation du projet, sans aucune intervention supplémentaire du développeur. Le programme, une fois actif, reconstituait une charge utile adaptée au système d'exploitation cible pour extraire les données sensibles stockées dans les bases SQLite des navigateurs.
Une réactivité rapide face à l'usurpation
L'attaque a été rendue possible par l'usurpation du compte d'un mainteneur reconnu sur la plateforme GitHub. La version compromise a été publiée le 20 août, mais la menace a été identifiée et signalée par l'entreprise StepSecurity moins de quarante minutes plus tard. Le registre crates.io a agi avec célérité, supprimant la version malveillante puis l'ensemble du paquet de son index en un peu plus d'une heure, limitant ainsi la propagation de l'infection.
Des indices pointant vers des acteurs étatiques
L'analyse technique menée par la société Wiz établit des recoupements significatifs avec des campagnes de cyberattaques précédemment attribuées à des groupes nord-coréens. L'infrastructure utilisée, notamment certaines adresses IP et points de contrôle, présente des similitudes avec des opérations antérieures visant d'autres écosystèmes logiciels, comme la bibliothèque JavaScript Axios. Ces éléments suggèrent une stratégie coordonnée visant à infiltrer les chaînes de production logicielles à grande échelle.
Mesures de remédiation pour les développeurs
Toute machine ayant compilé un projet intégrant les versions compromises est considérée comme potentiellement infectée. Il est impératif pour les équipes techniques de vérifier leurs fichiers « Cargo.lock », de procéder au renouvellement immédiat des identifiants enregistrés dans leurs navigateurs et de supprimer manuellement les fichiers de persistance déposés par le malware, identifiés sous les noms « /tmp/rust-setup » sur les systèmes Unix et « rust-setup.ps1 » dans les dossiers temporaires sous Windows.