· Security musings

Catégories

Tags

🔍 Licence d'Utilisation 🔍

Sauf mention contraire, le contenu de ce blog est sous licence CC BY-NC-ND 4.0.

© 2025 à 2042 Sébastien Gioria. Tous droits réservés.

⏱️
Temps de lecture estimé
~4 minutes

Le point de départ tient en une ligne : un compte Azure standard, et une base Gremlin qu’on provisionne soi-même en trois clics. Wiz Research a fait le reste, requête après requête, jusqu’à obtenir une exécution de code arbitraire sur les passerelles multi-tenant d’Azure Cosmos DB, puis à en extraire un secret qui permettait de lire ou d’écraser les données de n’importe quel autre client du service. Ni insider, ni accès privilégié.


Un moteur de requêtes qui traduisait un peu trop bien

Cosmos DB prend votre requête Gremlin et la traduit en code .NET qu’il exécute côté serveur. Pour que la traduction encaisse des requêtes un peu ambitieuses, il fallait laisser de la marge au moteur, et cette marge incluait la réflexion .NET : la capacité d’un programme à inspecter et manipuler du code pendant qu’il tourne. Vous voyez venir le problème. Wiz a d’abord obtenu la lecture de fichiers, puis l’écriture, et à partir de là l’exécution de code n’était plus qu’une question de patience. Le tout depuis un compte Cosmos DB parfaitement légitime.

Note du PandaRedacteur : un bac à sable qui laisse la réflexion ouverte, ça s’appelle une salle d’attente avec la porte de service déverrouillée.

La version longue reprend la chaîne d’exploitation dans le détail, avec l’analyse STRIDE qui va avec. Côté contenu premium, j’ai mis la checklist de durcissement et de détection Cosmos DB que j’utilise sur les environnements Azure multi-tenant : permissions, monitoring KQL, et le retour d’expérience qui va avec.