Les développeurs de la plateforme Packj, qui analyse la sécurité des bibliothèques, ont publié un outil en ligne de commande open-source permettant d'identifier des constructions à risque dans des paquets qui pourraient être liées à la mise en œuvre d'activités malveillantes ou à la présence de vulnérabilités utilisées pour attaquer des projets utilisant les paquets concernés (« supply chain »). La vérification des paquets est supportée pour les langages Python et JavaScript, hébergés dans les dépôts PyPi et NPM (un support pour Ruby et RubyGems est également prévu ce mois-ci). Le code de l'outil est écrit en Python et est distribué sous la licence AGPLv3.
Lors de l'analyse de 330 000 paquets à l'aide de l'outil proposé dans le dépôt PyPi, 42 paquets malveillants avec des backdoors et 2 400 paquets à risque ont été identifiés. Dans le cadre de l'examen, une analyse statique du code est effectuée pour identifier les particularités de l'API et évaluer la présence de vulnérabilités connues répertoriées dans la base de données OSV. Le paquet MalOSS est utilisé pour l'analyse de l'API. Le code des paquets est examiné à la recherche de motifs typiques généralement utilisés dans les logiciels malveillants. Ces motifs ont été élaborés à partir de l'étude de 651 paquets avec une activité malveillante confirmée.
Les attributs et métadonnées sont également identifiés, ce qui accroît le risque d'un usage non ciblé, comme l'exécution de blocs via « eval » ou « exec », la génération de nouveau code en cours d'exécution, l'utilisation de techniques d'obfuscation et de dissimulation de code, des manipulations avec des variables d'environnement, un accès non ciblé à des fichiers, des appels à des ressources réseau dans des scénarios d'installation (setup.py), l'utilisation de type-squatting (assignment de noms similaires à ceux de bibliothèques populaires), l'identification de projets obsolètes et abandonnés, l'indication d'adresses email et de sites inexistants, l'absence de dépôt public pour le code.
Il convient également de noter la découverte par d'autres chercheurs en sécurité de cinq paquets malveillants dans le dépôt PyPi, qui envoyaient vers l'extérieur serveur le contenu des variables d'environnement dans le but de voler des jetons AWS et des systèmes d'intégration continue : loglib-modules (présenté comme des modules de la bibliothèque légitime loglib), pyg-modules, pygrata et pygrata-utils (présentés comme des compléments de la bibliothèque légitime pyg) et hkg-sol-utils.

Source : opennet.ru
