- Google organise des événements bugSWAT de red-teaming en amont pour renforcer la sécurité de l’IA, en donnant aux chercheurs l’occasion de tester en profondeur ses systèmes d’IA
- L’équipe qui avait remporté 50 000 $ en 2023 a cette fois encore découvert une nouvelle vulnérabilité dans Gemini, ce qui lui a valu le titre de « Most Valuable Hacker (MVH) »
- L’équipe de hackers a reçu de Google un accès et de la documentation sur une nouvelle fonctionnalité en preview de Gemini, afin de la tester sous l’angle de la sécurité
- En demandant du code Python avec un prompt simple, un bouton « Run in Sandbox » était proposé
- L’environnement sandbox de Gemini est un environnement d’exécution Python sécurisé conçu sur la base de gVisor et de GRTE de Google
- gVisor est un noyau en espace utilisateur créé par Google, une technologie qui renforce la sécurité en interceptant les appels système
- L’environnement sandbox est complètement isolé, et il est très difficile d’en sortir
- Mais il peut être possible d’exfiltrer des données depuis l’intérieur du sandbox
- En constatant que le sandbox fournissait la bibliothèque
os, l’équipe a écrit du code Python pour explorer le système de fichiers
- Elle a découvert un fichier binaire de 579 Mo à l’emplacement
/usr/bin/entry/entry_point
- Comme afficher directement le binaire en base64 faisait planter le sandbox, il a été découpé et affiché par tranches de 10 Mo
- Un outil appelé
Caido a servi à collecter automatiquement tous les fragments puis à les reconstruire en local
- L’analyse avec les commandes
file, strings et binwalk a révélé la structure interne et des chemins internes de Google
- L’analyse
binwalk a mis au jour un répertoire google3 contenant du code source Python interne
- Dans le répertoire
assistant, on trouvait du code lié aux RPC que Gemini utilise pour interagir avec des services Google comme YouTube ou Flights
- Des chaînes destinées à empêcher le dump de certains scripts étaient présentes, mais l’équipe sécurité de Google a examiné le code en amont et a jugé sa divulgation acceptable
Analyse de la logique principale du sandbox
- Les appels aux services Google sont implémentés dans certaines classes écrites en Python
- Par exemple,
_set_reader_and_writer, run_tool, etc. communiquent avec les services Google via des descripteurs de fichiers
- À l’intérieur du binaire, il est possible de construire directement des messages à partir de schémas protobuf et d’invoquer des outils
- Google a implémenté Gemini sur la base de l’article
ReAct, afin qu’il génère lui-même plusieurs prompts et élabore un plan pour résoudre des problèmes complexes
- Par exemple, si l’utilisateur demande « Horaires de vol Toronto → New York ? », Gemini choisit un outil et récupère les données en plusieurs étapes
- En exploitant cette logique, l’équipe a tenté une prompt injection pour faire créer un sandbox avec davantage de privilèges
- Certains sandboxes peuvent accéder à des extensions Google, notamment des API RPC
- Les extensions sont appelées via des FD toujours ouverts, et leur exploitation pourrait permettre un niveau d’accès système plus élevé
- Il a été confirmé qu’un sandbox avancé pouvait être atteint dans certaines conditions, par exemple durant l’étape où Gemini élabore son plan
Fuite de fichiers proto sensibles
- Les fichiers Protocol Buffer (proto) servent à définir les données entre systèmes et contiennent des informations sensibles sur la structure interne
- Après exécution de
strings entry_point > stringsoutput.txt, une recherche sur la chaîne « Dogfood » a révélé de nombreux chemins de proto sensibles
- Exemple :
privacy/data_governance/attributes/proto/classification.proto → un fichier qui définit la façon dont Google classe les données utilisateur
- La commande
cat stringsoutput.txt | grep '.proto' | grep 'security' a révélé une longue liste de fichiers proto sensibles liés à la sécurité
- Exemples :
security/thinmint/proto/core/thinmint_core.proto, security/credentials/proto/authenticator.proto, etc.
Pourquoi ces fichiers étaient-ils là ?
- L’équipe sécurité de Google avait approuvé à l’avance le contenu inclus dans le binaire du sandbox, mais un pipeline de build automatisé a ajouté des fichiers proto de sécurité inutiles
- Cela a conduit à l’exposition externe de fichiers de définition internes hautement sensibles
- Les hackers ont considéré qu’il s’agissait bien d’une vulnérabilité, au motif que ces fichiers sont traités comme des informations sensibles selon les propres critères de Google
Conclusion et retour d’expérience
- Les systèmes d’IA reposent sur de très nombreux éléments en interaction, si bien que des problèmes de sécurité inattendus surviennent fréquemment
- Même un simple sandbox peut communiquer avec des outils internes et voir ses privilèges varier dynamiquement, ce qui exige des tests très précis
- La collaboration avec l’équipe sécurité de Google a été utile, et l’expérience dans son ensemble a constitué une aventure aussi exigeante que passionnante
1 commentaires
Avis Hacker News
stringspour extraire quelques noms de fichiers depuis un binaire, c’est difficile à qualifier de hacking/cracking