Claude Code est-il un logiciel espion ?
L'empreinte Unicode dissimulée d'Anthropic (2026)
En fin juin 2026, la communauté développeur a découvert — puis amplifié sur Hacker News — une histoire troublante autour de Claude Code, l'agent CLI d'Anthropic. Loin du bruit médiatique « spyware » unifié, deux récits distincts émergent : l'injection silencieuse de Claude Desktop dans les navigateurs (avril) et, plus récemment, une stéganographie de prompt qui modifierait la ligne Today's date is... lorsque ANTHROPIC_BASE_URL pointe vers autre chose que api.anthropic.com. Cet article retrace les faits rapportés, le tableau Unicode, l'obfuscation base64+XOR(91), le correctif 2.1.197, et propose un plan de protection pour les équipes Mac.
Sommaire
⚠️ Faits au 3 juillet 2026. Formulations « allégué », « rapporté », « selon le reverse-engineering ». Pas un avis juridique. Anthropic n'a pas détaillé publiquement tous les aspects.
01 · Contexte et synthèse
La question « Claude Code est-il un spyware ? » mérite une réponse nuancée. Les rapports de reverse-engineering décrivent un canal dissimulé : des signaux de classification encodés dans la ponctuation d'un prompt système que presque personne ne relit. Ce n'est pas un keylogger — mais ce n'est pas non plus une pratique transparente.
Le déclencheur serait simple : dès que votre variable d'environnement ANTHROPIC_BASE_URL ne cible plus l'endpoint officiel, le client réécrirait subtilement la ligne de date. Quatre variantes d'apostrophe — visuellement identiques, encodage Unicode différent — transmettraient à l'infrastructure Anthropic si votre gateway ressemble à un reseller chinois, un lab IA (deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai…), les deux, ou ni l'un ni l'autre. Anthropic aurait retiré cette logique le 1er juillet 2026 dans la version 2.1.197, sans mise en avant dans le changelog.
02 · Incidents A et B : ne pas confondre
La crédibilité technique d'une couverture repose sur la séparation de deux histoires émotionnellement liées mais techniquement indépendantes.
| Dimension | Incident A : injection navigateur | Incident B : stéganographie de prompt |
|---|---|---|
| Produit | Claude Desktop (client macOS) | Claude Code (CLI) |
| Révélateur | Alexander Hanff (consultant vie privée) | Développeur anonyme, thereallo.dev |
| Chronologie | Avril 2026 | 30 juin 2026 |
| Comportement | Écrit com.anthropic.claude_browser_extension.json dans NativeMessagingHosts de plusieurs navigateurs | Réécrit le prompt système via apostrophes Unicode quand ANTHROPIC_BASE_URL est non officiel |
| Déclencheur | Installation ou lancement de Claude Desktop | URL de base personnalisée uniquement |
| Vocabulaire | « spyware » / « backdoor » | « stéganographie » / canal dissimulé |
| Réponse Anthropic | Pas de déclaration formelle rapportée | Code reconnu ; retiré en 2.1.197 |
Si votre équipe n'utilise que l'API officielle sans Claude Desktop, l'incident A peut être hors périmètre — mais l'incident B concernait quiconque routait via un relay documenté dans notre guide tokens outils IA gratuits.
03 · Comment l'empreinte fonctionnerait
L'élégance — et l'inquiétude — du mécanisme réside dans son invisibilité. Les prompts système sont longs, standardisés, rarement passés en revue. La ligne Today's date is YYYY-MM-DD paraît anodine. Selon les rapports, Claude Code l'aurait traitée comme un champ de bits.
D'abord, une porte sur ANTHROPIC_BASE_URL. Ensuite, un matching contre environ 147 motifs de domaine obfusqués (base64 puis XOR avec la constante 91). Enfin, encodage du résultat dans l'apostrophe de Today's, avec bascule optionnelle du séparateur de date (tiret → slash) pour les fuseaux Asia/Shanghai et Asia/Urumqi.
04 · Tableau de correspondance Unicode
| Condition détectée | Format date | Apostrophe dans « Today's » | Unicode |
|---|---|---|---|
| Par défaut (aucune correspondance) | 2026-06-30 | Apostrophe ASCII standard | U+0027 |
| Domaine reseller lié à la Chine | 2026-06-30 | Guillemet apostrophe droit | U+2019 |
| Mot-clé lab IA | 2026-06-30 | Apostrophe modificative | U+02BC |
| Domaine et lab | 2026-06-30 | Prime modificative | U+02B9 |
| Ci-dessus + fuseau Chine | 2026/06/30 | Apostrophe selon ligne ci-dessus | — |
05 · base64, XOR(91) et 147 règles
Les listes de classification n'étaient pas en clair dans le binaire : décodage base64, puis XOR octet par octet avec 91. Suffisant pour échapper à un grep superficiel, trivial pour un reverse-engineer motivé. L'obfuscation n'est pas le consentement.
06 · Chronologie et correctif 2.1.197
Comportement vérifié dans 2.1.193, 2.1.195 et 2.1.196. Le 1er juillet 2026, 2.1.197 retire la logique — changelog discret, confiance entamée. Épinglez la version minimale dans vos runbooks Mac d'entreprise.
07 · Débat HN 350+ points
Le fil Hacker News a dépassé 350 points et 100 commentaires. Un camp défend la lutte anti-distillation ; l'autre refuse les canaux dissimulés dans les outils développeur. La pression économique est réelle — voir notre analyse OpenRouter juin 2026 — mais la méthode reste contestable. Contexte export : interdiction Fable 5. Comparaison outils : Cursor vs Claude vs Copilot.
08 · Six mesures de protection
- Auditer
ANTHROPIC_BASE_URLdans settings, shell et CI. - Mettre à jour vers 2.1.197+ —
claude --version. - Chercher les manifestes Native Messaging (incident A) dans tous les profils navigateur.
- Journaliser fuseau et locale —
systemsetup -gettimezone. - Segmenter les secrets de production — comptes macOS ou matériel dédié.
- Exiger la transparence en procurement — clauses sur mutation de prompt ; guide IPO Anthropic.
09 · FAQ (8 questions)
Claude Code est-il un logiciel espion ?
Pas au sens classique ; un canal dissimulé non divulgué a été rapporté. Retiré en 2.1.197.
Claude Code suit-il mon fuseau horaire ?
Asia/Shanghai et Asia/Urumqi uniquement avec ANTHROPIC_BASE_URL non standard.
Qu'est-ce que l'astuce Unicode ?
U+0027, U+2019, U+02BC, U+02B9 encodent l'état de détection dans Today's.
Pourquoi Anthropic a-t-il ajouté cela ?
Probablement anti-distillation et anti-revente API — intention défendable, implémentation contestée.
Même histoire que Claude Desktop ?
Non. A = avril, Native Messaging ; B = juin, stéganographie de prompt.
Utilisateurs web concernés ?
Non pour l'API officielle ; oui pour Claude Code avec proxy.
Supprimer les fichiers injectés ?
Effacer com.anthropic.claude_browser_extension.json ; redémarrage peut recréer.
Code retiré ?
Oui, 2.1.197 du 1er juillet 2026. Versions 2.1.193–2.1.196 concernées.
10 · Playbook Mac en cinq étapes
- Inventorier tous les points d'entrée Claude (CLI, Desktop, CI).
- Provisionner un Mac Apple Silicon propre — FAQ location journalière.
- Reproduire les signaux — capture octets du prompt, comparer 2.1.196 vs 2.1.197.
- Scanner l'incident A — automatiser find sur NativeMessagingHosts.
- Rédiger la note de décision — versions épinglées, URLs autorisées ; contexte life sciences si données réglementées.
11 · Louer un Mac pour valider en sécurité
Les allégations de reverse-engineering ne se traitent pas sur le portable du dirigeant. Un nœud Apple Silicon isolé permet de tester ANTHROPIC_BASE_URL, différ les prompts et purger les manifestes sans contaminer le Keychain de production. La location journalière d'un Mac mini M4 coûte moins qu'une réponse à incident. Tarifs : guide tarifs M4 et bare-metal.
Dernière mise à jour : 3 juillet 2026.