Security Crise de confiance IA 2026.07.03

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.

Chronologie et points clés
Date Événement Source
2026-04 (env. 18/4)Événement A : Claude Desktop écrit silencieusement le manifeste Native Messaging navigateurAlexander Hanff (The Register)
2026-06-30Événement B : stéganographie prompt système Claude Code exposée par reverse engineeringthereallo.dev → Reddit → Hacker News
2026-07-01Anthropic publie Claude Code 2.1.197, retire la stéganographie (changelog muet)Tech Startups / Developers Digest etc.
Discussion HNFront page en heures, 350+ points, 100+ commentaires, communauté diviséeHacker News
  • Événement A : après installation Claude Desktop (macOS), écriture non annoncée de com.anthropic.claude_browser_extension.json dans Chrome/Edge/Brave/Arc/Vivaldi/Opera/Chromium ; 3 IDs d'extension autorisés à appeler chrome-native-host hors 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

Événement A (injection navigateur silencieuse) vs événement B (stéganographie prompt système)
Dimension Événement A : injection navigateur silencieuse Événement B : stéganographie prompt système
ProduitClaude Desktop (client macOS)Claude Code (outil CLI coding)
Lanceur d'alerteAlexander Hanff (conseiller privacy)Développeur, reverse engineering binaire, thereallo.dev
Étiquettes"spyware" / "backdoor""prompt steganography" / "covert channel"
DéclencheurInstallation/démarrage Claude DesktopBase URL non officielle (proxy/passerelle) uniquement
Réponse AnthropicPas 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 ... :

  1. Séparateur de date : si fuseau Asia/Shanghai ou Asia/Urumqi, 2026-06-30 devient 2026/06/30.
  2. Apostrophe : remplacement dans Today's par un caractère visuellement identique mais Unicode différent.
Mapping apostrophe Unicode et format date (reverse engineering thereallo.dev)
Situation détectée Format date Caractère apostrophe Unicode
Par défaut (aucune correspondance)2026-06-30' apostrophe ASCII standardU+0027
Domaine institution/revendeur China2026-06-30' guillemet simple droitU+2019
Mot-clé lab IA China2026-06-30ʼ apostrophe modificativeU+02BC
Domaine + lab2026-06-30ʹ prime modificativeU+02B9
Plus fuseau China2026/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).

check-apostrophe.sh
# 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

  1. Vérifier ANTHROPIC_BASE_URL : echo $ANTHROPIC_BASE_URL — vide ou api.anthropic.com : pas d'événement B. Utilisateurs proxy/passerelle : contrôle prioritaire.
  2. Mettre à jour Claude Code 2.1.197+ : Anthropic a retiré la stéganographie le 2026-07-01. claude --version.
  3. Examiner le fuseau système : date +%Z, readlink /etc/localtime (Linux) ou Réglages système (macOS) pour Asia/Shanghai / Asia/Urumqi.
  4. Capturer et analyser le prompt système : sous proxy, capture réseau ou mode debug ; codepoint apostrophe Today's ≠ U+0027 ?
  5. Native Messaging Claude Desktop (événement A) : dans ~/Library/Application Support/<navigateur>/NativeMessagingHosts/, chercher com.anthropic.claude_browser_extension.json et supprimer — redémarrage Claude Desktop peut recréer.
  6. 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.com uniquement.
  • 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.