Une paire de vulnérabilités de sécurité découvertes dans les environnements GitHub de deux projets open source très populaires d’Apache et de Google pourrait être utilisée pour modifier furtivement le code source du projet, voler des secrets et se déplacer latéralement au sein d’une organisation.
Les problèmes sont les suivants : défauts d’intégration continue/livraison continue (CI/CD) cela pourrait menacer beaucoup plus de projets open source dans le monde, selon des chercheurs de Legit Security, qui les ont trouvés affectant un projet Google Firebase et un projet de cadre d’intégration populaire géré par Apache.
Les chercheurs ont surnommé le modèle de vulnérabilité « Injection d’environnement GitHub ». Il permet aux attaquants de prendre le contrôle du pipeline d’actions GitHub d’un projet vulnérable en créant une charge utile spécialement conçue écrite dans une variable d’environnement GitHub appelée « GITHUB_ENV ».
Plus précisément, le problème existe dans la façon dont GitHub partage les variables d’environnement dans la machine de génération, qui peuvent être manipulées pour extraire des informations, y compris les informations d’identification de propriété du référentiel.
« Le concept est que l’action de construction elle-même fait confiance au code qui est soumis pour examen d’une manière telle que vous n’avez besoin de personne pour l’examiner », explique Liav Caspi, CTO et cofondateur de Legit Security. « Le simple fait que quelqu’un fasse une contribution incite le système de construction à exécuter quelque chose sur le code. Il y a une sorte de test automatisé qui s’exécute, et vous pouvez faire en sorte que le test exécute tout ce que vous y mettez. »
Il ajoute : « Le problème, c’est que toute personne qui fait une contribution pourrait déclencher cela sans avoir besoin de quelqu’un pour l’examiner. Donc, c’est très puissant.
N’ignorez pas la sécurité pour les pipelines CI/CD
Selon Caspi, son équipe a trouvé les failles dans le cadre d’un enquête en cours sur les pipelines CI/CD. Avec une augmentation des failles de la chaîne d’approvisionnement de type SolarWinds, ils recherchaient particulièrement les faiblesses de l’écosystème GitHub, car il s’agit de l’un des systèmes de gestion de code source (SCM) les plus populaires dans le monde open source et dans le développement d’entreprise – et donc un véhicule naturel pour injecter des vulnérabilités dans les chaînes d’approvisionnement logicielles.
Il explique que ces défauts manifestent à la fois une faiblesse de conception dans la façon dont le Plateforme GitHub est conçu et comment différents projets open source et entreprises utilisent la plate-forme.
« Vous pourriez potentiellement écrire un script de build très sûr si vous êtes très conscient des risques et contournez beaucoup d’opérations risquées », explique-t-il. « Mais je pense que personne n’est vraiment au courant de cela, et il y a quelques mécanismes dans GitHub Actions qui sont très dangereux et qui sont utilisés dans les opérations de construction quotidiennes. »
Il dit que les équipes de développement d’entreprise devraient toujours assumer une confiance zéro avec GitHub Action et d’autres systèmes de build.
« Ils devraient supposer que les composants qu’ils utilisent pour construire – qu’il s’agisse d’un plug-in de build ou de tout ce qui leur est soumis – qu’un attaquant pourrait exploiter cela », dit-il. « Et puis ils devraient isoler l’environnement et également examiner le code de manière à ce qu’il n’exécute pas le code soumis pour vous. »
Comme l’explique Caspi, ces failles illustrent non seulement que le projet open source lui-même est un vecteur potentiel de vulnérabilités de la chaîne d’approvisionnement, mais aussi le code qui constitue le pipeline CI / CD et son intégration.
Les deux bugs ont été corrigés.