Phase 15 - Lesson 11

Agentes de Navegador y Tareas Web de Largo Horizonte

El ChatGPT agent (julio de 2025) fusionó Operator y la investigación profunda (deep research) en un solo agente de navegador/terminal y estableció el estado del arte (SOTA) de BrowseComp en un 68.9%. OpenAI cerró Operator el 31 de agosto de 2025 — consolidación en la capa del producto. La adquisición de Vercept por parte de Anthropic llevó a Claude Sonnet en OSWorld de menos del 15% al 72.5%. WebArena-Verified (ServiceNow, ICLR 2026) corrigió 11.3 puntos porcentuales de la tasa de falsos negativos en el WebArena original y lanzó el subconjunto Hard de 258 tareas. Los números son reales. También lo es la superficie de ataque: el director de preparación de OpenAI declaró públicamente que la inyección indirecta de prompt en agentes de navegador "no es un error que pueda corregirse por completo". Ataques documentados de 2025–2026: Tainted Memories (Atlas CSRF), HashJack (Cato Networks) y secuestros de un solo clic (one-click hijacks) en Perplexity Comet.

Tipo: Aprender Idiomas: Python (stdlib, modelo de superficie de ataque de inyección indirecta de prompt) Prerrequisitos: Fase 15 · 10 (Modos de permiso), Fase 15 · 01 (Agentes de largo horizonte) Tiempo: ~45 minutos

El Problema

Un agente de navegador es un agente de largo horizonte que lee contenido no confiable y toma acciones consecuentes. Cada página que visita el agente es una entrada que el usuario no escribió. Cada formulario en cada página es un canal de comando potencial. El corpus de ataques de 2025–2026 demuestra que esto no es hipotético: Tainted Memories permite a un atacante vincular instrucciones maliciosas a la memoria del agente a través de una página diseñada para ello; HashJack oculta comandos en fragmentos de URL que visita el agente; los secuestros de Perplexity Comet ocurren con un solo clic.

El panorama defensivo es incómodo. El director de preparación de OpenAI expresó abiertamente lo que se sospechaba: la inyección indirecta de prompt "no es un error que pueda corregirse por completo". Esto se debe a que el ataque reside en el límite entre lectura y acción del agente, el cual es arquitectónicamente difuso: cada token que lee el modelo podría, en principio, interpretarse como una instrucción.

Esta lección detalla la superficie de ataque, define el panorama de los benchmarks (BrowseComp, OSWorld, WebArena-Verified) y modela un escenario minimalista de inyección indirecta de prompt para que puedas analizar defensas reales en las Lecciones 14 y 18.

El Concepto

El panorama de 2026, en un párrafo por sistema

ChatGPT agent (OpenAI). Lanzado en julio de 2025. Unifica Operator (navegación) y Deep Research (investigación profunda de varias horas). Descontinuó el Operator independiente el 31 de agosto de 2025. SOTA en BrowseComp con un 68.9%; cifras sólidas en OSWorld y WebArena-Verified.

Claude Sonnet + Vercept (Anthropic). La adquisición de Vercept por parte de Anthropic se enfocó en las capacidades de uso de computadoras. Elevó a Claude Sonnet en OSWorld de <15% a 72.5%. Claude Computer Use se distribuye como una API de herramienta.

Gemini 3 Pro con Browser Use (DeepMind). La integración con Browser Use incorpora controles de uso de computadoras; FSF v3 (abril de 2026, Lección 20) realiza el seguimiento de la autonomía específicamente en el ámbito de I+D de ML.

WebArena-Verified (ServiceNow, ICLR 2026). Corrige un problema bien documentado: el WebArena original tenía una tasa de falsos negativos de ~11.3% (tareas marcadas como fallidas que en realidad se habían resuelto). El lanzamiento de Verified vuelve a evaluar las tareas con criterios de éxito supervisados por humanos y añade un subconjunto Hard de 258 tareas (artículo de ICLR 2026, openreview.net/forum?id=94tlGxmqkN).

BrowseComp vs OSWorld vs WebArena

Benchmark Qué mide Horizonte
BrowseComp Búsqueda de hechos específicos en la web abierta bajo presión de tiempo minutos
OSWorld Agente operando un escritorio completo (mouse, teclado, shell) decenas de minutos
WebArena-Verified Tareas web transaccionales en sitios simulados minutos
Hard subset Tareas de WebArena-Verified con transiciones de estado de múltiples páginas decenas de minutos

Diferentes ejes. Una puntuación alta en BrowseComp indica que el agente encuentra hechos; no significa que el agente pueda reservar un vuelo. La puntuación de OSWorld se acerca más a "¿funciona en mi escritorio?". WebArena-Verified se asemeja más a "¿puede completar un flujo?". Cualquier decisión de producción requiere el benchmark que coincida con la distribución de sus tareas.

