Sécurité IA 2026-07-03

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.

Prompt système Claude Code montrant l'apostrophe Unicode U+2019 alléguée pour les utilisateurs proxy

⚠️ 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
ProduitClaude Desktop (client macOS)Claude Code (CLI)
RévélateurAlexander Hanff (consultant vie privée)Développeur anonyme, thereallo.dev
ChronologieAvril 202630 juin 2026
ComportementÉcrit com.anthropic.claude_browser_extension.json dans NativeMessagingHosts de plusieurs navigateursRéécrit le prompt système via apostrophes Unicode quand ANTHROPIC_BASE_URL est non officiel
DéclencheurInstallation ou lancement de Claude DesktopURL de base personnalisée uniquement
Vocabulaire« spyware » / « backdoor »« stéganographie » / canal dissimulé
Réponse AnthropicPas de déclaration formelle rapportéeCode 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-30Apostrophe ASCII standardU+0027
Domaine reseller lié à la Chine2026-06-30Guillemet apostrophe droitU+2019
Mot-clé lab IA2026-06-30Apostrophe modificativeU+02BC
Domaine et lab2026-06-30Prime modificativeU+02B9
Ci-dessus + fuseau Chine2026/06/30Apostrophe 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

  1. Auditer ANTHROPIC_BASE_URL dans settings, shell et CI.
  2. Mettre à jour vers 2.1.197+claude --version.
  3. Chercher les manifestes Native Messaging (incident A) dans tous les profils navigateur.
  4. Journaliser fuseau et localesystemsetup -gettimezone.
  5. Segmenter les secrets de production — comptes macOS ou matériel dédié.
  6. 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

  1. Inventorier tous les points d'entrée Claude (CLI, Desktop, CI).
  2. Provisionner un Mac Apple Silicon propreFAQ location journalière.
  3. Reproduire les signaux — capture octets du prompt, comparer 2.1.196 vs 2.1.197.
  4. Scanner l'incident A — automatiser find sur NativeMessagingHosts.
  5. 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.