Skip to main content

Ma résolution pour la nouvelle année : ne plus afficher mes jetons de sécurité en piratant mon application de démonstration sur scène

Écrit par

12 janvier 2022

0 minutes de lecture

Traditionnellement, nous commençons la nouvelle année en prenant des résolutions. Nous voulons faire davantage de choses positives, comme travailler, et éliminer d’autres habitudes. Dans cette optique, ma résolution pour 2022 est de ne plus exposer accidentellement d’informations confidentielles en piratant mon application pendant des démonstrations sur scène ou dans des situations similaires

Oui, cette résolution pour la nouvelle année est très précise, et elle s’accompagne d’une excellente histoire qui donne des sueurs froides en matière de sécurité.

Piratage de mon application de démonstration à J-Fall 2021

Le 4 novembre 2021 avait lieu J-Fall, la plus grande conférence Java des Pays-Bas. Organisé chaque année par le Netherlands Java User Group (NLJUG), cet événement m’a permis, en tant que membre du conseil d’administration, de me réjouir du retour du présentiel depuis le début de la pandémie. J’avais également été invité à prendre la parole lors de cette conférence sur un sujet lié à la sécurité Java, et plus précisément sur les problèmes de sécurité liés à la désérialisation en Java.

Dans le cadre de cette présentation, je piratais mon application à l’aide d’une chaîne de gadgets de désérialisation. J’ai utilisé la chaîne d’attaque bien connue de la bibliothèque Commons Collections 3.1, conçue pour montrer comment pirater mon application en exécutant du code arbitraire (ACE). La mise en place était simple : j’ai utilisé ysoserial pour créer la chaîne de gadgets, et la bibliothèque était incluse dans l’application que je m’apprêtais à pirater. Jusque-là, tout allait bien… mais voici la partie délicate.

Exposition de jetons d’API secrets sur scène

L’ACE que j’allais réaliser consistait à exécuter la commande env sur ma machine et à afficher le résultat dans ma console. Si vous ne connaissez pas cette commande, elle affiche les variables d’environnement de la machine hôte. Quand je fais des démonstrations de piratage d’applications, j’utilise souvent un compte dédié sur mon ordinateur portable de démonstration. Il m’arrive aussi d’utiliser un conteneur Docker, mais pas cette fois-ci.

Cette fois, j’ai effectué le piratage dans mon environnement principal, celui de mon ordinateur portable que j’utilise également pour le développement au quotidien. Mes variables d’environnement contenaient donc aussi des jetons d’API, notamment mon jeton GitHub ! Tout cela s’est affiché sur le grand écran de la vaste salle de cinéma. ???

Au début, je ne m’en suis pas rendu compte et j’étais entièrement concentré sur ma présentation et mes démonstrations sur scène. Mais après coup, l’un des participants, Nils Breunese (@breun), est venu me voir et m’a dit : « Hé, j’espère que vous apprécierez ça en tant que spécialiste de la sécurité », puis m’a montré la photo suivante sur son téléphone.

Capture d’écran d’une page web mobile mettant en avant le titre « BrianVermeer.nl piraté lors de J-Fall », sur une photo de Brian Vermeer avec un ordinateur portable.

Au début, je n’ai pas bien compris ce qu’il était possible de faire. Il m’a expliqué la situation et s’est servi de mon jeton d’accès GitHub pour ajouter du code à mon site web. Quand j’ai compris ce qui s’était passé, j’étais à la fois gêné et soulagé. Cela aurait pu être bien pire que la simple farce qu’il m’a faite. J’ai immédiatement révoqué tous les jetons déclarés dans mes variables d’environnement et corrigé mon site web. J’ai décidé de ne pas annuler le commit de Nils, mais de corriger le problème dans un nouveau commit, afin qu’il reste visible comme un rappel de mon J-Fail.

Deux hommes posent sur scène à côté d’un pupitre J-FALL 2021. L’un fait un pouce levé et l’autre un geste pour demander le silence.

Le moment où Nils m’a raconté ce qui s’était passé, juste après la fin de mon intervention à J-Fall 2021.

Ne vous piratez pas vous-même : piratez uniquement votre application de démonstration

Heureusement, cette histoire s’est bien terminée et je peux désormais la raconter. Je tiens à remercier Nils d’avoir été une personne bienveillante et pleine d’humour. Pour ma part, c’est un rappel que je dois mettre en pratique ce que je prêche. C’est extrêmement pénible de parler de sécurité sur scène et de pirater des applications, tout en se faisant compromettre au passage. Je conclurai donc en disant que nous devons faire attention à nos actions et à ce qui est visible par les autres. Les outils pour sécuriser votre application, comme ceux proposés par Snyk, sont utiles, mais ne vous protègent pas des erreurs d’inattention. Même les professionnels de la sécurité font ce genre d’erreurs. Restez vigilant et vérifiez ce que vous affichez avant de mettre votre application en production ou de la présenter sur scène.

Ma résolution pour 2022 : ne plus exposer d’informations confidentielles lorsque je pirate mes applications pendant des démonstrations ou des présentations ! Je suis reconnaissant envers Nils de m’avoir rappelé cela avec tant de bienveillance. Bonne année 2022 à toutes et à tous !

Lire la suite

Blog

Les modèles de pointe ont trouvé les vulnérabilités. Seul l’attaquant a trouvé les chaînes d’exploitation.

L’analyse statique a détecté les failles, mais seuls des tests d’attaque en conditions réelles ont prouvé comment elles pouvaient être enchaînées pour provoquer des compromissions. Comparaison d’Evo COS, de Claude Security et de Claude Code Security.

feature insights context
Blog

Les attaques autonomes sont déjà là. La défense doit suivre leur rythme.

Les attaquants autonomes réduisent la fenêtre de défense. Découvrez comment la découverte, la correction, la validation et la prévention continues peuvent aider les équipes de sécurité à suivre le rythme.

Blog

Pourquoi les agents de codage IA créent-ils sans cesse des failles de contrôle d’accès ?

Les agents de codage IA peuvent générer une logique d’autorisation qui compile et passe la revue, tout en exposant les données d’un tenant à un autre. Découvrez pourquoi les failles de contrôle d’accès sont difficiles à détecter et comment les prévenir.