Avec 10 millions de nouveaux secrets découverts dans les commits GitHub publics en 2022, le nombre de secrets codés en dur détectés a augmenté de 67 % l’an dernier par rapport à 2021. C'est ce que révèle le rapport State of Secrets Sprawl 2023 de GitGuardian selon lequel cette pratique menace la sécurité de la supply chain logiciel. Elle expose à des risques de sécurité importants, car les identifiants sont souvent stockés en texte clair, ce qui permet aux pirates de les extraire plus facilement du code source. Les secrets peuvent également être divulgués ou exposés par inadvertance via d'autres failles de sécurité comme l'injection de code ou les fuites de données.
2022 : une année très riche en fuite de secrets
En analysant plus d'un milliard de commits GitHub, GitGuardian a constaté qu’un grand nombre de secrets avaient fuité l'année dernière. Sur les 13,3 millions d'auteurs distincts ayant poussé du code sur GitHub en 2022, 1,35 million ont accidentellement exposé un secret, tandis que 5,5 commits sur 1 000 ont exposé au moins un secret, soit une augmentation de 50 % par rapport à 2021, selon le rapport. GitGuardian a classé les secrets en deux catégories : les spécifiques et les génériques. Les premiers correspondent à des secrets reconnaissables comme des clés d'accès AWS ou des identifiants de base de données MongoDB. Les secrets spécifiques représentent 33 % des secrets détectés dans le cadre de la recherche.
Les génériques eux représentent 67 % des secrets détectés. Ils correspondant à des secrets comme le courrier électronique d’une entreprise et les mots de passe codés en dur dans un fichier. Les principaux secrets spécifiques détectés en 2022 par GitGuardian sont : google_api_key, private_key_rsa, private_key_generic, googlecloud_keys et postgresql_credentials. « Les mots de passe, les secrets à haute entropie et les noms d'utilisateur/mots de passe sont les secrets génériques les plus fréquents », a déclaré GitGuardian. Le rapport cite des exemples récents de secrets exploités dans des attaques contre Uber et CircleCI, de référentiels de code source volés affectant des entreprises comme LastPass, Microsoft, Okta et Samsung, et de secrets exposés publiquement affectant Android, Toyota et Infosys.
Une menace pour la supply chain logiciel
Selon le rapport, les secrets codés en dur et la prolifération des secrets constituent des menaces importantes pour la sécurité de le développement logiciel. « Les secrets peuvent être dévoilés de plusieurs façons, et le code source est un atout qui peut rapidement être perdu au profit des sous-traitants et, bien sûr, du vol de code source. Les discussions et les activités relatives au partage de secrets d'API sur le dark web représentent également un problème croissant », ajoute le rapport. « Un phénomène relativement nouveau, apparu depuis quelques années, est celui des discussions autour du vol et de la vente de clés d'API sur le darknet, et nous pensons qu’elles devraient continuent à se développer », indique encore GitGuardian. « Les acteurs de la menace qui cherchent à étendre plus largement la distribution de logiciels malveillants en compromettant la supply chain ont aussi discuté d’identifiants et de points de pivot provenant de référentiels ouverts », poursuivent les experts.
« Le principal problème est qu'un secret codé en dur est non seulement difficile à modifier - ce qui est une caractéristique très souhaitable à la fois pour des raisons de sécurité et des raisons non liées à la sécurité comme les mises à niveau de l'infrastructure - mais il peut également être exposé à toute personne ayant accès au code source », a expliqué Fernando Montenegro, analyste principal d'Omdia. C’est un problème important, car un pirate pourrait utiliser ces informations pour se faire passer pour quelqu'un d'autre ou pour obtenir d'autres informations sensibles sur l'environnement », a-t-il ajouté. « Les conséquences peuvent aller de résultats d'audit négatifs à la compromission complète de l'infrastructure et à l'exfiltration massive de données. Aujourd’hui, il est courant de retrouver ces secrets dans des systèmes de contrôle du code source comme Git, ce qui les expose potentiellement à un plus grand nombre de personnes, voire au grand public », a encore déclaré Fernando Montenegro. « Les secrets codés en dur peuvent être exposés et compromis et constituent une menace interne avec des ressources familières avec les secrets », a reconnu Sohail Iqbal, RSSI de Veracode. « Les secrets codés en dur dans les produits commerciaux ouvrent la voie à des attaques DDoS à grande échelle. Un nombre important d'attaques croissantes de la supply chain indique un risque élevé pour les pipelines CI/CD avec des secrets intégrés », a ajouté le RSSI.
Des stratégies pour se protéger
« Les entreprises doivent comprendre que le code source est l'un de leurs actifs les plus précieux et qu'il doit être protégé », conclut le rapport. « La toute première étape consiste à obtenir un audit clair de la posture de sécurité de l’entreprise en ce qui concerne les secrets : Où et comment sont-ils utilisés ? Où fuient-ils ? Comment se préparer au pire ? Comme beaucoup d'autres problèmes de sécurité, une mauvaise hygiène en matière de secrets implique le trio habituel personnes-processus-outils. Les entreprises qui souhaitent maîtriser la prolifération des secrets doivent travailler simultanément sur tous ces fronts », ajoute encore le rapport. « La détection et l'atténuation des secrets codés en dur peuvent se faire à différents niveaux en adoptant une approche Shift-Left pour construire une défense en profondeur tout au long du cycle de développement », a ajouté GitGuardian.
Parmi les stratégies utiles, on peut citer :
- La surveillance des commits et des demandes de fusion/extraction en temps réel pour tous les référentiels avec l'intégration native VCS ou CI.
- L’activation des vérifications avant réception pour renforcer les référentiels centraux contre les fuites.
- Une planification à plus long terme afin de développer une stratégie pour traiter les incidents découverts grâce à l'analyse historique.
- La mise en œuvre d’un programme de champions de la sécurité des secrets.
« Concevoir des environnements qui n'utilisent pas de secrets codés en dur devrait être une priorité pour la plupart des entreprises », a ajouté M. Montenegro. « Les solutions varient, y compris les outils de gestion des secrets, l'examen du code source et bien d'autres choses encore. La première étape est de faire comprendre partout au sein de l’entreprise - des développeurs et des ingénieurs en sécurité jusqu'à leurs chaînes de gestion respectives - que les secrets codés en dur sont un défaut de conception de sécurité qu’il faut impérativement corriger ».