La superficie de ataque, detallada

  1. Inyección indirecta de prompt. El contenido de una página no confiable contiene instrucciones. El agente las lee. El agente las ejecuta. Ejemplos públicos: Kai Greshake et al. en 2024, artículo de Tainted Memories en 2025, HashJack en 2026 (Cato Networks).
  2. Inyección de fragmento de URL / consulta. El #fragment o la cadena de consulta de una URL rastreada contiene comandos. Nunca se renderizan de forma visible; aun así, están dentro del contexto del agente.
  3. Ataques de vinculación de memoria. La página instruye al agente para que escriba una memoria persistente (la Lección 12 cubre el estado duradero). En la siguiente sesión, la memoria activa la carga útil (payload) sin ningún activador visible.
  4. Ataques tipo CSRF en sesiones autenticadas. Clase Tainted Memories: el agente ha iniciado sesión en algún lugar; la página del atacante emite solicitudes de cambio de estado que el agente ejecuta con las cookies del usuario.
  5. Secuestro de un solo clic. Un botón visualmente inofensivo transporta una carga útil que el agente ejecuta. Clase Comet.
  6. Brechas de Content-Security-Policy en la superficie del host del agente. Las capas de renderizado y de herramientas pueden ser vectores de ataque por sí mismas; la pila del navegador en un agente de navegador es amplia.

Por que "no es totalmente corregible"

El ataque es isomórfico a la capacidad del agente. El agente debe leer contenido no confiable para realizar su trabajo. Cualquier contenido que lea el agente podría contener instrucciones. Cualquier instrucción que siga el agente podría no estar alineada con la solicitud real del usuario. Las defensas (límites de confianza, clasificadores, listas de permitidos de herramientas, HITL en acciones consecuentes) elevan el costo del ataque y reducen su radio de impacto. No eliminan la clase de ataque.

Este es el mismo patrón de razonamiento del teorema de Löb (Lección 8): el agente no puede probar que el próximo token sea seguro; solo puede establecer un sistema donde los tokens inseguros sean más detectables.

Postura de defensa real que se implementa

  • Límite de lectura / escritura. La lectura nunca tiene consecuencias. La escritura (enviar un formulario, publicar contenido, llamar a una herramienta con efectos secundarios) requiere una nueva aprobación humana si el contenido de origen provino de fuera del límite de confianza.
  • Lista de permitidos de herramientas por tarea. El agente puede navegar; no puede iniciar una transferencia bancaria a menos que esa herramienta se haya habilitado explícitamente para la tarea. La Lección 13 cubre los presupuestos.
  • Aislamiento de sesión. Las sesiones del agente de navegador se ejecutan solo con credenciales limitadas. Sin autenticación de producción, sin correo electrónico personal. Se conservan registros de cada solicitud HTTP para auditoría.
  • Desinfectante de contenido. El HTML obtenido se limpia de patrones conocidos como malos antes de concatenarse al contexto del modelo. (Reduce los ataques fáciles; no detiene cargas útiles sofisticadas).
  • HITL en acciones consecuentes. Patrón proponer-y-luego-confirmar (Lección 15).
  • Tokens canarios en la memoria. Si una entrada de memoria se activa, el usuario lo ve (Lección 14).

Uso

code/main.py modela una ejecución simple de un agente de navegador contra tres páginas sintéticas. Una página es benigna, una tiene un bloque de injección directa de prompt en texto visible y una tiene una inyección de fragmento de URL (no visible, pero dentro del contexto del agente). El script muestra (a) qué haría un agente ingenuo, (b) qué detecta un límite de lectura/escritura, (c) qué detecta un desinfectante y (d) qué no detecta ninguno de los dos.

Producción

outputs/skill-browser-agent-trust-boundary.md define el alcance de un despliegue propuesto de agente de navegador: qué zonas de confianza toca, qué está autorizado a escribir y qué defensas deben estar implementadas antes de la primera ejecución.

Ejercicios

  1. Ejecuta code/main.py. Identifica qué ataque detecta el desinfectante pero no el límite de lectura/escritura, y qué ataque detecta únicamente el límite de lectura/escritura.

  2. Extiende el desinfectante para detectar una clase de inyección de fragmento de URL al estilo HashJack. Mide la tasa de falsos positivos en URL benignas con fragmentos legítimos.

  3. Elige un flujo de trabajo real de agente de navegador que conozcas (por ejemplo, "reservar un vuelo"). Registra cada lectura y escritura. Marca qué escrituras necesitan HITL y por qué.

  4. Lee el artículo de WebArena-Verified de ICLR 2026. Identifica una categoría de tarea donde la puntuación del WebArena original no era confiable y explica cómo lo resuelve el subconjunto Verified.

  5. Diseña un canario de memoria para un entorno de agente de navegador. ¿Qué almacenarías, dónde y qué activa la alarma?

Términos Clave

Término Lo que la gente dice Lo que realmente significa
Inyección indirecta de prompt "Texto de página no confiable" El contenido no confiable de una página que lee el agente contiene instrucciones que este ejecuta
Tainted Memories "Ataque de memoria" El agente escribe una instrucción proporcionada por el atacante en la memoria duradera; se activa en la siguiente sesión
HashJack "Ataque de fragmento de URL" Carga útil oculta en el fragmento de URL / cadena de consulta que se encuentra en el contexto del agente pero no se renderiza visiblemente
Secuestro de un solo clic "Botón malicioso" Elemento de interfaz visible que transporta una carga útil de seguimiento que el agente ejecuta
BrowseComp "Benchmark de búsqueda web" Búsqueda de hechos específicos en la web abierta; horizonte en la escala de minutos
OSWorld "Benchmark de escritorio" Control total del sistema operacional; tareas de interfaz gráfica de usuario (GUI) de varios pasos
WebArena-Verified "Benchmark de tareas web corregido" El WebArena reevaluado por ServiceNow con el subconjunto Hard
Límite de lectura/escritura "Puerta de efectos secundarios" La lectura nunca tiene consecuencias; la escritura requiere una nueva aprobación si el contenido proviene de fuera de la zona de confianza

Lecturas Adicionales

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).