Ce que l'incident à 28K a réellement montré
Le chiffre « 28K » qui a circulé dans la communauté OpenClaw en avril, c'était le nombre de systèmes qu'un seul paquet malveillant a compromis avant que quiconque ne le remarque. Le cheval de Troie est entré via une extension OpenClaw populaire, a récolté toutes les clés API à sa portée, et s'est silencieusement glissé dans les prompts d'agents qui ont tourné le reste de la semaine.
Il n'est pas entré parce qu'OpenClaw serait « peu sûr ». Il est entré parce que la plupart des déploiements OpenClaw sont configurés comme la plupart des outils de développement : clés dans des variables d'environnement, agents tournant sur le portable du développeur, extensions installées par confiance, et aucun journal d'audit entre « l'agent a fait quelque chose » et « la facture est arrivée ». Chacune de ces valeurs par défaut est correcte prise isolément. Empilées, elles forment exactement le modèle de menaces pour lequel ce cheval de Troie a été écrit.
Ce billet n'est pas un billet de fonctionnalités. Office Claws n'est pas un runtime OpenClaw — nous sommes un gestionnaire de bureau Codex-first, et la plupart des contrôles ci-dessous s'appliquent aux deux agents de la même façon. Ce que nous voulons exposer, c'est le modèle de menaces que les utilisateurs OpenClaw affrontent réellement après cet incident, et les pratiques local-first ennuyeuses qui transforment le prochain en non-événement.
Le modèle de menaces que les utilisateurs OpenClaw ont réellement
Trois choses font des plateformes d'agents des cibles plus juteuses qu'un outil de développement classique, et OpenClaw n'y fait pas exception.
- Les clés valent de vrai argent. Une clé OpenAI ou Anthropic divulguée n'est pas qu'un identifiant — c'est un distributeur compté. Un attaquant peut brûler 5 000 $ sur une clé en un week-end avant que les alertes de facturation se déclenchent.
- Les agents ont des mains. Un agent avec accès shell peut lire votre code, pousser sur vos repos, exécuter des scripts en tant que vous. Un cheval de Troie dans le prompt ou la liste d'outils de l'agent peut faire les mêmes choses.
- La chaîne d'approvisionnement est large. Chaque extension, serveur MCP ou « pack communautaire » que vous installez tourne dans la même zone de confiance que l'agent. Une configuration OpenClaw avec douze extensions a douze points d'entrée potentiels.
Toute pratique qui ne traite au moins l'un de ces trois points est de la décoration.
| Risque | Mauvaise valeur par défaut | Contrôle ennuyeux qui marche |
|---|---|---|
| Exfiltration de clés | Clés dans .env à côté du code | Trousseau OS local, rotation à courte durée |
| Agent sur portable avec accès total | Un uid, un système de fichiers | Agent sur sa propre VPS, jetons à scope |
| Chaîne d'approvisionnement des extensions | Mise à jour auto, sans revue | Versions épinglées, lecture du diff, pas d'auto-install |
| Dépense invisible | Facture API en fin de mois | Plafond de dépense par agent + monitoring quotidien |
Cinq contrôles qui font vraiment bouger l'aiguille
1. Les clés restent sur la machine de l'opérateur
Le contrôle au plus fort effet de levier après cet incident est aussi le plus ancien : ne livre pas le secret à l'endroit où tourne le code non fiable. Dans Office Claws, vos clés de fournisseur vivent dans le store local de votre application desktop. Elles sont passées à l'agent par un tunnel Tailscale chiffré uniquement quand l'agent appelle un fournisseur, et ne sont jamais écrites sur le disque de la VPS. Si un cheval de Troie atterrit sur la box de l'agent, il ne trouve pas la clé — parce qu'elle n'y a jamais été.
Si vous restez sur OpenClaw, l'équivalent est de sortir les clés des fichiers .env du projet vers le trousseau de votre OS (Keychain sur macOS, secret-tool sur Linux, DPAPI sur Windows) et de les lire au démarrage de la session. C'est pénible. C'est aussi la différence entre « compromis » et « légèrement gênant ».
2. L'agent vit ailleurs
Faire tourner l'agent sur la même machine que votre arborescence de sources, c'est qu'une seule compromission atteint tout. Le faire tourner sur une VPS — votre propre box Contabo pour quelques euros par mois — transforme la plupart des attaques en « l'attaquant a rooté une seule droplet éphémère ». Cette droplet n'a pas vos clés SSH pour vos autres repos, pas de session navigateur sur votre banque, pas d'accès au Slack de votre équipe. Vous la détruisez et la réapprovisionnez ; le rayon est d'une machine.
C'est le modèle que nous livrons. Office Claws self-hosted approvisionne une droplet Contabo depuis un snapshot pré-cuit en moins de trois minutes ; l'agent tourne là-bas, votre portable lui parle via Tailscale.
3. Épinglez chaque extension que vous installez
Le cheval de Troie à 28K était une attaque de chaîne d'approvisionnement. Mettre à jour automatiquement les extensions communautaires, c'est l'équivalent OpenClaw de curl | bash. Épinglez les versions. Lisez le diff avant de monter. Traitez toute extension qui demande « tous les outils, tous les répertoires » comme vous traiteriez une extension de navigateur qui demande à lire toutes les pages — avec une longue pause et une alternative plus petite.
Deux règles pratiques :
- Une extension qui a besoin d'une sortie réseau vers un domaine dont vous n'avez jamais entendu parler, c'est non.
- Une extension dont l'historique GitHub du mainteneur fait trois commits, c'est non.
4. Plafonnez les dépenses chez le fournisseur
Chaque fournisseur supporté a un plafond de dépense par clé. Mettez-en un. Le cheval de Troie à 28K a été rentable parce que personne n'a rien remarqué jusqu'à l'arrivée de la facture ; le même cheval de Troie contre une clé avec un plafond de 50 $/jour est une nuisance, pas un incident. Office Claws affiche votre consommation de tokens par agent dans l'app desktop, mais la défense qui fait foi est le plafond que vous mettez côté OpenAI ou Anthropic. Nous ne pouvons pas l'imposer à votre place, et nous ne le voudrions pas.
5. Ayez un journal d'audit que vous n'avez pas écrit vous-même
Si votre seul enregistrement de « ce qu'a fait l'agent » est le scrollback de l'agent lui-même, vous n'avez pas d'enregistrement. Chaque prompt d'agent et chaque appel d'outil devraient atterrir quelque part que vous contrôlez : le log de gateway sur la VPS de l'agent, une stack Loki/Grafana que vous opérez, ou — pour les plans managed — le flux d'activité dans l'app desktop. Le but n'est pas de le lire tous les jours. Le but, c'est qu'après un incident, vous puissiez répondre « qu'est-ce que cette clé a touché » en minutes, pas en semaines.
À quoi ça ressemble en pratique
Concrètement, un utilisateur OpenClaw qui a pris l'incident au sérieux est sorti d'avril avec à peu près cette stack :
laptop ── Tailscale ──► VPS (one per agent)
│ │
│ ├─ agent runtime
│ ├─ pinned extensions
│ └─ gateway log → operator-side
│
├─ keys in OS keychain (NOT in .env)
├─ provider spend cap set per key
└─ desktop app showing per-agent token burnC'est la même stack qu'Office Claws livre par défaut pour les agents Codex. Si vous avez migré hors d'OpenClaw après le blocage de l'abonnement, vous avez récupéré la posture de sécurité comme effet secondaire de la migration de coût. Si vous êtes resté sur OpenClaw, l'architecture ci-dessus reste atteignable — c'est juste à vous de la câbler.
Recommandations
- Sortez les clés de
.envaujourd'hui. Même si vous ne faites rien d'autre dans cette liste, la prochaine extension piégée ne pourra pas exfiltrer une clé qu'elle ne peut pas lire. - Mettez des plafonds de dépense avant la prochaine session de code. Cinq minutes sur le tableau de bord du fournisseur. Le contrôle au plus fort ROI de cette page.
- Auditez vos extensions installées. Tout ce que vous n'utilisez pas activement, désinstallez. Tout ce que vous utilisez, épinglez à un commit connu comme bon.
- Sortez l'agent du portable. Que ce soit OpenClaw sur une box self-hosted ou Codex sur Office Claws, le portable est le mauvais endroit pour un agent longue durée avec accès shell.
- Gardez un journal côté opérateur. Pas besoin que ce soit sophistiqué. Il doit exister avant le prochain incident, pas après.
L'incident à 28K n'était pas le dernier. Les plateformes d'agents sont maintenant assez lucratives pour que « chaîne d'approvisionnement → clé → facture » soit un modèle d'affaires, pas un hasard. Les contrôles ci-dessus n'arrêtent pas ça. Ils rendent le rayon d'impact assez petit pour que le prochain soit un ticket du vendredi après-midi, pas une war room de week-end.
Lectures liées
- Abonnement OpenClaw bloqué ? Le chemin de migration vers Codex qui garde vos agents en marche — la moitié coûts de la même histoire de migration
- AI Agent Security : comment Office Claws garde vos clés en sécurité — le détail architectural derrière la gestion local-first des clés
- Self-Hosted vs Managed — choisir le plan qui correspond au modèle de menaces ci-dessus, avec les prix ici