Les chercheurs en sécurité préviennent qu'une attaque massive de la chaîne d'approvisionnement baptisée « Megalodon » a injecté des logiciels malveillants dans plus de 5 500 référentiels GitHub via des validations automatisées. L'attaque a abusé des flux de travail GitHub Actions pour implanter des charges utiles furtives dans l'environnement d'intégration continue, ciblant des informations sensibles telles que les informations d'identification, les secrets CI, les clés et les jetons.

Selon un rapport de la société de sécurité SafeDep, l'opération Meg s'est appuyée sur des flux de travail GitHub Actions malveillants qui ont été injectés par lots dans des référentiels cibles avec de fausses validations automatisées, créant ainsi une vague concentrée d'attaques en seulement six heures. SafeDep a déclaré que les attaquants ont poussé plus de 5 700 commits malveillants vers les référentiels concernés au cours d'une fenêtre de six heures le 18 mai, affectant finalement 5 561 référentiels indépendants.

Au moins deux charges utiles différentes ont été utilisées lors de l’attaque. L'un d'eux ajoutera un nouveau workflow dans l'entrepôt afin qu'il soit automatiquement déclenché à chaque fois qu'une demande push ou pull est effectuée, continuant ainsi à exécuter du code malveillant pendant le processus de développement et de construction. L'autre remplace les conditions de déclenchement du workflow existant et le transforme en une « porte dérobée de sommeil », qui réserve un canal de réveil à distance aux attaquants sans affecter le processus quotidien.

Une fois l'environnement cible infecté, le flux de travail malveillant tentera de voler les variables d'environnement CI, les informations d'identification AWS, les jetons d'accès GCP, les informations d'identification Azure, les clés privées SSH, les configurations Docker et Kubernetes, diverses clés API, les chaînes de connexion à la base de données, ainsi que des dizaines de différents types d'informations sensibles telles que les jetons GitHub Actions et les jetons GitLab CI/CD. Une fois ces informations divulguées, elles pourraient être utilisées pour compromettre davantage l’infrastructure cloud, les bases de code et les environnements de production.

Selon SafeDep, "Megalodon" a été découvert lors de l'analyse de la plateforme de chat et chatbot open source Tiledesk. Les chercheurs ont remarqué que le projet a publié successivement des versions malveillantes falsifiées des packages NPM entre le 19 et le 21 mai, révélant ainsi une opération d'intrusion à plus grande échelle dans un entrepôt. Le compte NPM lié à l'attaque s'appelle eljohnny et l'adresse e-mail du compte est [email protected]. Il a publié à la fois une version propre 2.18.5 et une version contaminée.

SafeDep a souligné que l'attaquant ne contrôlait pas directement le compte NPM lui-même, mais avait commencé par compromettre son référentiel GitHub correspondant. Après que le code source ait été « empoisonné », le responsable a publié sans le savoir des packages malveillants à partir du code infecté, ce qui a également mis en évidence le risque typique de « falsification silencieuse de la source en amont » dans les attaques de la chaîne d'approvisionnement.

En retraçant la source de l'attaque, SafeDep a découvert que la soumission malveillante qui a déclenché la chaîne d'infection s'est également produite le 18 mai, et que l'auteur de la soumission a été identifié comme « build-bot ». Après avoir parcouru la boîte aux lettres concernée, les chercheurs ont découvert qu'un total de 2 878 soumissions avaient été effectuées via cette boîte aux lettres ce jour-là, et que 2 841 autres soumissions avaient été effectuées via une autre boîte aux lettres associée. Au total, 5 718 soumissions malveillantes ont été complétées le même jour.

En termes de moyens techniques, l'attaquant a choisi le type de workflow "workflow_dispatch" dans GitHub Actions pour déclencher la porte dérobée. Cette méthode de déclenchement peut être appelée via l'API GitHub, et le jeton GitHub volé peut être utilisé pour activer à distance la porte dérobée dormante à tout moment ultérieur. Plus important encore, ce type de déclencheur est exempté des « règles anti-récursives » de GitHub et n'est pas limité en empêchant « les événements déclenchés par des jetons de générer à nouveau de nouveaux flux de travail », offrant ainsi aux attaquants une plus grande marge de manœuvre.

Alors que l’incident du « Megalodon » était révélé, l’écosystème tentait également de faire face à des menaces similaires. NPM a récemment annoncé avoir invalidé tous les jetons d'accès précis qui contournent l'authentification à deux facteurs et disposent d'autorisations en écriture pour empêcher les attaques de la chaîne d'approvisionnement similaires à « Mini Shai‑Hulud ». La société de sécurité Ox Security estime que cette mesure contribue à réduire le risque de piratage de compte, mais n'élimine pas vraiment le risque sous-jacent.

Ox Security prévient que tant que les plateformes autoriseront le téléchargement et la distribution de code arbitraire sans examen rigoureux, des codes malveillants se propageant via des référentiels compromis continueront d'émerger. L’entreprise a souligné que les attaques contre la chaîne d’approvisionnement entrent dans une nouvelle ère. L'attaque précédente de TeamPCP contre GitHub n'était qu'un début. À l’avenir, des vagues d’attaques visant la communauté des développeurs se succéderont comme un « tsunami ».

En plus de cet incident, d'autres cas récents concernant la sécurité de la chaîne d'approvisionnement sont également apparus, notamment l'utilisation d'attaques TanStack pour voler du code et des données Grafana, et de multiples opérations d'empoisonnement à grande échelle ciblant les packages NPM. Ces incidents successifs démontrent que les vulnérabilités de la chaîne d’approvisionnement logicielle et le manque de visibilité restent des problèmes majeurs auxquels est confrontée l’ensemble du secteur.