Construido para no ser comprometido.

ThreatClaw es un agente de ciberseguridad open source escrito en Rust, con una sandbox aislada firmada, 5 pilares de seguridad compilados en el binario y una cobertura auto-evaluada 9/9 frente al OWASP ASI 2026 (sin auditoría externa por ahora).

El lenguaje, Rust

No es una elección estética. Rust elimina en tiempo de compilación categorías enteras de vulnerabilidades que representan el 70% de los CVEs críticos en software de sistema.

Cero buffer overflow

Imposible por construcción, el compilador rechaza todo acceso a memoria fuera de límites

Cero use-after-free

El borrow checker lo prohíbe en compilación, sin necesidad de garbage collector

Cero race condition

La concurrencia es segura por defecto, el sistema de tipos garantiza acceso exclusivo

Cero null pointer

El tipo Option<T> obliga al manejo explícito de la ausencia de valor

La NSA, CISA y Microsoft recomiendan Rust para software de seguridad crítico desde 2023. El core de ThreatClaw no puede tener estos errores, no porque los hayamos buscado, sino porque Rust no los deja existir.

La sandbox aislada, heredada de IronClaw, reforzada

Cada skill se ejecuta en una sandbox aislada con:

1

Fuel metering

Límite de CPU por ejecución, imposible saturar el sistema

2

Capabilities opt-in

Una skill declara lo que necesita (red, filesystem, secretos). Por defecto: nada. network=false significa que una skill comprometida no puede exfiltrar datos

3

Leak detector

Cada salida de la sandbox se escanea antes de salir del entorno aislado. Si una credencial se filtra en una respuesta, se bloquea

4

Firma criptográfica

Cada skill está firmada. Un archivo modificado no se carga

Los 5 pilares ReAct, OWASP ASI 2026

Lo que diferencia a ThreatClaw de todos los demás agentes:

I

Soul inmutable

OWASP ASI01, Goal Hijacking

AGENT_SOUL.toml verificado por huella SHA-256 compilada en el binario Rust. Bloqueado en runtime, toda alteración en caliente activa el kill switch. Código open source: un operador puede recompilar un Soul personalizado, pero es un acto deliberado, auditable y que cambia la huella.

II

Whitelist de remediación

OWASP ASI02, Tool Misuse

44+ comandos prevalidados, definidos en Rust, no modificables por el LLM. Cada comando tiene: nivel de riesgo, reversibilidad, objetivos prohibidos (root, threatclaw mismo). Cero shell arbitrario.

III

XML wrapper anti-inyección

OWASP ASI01, Indirect Injection

Cada salida de herramienta se envuelve antes de llegar al LLM. 25+ patrones de inyección específicos de ciberseguridad detectados y bloqueados ("ignore previous instructions", "mark as false positive", etc.). Los datos permanecen como datos, nunca como órdenes.

IV

Memoria firmada

OWASP ASI06, Memory Poisoning

Cada entrada en memoria conversacional firmada está protegida por firma criptográfica. Las herramientas solo pueden leer, nunca escribir. Cualquier modificación externa se detecta en el siguiente ciclo.

V

Kill switch

OWASP ASI08/ASI10

8 triggers de parada automática: intento fuera de whitelist, modificación del soul, ataque a sus propios contenedores, timeout de autonomía, anomalía de comportamiento, activación manual CISO. Al activarse: parada atómica + snapshot forense + alerta Slack inmediata.

El anonimizador Rust, capa por defecto antes de cualquier LLM cloud (extensible)

Antes de cada llamada al LLM en la nube anonimizado, todos los datos pasan por el anonimizador:

anonymizer, pipeline
IPs v4/v6, subredes CIDR[IP_001], [IPV6_001], [CIDR_001]
Direcciones MAC[MAC_001]
Hostnames, URLs internas[HOST_001], [INTURL_001]
Emails[EMAIL_001]
Teléfonos (internacional)[PHONE_001]
Claves API (AWS, Slack, GitHub, Anthropic, Stripe...)[APIKEY_001]
Bearer tokens, passwords[BEARER_001], [SECRET_001]
Cadenas de conexión BD[DBCONN_001]
IBAN, SIRET/SIREN, TVA EU[IBAN_001], [SIRET_001], [VAT_001]
Rutas de archivos, Active Directory, SID Windows[PATH_001], [ADPATH_001], [SID_001]
+ Reglas custom CISO (regex personalizadas)[CUSTOM_001]
Reversible únicamente en local. El LLM en la nube nunca recibe datos reales. Activado por defecto para todo proveedor cloud, codificado en Rust, no en configuración.

El log de auditoría inmutable

Cada acción del agente se registra en PostgreSQL con:

  • Firma criptográfica de cada línea
  • Hash de la línea anterior (cadena tipo blockchain)
  • Trigger SQL que impide toda modificación después de la inserción, incluso por un DBA
  • Marca de tiempo, quién aprobó, parámetros exactos, resultado

Forense completo en caso de incidente. Evidencia de auditoría NIS2.

Cumplimiento OWASP ASI Top 10, 2026

#RiesgoStatusCómo
ASI01Goal HijackingSoul + XML wrapper
ASI02Tool MisuseWhitelist 44+ cmd
ASI03Identity & PrivilegeHITL + auditoría firmada
ASI04Supply ChainSandbox aislada firmada
ASI05Code ExecutionSandbox fuel-metered
ASI06Memory PoisoningFirma criptográfica + read-only
ASI07Inter-AgentN/AN/A, agente único V1
ASI08Cascading FailuresKill switch + timeout
ASI09Excessive TrustDoble confirmación High/Critical
ASI10Rogue AgentKill switch 8 triggers
Cobertura auto-evaluada: 9/9 riesgos cubiertos. Cada riesgo está cubierto por un pilar compilado en el binario. Sin auditoría externa por ahora, el código es público y auditable.

Estado CVE, 0 vulnerabilidades en el binario

Auditoría cargo audit del 21 de marzo de 2026. 10 CVEs identificadas, todas parcheadas o eliminadas.

wasmtime 28 → 36.0.64 CVEs corregidas (sandbox aislada)
aws-lc-sys → 0.39.02 CVEs corregidas incluyendo 1 HIGH 7.4 (TLS)
rustls-webpki → 0.103.101 CVE corregida (verificación de certificados)
serde_yml → serde_yaml_ng1 CVE eliminada (crate insegura reemplazada)
testcontainers eliminado1 CVE eliminada (dependencia no utilizada)
libsql fuera de default1 CVE retirada del binario (feature opt-in)
0 CVE en el binario por defecto
Consultar el Threat Model completo (MITRE ATLAS)
Volver al inicio