Pular para o conteúdo
← Voltar para o Skalablog

Artigo publicado

Como o Claude Code vazou um ataque a bancos?

Engenharia de SoftwareClaude CodeClaude CodeClaudeAnthropic

Pastas abertas do agente Claude Code expuseram ataques a bancos coreanos; veja a auditoria em 6 passos que seus servidores precisam agora.

O que aconteceu com o Claude Code e os bancos sul-coreanos

A falha em agentes Claude Code expôs um ataque a bancos sul-coreanos entre o fim de setembro e o início de outubro de 2026. O relatório da CrowdStrike, publicado em 9 de outubro de 2026, aponta que um único ator usou a ferramenta open source ARTEX e sessões do Claude Code para invadir pelo menos nove instituições financeiras em cerca de duas semanas.

A campanha começou em 30 de setembro de 2026, segundo autoridades sul-coreanas. O atacante explorou um portal de consulta de empréstimos em um banco e um sistema móvel de funcionários em outro. Os logs de sessão do Claude Code, gravados em arquivos JSONL, ficaram expostos em diretórios abertos e se tornaram a principal evidência do caso.

A CrowdStrike atribui a atividade a um ator ligado à China com confiança moderada, com base em uma ferramenta desenvolvida na China e em prompts escritos em chinês. A Reuters contabiliza pelo menos nove bancos, enquanto autoridades coreanas citadas pelo The Record falam em pelo menos sete instituições e 68 mil pessoas com dados afetados. O Shinhan informou que cerca de 25 mil clientes foram impactados.

Como funcionava o agente ARTEX

O ARTEX é um programa em Go com banco de dados PostgreSQL que divide um objetivo em tarefas menores e as executa em paralelo. A ferramenta é descrita pela CrowdStrike como um agente de pentest open source; o README proíbe ataques a sistemas reais, mas uma regra em um arquivo não impede a execução do código.

O planejador da ferramenta quebra o objetivo em etapas chamadas de intents. Em seguida, três workers padrão executam comandos bash e requisições HTTP ao mesmo tempo. Cada worker é uma goroutine, uma thread leve da linguagem Go, então passos lentos em um worker não bloqueiam os outros dois.

O ARTEX mantém dois registros separados: o grafo de ativos, com domínios, IPs, serviços e endpoints descobertos; e o grafo de exploração, com metas, intents, fatos e achados de cada tarefa. Um agente principal permite que o operador converse com o sistema durante a execução.

O design permite que uma pessoa controle várias tarefas simultâneas. Essa capacidade sustenta a alegação de alcance feita pela CrowdStrike: a IA permite que um único humano ataque muitos alvos em pouco tempo. O modelo de linguagem é a peça que raciocina; os workers apenas executam.

Quais modelos de IA rodavam no ataque

A instância do ARTEX usava o DeepSeek V4.1-Flash como modelo principal e aceitava outros backends, como GLM-5.3 e Grok 4.6, em sessões adicionais do Claude Code. A documentação do ARTEX permite configurar chaves da Anthropic da OpenAI por variável de ambiente ou pela interface, o que torna o modelo uma peça substituível.

Essa característica tem uma consequência prática para defensores: bloquear um provedor não impede o funcionamento da ferramenta. A Reuters acrescenta que o suspeito também usou o Anthropic Claude diretamente em alguns prompts. O relatório não detalha quais sessões rodaram em modelos Claude quais usaram outros backends.

O Claude Code é um agente de codificação que roda no terminal e pode operar com diferentes modelos. Por isso, uma sessão do Claude Code não significa necessariamente que um modelo Claude fez o raciocínio. Separar o que é o agente do que é o modelo evita conclusões erradas sobre qual fornecedor foi usado em cada etapa.

O que o Claude Code grava no disco

O Claude Code cria três tipos de arquivos durante o uso normal: instruções, memória automática e transcrições completas de sessão. As transcrições ficam em arquivos JSONL dentro de uma pasta de projetos no diretório pessoal do usuário, e cada linha é um registro JSON completo da sessão.

Por padrão, o Claude Code apaga esses logs após 30 dias. A configuração cleanupPeriodDays no arquivo settings.json altera esse prazo. Como a campanha descrita pela CrowdStrike durou cerca de duas semanas, os logs ainda estariam no disco se o atacante mantivesse o padrão.

O arquivo Claude.md contém instruções escritas pelo usuário e é carregado no início de cada sessão. A memória automática é escrita pelo próprio agente ao longo do trabalho. A documentação alerta que o Claude trata ambos como contexto, não como configuração obrigatória.

Um vazamento em uma nota de memória se repete em todas as sessões seguintes. Um servidor movimentado pode acumular muitos arquivos JSONL. Qualquer pessoa com acesso à pasta consegue reconstruir o que o agente recebeu e o que ele fez, na ordem exata dos acontecimentos.

Como um diretório aberto levou ao próximo servidor

Pesquisadores encontraram um diretório aberto em um servidor ligado aos ataques, e esse diretório continha um arquivo de instruções de pentest escrito em chinês. O arquivo citava um endereço IP em Hong Kong, o que levou a equipe até um segundo servidor com mais evidências.

