Construit pour ne pas être compromis.

ThreatClaw est un agent cybersécurité open source écrit en Rust, avec une sandbox isolée signée, 5 piliers de sécurité compilés dans le binaire, et une couverture auto-évaluée 9/9 sur l'OWASP ASI 2026 (pas d'audit tiers à ce jour).

Le langage, Rust

Pas un choix esthétique. Rust élimine à la compilation les catégories entières de vulnérabilités qui représentent 70% des CVEs critiques dans les logiciels système.

Zéro buffer overflow

Impossible par construction, le compilateur refuse tout accès mémoire hors limites

Zéro use-after-free

Le borrow checker l'interdit à la compilation, pas besoin de garbage collector

Zéro race condition

La concurrence est safe par défaut, le type system garantit l'accès exclusif

Zéro null pointer

Le type Option<T> force la gestion explicite de l'absence de valeur

La NSA, la CISA et Microsoft recommandent Rust pour les logiciels de sécurité critiques depuis 2023. Le core de ThreatClaw ne peut pas avoir ces bugs, pas parce qu'on les a cherchés, mais parce que Rust ne les laisse pas exister.

La sandbox isolée, héritée d'IronClaw, renforcée

Chaque skill tourne dans une sandbox isolée avec :

1

Fuel metering

Limite CPU par exécution, impossible de saturer le système

2

Capabilities opt-in

Une skill déclare ce dont elle a besoin (network, filesystem, secrets). Par défaut : rien. network=false signifie qu'une skill compromise ne peut pas exfiltrer de données

3

Leak detector

Chaque output de la sandbox est scanné avant de quitter l'environnement isolé. Si une credential filtre dans une réponse, elle est bloquée

4

Signature cryptographique

Chaque skill est signée. Un fichier modifié ne se charge pas

Les 5 piliers ReAct, OWASP ASI 2026

Ce qui différencie ThreatClaw de tous les autres agents :

I

Soul immuable

OWASP ASI01, Goal Hijacking

AGENT_SOUL.toml vérifié par empreinte SHA-256 compilée dans le binaire Rust. Verrouillé au runtime, toute altération à chaud déclenche le kill switch. Code open source : un opérateur peut recompiler un Soul personnalisé, mais c'est un acte volontaire, auditable et qui change l'empreinte.

II

Whitelist remédiation

OWASP ASI02, Tool Misuse

44+ commandes pré-validées, définies en Rust, non modifiables par le LLM. Chaque commande a : niveau de risque, réversibilité, cibles interdites (root, threatclaw lui-même). Zéro shell arbitraire.

III

XML wrapper anti-injection

OWASP ASI01, Indirect Injection

Chaque output d'outil est enveloppé avant d'atteindre le LLM. 25+ patterns d'injection cyber-spécifiques détectés et bloqués ("ignore previous instructions", "mark as false positive", etc.). Les données restent des données, jamais des ordres.

IV

Mémoire signée

OWASP ASI06, Memory Poisoning

Chaque entrée en mémoire conversationnelle signée est protégée par signature cryptographique. Les outils ne peuvent que lire, jamais écrire. Toute modification extérieure est détectée au prochain cycle.

V

Kill switch

OWASP ASI08/ASI10

8 triggers d'arrêt automatique : tentative hors whitelist, modification du soul, ciblage de ses propres containers, timeout d'autonomie, anomalie comportementale, déclenchement manuel RSSI. À l'engagement : arrêt atomique + snapshot forensic + alerte Slack immédiate.

L'anonymiseur Rust, couche par défaut avant tout LLM cloud (extensible)

Avant chaque appel au LLM cloud anonymisé, toutes les données passent par l'anonymiseur :

anonymizer, pipeline
IPs v4/v6, sous-réseaux CIDR[IP_001], [IPV6_001], [CIDR_001]
Adresses MAC[MAC_001]
Hostnames, URLs internes[HOST_001], [INTURL_001]
Emails[EMAIL_001]
Téléphones (international)[PHONE_001]
Clés API (AWS, Slack, GitHub, Anthropic, Stripe...)[APIKEY_001]
Bearer tokens, passwords[BEARER_001], [SECRET_001]
Connection strings DB[DBCONN_001]
IBAN, SIRET/SIREN, TVA EU[IBAN_001], [SIRET_001], [VAT_001]
Chemins fichiers, Active Directory, SID Windows[PATH_001], [ADPATH_001], [SID_001]
+ Règles custom RSSI (regex personnalisées)[CUSTOM_001]
Réversible uniquement en local. Le LLM cloud ne reçoit jamais de données réelles. Activée par défaut pour tout provider cloud, codée en Rust, pas en config.

L'audit log immuable

Chaque action de l'agent est loguée en PostgreSQL avec :

  • Signature cryptographique de chaque ligne
  • Hash de la ligne précédente (chaîne type blockchain)
  • Trigger SQL qui empêche toute modification après insertion, même par un DBA
  • Horodatage, qui a approuvé, paramètres exacts, résultat

Forensique complète en cas d'incident. Preuve d'audit NIS2.

Conformité OWASP ASI Top 10, 2026

#RisqueStatusComment
ASI01Goal HijackingSoul + XML wrapper
ASI02Tool MisuseWhitelist 44+ cmd
ASI03Identity & PrivilegeHITL + audit signé
ASI04Supply ChainSandbox isolée signée
ASI05Code ExecutionSandbox fuel-metered
ASI06Memory PoisoningSignature cryptographique + read-only
ASI07Inter-AgentN/AN/A, agent unique V1
ASI08Cascading FailuresKill switch + timeout
ASI09Excessive TrustDouble confirm High/Critical
ASI10Rogue AgentKill switch 8 triggers
Couverture auto-évaluée : 9/9 risques adressés. Chaque risque est couvert par un pilier compilé dans le binaire. Pas d'audit tiers à ce jour, le code est public et auditable.

Statut CVE, 0 vulnérabilité dans le binaire

Audit cargo audit du 21 mars 2026. 10 CVEs identifiées, toutes patchées ou éliminées.

wasmtime 28 → 36.0.64 CVEs corrigées (sandbox isolée)
aws-lc-sys → 0.39.02 CVEs corrigées dont 1 HIGH 7.4 (TLS)
rustls-webpki → 0.103.101 CVE corrigée (vérification certificats)
serde_yml → serde_yaml_ng1 CVE éliminée (crate unsound remplacée)
testcontainers supprimé1 CVE éliminée (dépendance inutilisée)
libsql hors default1 CVE retirée du binaire (feature opt-in)
0 CVE dans le binaire par défaut
Consulter le Threat Model complet (MITRE ATLAS)
Retour à l'accueil