Shopping cart

Subtotal $0.00

View cartCheckout

Building better devs

TnewsTnews
  • Home
  • Notícias
  • Claude Code Usa Esteganografia Para Rastrear Seus Requests
Notícias

Claude Code Usa Esteganografia Para Rastrear Seus Requests

Email : 51

Você confia no seu editor de código? Eu também confiava. Até um desenvolvedor curioso descompilar o binário do Claude Code e descobrir que cada request enviado carrega um apóstrofo espião — um caractere Unicode invisível que funciona como impressão digital.

A comunidade dev explodiu. No Hacker News, o post ultrapassou 900 pontos em poucas horas. E o motivo é simples: a ferramenta de IA que tem acesso ao seu terminal, ao seu sistema de arquivos e aos seus repositórios está, silenciosamente, marcando cada prompt com metadados ocultos.

Vamos ao que interessa.

O Que É Esteganografia (E Por Que Devs Deveriam Se Importar)

Esteganografia é a arte de esconder informação dentro de outra informação. Diferente da criptografia, que torna dados ilegíveis, a esteganografia faz a mensagem parecer normal. Um JPEG com pixels alterados, um texto com espaços em branco extras, um e-mail com caracteres Unicode invisíveis.

No caso do Claude Code, a técnica é ainda mais elegante: o sistema modifica um único caractere no prompt do sistema — o apóstrofo na frase “Today’s date is…” — e troca por variantes Unicode visualmente idênticas. Para o olho humano, é a mesma coisa. Para a máquina, cada variante carrega uma classificação diferente.

E a real é que ninguém notaria isso manualmente. Você precisaria inspecionar o código hexadecimal de cada request para perceber que o ' (U+0027) virou um ' (U+2019) ou um ʼ (U+02BC).

A Mecânica do Rastreamento

O pesquisador que descobriu isso — autor do blog thereallo.dev — fez engenharia reversa no binário minificado do Claude Code versão 2.1.196. O que ele encontrou é fascinante do ponto de vista técnico e preocupante do ponto de vista ético.

Canal 1: O Apóstrofo Espião

O sistema prompt de todo request do Claude Code contém a frase “Today’s date is YYYY-MM-DD”. Essa frase parece inocente. Mas o apóstrofo muda dependendo de como você está acessando a API:

Cenário Caractere Unicode Significado
——— ———– ——— ————-
API oficial da Anthropic ' U+0027 Nenhum flag
Domínio conhecido (proxy/reseller) ' U+2019 Flag: domínio na lista
Keyword de lab de IA no hostname ʼ U+02BC Flag: possível lab concorrente
Ambas as condições ʹ U+02B9 Flag duplo

Quatro apóstrofos diferentes. Quatro classificações. Tudo invisível a olho nu.

Canal 2: A Barra no Lugar do Hífen

Quando o timezone do sistema é Asia/Shanghai ou Asia/Urumqi, o separador da data muda de hífen para barra:


Normal:  Today's date is 2026-06-30
China:   Today's date is 2026/06/30

Sozinho, isso já seria um sinal. Combinado com o apóstrofo, cria um sistema de fingerprinting com múltiplas dimensões.

Canal 3: A Lista Ofuscada de 147 Domínios

O código contém uma lista de 147 domínios codificada em Base64 e ofuscada com XOR (chave 91). Quando decodificada, revela nomes como:

  • Baidu
  • Alibaba e Ant Group
  • ByteDance
  • Moonshot AI
  • MiniMax
  • Stepfun
  • DeepSeek
  • Zhipu (GLM)
  • Diversos domínios de proxy e mirror

Se o ANTHROPIC_BASE_URL do seu ambiente aponta para qualquer um desses domínios, o Claude Code silenciosamente marca seus requests.

Como o Mecanismo É Ativado

Aqui tá o detalhe que muita gente perdeu: isso não afeta todo mundo. O gatilho é a variável de ambiente ANTHROPIC_BASE_URL.

Se você usa o Claude Code com a API oficial da Anthropic (o padrão), nenhuma marcação acontece. O apóstrofo é o normal, a data usa hífens, vida segue.

Mas se você configurou um proxy, um gateway corporativo, uma API de um reseller, ou está roteando requests por qualquer endpoint customizado — aí o bicho pega. O código:

  1. Extrai o hostname da URL customizada
  2. Compara com a lista de 147 domínios (decodificada em runtime)
  3. Procura keywords como “deepseek”, “moonshot”, “zhipu” no hostname
  4. Escolhe o apóstrofo correspondente
  5. Modifica o prompt do sistema antes de enviar

Tudo isso acontece antes do request sair da sua máquina. Sem log, sem aviso, sem configuração para desativar.

