Package malveillant rustdecimal détecté dans le référentiel Rust crates.io

Les développeurs du langage Rust ont prévenu qu'un package rustdecimal contenant du code malveillant avait été identifié dans le référentiel crates.io. Le package était basé sur le package rust_decimal légitime et était distribué en utilisant une similitude de nom (typesquatting) dans l'espoir que l'utilisateur ne remarquerait pas l'absence de trait de soulignement lors de la recherche ou de la sélection d'un module dans une liste.

Il est à noter que cette stratégie s'est avérée efficace et qu'en termes de nombre de téléchargements, le package fictif n'était que légèrement en retard par rapport à l'original (~ 111 1.23.1 téléchargements de rustdecimal 113 et 1.23.1 25 du rust_decimal 1.23.5 original). . Dans le même temps, la majorité des téléchargements concernaient un clone inoffensif ne contenant pas de code malveillant. Les modifications malveillantes ont été ajoutées le 500 mars dans la version rustdecimal XNUMX, qui a été téléchargée environ XNUMX fois avant que le problème ne soit identifié et que le package ne soit bloqué (on suppose que la plupart des téléchargements de la version malveillante ont été effectués par des robots) et n'a pas été utilisé comme dépendances sur d'autres packages présents dans le référentiel (il est possible que le package malveillant soit une dépendance sur les applications finales).

Les modifications malveillantes consistaient en l'ajout d'une nouvelle fonction, Decimal::new, dont l'implémentation contenait du code obscurci pour le téléchargement depuis un serveur externe et le lancement d'un fichier exécutable. Lors de l'appel de la fonction, la variable d'environnement GITLAB_CI a été vérifiée, et si elle est définie, le fichier /tmp/git-updater.bin a été téléchargé depuis le serveur externe. Le gestionnaire malveillant téléchargeable prenait en charge le fonctionnement sous Linux et macOS (la plate-forme Windows n'était pas prise en charge).

Il était supposé que la fonction malveillante serait exécutée lors de tests sur des systèmes d'intégration continue. Après avoir bloqué rustdecimal, les administrateurs de crates.io ont analysé le contenu du référentiel à la recherche d'insertions malveillantes similaires, mais n'ont pas identifié de problèmes dans d'autres packages. Il est conseillé aux propriétaires de systèmes d'intégration continue basés sur la plateforme GitLab de s'assurer que les projets testés sur leurs serveurs n'utilisent pas le package rustdecimal dans leurs dépendances.

Source: opennet.ru

Ajouter un commentaire