- Google organiza eventos bugSWAT de red-teaming anticipado para reforzar la seguridad de la IA, dando a investigadores la oportunidad de probar a fondo sus sistemas de IA
- El equipo que ganó $50,000 en 2023 volvió a encontrar una nueva vulnerabilidad en Gemini y obtuvo el título de Most Valuable Hacker (MVH)
- El equipo de hackers recibió de Google acceso y documentación sobre una nueva función en vista previa de Gemini para evaluarla desde la perspectiva de seguridad
- Al pedir código en Python con un prompt simple, aparecía el botón “Run in Sandbox”
- El entorno sandbox de Gemini es un entorno seguro de ejecución de Python diseñado sobre gVisor y GRTE de Google
- gVisor es un kernel en espacio de usuario creado por Google que refuerza la seguridad interceptando llamadas al sistema
- El entorno sandbox está completamente aislado y escapar de él es muy difícil
- Aun así, en algunos casos es posible filtrar datos desde dentro del sandbox
- Descubrieron que el sandbox ofrecía la librería
os y escribieron código en Python para explorar el sistema de archivos
- Encontraron un archivo binario de 579 MB en
/usr/bin/entry/entry_point
- Como imprimir directamente el binario en base64 hacía que el sandbox se cayera, lo dividieron en bloques de 10 MB para mostrarlo
- Usaron una herramienta llamada
Caido para recolectar automáticamente todos los fragmentos y reconstruirlos en local
- Tras analizarlo con los comandos
file, strings y binwalk, quedaron expuestos la estructura interna y rutas internas de Google
- El análisis con binwalk reveló un directorio
google3 con código fuente interno en Python
- Dentro del directorio
assistant había código relacionado con RPC mediante el cual Gemini interactúa con servicios de Google como YouTube y Flights
- Había cadenas destinadas a impedir el volcado de ciertos scripts, pero el equipo de seguridad de Google revisó previamente ese código y consideró que podía divulgarse
Análisis de la lógica principal del sandbox
- Las llamadas a servicios de Google están implementadas en clases específicas escritas en Python
- Por ejemplo,
_set_reader_and_writer y run_tool se comunican con servicios de Google mediante descriptores de archivo
- Dentro del binario se pueden construir mensajes directamente a partir de esquemas protobuf y realizar llamadas a herramientas
- Basándose en el paper
ReAct, Google implementó Gemini para que genere prompts internamente varias veces y planifique por sí mismo al resolver problemas complejos
- Por ejemplo, si el usuario pregunta “¿Horario de vuelos Toronto → New York?”, Gemini selecciona herramientas y busca datos a través de varias etapas
- Aprovechando esa lógica, intentaron una inyección de prompts para crear un sandbox con privilegios más altos
- Algunos sandboxes pueden acceder a extensiones de Google, como APIs RPC
- Las extensiones se invocan mediante FD siempre abiertos, y abusar de ellos podría permitir un acceso de mayor nivel al sistema
- Confirmaron que era posible acceder a un sandbox avanzado bajo ciertas condiciones, como en la etapa en que Gemini elabora un plan
Filtración de archivos proto sensibles
- Los archivos Protocol Buffer (proto) se usan para definir datos entre sistemas y contienen información sensible sobre la estructura del sistema
- Después de ejecutar
strings entry_point > stringsoutput.txt, al buscar la cadena “Dogfood” quedaron expuestas numerosas rutas de proto sensibles
- Ejemplo:
privacy/data_governance/attributes/proto/classification.proto → archivo que define cómo Google clasifica los datos de los usuarios
- Con el comando
cat stringsoutput.txt | grep '.proto' | grep 'security' quedó expuesta una larga lista de archivos proto sensibles relacionados con seguridad
- Ejemplos:
security/thinmint/proto/core/thinmint_core.proto, security/credentials/proto/authenticator.proto, entre otros
¿Por qué estaban esos archivos ahí?
- El equipo de seguridad de Google había aprobado previamente el contenido incluido en el binario del sandbox, pero un pipeline de build automatizado agregó archivos proto de seguridad innecesarios
- Como resultado, archivos de definición interna altamente sensibles quedaron expuestos al exterior
- Los hackers reportaron esto como una vulnerabilidad, basándose en que Google considera estos archivos como información sensible
Conclusión y retrospectiva
- Como en los sistemas de IA interactúan muchos elementos, con frecuencia aparecen problemas de seguridad inesperados
- Incluso un solo sandbox puede comunicarse con herramientas internas y sus privilegios pueden cambiar dinámicamente, por lo que se necesitan pruebas minuciosas
- La colaboración con el equipo de seguridad de Google fue valiosa, y toda la experiencia fue una aventura desafiante y emocionante
1 comentarios
Comentarios de Hacker News
stringspara extraer algunos nombres de archivos de un binario difícilmente puede considerarse hackeo/cracking