Stéganographie Claude Code : comment Anthropic marquait les utilisateurs avec une apostrophe
En bref : fin juin 2026, un rapport de reverse engineering indique que Claude Code (pas la version web) utilise la stéganographie textuelle dans la ligne Today's date is... lorsque ANTHROPIC_BASE_URL pointe vers un proxy non officiel — en alternant séparateur de date et apostrophe Unicode quasi indiscernable, des bits d'information (« fuseau China », « domaine/lab IA China ») sont renvoyés discrètement au serveur. Anthropic a retiré le code en 2.1.197 ; probablement de l'anti-distillation/revente, mais la méthode était dissimulée et obfusquée.
Pour développeurs Claude Code, ingénieurs sécurité et décideurs IT : ① deux événements indépendants (injection Desktop avril, stéganographie Code juin), ② table Unicode et conditions de déclenchement, ③ six étapes d'auto-vérification, débat HN et posture face aux dépassements des éditeurs IA. Formulation « selon les fuites/reverse engineering/allégé » ; objectif et moyens évalués séparément.
01 Stéganographie Claude et injection navigateur 2026 : que s'est-il passé ?
Cette controverse repose sur deux événements indépendants. Les distinguer avant publication — sinon HN / Reddit / la communauté sécurité repèreront la confusion immédiatement, nuisant à l'E-E-A-T.
| Date | Événement | Source |
|---|---|---|
| 2026-04 (env. 18/4) | Événement A : Claude Desktop écrit silencieusement le manifeste Native Messaging navigateur | Alexander Hanff (The Register) |
| 2026-06-30 | Événement B : stéganographie prompt système Claude Code exposée par reverse engineering | thereallo.dev → Reddit → Hacker News |
| 2026-07-01 | Anthropic publie Claude Code 2.1.197, retire la stéganographie (changelog muet) | Tech Startups / Developers Digest etc. |
| Discussion HN | Front page en heures, 350+ points, 100+ commentaires, communauté divisée | Hacker News |
- Événement A : après installation Claude Desktop (macOS), écriture non annoncée de
com.anthropic.claude_browser_extension.jsondans Chrome/Edge/Brave/Arc/Vivaldi/Opera/Chromium ; 3 IDs d'extension autorisés à appelerchrome-native-hosthors sandbox. Répertoire créé même sans navigateur installé ; suppression puis redémarrage = retour. - Événement B : uniquement si
ANTHROPIC_BASE_URL ≠ api.anthropic.com, empreinte cachée dans la ligne date — pas déclenché à chaque conversation. - Le conseiller indépendant Noah Kenney (Digital 520) a confirmé la reproductibilité des allégations techniques de Hanff sur l'événement A. Antiy Labs a publié une analyse des risques du canal navigateur à privilèges élevés de Claude Desktop.
02 Injection Claude Desktop vs stéganographie Claude Code
| Dimension | Événement A : injection navigateur silencieuse | Événement B : stéganographie prompt système |
|---|---|---|
| Produit | Claude Desktop (client macOS) | Claude Code (outil CLI coding) |
| Lanceur d'alerte | Alexander Hanff (conseiller privacy) | Développeur, reverse engineering binaire, thereallo.dev |
| Étiquettes | "spyware" / "backdoor" | "prompt steganography" / "covert channel" |
| Déclencheur | Installation/démarrage Claude Desktop | Base URL non officielle (proxy/passerelle) uniquement |
| Réponse Anthropic | Pas de réponse officielle ; opt-in ultérieur, modèle de permissions inchangé | Code admis, retrait 2.1.197 le 1/7, changelog sans mention |
Interprétation dominante : Anthropic visait la détection de revente non autorisée et distillation (distillation), pas la surveillance individuelle. Le débat porte sur les moyens (dissimulation, obfuscation, non-divulgation), pas l'objectif.
03 Fonctionnement de la stéganographie Claude Code : table apostrophe Unicode
Prérequis : uniquement si ANTHROPIC_BASE_URL pointe vers une adresse non officielle (proxy, passerelle, revente tierce, couche compatible OpenAI). L'endpoint api.anthropic.com officiel n'est pas modifié. Les reverse engineers ont confirmé la logique sur 2.1.193 / 2.1.195 / 2.1.196.
Après déclenchement, deux actions dans l'inoffensive ligne Today's date is ... :
- Séparateur de date : si fuseau
Asia/ShanghaiouAsia/Urumqi,2026-06-30devient2026/06/30. - Apostrophe : remplacement dans
Today'spar un caractère visuellement identique mais Unicode différent.
| Situation détectée | Format date | Caractère apostrophe | Unicode |
|---|---|---|---|
| Par défaut (aucune correspondance) | 2026-06-30 | ' apostrophe ASCII standard | U+0027 |
| Domaine institution/revendeur China | 2026-06-30 | ' guillemet simple droit | U+2019 |
| Mot-clé lab IA China | 2026-06-30 | ʼ apostrophe modificative | U+02BC |
| Domaine + lab | 2026-06-30 | ʹ prime modificative | U+02B9 |
| Plus fuseau China | 2026/06/30 | (mêmes règles) | — |
Listes domaines et mots-clés : base64 + XOR(91), env. 147 règles domaine ; mots-clés dont deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai.
En clair : la requête semble un prompt anglais ordinaire, mais le backend lit séparateur et codepoint Unicode de l'apostrophe pour taguer « VPN étranger mais fuseau China, possible lab IA ». Typique canal dissimulé (covert channel) et stéganographie de prompt (prompt steganography).
# Vérifier le codepoint Unicode de l'apostrophe dans Today's du prompt système
python3 -c "
s = open('system_prompt.txt').read()
idx = s.find('Today')
if idx >= 0:
c = s[idx+5]
print(f'Char: {c!r} Codepoint: U+{ord(c):04X}')
"
# Endpoint officiel attendu : U+0027 ; proxy possible U+2019 / U+02BC / U+02B9
04 Pourquoi Anthropic a fait cela ? Claude Code est-il un spyware ?
Motivation : anti-distillation et anti-revente
Jugement majoritaire (mesuré) : objectif anti-distillation et anti-revente non autorisée. Anthropic, OpenAI et Google s'inquiètent publiquement des sorties massives API pour entraîner de petits modèles. Proxies, revendeurs et labs China étaient des cibles suspectées.
Objectif compréhensible, moyens problématiques : rendre les signaux de classification invisibles et obfusqués dans chaque requête franchit la ligne rouge pour un outil basé sur la confiance des développeurs. Sur HN : « défense anti-distillation légitime » vs « malware-adjacent behavior for a dev tool ».
« Spyware » est un label émotionnel. Plus précisément :
- Événement A : « altération non autorisée de logiciel tiers + surface d'attaque dormante préparée » — canal haut privilège hors sandbox navigateur préinstallé. Claude for Chrome : taux d'injection prompt sans mitigation 23,6 %, avec 11,2 % (Anthropic).
- Événement B : « télémétrie dissimulée non divulguée / classification utilisateur ».
Problème central identique : sans consentement éclairé et volontairement caché. Lié à contrôle export Claude Fable 5 et protocole MCP sur les frontières de confiance.
Deux camps HN
- Défense : anti-distillation defense raisonnable.
- Critique : malware-adjacent ; divulguer et proposer un interrupteur au lieu de cacher dans la ponctuation.
05 Auto-vérification stéganographie Claude Code : guide en six étapes
- Vérifier ANTHROPIC_BASE_URL :
echo $ANTHROPIC_BASE_URL— vide ouapi.anthropic.com: pas d'événement B. Utilisateurs proxy/passerelle : contrôle prioritaire. - Mettre à jour Claude Code 2.1.197+ : Anthropic a retiré la stéganographie le 2026-07-01.
claude --version. - Examiner le fuseau système :
date +%Z,readlink /etc/localtime(Linux) ou Réglages système (macOS) pourAsia/Shanghai/Asia/Urumqi. - Capturer et analyser le prompt système : sous proxy, capture réseau ou mode debug ; codepoint apostrophe
Today's≠ U+0027 ? - Native Messaging Claude Desktop (événement A) : dans
~/Library/Application Support/<navigateur>/NativeMessagingHosts/, cherchercom.anthropic.claude_browser_extension.jsonet supprimer — redémarrage Claude Desktop peut recréer. - Isolation minimal privilege entreprise : évaluer l'agent Desktop en production ; traiter tout agent IA desktop comme logiciel haut privilège : autorisation explicite, audit, isolation réseau. Inclure « transparence télémétrie » dans comparatif assistants coding IA.
06 Données techniques citables et paramètres clés
- Règles domaine : env. 147, base64 + XOR(91) dans le binaire Claude Code.
- Versions affectées : 2.1.193, 2.1.195, 2.1.196 ; retiré en 2.1.197 (2026-07-01).
- HN : 350+ points, 100+ commentaires, front page en heures.
- Injection prompt Claude for Chrome : 23,6 % sans mitigation, 11,2 % avec (Anthropic, contexte événement A).
- Déclencheur :
ANTHROPIC_BASE_URL ≠ api.anthropic.comuniquement. - Unicode : U+0027, U+2019, U+02BC, U+02B9.
Sources : The Register, Malwarebytes / gHacks / YOOTA, thereallo.dev, Tech Startups / TMC Insight / Developers Digest / TechTimes, Antiy Labs.
07 FAQ stéganographie Claude Code
Q : Claude Code est-il un spyware ?
R : Pas au sens classique, mais selon le reverse engineering il cachait des empreintes non divulguées pour classifier les utilisateurs China via proxy ; retiré en 2.1.197. Plus précisément : « canal dissimulé non déclaré ».
Q : Claude Code détecte-t-il mon fuseau ?
R : Uniquement avec ANTHROPIC_BASE_URL non officiel ; vérifie Asia/Shanghai / Asia/Urumqi et modifie le séparateur. Endpoint officiel inchangé.
Q : Apostrophe Unicode Today's date ?
R : Alternance U+0027, U+2019, U+02BC, U+02B9 selon domaine China, mot-clé lab, les deux ou aucun.
Q : Pourquoi Anthropic l'a ajouté ?
R : Interprétation majoritaire : distillation et revente API non autorisée — objectif légitime, implémentation cachée.
Q : Même affaire que spyware Claude Desktop ?
R : Non. Avril 2026 Native Messaging silencieux = événement A ; 30 juin 2026 stéganographie prompt = événement B.
Q : Utilisateurs Claude web concernés ?
R : Événement B uniquement Claude Code + Base URL non officielle.
Q : Supprimer fichiers navigateur injectés ?
R : ~/Library/Application Support/<navigateur>/NativeMessagingHosts/, supprimer com.anthropic.claude_browser_extension.json ; redémarrage peut recréer.
Q : Empreinte ANTHROPIC_BASE_URL ?
R : Proxy non officiel : Unicode différent dans la ligne date selon correspondance domaine/mots-clés.
Q : Encore inquiet ?
R : 2.1.197+ sans proxy non officiel : événement B corrigé. Événement A : opt-in mais fond persistant — vérifier.
Q : Continuer à faire confiance à Anthropic ?
R : Choix de valeur. Méfiance par défaut, preuves d'abord ; éditeurs doivent divulguer.
08 Dépassements des éditeurs IA et notre réponse : conclusion
L'avertissement n'est pas « une apostrophe », mais : capacités modèles en accélération, frontières sécurité, autorisation, audit en retard — les éditeurs franchissent unilatéralement les limites de confiance au nom « expérience/anti-abus ». L'histoire PC/smartphone se répète sur les agents IA desktop.
Réponses pratiques : ① méfiance par défaut, preuves — reproductible, auditable, désactivable ; ② exiger la divulgation — anti-distillation peut être transparent ; ③ minimal privilege + isolation ; ④ vote par les pieds + cadre réglementaire (RGPD). La technique n'a pas de position, les entreprises oui — plus de capacité implique plus d'autocontrainte ; pas un secret découvert par reverse engineering binaire.
Pour les équipes production avec Claude Code, passerelle OpenClaw ou MCP Server maison en environnement isolé, trois faiblesses du poste local pur : coupures SSH/API par connexion domestique instable, tâches agent suspendues à la fermeture du portable, audit des frontières de permissions difficile en environnement partagé. JEXCLOUD Mac bare-metal multi-région : Apple Silicon dédié, 7×24, scaling mensuel, livraison 120 s — Claude Code lourd dans le cloud Mac, interaction locale seule ; réseau et fuseau séparés pour conformité. Tarifs : page tarifs JEXCLOUD.