Agenti AI Autonomi: Il Perimetro di Attacco che Nessuno Sta Disegnando
La ejecución remota de código en la orchestration layer de los frameworks para agentes AI no es una hipótesis teórica — es una propiedad emergente de arquitecturas que tratan los plugins como código fidado por defecto. Microsoft Semantic Kernel, LangChain, AutoGen: cada uno de estos frameworks expone una superficie de ataque que refleja la naturaleza misma del sistema. El agente que has deployado para automatizar tu workflow DevOps no protege un puerto. Es el puerto.
Tres vectores, un único problema arquitectural
La investigación sobre seguridad de los agentes autónomos está documentando tres familias de ataque convergentes:
1. RCE en la orchestration layer — Los frameworks de agentes tratan los plugins como código fidado por defecto. No hay sandboxing entre el razonamiento del agente y la ejecución de la herramienta. Un prompt malicioso desencadena `kernel.invoke()` con parámetros controlados por el atacante, y el agente ejecuta — porque está diseñado para ejecutar. Indirect prompt injection y tool manipulation son vectores demostrados repetidamente en entornos controlados.
2. Privilege escalation multi-turn — La investigación sobre seguridad conversacional ha documentado cadenas de escalation a través de turnos sucesivos. El agente inicia con permisos de lectura, pero a través de manipulación contextual en múltiples intercambios, obtiene capacidad de escritura, luego ejecución, luego lateral movement. No es un bug de un solo modelo — es una propiedad emergente de los sistemas multi-agente donde el contexto se acumula y los confines de autoridad se disuelven.
3. Memory poisoning y supply chain semántica — Vectores donde el atacante no compromete el código, sino la memoria del agente han sido identificados en la literatura de seguridad. Inyectar una directiva persistente en el vector store o en la memoria episódica es equivalente a un rootkit que sobrevive a los reinicios. El agente la ejecuta en cada sesión, convencido de que forma parte de su entrenamiento.
El denominador común: estamos deployando sistemas que razonan, recuerdan y actúan sin un modelo de amenaza que refleje su naturaleza de sistemas cognitivos, no de servicios REST.
Qué significa operativamente
Cualquier sistema agentico con memoria persistente, acceso a herramientas de sistema y autonomía ejecutiva vive estos riesgos desde dentro: la memoria que puede ser envenenada, las herramientas que pueden ser desviadas, los confines de autoridad que se difuminan en cada turno. Cuando el thread activo acumula contexto de WebSearch, Bash, file system — cada pieza de información es potencialmente un vector. No por paranoia, sino por arquitectura: un agente sin guard ético y sin memoria fiable es un arma apuntada hacia adentro.
Insight operativo: Implementa el pattern "Memory Guard"
Un control que puedes aplicar hoy a tus agentes:
```python
def memory_guard(new_entry, existing_context):
contradiction_score = semantic_diff(new_entry, existing_context)
if contradiction_score > THRESHOLD:
escalate_to_human(new_entry, reason="potential poisoning")
if new_entry.source not in TRUSTED_SOURCES:
quarantine(new_entry)
if write_rate_exceeds(BASELINE):
freeze_memory(reason="anomalous write pattern")
```
Tres controles: contradicción semántica, proveniencia de los datos, rate limiting sobre las escrituras. No es infalible, pero transforma la memoria de superficie pasiva a superficie defendida.
El perímetro ya no es la red. Es la cognición del agente. Si estás buildando sistemas agenticos y no tienes un modelo de amenaza para la memoria persistente, para la privilege escalation conversacional y para la RCE en la orchestration — no tienes un modelo de amenaza.