No servidor de Hong Kong, diretórios abertos guardavam históricos de sessão do Claude Code, arquivos de configuração do ARTEX e arquivos de memória do Claude sessões cobriam o período de fim de setembro a início de outubro de 2026 e tinham como alvo organizações sul-coreanas.

Cada tipo de arquivo responde a uma pergunta diferente: as sessões mostram o que o operador pediu e quando; as configurações mostram como a ferramenta foi montada; a memória mostra o que o agente aprendeu. Juntas, elas permitem reconstruir a sequência do ataque.

Um servidor web ou compartilhamento de arquivos que serve diretórios pessoais pode expor uma pasta .Claude sem que ninguém tenha escolhido publicá-la. Esse é um risco geral de configuração, e nada indica que tenha sido o caso exato desta campanha.

O prompt que pedia um currículo para Claude

Os relatórios descrevem um prompt em que o ator pediu ao Claude para escrever um currículo de pesquisador de segurança, com tópicos sobre a atividade do ARTEX. A Reuters afirma que o prompt veio de uma sessão do Claude continha dados pessoais.

A CrowdStrike avalia que esses dados provavelmente pertencem ao ator, mas as informações disponíveis não permitem associá-los de forma definitiva. Por isso, os detalhes pessoais não são reproduzidos aqui. O episódio mostra como o mesmo arquivo de log pode conter tanto a instrução técnica quanto informações sensíveis.

O ator também perguntou onde criminosos costumam vender dados de violações coreanas e pediu ajuda para encontrar grupos de venda no Telegram. O relatório não informa em que momento da campanha essas perguntas foram feitas, nem se o Claude respondeu, recusou ou sinalizou os pedidos.

Auditoria em 6 passos para suas pastas de agente

A auditoria abaixo foi montada a partir da documentação do Claude Code e do relatório da CrowdStrike; ela não é uma recomendação oficial da CrowdStrike. O objetivo é impedir que seus servidores publiquem pastas de agente sem que você saiba.

  1. Procure pastas .Claude em todos os diretórios pessoais e de projeto, incluindo servidores de build e máquinas compartilhadas. Anote cada caminho encontrado.
  2. Se um servidor web ou compartilhamento alcança um diretório pessoal, feche esse caminho. Não sirva diretórios pessoais pela rede.
  3. Reduza a retenção de transcrições antigas. Confirme o nome e o padrão da configuração na documentação atual antes de alterar.
  4. Trate logs de agente como dados sensíveis. Limite quem pode ler a pasta e para onde os backups copiam esses arquivos.
  5. Leia seus arquivos Claude.md e de memória como se um estranho fosse lê-los. Remova nomes internos de servidor e segredos.
  6. Verifique para onde a pasta viaja. Backups, imagens de contêiner e volumes compartilhados podem carregar uma pasta .Claude para locais não planejados.

Depois de fechar o acesso, teste a partir de fora da sua rede e confirme que o servidor recusa a requisição. Repita o teste após cada mudança na configuração. Uma pasta que você não conhece é uma pasta que você não consegue corrigir.

O que a defesa deve mudar após o caso

A CrowdStrike conclui que a atividade demonstra como ferramentas de IA permitem que um ator financeiramente motivado conduza múltiplas intrusões em pouco tempo. A empresa também avalia que adversários vão continuar experimentando ferramentas de IA para aumentar o ritmo operacional.

A parte mais acionável para defensores é o alcance, não os erros do atacante. Planeje para um invasor que trabalha rápido porque a ferramenta acelera o trabalho. A velocidade reduz o tempo de reação, então uma configuração limpa passa a valer mais do que a detecção tardia.

A exposição dos logs e o prompt do currículo sugerem falta de disciplina operacional, mas essa é uma inferência editorial, não um achado da CrowdStrike. O relatório não mede quanto do ataque foi conduzido pela ferramenta e quanto foi trabalho manual do ator.

Perguntas frequentes sobre o caso Claude Code

  • O Claude Code foi invadido ou apenas usado no ataque? Ele foi usado como ferramenta de agente pelo atacante, não invadido. Os arquivos de sessão ficaram expostos por falha de configuração nos servidores do próprio ator, e não por uma vulnerabilidade do Claude Code.
  • Quantos bancos e clientes foram afetados? Os números variam por fonte: a Reuters cita pelo menos nove bancos, autoridades coreanas citadas pelo The Record falam em sete instituições e 68 mil pessoas, e o Shinhan informou cerca de 25 mil clientes afetados. A CrowdStrike não confirma uma contagem de vítimas.
  • Por quanto tempo o Claude Code guarda os logs de sessão? Por padrão, os arquivos JSONL são apagados após 30 dias, segundo a documentação. A configuração cleanupPeriodDays no settings.json altera esse prazo, mas confirme o padrão atual na documentação oficial.
  • Bloquear um provedor de modelo resolve o problema? Não. O ARTEX permite trocar o backend por DeepSeek, GLM, Grok ou Anthropic Claude modelo é uma peça substituível, então a defesa precisa focar nos seus próprios servidores e nas pastas expostas.
  • Qual o prazo ideal de retenção de transcrições em produção? Escolha o menor número que ainda permita depurar problemas. Retenção curta reduz o risco de segredos expostos, mas retenção longa ajuda na investigação de falhas. O valor certo depende do seu processo de depuração.

Source video