Bienvenue | NEWS

Des paquets Rust piégés sur crates.io exposent les développeurs à des malwares à la compilation

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Il y a 4 heures
#1
ATTAQUE PAR CHAÎNE D'APPROVISIONNEMENT : DES PACKAGES RUST INFECTÉS MENACENT LA SÉCURITÉ DES PROJETS
[Image: newsbot_1ebe764315dc84f35f9cd2b2f196af07...78344.webp]


Une alerte majeure a récemment secoué la communauté des développeurs Rust : des versions malveillantes de trois packages populaires, dont l'omniprésent `arrayref`, ont été publiées sur le registre crates.io. Ces paquets contenaient une porte dérobée sophistiquée, conçue pour s'exécuter automatiquement lors de la compilation des projets affectés, exposant ainsi les développeurs à un risque de compromission sans même qu'ils n'aient à interagir directement avec le code malveillant. Cette attaque, qui présente des similitudes inquiétantes avec des campagnes récentes attribuées à des acteurs étatiques nord-coréens, souligne la vulnérabilité persistante des chaînes d'approvisionnement logicielles.

Détails de l'Attaque et Mécanisme de Propagation

L'incident a été découvert le 20 août et a touché les versions spécifiques de trois crates Rust : `arrayref@0.3.10`, `internment@0.8.7` et `append-only-vec@0.1.9`. Le vecteur d'attaque principal résidait dans l'introduction d'une nouvelle dépendance malveillante nommée `proc-macro1`. Il s'agissait d'une attaque de typosquatting, exploitant la ressemblance avec le package légitime et largement utilisé `proc-macro2`, qui est une dépendance courante dans de nombreux projets Rust pour la création de macros procédurales.

L'astuce de cette attaque réside dans la manière dont le code malveillant est exécuté. Contrairement à de nombreuses attaques qui nécessitent l'exécution d'une fonction ou d'un appel spécifique du package compromis, cette porte dérobée s'activait au moment de la compilation. Le fichier `Cargo.toml` du package malveillant ajoutait `proc-macro1` comme dépendance. Ce dernier contenait un script de construction (`build script`) qui était automatiquement exécuté par Cargo, le gestionnaire de paquets de Rust, durant le processus de compilation. Ce script avait pour mission de télécharger et d'exécuter une charge utile secondaire, spécifiquement adaptée à la plateforme de la machine de compilation (Linux, Windows, macOS, y compris les architectures ARM64 d'Apple Silicon).

Les chercheurs de Wiz, qui ont mené une analyse détaillée de Wiz de l'incident, ont expliqué que cette exécution au moment de la construction signifie que la simple résolution d'une version compromise d'`arrayref` dans le fichier `Cargo.lock` d'un projet suffisait à déclencher le déploiement de la charge utile. La popularité d'`arrayref` est considérable, avec plus de 245 millions de téléchargements totaux et près de 54 millions au cours des 90 derniers jours, comme l'a noté une étude de StepSecurity. Heureusement, les fenêtres d'exposition pour chaque crate ont été relativement courtes (entre 86 et 107 minutes) avant que les packages malveillants ne soient supprimés du registre. L'attaque a été initialement signalée à RustSec par le chercheur jhobern.

Capacités de la Charge Utile et Persistance

Une fois exécutée, la charge utile secondaire était loin d'être triviale. Elle était conçue pour collecter un éventail d'informations sensibles sur le système compromis. Parmi les données ciblées figuraient le nom d'hôte, le nom d'utilisateur, les détails du système d'exploitation, la liste des applications installées, ainsi que des informations extraites des profils de navigateurs web populaires tels que Chrome, Brave et Edge. Cela incluait potentiellement des identifiants sauvegardés et des informations sur les extensions installées.

Au-delà de la simple exfiltration de données, le malware visait à établir une persistance sur les systèmes infectés. Pour ce faire, il utilisait des mécanismes spécifiques à chaque système d'exploitation : des clés de registre "Run" sous Windows, des "LaunchAgents" sous macOS et des services utilisateur `systemd` sous Linux. Cette persistance permettait au malware de survivre aux redémarrages et de maintenir sa présence sur la machine.

La charge utile était également dotée de capacités de commande et de contrôle (C2) sophistiquées. Elle pouvait accepter des commandes pour se reconfigurer, se terminer ou télécharger et exécuter des scripts supplémentaires. Pour assurer sa résilience, elle intégrait même un mécanisme de génération de domaines (DGA) en cas d'indisponibilité de son serveur C2 principal, capable de générer dix nouveaux domaines `.com` tous les cinq jours. Sa compatibilité multiplateforme (Linux, Windows, macOS, y compris Apple Silicon) démontre la portée et la sophistication de l'opération.

Liens avec des Campagnes Nord-Coréennes

L'aspect le plus préoccupant de cette attaque est le recoupement significatif de son infrastructure avec des opérations antérieures attribuées à des acteurs étatiques nord-coréens. Wiz a mis en évidence des liens solides, notamment via le chemin de requête C2 utilisé par la porte dérobée. Ce chemin avait déjà été observé dans la campagne Mastra, que Microsoft avait attribuée à Sapphire Sleet, un groupe de menaces lié à la Corée du Nord (DPRK). De plus, l'infrastructure IP utilisée dans l'attaque `arrayref` partageait un émetteur de certificat SSL avec celle associée à l'opération Mastra.

Un autre lien a été établi avec la attaque Axios, une campagne de chaîne d'approvisionnement npm. Un rapport de victime a révélé un trafic C2 impliquant une adresse IP qui correspondait à celles identifiées par Google Cloud Threat Intelligence dans son analyse de l'attaque Axios, également liée à la Corée du Nord par Mandiant. Ces recoupements infrastructurels suggèrent fortement que cette attaque contre les packages Rust s'inscrit dans une série d'opérations menées par des groupes parrainés par l'État nord-coréen, ciblant les développeurs et les chaînes d'approvisionnement logicielles pour l'espionnage ou la collecte de renseignements.

Recommandations et Mesures Préventives

Face à de telles menaces, il est impératif pour les développeurs et les organisations d'adopter des mesures de sécurité rigoureuses :

1. Vérification des Dépendances :Considérer les Systèmes Comme Compromis :Rotation des Identifiants :Reconstruction à Partir de Sources Saines :Surveillance Active Tongueolitiques de Sécurité Renforcées :Isolation des Environnements de Construction :Conclusion

Cette attaque sur crates.io est un rappel brutal que la sécurité de la chaîne d'approvisionnement logicielle est une préoccupation majeure et constante. Les acteurs malveillants, en particulier les groupes parrainés par des États, continuent de cibler les maillons faibles de l'écosystème de développement, exploitant la confiance inhérente aux bibliothèques open source. En exécutant leur charge utile au moment de la compilation, ils ont démontré une capacité à contourner de nombreuses défenses traditionnelles, rendant la détection et la prévention plus complexes. La vigilance, la mise à jour constante des connaissances sur les menaces et l'adoption de pratiques de développement sécurisées sont plus que jamais essentielles pour protéger l'intégrité de nos logiciels et la confidentialité de nos données.


Source : InfoWorld - Backdoored Rust packages hit crates.io, exposing developers to malware at build time
Répondre
Outils
Atteindre :

Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
×
Matrix Rain
Actif