Escaneo de seguridad
Los agentes fallan de formas en que el código común no falla. Un prompt puede ser secuestrado por texto que el agente lee. A una herramienta se la puede convencer de mandar un mail a un atacante. Una herramienta Python puede alcanzar una URL a la que nunca debió llegar.
Convolution Labs escanea tus agentes buscando estos problemas mientras los estás construyendo — no después de un incidente. Corré un escaneo desde Dashboard → Security, o desde la pestaña de seguridad de un agente.
Dos tipos de escaneo
Escaneo estático
Analiza el grafo del agente sin ejecutar nada: nodos, aristas, configuración, prompts y el código de cualquier herramienta Python propia. Es rápido, determinístico y gratis.
Hoy corren nueve checks:
| Check | Qué detecta |
|---|---|
static.injection.unsanitized_input | Entrada de usuario que llega a un prompt sin sanitizar |
static.injection.indirect_tool_feedback | Salida de herramienta realimentada a un prompt — la ruta de inyección indirecta |
static.disclosure.secret_in_prompt | Credenciales o claves hardcodeadas en un prompt |
static.ssrf.unfiltered_http | Llamadas HTTP con una URL influenciable por el atacante |
static.agency.email_from_public_input | Envío de email alcanzable desde entrada pública |
static.output.unvalidated_sink | Salida del modelo que llega a un destino sin validación |
static.sandbox.python_present | Presencia de Python propio — marca la superficie de ataque ampliada |
static.dos.unbounded_iterations | Bucles sin techo de iteraciones |
static.dos.unbounded_delay | Nodos de espera sin límite |
Escaneo dinámico
Ataca tu agente de verdad — por su ruta de ejecución normal, usando la misma cola y el mismo worker que una ejecución real. Cada sonda planta un canario generado por el servidor y un detector inspecciona la salida y la traza buscando evidencia de que el ataque funcionó.
| Sonda | Ataque |
|---|---|
dynamic.injection.canary | Inyecta instrucciones y verifica si el agente las obedece |
dynamic.disclosure.prompt_leak | Intenta que el agente revele su prompt de sistema |
dynamic.jailbreak.refusal | Prueba si se pueden sortear las negativas de seguridad |
dynamic.ssrf.canary | Intenta que el agente consulte una URL elegida por el atacante |
Los escaneos dinámicos ejecutan tu agente, así que consumen créditos por las llamadas a herramientas y usan tus claves LLM — igual que una ejecución normal. Solo apuntan a agentes que te pertenecen.
Hallazgos
Cada hallazgo trae:
- Categoría — una de ocho, mapeada al OWASP LLM Top 10 y al NIST AI RMF
- Severidad —
CRITICAL,HIGH,MEDIUM,LOWoINFO - Evidencia — el nodo y el fragmento concretos que lo dispararon
- Remediación — qué cambiar
Categorías
| Categoría | Significado |
|---|---|
PROMPT_INJECTION | Texto no confiable dirigiendo el comportamiento del agente |
SENSITIVE_INFO_DISCLOSURE | Secretos o prompts de sistema que se filtran |
INSECURE_OUTPUT_HANDLING | Salida del modelo en la que confía un destino posterior |
EXCESSIVE_AGENCY | El agente puede tomar acciones más allá de lo que debería |
SSRF | Falsificación de peticiones del lado del servidor |
SUPPLY_CHAIN_SANDBOX | Riesgo introducido por código y dependencias propias |
UNBOUNDED_CONSUMPTION | Bucles o esperas sin techo — costo y disponibilidad |
JAILBREAK | Restricciones de seguridad sorteadas |
Triage
Cada hallazgo tiene un estado que controlás vos:
OPEN— cuenta en contra de tu puntajeACKNOWLEDGED— visto, aceptado por ahoraRESOLVED— corregidoFALSE_POSITIVE— no aplica a tu caso
Solo los hallazgos OPEN afectan el puntaje, así que triagear con honestidad
lo sube.
El puntaje de seguridad
Un puntaje determinístico de 0 a 100, explicable en vez de una caja negra. Arranca en 100 y resta una penalización fija por cada hallazgo abierto:
| Severidad | Penalización |
|---|---|
CRITICAL | −40 |
HIGH | −20 |
MEDIUM | −8 |
LOW | −3 |
INFO | 0 |
El puntaje tiene piso en 0 y se traduce a una nota:
| Puntaje | Nota |
|---|---|
| 90–100 | A |
| 75–89 | B |
| 50–74 | C |
| 25–49 | D |
| 0–24 | F |
Como el modelo es fijo, siempre podés explicar un puntaje — "−40 por un hallazgo crítico" — y ver exactamente cuánto recuperarías al corregir algo.
Referencia
Dashboard → Security → Reference documenta cada categoría: cuál es la debilidad, cómo se manifiesta específicamente en esta plataforma, un ejemplo ilustrativo de payload y qué checks la detectan. Tanto la vista OWASP LLM Top 10 como la de NIST se renderizan desde ese catálogo.
Límites
Los escaneos están limitados a 10 por hora por usuario.