La empresa de seguridad en IA PromptArmor ha hecho pública una cadena de ataque contra Databricks Genie Code: un Skill con código malicioso puede, sin que el usuario se dé cuenta, enviar datos del tenant a un servidor del atacante y, a la vez, mostrar una ventana de inicio de sesión de phishing dentro de la propia interfaz de chat. De los cuatro tipos de controles de seguridad oficiales que enumera PromptArmor, ninguno logró detener esta cadena.
Genie Code es el asistente agente integrado en Databricks que permite al usuario, mediante lenguaje natural, consultar tablas, ejecutar análisis y generar gráficos, con los resultados renderizados directamente en la ventana de chat del navegador. Un Skill es un paquete de capacidades que se puede subir al agente, que incluye texto descriptivo y, opcionalmente, código ejecutable.
Cómo se desarrolla el ataque
El flujo que demuestra PromptArmor tiene solo cuatro pasos. El usuario sube un Skill de análisis de datos que parece normal y le pide a Genie que lo use para analizar un conjunto de datos; Genie ejecuta el código del Skill, y el agente de guardrail encargado de filtrar no identifica la función maliciosa; Genie entonces sugiere al usuario "abrir el resultado completo del análisis"; en el momento en que se renderiza el resultado, aparece la ventana de phishing y, simultáneamente, se envían los datos.
La técnica de filtración es bastante sencilla. El código del Skill primero lee datos sensibles del tenant de la víctima y los inserta en un fragmento de HTML que se mostrará en el chat; el JavaScript de ese HTML realiza, en el propio navegador del usuario, una solicitud de red que envía los datos al servidor del atacante. La ventana de phishing también la renderiza ese mismo fragmento de HTML, superpuesta sobre la página de Genie, para inducir al usuario a introducir su cuenta y contraseña. En todo el proceso no se requiere ninguna aprobación manual en ningún paso.
Por qué no sirvieron los cuatro controles
PromptArmor revisó uno por uno los cuatro tipos de control mencionados en la documentación de Databricks:
- Gobernanza de Skills a nivel de organización: Genie también carga Skills desde el espacio de trabajo personal del usuario, no solo desde directorios gestionados de forma centralizada por la organización, por lo que los administradores no pueden controlar los Skills que el propio usuario sube;
- Agente de guardrail: la propia Databricks lo define como una "función de eficiencia de mejor esfuerzo", sin comprometerse a que funcione como barrera de seguridad;
- Control de salida del entorno de ejecución de código: solo limita el tráfico de salida del entorno donde se ejecuta el código, pero aquí los datos se envían desde el navegador del usuario, fuera del alcance de esta capa;
- Sandbox de visualización del chat: el Skill usa los datos que ya ha obtenido para componer el contenido que se muestra, sin necesidad de volver a consultar el tenant en la fase de visualización.
Cada una de las cuatro razones tiene su lógica por separado, pero juntas dejan exactamente una brecha abierta. PromptArmor notificó el problema a Databricks el 16 de agosto, ambas partes negociaron durante un mes, y el 16 de septiembre PromptArmor avisó que se preparaba para hacerlo público.
La postura de Databricks en su respuesta es bastante clara:
"it is ultimately the user's responsibility to ensure that uploaded skills do not contain malicious content"
(garantizar que los Skills subidos no contengan contenido malicioso es, en última instancia, responsabilidad del usuario.)
Sobre la función de aprobación automática, que permite saltarse la confirmación en cada ejecución, Databricks también afirma que "no pretende que funcione como barrera de seguridad", y su documentación recomienda no usarla en entornos de producción.
El mismo tipo de brecha también aparece en otras empresas
Al poner lado a lado los informes que PromptArmor ha publicado en el último año, la superficie de ataque resulta muy similar. Antes ya había revelado la filtración de archivos en Claude Cowork y la filtración de datos en Google Antigravity, siguiendo el mismo patrón: lograr que el agente lea contenido sensible y luego, mediante renderizado, enlaces o llamadas de red, sacar ese contenido. La diferencia está en la puerta de entrada: en los casos anteriores, la inyección de prompts era la vía principal; esta vez, en el caso de Genie, se ha cambiado por el Skill, un tipo de plugin que "en cuanto se instala, ya puede ejecutar código".
Para las empresas, un Skill es más difícil de contener que un texto de inyección. Un texto de inyección, como mínimo, tiene que esconderse en una página web o un documento y esperar a que el agente lo lea; en cambio, un Skill lo instala activamente el propio usuario, por lo que lleva incorporada una confianza natural. El mundo académico también está debatiendo mucho este tema este año, y en arXiv ya han aparecido benchmarks dedicados a evaluar Skills maliciosos, con tasas de falsos negativos de las herramientas de detección que en general siguen siendo altas.
No pocos equipos en China también están conectando agentes a plataformas de datos y abriendo marketplaces de plugins, y la lista de comprobación que deja este incidente es muy concreta: si el Skill solo puede cargarse desde un directorio revisado por administradores, si el HTML que genera el agente puede ejecutar scripts y enviar solicitudes a dominios externos, y si el interruptor de aprobación automática viene desactivado por defecto en entornos de producción. Basta con que uno solo de estos tres puntos no esté bien cerrado para que la cadena que demuestra PromptArmor pueda reproducirse.
Las recomendaciones de PromptArmor también apuntan a estos mismos puntos: no activar la aprobación automática con datos de producción y estar atentos a los paquetes envenenados en los marketplaces de Skills. Sobre si Databricks añadirá algún filtro de salida a nivel de producto, por ahora no hay ningún comunicado público.
Fuentes: informe de investigación de seguridad de PromptArmor, documentación de producto de Databricks Genie Code, CocoLoop, artículos sobre Skills maliciosos en arXiv; las fechas de divulgación y negociación, así como el texto original de la respuesta de Databricks, siguen el informe de PromptArmor.