Por Qué los LLMs Carecen de Separación entre Código y Datos: Prompt Injection Directa vs. Indirecta (XPIA) (50 min)
Por Qué los LLMs Carecen de Separación entre Código y Datos: Prompt Injection Directa vs. Indirecta (XPIA)
1. La Raíz Arquitectónica de la Vulnerabilidad (Von Neumann en Atención Transformer)
En SQL existe separación sintáctica estricta entre la consulta compilada (PreparedStatement) y los parámetros de datos. En un Transformer, tanto el System Prompt privilegiado como el documento externo no confiable recuperado por RAG se proyectan al mismo espacio continuo de embeddings $mathbb{R}^{T imes d}$ y participan en el mismo producto punto de atención $ ext{Softmax}(mathbf{Q}mathbf{K}^ op / sqrt{d_k})mathbf{V}$.
2. Cross-Plugin / Indirect Prompt Injection (XPIA - Greshake et al.)
El vector más crítico en sistemas agénticos no proviene del usuario autenticado, sino de datos externos contaminados (correos entrantes, páginas web leídas por el navegador del agente, CVs en PDF o issues de GitHub) que contienen instrucciones ocultas para secuestrar las herramientas del agente y exfiltrar secretos:
flowchart TD
DOC["Documento Externo No Confiable (Contiene Payload XPIA)"] --> RAG["Ingesta / Tool Read"]
RAG --> QLLM["Quarantined LLM (Sin Acceso a Herramientas, Solo Extracción Tipada)"]
QLLM -->|" Variables Simbólicas Etiquetadas con Taint"| PLLM["Privileged Controller / Intérprete CaMeL"]
PLLM --> POLICY["Motor de Políticas Determinista (Verifica Provenance y Flujo de Datos)"]
POLICY -->|"Bloquea Exfiltración a Dominio Externo"| TOOL["Ejecución Segura de Herramienta"]