SOC Prime Bias: Crítico

12 Jun 2026 18:43 UTC

Ataque Massivo na Cadeia de Suprimentos do PyPI Colhe Credenciais na Nuvem através de Hooks de Inicialização do Python

Author Photo
SOC Prime Team linkedin icon Seguir
Ataque Massivo na Cadeia de Suprimentos do PyPI Colhe Credenciais na Nuvem através de Hooks de Inicialização do Python
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

Uma operação coordenada da cadeia de suprimentos conhecida como a Campanha Hades comprometeu 26 pacotes PyPI para roubar credenciais de nuvem. O ataque abusa de arquivos .pth para acionar código malicioso durante a inicialização do interpretador, utilizando o runtime Bun JavaScript para executar o payload. Ele é projetado para coletar segredos vinculados a AWS, GCP, Azure, Kubernetes e GitHub em múltiplos sistemas operacionais.

Investigação

A Orca Security identificou 37 arquivos wheel maliciosos espalhados pelos ecossistemas de bioinformática e ferramentas de desenvolvimento. Sua análise expôs uma técnica de cross-runtime na qual o malware baixa Bun para executar payloads JavaScript ofuscados. A campanha também gera tráfego de despiste para serviços de IA Anthropic e usa técnicas de injeção de prompt para reduzir a eficácia da revisão de segurança baseada em LLM.

Mitigação

As organizações devem remover imediatamente os pacotes afetados ou fixá-los para versões seguras e girar todas as credenciais potencialmente expostas. Isso inclui tokens de acesso à nuvem, tokens de acesso pessoal do GitHub, chaves SSH e credenciais do registro Docker. As equipes de segurança também devem caçar os artefatos de persistência conhecidos em hosts Linux, macOS e Windows.

Resposta

Quando o comprometimento é suspeito, isole o sistema afetado antes de rodar as credenciais para reduzir o risco de extorsão através do daemon do monitor de tokens gh . Reconstrua todas as estações de trabalho de desenvolvedores e runners de CI/CD que executaram os pacotes envenenados. Revise os repositórios no GitHub para commits não autorizados e para repositórios recém-criados que correspondam aos padrões de nomenclatura do atacante.

Fluxo de Ataque

Execução de Simulação

Pré-requisito: A verificação pré-voo de Telemetria & Baseline deve ter sido aprovada.

Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e narrativa DEVEM refletir diretamente as TTPs identificadas e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.

  • Narrativa do Ataque & Comandos: O adversário comprometeu com sucesso a estação de trabalho de um desenvolvedor via um pacote PyPI malicioso (Campanha Hades). Um gancho de inicialização do Python foi executado, raspando com sucesso um token de autenticação Azure da memória/cache local. Para simular a detecção dessa atividade nos Logs de Auditoria do Azure, vamos simular a geração de uma entrada de Log de Auditoria que contém a string específica “Tokens de autenticação Azure” no campo de descrição, imitando a telemetria do evento que um sistema automatizado pode relatar quando detecta tal exfiltração.

  • Script de Teste de Regressão: Como não podemos forçar facilmente o backend real do Azure a gerar uma string de descrição maliciosa específica sem uma violação real, simulamos a presença do log no fluxo de telemetria (frequentemente feito em BAS por injetar um log sintético no workspace).

    # Injeção de Log Sintético para simular a detecção de exfiltração de token
    # Isto simula o campo 'Descrição' sendo populado com a string alvo.
    $LogEntry = @{
        TimeGenerated = (Get-Date).ToString("yyyy-MM-ddTHH:mm:ssZ")
        OperationName = "TokenExfiltrationDetected"
        Result = "Success"
        Description = "Atividade de malware detectada: tokens de autenticação Azure foram exfiltrados de um processo local."
        Identity = "gancho-python-malicioso@atacante.com"
    }
    
    Write-Host "Injetando telemetria sintética para validar a regra de detecção..."
    # Em um BAS real, isto chamaria a API do Coletor de Dados do Log Analytics
    # Para fins de simulação, representamos a entrada de log resultante:
    $LogEntry | ConvertTo-Json
  • Comandos de Limpeza:

    # Se logs sintéticos foram injetados via API, delete o ID de correlação específico
    # Para esta simulação, nenhuma alteração persistente foi feita no Tenant do Azure.
    Write-Host "Limpeza completa. Nenhum artefato adversário persistente permanece."