Claude Code stéganographie : l'empreinte Unicode secrète d'Anthropic (2026)
Fin juin 2026, un reverse engineering de Claude Code (pas l'app web) a révélé : lorsque ANTHROPIC_BASE_URL pointe vers un proxy (≠ api.anthropic.com), la ligne Today's date is... du prompt système est réécrite par stéganographie textuelle — séparateur de date et apostrophe Unicode encodent le fuseau Chine et les correspondances proxy. Anthropic a retiré le code en 2.1.197. Cet article distingue l'événement A (Native Messaging Desktop) de l'événement B, fournit le tableau Unicode, explique base64+XOR(91), le débat HN et un runbook en 5 étapes.
Sommaire
I. Points de friction : trois risques de confiance pour les développeurs
- Deux événements confondus : les médias mélangent Claude Desktop (avril, Native Messaging) et Claude Code (juin, stéganographie de prompt) — cela nuit à l'E-E-A-T et mène à de mauvaises mesures de protection.
- Classification invisible : selon le rapport de reverse engineering, U+2019/U+02BC/U+02B9 dans
Today'sencodent domaines Chine, mots-clés labo IA et fuseauAsia/Shanghai— sans consentement ni divulgation. - Aveuglement en production : qui configure
ANTHROPIC_BASE_URLvers OpenRouter, SiliconFlow ou des gateways internes déclenche l'événement B ; une API cloud sur VPS Linux sans audit crée des risques de conformité.
II. Événement A vs B — deux incidents distincts
| Dimension | Événement A : Native Messaging | Événement B : stéganographie de prompt |
|---|---|---|
| Produit | Claude Desktop (macOS) | Claude Code (CLI) |
| Source | Alexander Hanff (*The Register*, avril 2026) | Reverse sur thereallo.dev (30 juin 2026) |
| Comportement | Écrit silencieusement com.anthropic.claude_browser_extension.json dans Chrome/Edge/Brave/Arc/Vivaldi/Opera — 3 IDs d'extension appellent chrome-native-host hors sandbox ; le fichier revient après suppression | Si proxy : stéganographie dans Today's date is... |
| Déclencheur | Installation/démarrage de Claude Desktop | Uniquement si ANTHROPIC_BASE_URL ≠ api.anthropic.com |
| Étiquette | Spyware / backdoor (allégué) | Prompt steganography / covert channel |
| Anthropic | Pas de réponse formelle ; interrupteur d'autorisation ajouté plus tard | Code admis, retiré en 2.1.197, changelog silencieux |
Selon les rapports, le conseiller indépendant Noah Kenney (Digital 520) a confirmé les affirmations techniques de Hanff pour l'événement A. Antiy Labs a publié une analyse de risque sur le canal navigateur.
III. Fonctionnement de la stéganographie
Prérequis : selon le reverse engineering, l'événement B ne se déclenche que si ANTHROPIC_BASE_URL pointe vers un proxy, gateway ou couche compatible OpenAI — pas vers api.anthropic.com.
Deux modifications dans la ligne de date innocente :
- Séparateur de date : avec fuseau
Asia/ShanghaiouAsia/Urumqi,2026-06-30devient2026/06/30. - Apostrophe : le caractère dans
Today'sest remplacé par des variantes Unicode visuellement identiques.
Les listes de domaines et mots-clés sont obfusquées par base64 + XOR(91) — environ 147 règles de domaine, mots-clés dont deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai.
IV. Tableau de mapping Unicode
| Condition détectée | Format date | Apostrophe | Unicode |
|---|---|---|---|
| Par défaut (aucune correspondance) | 2026-06-30 | ' ASCII | U+0027 |
| Domaine org/revendeur lié Chine | 2026-06-30 | ' right single quote | U+2019 |
| Mot-clé labo IA | 2026-06-30 | ʼ modifier letter apostrophe | U+02BC |
| Domaine + labo simultanément | 2026-06-30 | ʹ modifier letter prime | U+02B9 |
| + fuseau Chine | 2026/06/30 | (comme ci-dessus) | — |
En clair : le prompt paraît normal — le backend lit un apostrophe et un séparateur pour savoir si l'utilisateur est derrière un VPN mais en fuseau Chine, probablement lié à un labo IA. Un canal covert classique.
V. Motif : anti-distillation — objectif vs méthode
Consensus communautaire (formulé prudemment) : objectif anti-distillation et détection de revente non autorisée. Anthropic, OpenAI et Google ont tous alerté sur la distillation de modèles ; proxies et labos liés à la Chine sont des suspects prioritaires selon le débat.
Sur Hacker News, le fil a atteint selon les rapports 350+ points et 100+ commentaires, divisés entre « défense anti-distillation légitime » et « comportement proche du malware pour un outil dev ».
Selon les rapports, Anthropic a admis le code et l'a retiré le 1er juillet 2026 en version 2.1.197 — sans mention dans le changelog.
VI. Débat spyware — formulation plus précise
- Événement A : plus proche d'une altération non autorisée de logiciels tiers + surface d'attaque pré-positionnée hors sandbox. Chiffres Anthropic : injection de prompt Claude for Chrome 23,6 % (non mitigé) / 11,2 % (mitigé).
- Événement B : plus proche de télémétrie non divulguée / classification covert des utilisateurs.
Problème central dans les deux cas : pas de consentement éclairé, délibérément caché.
VII. Données techniques (citables)
- Obfuscation : listes de domaines base64 + clé XOR 91, environ 147 règles.
- Versions : code vérifié en 2.1.193 / 2.1.195 / 2.1.196 ; retiré en 2.1.197.
- HN : 350+ points, 100+ commentaires ; Reddit → HN comme amplificateur.
- Fuseaux :
Asia/Shanghai,Asia/Urumqi→ séparateur/.
VIII. Runbook en 5 étapes : vérifier et se protéger
- Vérifier ANTHROPIC_BASE_URL : seuls les utilisateurs proxy déclenchent l'événement B. Utiliser l'endpoint officiel ou documenter explicitement.
- Claude Code ≥ 2.1.197 : forcer la mise à jour ; vérifier la version en CLI, pas seulement le changelog.
- Inspecter le prompt système : apostrophe dans
Today'ssur U+0027/U+2019/U+02BC/U+02B9 (inspecteur Unicode ou hex). - Événement A — Native Messaging : chercher
com.anthropic.claude_browser_extension.jsonsous~/Library/Application Support/<navigateur>/NativeMessagingHosts/; Claude Desktop peut le recréer. - Entreprise : traiter les agents desktop comme programmes à haut privilège — moindre privilège, autorisation explicite, logs auditables sur hôtes dédiés.
IX. Confiance envers les éditeurs IA
La leçon n'est pas « un apostrophe », mais : quand la capacité des modèles dépasse les frontières de sécurité et d'audit, les éditeurs franchissent les limites de confiance au nom de l'UX ou de la prévention des abus. Une API cloud sur VPS Linux générique expose aux variations de prix, manipulations de prompt indétectables et absence d'isolation Apple. Les gateways self-hosted sur VPS GPU ajoutent le débogage CUDA et des comportements éditeur non documentés.
Pour une production Claude Code / Agent auditable avec Xcode, Cursor et exploitation launchd 7×24, un hôte Mac cloud VPSMAC M4 dédié est souvent plus stable : stack macOS natif, clés API isolées, logs JSONL — pour que le routage proxy et l'audit des prompts restent reproductibles, au lieu de disparaître dans des bits Unicode invisibles.
X. FAQ
Claude Code est-il un spyware ?
Pas au sens classique, mais selon le reverse engineering il embarquait une empreinte non divulguée — retirée en 2.1.197. Plus précisément : canal covert, pas trojan de vol de données.
Claude Code suit-il mon fuseau horaire ?
Selon le rapport, uniquement avec base URL proxy ; vérifie Asia/Shanghai et Asia/Urumqi pour le séparateur de date.
Qu'est-ce que l'astuce de l'apostrophe ?
U+0027, U+2019, U+02BC, U+02B9 encodent les correspondances domaine/labo — voir le tableau ci-dessus.
Pourquoi Anthropic a-t-il fait cela ?
Très probablement anti-distillation et anti-revente — objectif légitime, mise en œuvre illégitimement cachée.
Est-ce la même histoire que le spyware Claude Desktop ?
Non — événement A (avril, Hanff) vs événement B (juin, thereallo.dev).
Quelles versions étaient concernées ?
2.1.193–2.1.196 selon le reverse engineering ; correctif en 2.1.197 sans note de changelog.
XI. Sources
- The Register — Claude Desktop modifie les permissions logicielles sans consentement (avril 2026)
- Malwarebytes, gHacks, YOOTA — Claude Desktop Native Messaging
- thereallo.dev — reverse engineering original de la stéganographie de prompt
- Tech Startups, TMC Insight, Developers Digest, TechTimes — événement B, fix 2.1.197
- Antiy Labs — analyse de risque canal navigateur
- Hacker News — débat anti-distillation vs éthique outil dev