Dis-moi tes secrets sans me les dire


24 novembre 2023L’actualité des hackersOutils de développement / Sécurité des API

Le titre de cet article ressemble probablement à la légende d’un mème. Au lieu de cela, il s’agit d’un véritable problème que les ingénieurs de GitGuardian ont dû résoudre lors de la mise en œuvre des mécanismes de leur nouveau Service HasMySecretLeaked. Ils voulaient aider les développeurs à découvrir si leurs secrets (mots de passe, clés API, clés privées, certificats cryptographiques, etc.) avaient trouvé leur chemin dans les référentiels publics GitHub. Comment pourraient-ils parcourir une vaste bibliothèque de secrets trouvés dans les référentiels GitHub accessibles au public et leurs historiques et les comparer à vos secrets sans que vous ayez à exposer des informations sensibles ? Cet article vous expliquera comment.

Premièrement, si nous devions définir la masse d’un bit comme égale à celle d’un électron, une tonne de données représenterait environ 121,9 quadrillions de pétaoctets de données à la gravité terrestre standard, soit 39,2 milliards de milliards de dollars américains en mises à niveau de stockage du MacBook Pro (plus que tout l’argent du monde). Ainsi, lorsque cet article affirme que GitGuardian a analysé une « tonne » de données de validation publiques GitHub, c’est figuratif et non littéral.

Mais oui, ils ont analysé une « tonne » de commits publics et d’essentiels depuis GitHub, en parcourant les historiques de commit, et ont trouvé des millions de secrets : mots de passe, clés API, clés privées, certificats cryptographiques, etc. Et non, « millions » n’est pas figuratif. Ils en ont littéralement trouvé plus de 10 millions en 2022.

Comment GitGuardian pourrait-il permettre aux développeurs et à leurs employeurs de voir si leurs secrets actuels et valides faisaient partie de ces 10 millions sans simplement publier des millions de secrets, ce qui permettrait aux acteurs malveillants de les trouver et de les récolter plus facilement, et de laisser de nombreux génies avec beaucoup de bouteilles ? Un mot : empreintes digitales.

Après une évaluation et des tests minutieux, ils ont développé un protocole secret d’empreintes digitales qui crypte et hache le secret, puis seul un hachage partiel est partagé avec GitGuardian. Avec cela, ils pourraient limiter le nombre de correspondances potentielles à un nombre gérable sans connaître suffisamment le hachage pour l’inverser et le déchiffrer. Pour garantir davantage la sécurité, ils ont placé la boîte à outils pour chiffrer et hacher le secret côté client.

Si vous utilisez le Web HasMySecretLeaked interface, vous pouvez copier un script Python pour créer le hachage localement et simplement mettre la sortie dans le navigateur. Vous n’avez jamais besoin de placer le secret lui-même partout où il peut être transmis par le navigateur et vous pouvez facilement consulter les 21 lignes de code pour vous prouver qu’il n’envoie rien en dehors de la session de terminal que vous avez ouverte pour exécuter le script. Si cela ne suffit pas, ouvrez les outils de développement F12 dans Chrome ou un autre navigateur et accédez au panneau « Réseau » pour surveiller les informations que l’interface Web envoie en amont.

Si vous utilisez le CLI ggshield open source vous pouvez inspecter le code de la CLI pour voir ce qui se passe lorsque vous utilisez la commande hmsl. Vous voulez encore plus d’assurance ? Utilisez un inspecteur de la circulation comme Fiddler ou Wireshark pour voir ce qui est transmis.

Les ingénieurs de GitGuardian savaient que même les clients qui leur faisaient confiance hésiteraient à coller une clé API ou un autre secret dans une case d’une page Web. Pour la sécurité et la tranquillité d’esprit de tous ceux qui utilisent le service, ils ont choisi d’être aussi transparents que possible et de placer autant de processus que possible sous le contrôle du client. Cela va au-delà de leurs supports marketing et dans le documentation ggshield pour la commande hsml.

GitGuardian a fait un effort supplémentaire pour s’assurer que les personnes utilisant leur Vérificateur HasMySecretLeaked vous n’avez pas besoin de partager les vrais secrets pour voir s’ils ont été divulgués. Et c’est payant. Plus de 9 000 secrets ont été vérifiés au cours des premières semaines de mise en ligne.

Si vos secrets ont déjà été divulgués publiquement, mieux vaut le savoir que ne pas le savoir. Ils n’ont peut-être pas encore été exploités, mais ce n’est probablement qu’une question de temps. Vous pouvez en consulter jusqu’à cinq par jour gratuitement via le Vérificateur HasMySecretLeaked via le web, et encore plus grâce au CLI du bouclier GitGuardian. Et même si vous ne cherchez pas à savoir si vos secrets ont été divulgués, vous devriez examiner leur code et leurs méthodes pour vous inspirer dans vos efforts afin de permettre à vos clients de partager plus facilement des informations sensibles sans partager les informations elles-mêmes.

Vous avez trouvé cet article intéressant ? Suivez-nous sur Twitter et LinkedIn pour lire plus de contenu exclusif que nous publions.





ttn-fr-57