Claude Code est-il un logiciel espion ?
Le fingerprint Unicode dissimulé d'Anthropic

Si vous utilisez Claude Code ou Claude Desktop, la stéganographie de prompt révélée en juin 2026 et l'injection silencieuse de navigateur d'avril sont deux incidents distincts : le premier réécrit les apostrophes Unicode dans Today's date lorsque vous passez par un proxy ; le second pré-écrit des manifestes Native Messaging sur macOS. Selon les rapports de reverse engineering, Anthropic a retiré le code en 2.1.197 ; l'objectif probable était l'anti-distillation, mais la méthode était dissimulée et non divulguée. Cet article couvre la matrice incidents A/B, table Unicode, débat HN, checklist en six étapes et FAQ. Tarifs des nœuds sur la page tarifs.

En bref : le 30 juin 2026, selon le rapport thereallo.dev, Claude Code (outil CLI de codage, pas l'application web) réécrivait la ligne Today's date is... du prompt système lorsque ANTHROPIC_BASE_URL pointait ailleurs que api.anthropic.com. En alternant le séparateur de date (- vs /) et en remplaçant l'apostrophe par des variantes Unicode visuellement identiques (U+0027 / U+2019 / U+02BC / U+02B9), il encodait fuseau horaire chinois et correspondances domaines ou mots-clés de labs IA. C'est un canal dissimulé classique. Anthropic a livré 2.1.197 le 1er juillet 2026 sans mention au changelog.

  • Deux histoires souvent confondues : injection navigateur Desktop (Hanff, avril) et stéganographie Code (RE juin) — produits, déclencheurs et mécanismes différents ; les mélanger nuit à l'E-E-A-T.
  • Pas tout le monde concerné : l'incident B n'activait qu'avec un Base URL non officiel ; les utilisateurs de l'endpoint officiel n'ont rien vu.
  • Intention vs méthode : consensus communautaire sur la défense anti-distillation/revente — intention défendable, dissimulation inacceptable pour un outil développeur.
  • HN divisé : thread en une page d'accueil en heures, 350+ points — « défense anti-distillation raisonnable » vs « comportement proche du malware pour un outil dev ».
  • Ton prudent : « selon les rapports », « le RE a trouvé » — l'intention éditeur n'est pas présentée comme un fait établi.

Incident A (injection navigateur silencieuse) vs incident B (stéganographie de prompt système)
Dimension Incident A : injection navigateur silencieuse Incident B : stéganographie de prompt
Produit Claude Desktop (client macOS) Claude Code (outil CLI de codage)
Source Alexander Hanff (consultant privacy, contributeur The Register) RE développeur sur thereallo.dev, amplifié Reddit → HN
Date Avril 2026 (~18 avril onward) 30 juin 2026
Comportement Écrit silencieusement com.anthropic.claude_browser_extension.json dans Chrome/Edge/Brave/Arc/Vivaldi/Opera/Chromium, pré-autorisant 3 IDs d'extension pour chrome-native-host hors sandbox ; crée des dossiers même sans navigateur ; fichier régénéré après suppression Si ANTHROPIC_BASE_URL ≠ api.anthropic.com, réécrit Today's date is... par stéganographie
Labels spyware / backdoor stéganographie de prompt / canal dissimulé
Déclencheur Installation/démarrage Claude Desktop Base URL non officiel uniquement ; pas chaque conversation
Réponse Anthropic Pas de réponse publique formelle ; toggle de consentement ajouté plus tard ; modèle de permissions non entièrement retiré Code admis ; retiré en 2.1.197 (1er juil.) ; changelog silencieux

Pour l'incident A, Noah Kenney (Digital 520) a confirmé la reproductibilité des allégations de Hanff ; Antiy Labs a publié une analyse de risque dédiée. Pour l'incident B, le RE confirme les versions 2.1.193 / 2.1.195 / 2.1.196.

Prérequis : ANTHROPIC_BASE_URL pointe ailleurs que api.anthropic.com (proxy, gateway, revendeur, couche compatible OpenAI). Endpoint officiel : aucune altération.

Lors du déclenchement, deux signaux se cachent dans la ligne anodine 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 substituée : l'apostrophe de Today's devient un caractère Unicode look-alike encodant la correspondance.
Mapping fingerprint Unicode du prompt système Claude Code (rapport thereallo.dev)
Condition détectée Format date Apostrophe Unicode
Défaut (aucune correspondance) 2026-06-30 ' apostrophe ASCII U+0027
Domaine org/revendeur lié Chine 2026-06-30 ' guillemet simple droit U+2019
Mot-clé lab IA (deepseek, moonshot, zhipu, minimax, baichuan, stepfun, 01ai…) 2026-06-30 ʼ apostrophe modifier letter U+02BC
Domaine et lab 2026-06-30 ʹ prime modifier letter U+02B9
+ fuseau Chine 2026/06/30 (règles apostrophe ci-dessus)

Selon le RE, listes domaines/mots-clés en base64 + XOR (clé 91) — environ 147 motifs de domaine. Pour un humain le prompt semble ordinaire ; pour le backend Anthropic, un code point d'apostrophe révèle VPN, fuseau Chine, éventuel lab IA chinois.

check-base-url.sh
echo "$ANTHROPIC_BASE_URL"
claude --version

Consensus mesuré : presque certainement anti-distillation et anti-revente non autorisée. Anthropic, OpenAI et Google s'inquiètent publiquement que des concurrents récoltent les sorties API pour entraîner des modèles plus petits. Revendeurs, proxys et labs liés à la Chine étaient les principaux suspects.

L'intention peut se défendre ; la méthode non. Transformer une classification en ponctuation invisible, l'obfusquer dans le binaire et l'expédier dans chaque requête d'un outil développeur fondé sur la confiance franchit une limite.

Sur Hacker News le fil s'est scindé : « défense anti-distillation raisonnable » vs « comportement proche du malware pour un outil dev ». Lecture dominante : détecter revente non autorisée + distillation, pas surveillance personnelle — le débat porte sur les moyens (dissimulés, obfusqués, non divulgués).

« Spyware » est un terme chargé. Plus précisément :

  • Incident A se rapproche d'une altération non autorisée de logiciels tiers + surface d'attaque pré-positionnée. Même inexploitée, elle pré-installe un canal haut privilège hors sandbox navigateur ; chiffres Anthropic pour Claude for Chrome : injection de prompt 23,6 % (non atténué) / 11,2 % (atténué).
  • Incident B se rapproche d'une télémétrie non divulguée / classification utilisateur dissimulée — pas un malware d'exfiltration classique, mais un canal dissimulé non divulgué.

Quel que soit le label, le cœur du problème est identique : pas de consentement éclairé, délibérément caché.

  1. Vérifier le Base URL : exécuter echo $ANTHROPIC_BASE_URL ; les proxys non officiels pouvaient déclencher l'incident B ; en production privilégier api.anthropic.com ou des gateways enterprise audités.
  2. Mettre à jour Claude Code : version ≥ 2.1.197 (1er juillet 2026 — rapports publics indiquent retrait de la stéganographie).
  3. Scanner les manifestes Native Messaging (incident A) : sur macOS vérifier ~/Library/Application Support/<browser>/NativeMessagingHosts/com.anthropic.claude_browser_extension.json sur Chrome, Edge, Brave, Arc, Vivaldi, Opera.
  4. Supprimer et observer la régénération : retirer le JSON, redémarrer Claude Desktop, noter s'il se recrée — preuve que le modèle de permissions a vraiment été corrigé.
  5. Auditer combo fuseau + proxy : VPN plus fuseau Chine (Asia/Shanghai / Asia/Urumqi) sur ancien Claude Code + Base URL non officiel formait un vecteur fingerprint complet.
  6. Enterprise / environnements sensibles : traiter les agents desktop comme logiciels haut privilège — moindre privilège, autorisation explicite, comportement auditable ; héberger sur serveurs isolés 24/7, pas sur laptops personnels — particulièrement pertinent pour les workflows créatifs sur Mac Apple Silicon.

La leçon n'est pas « une apostrophe ». Quand la capacité des modèles devance frontières de sécurité, consentement et auditabilité, les éditeurs franchissent la limite de confiance au nom de l'« UX » ou de la « prévention des abus ». Les erreurs de sécurité des premiers PC et smartphones se rejouent sur les agents IA desktop.

Faits techniques citables (juin–juillet 2026, rapports publics et RE) :

  • Taille du ruleset : obfuscation base64 + XOR(91), ~147 motifs domaine/mot-clé.
  • Versions affectées : Claude Code 2.1.193 / 2.1.195 / 2.1.196 contenaient la logique ; 2.1.197 l'a retirée.
  • Traction HN : page d'accueil en heures, 350+ points, 100+ commentaires.
  • Succès injection Claude for Chrome (Anthropic) : 23,6 % non atténué, 11,2 % atténué.

Ce que nous pouvons faire :

  1. Méfiance par défaut ; exiger des preuves. Reproductible, auditable, désactivable est la barre.
  2. Divulgation plutôt que dissimulation. Combattre la distillation ouvertement — documenter, livrer un toggle — pas l'enfouir dans la ponctuation.
  3. Moindre privilège + isolation pour chaque agent desktop.
  4. Voter avec ses pieds, appuyer par la régulation. Droit type RGPD et choix de marché sont le frein ultime.

La technologie peut sembler neutre ; une entreprise non. Plus le modèle est capable, plus l'éditeur doit se contraindre — et cela ne devrait pas être un secret découvert uniquement par reverse engineering d'un binaire.

Q : Claude Code est-il un logiciel espion ?
Pas au sens classique, mais le RE a trouvé un fingerprint non divulgué et obfusqué ; Anthropic l'a retiré en 2.1.197. Mieux : canal dissimulé non divulgué.

Q : Claude Code suit-il mon fuseau horaire ?
Selon le RE, il vérifiait Asia/Shanghai / Asia/Urumqi uniquement avec ANTHROPIC_BASE_URL non par défaut ; utilisateurs endpoint officiel non touchés.

Q : Quel est le truc apostrophe / Unicode ?
L'apostrophe de « Today's » alternait entre U+0027, U+2019, U+02BC et U+02B9 pour encoder domaines Chine, mots-clés lab IA, les deux ou ni l'un ni l'autre.

Q : Pourquoi Anthropic a ajouté cela ?
Très probablement anti-distillation et revente non autorisée — objectif légitime, mise en œuvre et divulgation illégitimes.

Q : Même affaire que Claude Desktop spyware ?
Non — avril Desktop Native Messaging est incident A ; juin Code stéganographie est incident B.

Q : Utilisateurs web Claude concernés ?
Incident B uniquement Claude Code avec ANTHROPIC_BASE_URL non officiel.

Q : Comment retirer l'injection navigateur Claude Desktop ?
Supprimer com.anthropic.claude_browser_extension.json sous ~/Library/Application Support/<browser>/NativeMessagingHosts/ ; Claude Desktop peut le recréer.

Q : Pourquoi séparer incidents A et B ?
Les confondre produit des erreurs factuelles que HN, Reddit et les lecteurs sécurité repèrent immédiatement — nuit à l'E-E-A-T et à la crédibilité SEO.

Références principales — revérifier les liens après mises à jour upstream :

thereallo.dev : Claude Code prompt steganography (rapport RE original)

The Register : Claude Desktop changes software permissions without consent (avr. 2026)

Hacker News : discussion stéganographie Claude Code

Faire tourner de longues sessions Claude Code, chaînes MCP et routage multi-modèles sur un MacBook en veille laisse jobs interrompus, expiration OAuth et régénération Native Messaging grignoter votre travail d'audit. Les vérifications locales manquent d'un hôte 24/7 prévisible ; migrer vers des Mac cloud isolés exige Apple Silicon stable et SSH.

Si vous avez besoin d'hébergement agent 24/7, SSH stable et capacité Apple Silicon prévisible, déplacer jobs planifiés Claude Code, configs MCP et fallbacks multi-éditeurs vers des serveurs bare-metal dédiés vaut mieux que lutter sur un laptop instable : NOVAKVM propose Mac Mini M4 / M4 Pro multi-régions, durées flexibles, bande passante fixe, SSH par défaut — idéal pour CI/CD iOS et automatisation agents IA sur une machine. Voir la page tarifs, la page commande et le centre d'aide.