2026 Claude Code stéganographie : comment Anthropic vous marque avec une apostrophe
Fin juin 2026, le rapport de reverse engineering publié sur thereallo.dev révèle que Claude Code — et non l'interface web Claude — modifie, lorsque ANTHROPIC_BASE_URL pointe vers un proxy non officiel, la ligne Today's date is... du prompt système par stéganographie textuelle : séparateur de date et apostrophe Unicode visuellement identiques encodent des signaux de fuseau horaire et de classification proxy, renvoyés au serveur. Anthropic a retiré le code en 2.1.197 (1er juillet 2026, sans mention au changelog). L'hypothèse dominante : anti-distillation et anti-revente — la controverse porte sur l'obfuscation et l'absence de transparence, souvent confondue avec l'injection silencieuse de Claude Desktop d'avril. Ce guide distingue rigoureusement les événements A et B.
1. Trois enjeux : pourquoi auditer la chaîne Claude dès maintenant
- Frontière de confiance franchie en silence : Selon The Register et Alexander Hanff, Claude Desktop écrit sans consentement des manifestes Native Messaging dans Chrome, Edge, Brave, Arc, Vivaldi, Opera et Chromium ; Noah Kenney (Digital 520) a confirmé la reproductibilité ; Antiy Labs a publié une analyse de risque dédiée.
- Signal de classification dissimulé à chaque requête : Les versions 2.1.193, 2.1.195 et 2.1.196 de Claude Code contiennent la même logique ; liste d'environ 147 règles, obfusquée par base64 + XOR(91) ; mots-clés incluant deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai.
- Divulgation postérieure à la découverte communautaire : Anthropic a reconnu le code et publié 2.1.197 le 1er juillet sans changelog ; le fil HN a atteint 350+ points et 100+ commentaires, scindant la communauté entre « défense anti-distillation légitime » et « comportement quasi malveillant pour un outil développeur ».
2. Deux événements distincts : tableau A vs B
Les lecteurs techniques (HN, Reddit, communauté sécurité) exigent une précision factuelle. Le tableau ci-dessous sépare deux incidents indépendants mais liés — les confondre nuit à la crédibilité E-E-A-T.
| Dimension | Événement A : injection navigateur silencieuse | Événement B : stéganographie du prompt système |
|---|---|---|
| Produit | Claude Desktop (client macOS) | Claude Code (outil CLI de codage) |
| Source | Alexander Hanff (conseiller vie privée, The Register) | Reverse engineering binaire, thereallo.dev ; Reddit → HN |
| Date | Avril 2026 (vers le 18) | 30 juin 2026 |
| Comportement central | Écrit com.anthropic.claude_browser_extension.json dans NativeMessagingHosts ; pré-autorise 3 ID d'extension pour chrome-native-host hors sandbox ; crée les répertoires même sans extension installée ; suppression annulée au redémarrage |
Si ANTHROPIC_BASE_URL ≠ api.anthropic.com, modifie la ligne Today's date is... par stéganographie |
| Qualificatif | spyware / backdoor | prompt steganography / covert channel |
| Condition de déclenchement | Installation ou lancement de Claude Desktop | Uniquement avec Base URL non officielle (proxy) ; pas systématique à chaque conversation |
| Réponse Anthropic | Pas de réponse publique formelle ; interrupteur d'autorisation ajouté ultérieurement, modèle de permissions inchangé | Code reconnu, retrait en 2.1.197 le 1/7, changelog muet |
3. Chronologie et numéros de version
| Date | Jalon |
|---|---|
| 2026-04 | Alexander Hanff dans The Register : injection Native Messaging Claude Desktop ; Malwarebytes, gHacks, YOOTA reprennent |
| 2026-06-30 | thereallo.dev publie le rapport de stéganographie ; fil HN en une de page |
| 2.1.193–2.1.196 | Les reverse engineers confirment la logique dans les trois versions |
| 2026-07-01 | Anthropic publie Claude Code 2.1.197, retire le code (changelog sans mention) |
4. Mécanisme : table Unicode et explication claire
Prérequis selon le rapport : ANTHROPIC_BASE_URL pointe vers une adresse non officielle (proxy, passerelle, revendeur tiers, couche compatible OpenAI). Le point de terminaison officiel api.anthropic.com n'est pas modifié.
Après déclenchement, deux opérations dans la ligne anodine Today's date is ... :
- Séparateur de date : si le fuseau système est
Asia/ShanghaiouAsia/Urumqi,2026-06-30devient2026/06/30. - Substitution d'apostrophe : le caractère dans
Today'sest remplacé par des variantes Unicode visuellement identiques :
| Situation détectée | Format date | Apostrophe | Unicode |
|---|---|---|---|
| Par défaut (aucune correspondance) | 2026-06-30 | ' apostrophe ASCII | U+0027 |
| Domaine institution/revendeur chinois | 2026-06-30 | ' guillemet apostrophe droit | U+2019 |
| Mot-clé laboratoire IA chinois | 2026-06-30 | ʼ apostrophe modificatrice | U+02BC |
| Domaine et laboratoire | 2026-06-30 | ʹ prime modificatrice | U+02B9 |
| Avec fuseau Chine | 2026/06/30 | (règles apostrophe ci-dessus) | — |
En substance : la requête paraît être un prompt anglais ordinaire, mais le backend lit le séparateur et le codepoint de l'apostrophe pour classifier l'utilisateur — un canal dissimulé (covert channel) classique. Liste domaines/mots-clés : base64 + XOR(91), environ 147 règles.
5. Motivation d'Anthropic : anti-distillation et débat HN
Le consensus communautaire, formulé avec prudence : objectif anti-distillation et anti-revente non autorisée. Anthropic, OpenAI et Google ont exprimé à plusieurs reprises des craintes sur l'extraction massive via API pour entraîner des modèles compacts. Proxies, revendeurs et laboratoires liés à la Chine étaient suspectés — d'où la logique de marquage.
Objectif compréhensible, moyens contestables : dissimuler des signaux de classification, obfusquer le code et les intégrer à chaque requête franchit une ligne rouge pour un outil fondé sur la confiance des développeurs. Sur HN, deux camps :
- Défenseurs : « Défense anti-distillation légitime ; la contrainte technique de l'abus API est nécessaire. »
- Critiques : « Quasi malveillant pour un outil dev — non déclaré, non désactivable, caché dans la ponctuation. »
Interprétation dominante : Anthropic visait la revente non autorisée et la distillation, non la surveillance individuelle ; la controverse porte sur les moyens (dissimulation, obfuscation, absence de divulgation). Formulations « selon le rapport » / « présumé » pour les intentions.
6. Logiciel espion ou non : qualification précise
« Spyware » est un label chargé. Formulation plus exacte :
- Événement A : « Modification non autorisée de logiciels tiers + surface d'attaque préparée » — même sans exploitation active, un canal à privilèges élevés hors sandbox navigateur est préinstallé. Anthropic a cité pour Claude for Chrome des taux de succès d'injection de prompt sans atténuation à 23,6 %, avec atténuation 11,2 %.
- Événement B : « Télémétrie dissimulée non déclarée / classification utilisateur » — pas un malware classique de type keylogger, mais un covert channel textbook.
Quel que soit le terme, la question centrale demeure : sans consentement éclairé et avec dissimulation délibérée.
7. Matrice décisionnelle : risques et scénarios
| Scénario utilisateur | Risque événement A | Risque événement B | Action recommandée |
|---|---|---|---|
| api.anthropic.com uniquement | Moyen (Desktop peut injecter) | Aucun | Auditer Native Messaging Desktop ; mettre Code à jour normalement |
| Proxy ou passerelle tierce | Moyen | Élevé (≤ 2.1.196) | Passer immédiatement à 2.1.197+ ; évaluer conformité proxy |
| Fuseau Chine + proxy | Moyen | Élevé (double signal date + apostrophe) | Supposer classification historique ; migrer vers environnement auditable |
| CI/CD entreprise avec Claude Code | Élevé | Élevé | Nœud isolé, moindre privilège, interdire agent Desktop sur runner CI |
8. Checklist de protection en cinq étapes
- Vérifier ANTHROPIC_BASE_URL : exécuter
echo $ANTHROPIC_BASE_URL. Vide ouapi.anthropic.com→ événement B non déclenché ; proxy → groupe à haut risque. - Mettre Claude Code à 2.1.197+ : Anthropic a retiré la stéganographie le 1er juillet 2026. Confirmer avec
claude --version. - Scanner les manifestes Native Messaging (événement A) :
Chemins courants :find ~/Library/Application\ Support -name "com.anthropic.claude_browser_extension.json" 2>/dev/null~/Library/Application Support/Google/Chrome/NativeMessagingHosts/et variantes Chromium. Claude Desktop peut recréer le fichier après suppression. - Fuseau horaire et domaine proxy :
systemsetup -gettimezone(macOS) ; vérifier Asia/Shanghai ou Asia/Urumqi ; confronter le domaine proxy aux 147 règles du rapport. - Isolation environnement sensible : séparer Claude Code des secrets de build et dépôts production ; interdire l'agent Desktop sur le runner CI ; exiger consentement explicite et journaux auditables.
9. Dépassements des éditeurs d'IA : comment réagir
L'avertissement ne réside pas dans une apostrophe, mais dans le décalage entre capacités des modèles et frontières de sécurité, consentement et audit — les éditeurs franchissent des limites au nom de l'« expérience » ou de la « lutte contre les abus ». L'histoire des PC et smartphones se répète avec les agents IA de bureau.
Réponses concrètes pour les praticiens :
- Méfiance par défaut, preuves d'abord : reproductible, auditable, désactivable — alors seulement confiance.
- Transparence plutôt que dissimulation : l'anti-distillation peut être déclarée avec interrupteur, non dissimulée dans la ponctuation.
- Moindre privilège et isolation : traiter tout agent Desktop comme programme à privilèges élevés.
- Vote par les pieds et cadre réglementaire : RGPD et choix de marché comme leviers contre la technologie sans limites.
La technologie peut être neutre ; l'entreprise ne l'est pas. Plus la capacité est grande, plus l'autocontrainte est exigée — ce ne devrait pas être un secret découvert par reverse engineering binaire.
10. Questions fréquentes
Q : Claude Code est-il un logiciel espion ?
Pas au sens classique, mais selon le rapport, empreintes non déclarées et obfusquées dans le prompt système ; retirées en 2.1.197. Plus exact : canal dissimulé non déclaré.
Q : Claude Code détecte-t-il le fuseau horaire ?
Selon le rapport, uniquement avec ANTHROPIC_BASE_URL non officielle : Asia/Shanghai ou Asia/Urumqi, séparateur - → /.
Q : Quel est le truc Unicode de l'apostrophe ?
U+0027, U+2019, U+02BC, U+02B9 encodent domaine, mot-clé laboratoire, les deux ou défaut.
Q : Pourquoi Anthropic a-t-il ajouté cela ?
Consensus : distillation et revente API non autorisée — objectif légitime, mise en œuvre dissimulée inacceptable.
Q : Même chose que le spyware Claude Desktop ?
Non. Injection Desktop = événement A (avril) ; stéganographie Code = événement B (30 juin).
Q : Les utilisateurs web Claude sont-ils touchés ?
Événement B : Claude Code + Base URL non officielle uniquement.
Q : Supprimer l'injection Desktop ?
Retirer com.anthropic.claude_browser_extension.json dans NativeMessagingHosts ; redémarrage peut recréer.
Q : Faut-il encore faire confiance à Anthropic ?
Selon tolérance au risque et exigences de conformité ; décider sur preuves reproductibles, non sur la marque ; entreprise : audit indépendant.
11. Sources et note de conformité
- The Register : Claude Desktop changes software permissions without consent (2026-04)
- Malwarebytes / gHacks / YOOTA : Native Messaging Claude Desktop
- thereallo.dev : Claude Code prompt steganography (reverse engineering original)
- Tech Startups / TMC Insight / Developers Digest / TechTimes : événement B et correctif 2.1.197
- Antiy Labs : analyse risque canal navigateur à privilèges élevés
- Hacker News (350+ points, fin juin 2026)
Article fondé sur sources publiques et rapport de reverse engineering ; motivation (anti-distillation) et moyens (stéganographie) évalués séparément ; intentions Anthropic qualifiées de « selon la communauté / selon le rapport » ; ne constitue pas un avis juridique. Dernière mise à jour : 2026-07-03.
12. Mac distant et pont décisionnel SFTPMAC
Les enjeux Claude Code et Claude Desktop se résument ainsi : où s'exécute l'agent à privilèges élevés, et quelles données partage-t-il ? Sur un portable ou une machine mêlant CI, secrets de build, clés SSH et dépôts production coexistent sous le même utilisateur — surface de risque incontrôlable face à l'injection Native Messaging ou à la classification dissimulée.
Approche plus sûre : isoler Claude Code et les workflows agent sur un nœud macOS dédié, toujours disponible, séparé physiquement du navigateur, du client Desktop et de l'environnement quotidien ; synchroniser l'espace de travail par SFTP/rsync pour conserver rollback et audit. Aligné avec comparatif assistants code IA et Claude Fable 5 et contrôle des exportations.
Si vous évaluez les frontières de confiance de la chaîne Claude : découpler l'agent des actifs sensibles sur un nœud Apple Silicon distant, isolé et auditable. SFTPMAC location Mac distant propose des environnements 7×24 pour Claude Code / OpenClaw : launchd natif, isolation SSH/SFTP, synchronisation CI/CD — plus adapté qu'un « Mac domestique agent + navigateur quotidien » pour les équipes exigeant moindre privilège et traçabilité.