Les attaques de la chaîne d’approvisionnement peuvent exploiter les points d’entrée dans Python, npm et les écosystèmes open source
Les chercheurs en cybersécurité ont découvert que les points d’entrée pourraient être détournés dans plusieurs écosystèmes de programmation comme PyPI, npm, Ruby Gems, NuGet, Dart Pub et Rust Crates pour organiser des attaques sur la chaîne d’approvisionnement de logiciels.
« Les attaquants peuvent exploiter ces points d’entrée pour exécuter du code malveillant lorsque des commandes spécifiques sont exécutées, ce qui constitue un risque généralisé dans le paysage open source », ont déclaré les chercheurs de Checkmarx Yehuda Gelb et Elad Rapaport dans un rapport partagé avec The Hacker News.
La société de sécurité de la chaîne d’approvisionnement en logiciels a noté que les attaques au point d’entrée offrent aux acteurs de la menace une méthode plus sournoise et persistante pour compromettre les systèmes d’une manière qui peut contourner les défenses de sécurité traditionnelles.
Les points d’entrée dans un langage de programmation comme Python font référence à un mécanisme de packaging qui permet aux développeurs d’exposer certaines fonctionnalités sous forme de wrapper de ligne de commande (également appelé console_scripts). Alternativement, ils peuvent également servir à charger des plugins qui augmentent les fonctionnalités d’un package.
Checkmarx a noté que si les points d’entrée sont un moyen puissant d’améliorer la modularité, la même fonctionnalité pourrait être utilisée de manière abusive pour distribuer du code malveillant à des utilisateurs peu méfiants. Cela pourrait notamment se produire par le détournement de commandes et la création de plugins malveillants pour divers outils et frameworks.
Le détournement de commande se produit lorsque des packages contrefaits utilisent des points d’entrée qui se font passer pour des outils et des commandes tiers populaires (par exemple, aws et docker), récoltant ainsi des informations sensibles lorsque les développeurs installent le package, même dans les cas où il est distribué sous forme de fichier wheel (.whl).
Certaines des commandes tierces les plus utilisées qui pourraient être des cibles potentielles pour le détournement de commandes comprennent npm, pip, git, kubectl, terraform, gcloud, heroku et dotnet.
Un deuxième type de détournement de commandes peut également se manifester lorsque des acteurs malveillants utilisent des noms de commandes système légitimes (par exemple, touch, curl, cd, ls et mkdir) comme points d’entrée afin de détourner le flux d’exécution.
« Le succès de cette approche dépend principalement de l’ordre du PATH », soulignent les chercheurs. « Si le répertoire contenant les points d’entrée malveillants apparaît plus tôt dans le PATH que les répertoires système, la commande malveillante sera exécutée à la place de la commande système. Ce phénomène est plus susceptible de se produire dans les environnements de développement où les répertoires de paquets locaux sont prioritaires. »
Ce n’est pas tout. Checkmarx a découvert que l’efficacité du détournement de commandes peut être améliorée par une tactique plus furtive appelée « encapsulation de commandes », qui consiste à créer un point d’entrée qui agit comme un wrapper autour de la commande d’origine, au lieu de la remplacer complètement.
/>Ce qui rend cette approche puissante, c’est qu’elle exécute silencieusement le code malveillant tout en invoquant la commande originale et légitime et en renvoyant les résultats de l’exécution, lui permettant ainsi de passer sous le radar.
« Étant donné que la commande légitime continue de fonctionner et que son résultat et son comportement sont préservés, il n’y a aucun signe immédiat de compromission, ce qui rend l’attaque extrêmement difficile à détecter par une utilisation normale », ont déclaré les chercheurs. « Cette approche furtive permet aux attaquants de maintenir un accès à long terme et d’exfiltrer potentiellement des informations sensibles sans éveiller les soupçons. »
Une autre tactique d’attaque de point d’entrée consiste à créer des plugins et des extensions malveillants pour les outils de développement qui ont la capacité d’accéder largement à la base de code elle-même, donnant ainsi aux mauvais acteurs la possibilité de modifier le comportement du programme ou de falsifier le processus de test pour donner l’impression que le code fonctionne comme prévu.
« À l’avenir, il sera essentiel de développer des mesures de sécurité complètes qui tiennent compte de l’exploitation des points d’entrée », ont déclaré les chercheurs. « En comprenant et en traitant ces risques, nous pouvons œuvrer pour un environnement de packaging Python plus sécurisé, protégeant à la fois les développeurs individuels et les systèmes d’entreprise contre les attaques sophistiquées de la chaîne d’approvisionnement. »
Cette évolution intervient alors que Sonatype, dans son rapport annuel sur l’état de la chaîne d’approvisionnement en logiciels, a révélé que plus de 512 847 packages malveillants ont été découverts dans les écosystèmes open source pour Java, JavaScript, Python et .NET depuis novembre 2023, soit une augmentation de 156 % d’une année sur l’autre.
« Les outils de sécurité traditionnels ne parviennent souvent pas à détecter ces nouvelles attaques, ce qui rend les développeurs et les environnements de développement automatisés extrêmement vulnérables », a déclaré la société . « Cela a donné lieu à une nouvelle vague d’attaques de la chaîne d’approvisionnement de nouvelle génération, qui ciblent directement les développeurs, contournant les défenses existantes. »