Skip to content
Voir tous les articles

Oh les lieux Secrets Aller…

Dans un monde basé sur le code, il est pratique pour les développeurs de stocker des secrets statiques et des fichiers de configuration contenant des mots de passe avec le code qu'ils développent. Cette pratique est non seulement peu hygiénique du point de vue du contrôle de source, mais elle risque également d'affaiblir la sécurité de votre application. Examinons de plus près les principaux risques liés au stockage de secrets dans vos dépôts de code et les mesures que vous pouvez prendre en tant qu'ingénieur en sécurité applicative pour identifier les risques inutiles.

Tout d’abord, nous devons définir ce qu’est un secret : généralement, les secrets peuvent être…

  • Clés API
  • Mots de passe système statiques
  • Clés de chiffrement
  • Jetons OAuth
  • Mots de passe de la base de données

La menace externe :

En juillet, Binance (une plateforme d'échange de cryptomonnaies) a été victime de ce que l'on appelle la « plus grande violation de données de l'histoire ». On estime qu'environ un milliard d'enregistrements ont été volés. Comment cette violation de données a-t-elle pu se produire ? Il s'agissait d'un simple extrait de code contenant des secrets, partagé ensuite sur un blog chinois. Les attaquants ont ensuite pu utiliser les secrets exposés pour élever leurs privilèges et se déplacer latéralement dans l'environnement du produit sans être détectés.

L'ingénierie est censée être un effort collaboratif entre équipes, voire, dans certains cas, au sein d'une communauté entière. Des extraits de code sont souvent partagés à des fins de dépannage, et les logiciels open source sont devenus un enjeu majeur dans un contexte de CI/CD, permettant aux équipes d'ingénierie d'agir rapidement. Conserver des secrets dans votre base de code augmente le risque qu'elle tombe entre de mauvaises mains (potentiellement d'un acteur malveillant) et, in fine, le risque de violation de données.

Une fois piratée, il devient quasiment impossible pour vos équipes de sécurité de détecter ce niveau d'accès, car l'activité paraîtra normale (des secrets légitimes sont utilisés !). Jusqu'à ce que, bien sûr, vos données soient mises en vente sur le dark web…

La menace interne :

Les développeurs ne devraient pas avoir accès aux systèmes de production, ni en avoir besoin – et, en théorie, les ingénieurs support ne devraient pas non plus (autre problème !). Lorsque des secrets statiques sont définis dans votre base de code, les sous-traitants tiers et les développeurs malveillants peuvent désormais élever leurs privilèges et accéder à des zones des systèmes de production auxquelles ils ne devraient pas avoir accès (principe du moindre privilège).

Il est plus important que jamais pour les équipes de sécurité produit de se concentrer sur la création de mécanismes d'authentification, de solutions d'accès juste à temps et d'apporter leurs propres solutions clés. La présence de secrets non protégés dans le code compromet l'impact de ces solutions sur la réduction globale des risques pour votre produit et augmente le risque que des développeurs malveillants (et des sous-traitants tiers) exploitent ces secrets codés en dur pour accéder sans autorisation à votre produit et/ou à vos données.

Que dois-je faire?

Stocker des secrets et des mots de passe dans votre base de code (ou vos dépôts de code) n'est jamais une bonne idée, mais comment commencer à découvrir où ils pourraient se trouver en premier lieu ?

Cela commence par connecter votre code dépôts à un outil qui analyse et identifie les secrets et les mots de passe. L'objectif ultime est de découvrez 100% de vos secrets et mots de passe dans votre code et rapidement remédier Que vous utilisiez l'obfuscation dans le code ou des appels authentifiés vers un coffre-fort de clés/certification externe à votre environnement de production, l'élimination de ce risque est une victoire facile pour réduire le risque global pour vos clients et votre produit.

Et nous avons ce qu'il vous faut : les deux BigID et Petit ID se connecter facilement à GitHub, GitLab et BitBucket pour analyser les dépôts de code. Nous utilisons les deux capacités d'apprentissage automatique et des politiques de détection de secrets prêtes à l'emploi pour détecter les secrets et les mots de passe dans votre base de code afin d'améliorer votre posture de risque de données… où que vous stockiez intentionnellement ou non ces secrets en premier lieu.

Contenu