Mas Pra Quê Serve Isso?

A pergunta de um milhão de dólares. A Anthropic não se pronunciou oficialmente até o momento, mas existem hipóteses bem fundamentadas.

Hipótese 1: Detecção de Resellers Não Autorizados

O mercado de APIs de IA tem um problema sério com revenda não autorizada. Empresas compram acesso wholesale e revendem com markup, às vezes violando os termos de uso. A esteganografia permitiria à Anthropic detectar esses intermediários analisando os requests que chegam — o apóstrofo entrega a rota.

Hipótese 2: Proteção Contra Destilação

Destilação é quando alguém usa um modelo grande (como o Claude) para treinar um modelo menor, essencialmente “roubando” a inteligência. Se os requests vindos de labs de IA concorrentes são marcados, a Anthropic pode monitorar padrões de uso que indicam destilação em escala.

Hipótese 3: Compliance e Geofencing

A marcação por timezone chinês sugere uma dimensão geopolítica. Empresas americanas de IA enfrentam restrições de exportação. Saber que requests vêm de fusos horários específicos pode servir para compliance regulatório.

Nenhuma dessas hipóteses justifica a falta de transparência. Mas explicam a motivação técnica.

O Que Mais Encontraram no Código

A análise do Claude Code revelou outros comportamentos que amplificam a controvérsia.

Detecção de Frustração

O código escaneia prompts do usuário procurando sinais de frustração — palavrões, insultos e frases como “so frustrating” e “this sucks”. Quando detectados, o sistema registra internamente que o usuário expressou negatividade.

Na prática, isso significa que o Claude Code não está apenas processando seu código — está analisando seu estado emocional. Para um desenvolvedor tendo um dia ruim debugando um segfault às 3 da manhã, saber que sua ferramenta está catalogando sua raiva não é exatamente reconfortante.

Scrubbing de Atribuição

Outro trecho de código remove referências a nomes específicos da Anthropic — incluindo “Claude Code” — quando a ferramenta é usada para gerar código que será commitado em repositórios públicos. O objetivo? Fazer o código parecer que foi escrito inteiramente por um humano.

Um desenvolvedor independente chamou isso de “porta de mão única” — uma feature que pode ser ativada forçadamente mas não desativada. E argumentou que “esconder nomes internos é razoável, mas fazer a IA fingir ser humana é outra coisa.”

O Contexto: Como Isso Veio À Tona

A história começa em março de 2026. Um bug no build com Bun fez o pacote npm do Claude Code ser publicado com source maps — os arquivos .map que contêm o código TypeScript original, legível, antes da minificação.

A Anthropic removeu rapidamente o pacote, mas já era tarde. A comunidade já tinha feito download e começado a analisar. O que encontraram gerou uma série de revelações:

  • O blog post do thereallo.dev detalhou a esteganografia
  • O Scientific American cobriu o tracking de frustração
  • Diversos devs publicaram análises no GitHub e Dev.to

E agora, meses depois, o post voltou à primeira página do Hacker News com força total.

Implicações Práticas: Você Deveria Se Preocupar?

Depende do seu setup.

Se você usa Claude Code com a API oficial: relaxa. O mecanismo não é ativado. Seu apóstrofo é o de sempre, sua data tem hífens normais.

Se você usa proxy, gateway corporativo ou reseller: seus requests provavelmente estão sendo marcados. Cada prompt que você envia carrega um fingerprint invisível que classifica sua rota de acesso.

Se você é um desenvolvedor de ferramentas: isso abre um precedente. Se uma CLI pode silenciosamente modificar prompts do sistema para inserir metadados ocultos, o que impede outras ferramentas de fazerem o mesmo?

O Problema de Confiança

E aqui tá o cerne da questão. O Claude Code não é um app que roda numa sandbox. Ele tem acesso ao seu terminal. Executa comandos bash. Lê e modifica seus arquivos. Faz git commits. Interage com APIs autenticadas.

Para funcionar, ele precisa de um nível de confiança que poucos softwares recebem. E quando você descobre que essa mesma ferramenta está inserindo marcadores invisíveis nos dados que ela envia, a relação de confiança sofre um impacto sério.

Não é sobre o que a esteganografia faz — é sobre o que ela representa. Se eles escondem isso, o que mais poderia estar escondido?

Como Verificar Seus Requests

Se você quer checar se seus requests estão sendo marcados, existem algumas abordagens:


# Interceptar requests com mitmproxy
mitmproxy --mode regular -p 8080

# Configurar Claude Code para usar o proxy
export HTTPS_PROXY=http://localhost:8080

# Agora inspecione o body de cada request
# Procure o campo "system" e examine o apóstrofo em "Today's"

Outra opção é usar Python para comparar os bytes:


# Verificar qual apóstrofo está no prompt
text = "Today's date is 2026-06-30"  # cole o texto do request

apostrophe = text[5]  # o caractere após "Today"
print(f"Char: {apostrophe}")
print(f"Unicode: U+{ord(apostrophe):04X}")
print(f"Name: {__import__('unicodedata').name(apostrophe, 'UNKNOWN')}")

# U+0027 = normal (sem marcação)
# U+2019 = domínio conhecido
# U+02BC = keyword de lab
# U+02B9 = ambos

O Que a Comunidade Está Pedindo

A reação no Hacker News e em fóruns de dev converge em alguns pontos:

  1. Transparência — Se a Anthropic quer rastrear uso não autorizado, que documente isso publicamente nos termos de uso
  2. Opt-out — Uma flag de configuração para desativar a marcação, mesmo que isso signifique perder acesso a certas features
  3. Auditabilidade — O código do Claude Code deveria ser open-source, ou ao mínimo ter auditorias independentes regulares
  4. Pronunciamento oficial — Até agora, silêncio. E silêncio, nesse contexto, não ajuda

Eu já vi empresas sobreviverem a escândalos de privacidade muito piores. Mas o público do Claude Code é formado por desenvolvedores — as pessoas mais capacitadas para detectar, analisar e amplificar esse tipo de descoberta. Ignorar não é opção.

O Elefante na Sala: Outras Ferramentas Fazem Isso?

Essa é a pergunta que todo dev deveria estar fazendo agora. Se o Claude Code faz, quem mais faz?

O GitHub Copilot, por exemplo, envia telemetria detalhada sobre seu uso — mas isso está documentado e pode ser desativado. O Cursor coleta dados de uso anonimizados, também documentado. O Codeium tem uma política clara de dados.

A diferença fundamental com o Claude Code é que a esteganografia é, por definição, um mecanismo oculto. Não aparece em nenhuma documentação. Não tem toggle nas configurações. Não gera log. Foi projetado especificamente para ser invisível.

E aí surge uma questão filosófica interessante para a indústria: qual é a diferença entre telemetria e vigilância? Telemetria é quando você sabe que dados estão sendo coletados e pode optar por não participar. Vigilância é quando a coleta acontece sem seu conhecimento ou consentimento.

A esteganografia do Claude Code se encaixa mais na segunda categoria. E isso incomoda.

Outro ponto que poucos levantaram: se você está usando Claude Code dentro de uma empresa, com dados proprietários passando pelo terminal, a existência de marcadores ocultos nos requests pode ter implicações legais. Dependendo da jurisdição, modificar dados em trânsito sem consentimento explícito pode violar regulamentações como GDPR, LGPD ou CCPA.

Imagina explicar pro DPO da sua empresa que a ferramenta de IA que vocês usam para escrever código está inserindo fingerprints invisíveis nos requests que saem da rede corporativa. Boa sorte nessa reunião.

Unicode Como Vetor de Side-Channel: Nada Novo

Pra quem acompanha segurança da informação, usar variantes Unicode para side-channels não é exatamente novidade. Pesquisadores já demonstraram técnicas similares em:

  • Watermarking de texto — Inserir zero-width characters (U+200B, U+FEFF) entre palavras para rastrear cópias
  • Ataques de homoglyph — Domínios com caracteres cirílicos idênticos aos latinos (аpple.com vs apple.com)
  • Fingerprinting de documentos — Variações sutis de espaçamento e formatação em PDFs corporativos

A diferença é que, normalmente, essas técnicas são documentadas em papers acadêmicos como ataques a serem mitigados. Não como features de produto.

O Claude Code transformou um ataque conhecido em funcionalidade. E isso, gostando ou não, é engenhoso.

Pra Onde Vai Essa Discussão?

Se você me perguntar, acho que a Anthropic vai eventualmente se pronunciar. Provavelmente dirá que a feature existe para proteger contra uso indevido e violação dos termos de serviço. Provavelmente adicionará documentação. Talvez adicione um opt-out.

Mas o dano à reputação já está feito. Num momento em que empresas de IA competem ferozmente por confiança — especialmente confiança de desenvolvedores — ser pego com rastreamento oculto é péssimo timing.

A lição aqui não é só sobre o Claude Code. É sobre toda ferramenta que opera com alto nível de privilégio no seu sistema. Se seu editor de código, seu terminal, sua IDE ou seu agente de IA pode ler seus arquivos e executar comandos, você precisa poder confiar que ele faz exatamente o que diz fazer — e nada mais.

Porque às vezes, o apóstrofo não é só um apóstrofo.


Fonte de inspiração: Claude Code is steganographically marking requests (thereallo.dev)

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts