Hack Alerta

Ataque de cadeia de suprimentos compromete pacote PyPI com 1 milhão de downloads

Ataque de cadeia de suprimentos compromete pacote Python elementary-data com 1 milhão de downloads, injetando malware para roubo de credenciais via vulnerabilidade no GitHub Actions.

Introdução

Um ataque de cadeia de suprimentos de software de grande escala comprometeu o pacote Python elementary-data, amplamente utilizado para observabilidade de dados, expondo milhares de desenvolvedores a um risco massivo de roubo de credenciais. O incidente, detalhado por pesquisadores da StepSecurity, demonstra como vulnerabilidades em pipelines de CI/CD podem ser exploradas para injetar código malicioso em pacotes legítimos com milhões de downloads mensais.

Como o ataque ocorreu

Os atores de ameaça exploraram uma vulnerabilidade de injeção de script no pipeline de GitHub Actions do projeto. Ao contrário de ataques tradicionais que dependem de credenciais roubadas, os invasores criaram uma conta GitHub recém-criada e postaram um script malicioso em um comentário de pull request aberto. O workflow automatizado, falho na validação segura desse comentário, executou o código, permitindo que o atacante forjasse um commit de lançamento verificado e acionasse o processo de publicação oficial sem tocar no código base principal.

Payload e roubo de credenciais

Uma vez instalado, o pacote comprometido, versão 0.23.3, deposita um único arquivo malicioso chamado elementary.pth no ambiente. Como o interpretador Python executa automaticamente arquivos .pth sempre que inicia, o malware ativa imediatamente em qualquer máquina onde o pacote é instalado. O payload é um coletor de informações sofisticado em três estágios que caça ativamente por segredos críticos de desenvolvedores e credenciais.

Dados visados

O malware sistematicamente visa e rouba:

  • Tokens de acesso em nuvem para AWS, Google Cloud e Azure.
  • Chaves privadas SSH e credenciais Git.
  • Tokens de conta de serviço Kubernetes e configurações Docker.
  • Arquivos de ambiente (.env) contendo segredos de aplicação.
  • Múltiplas carteiras de criptomoedas, incluindo Bitcoin e Ethereum.

Todos os dados roubados são compactados em um arquivo e enviados silenciosamente para um servidor de comando e controle controlado pelo atacante.

Versões afetadas e mitigação

A versão comprometida do pacote PyPI é a 0.23.3. Usuários estão seguros se usarem a versão 0.23.4 ou a anterior 0.23.2. Da mesma forma, a imagem Docker afetada é ghcr.io/elementary-data/elementary:0.23.3, enquanto a versão 0.23.4 (ou 0.23.2) é limpa. Se você estiver usando a tag latest da imagem Docker com um digest terminando em 634255, seu ambiente está comprometido.

A equipe do Elementary removeu a versão perigosa 0.23.3 do PyPI e GHCR, lançando uma substituição limpa 0.23.4 no mesmo dia. Desenvolvedores expostos devem rotacionar totalmente todas as credenciais, chaves de API e senhas de banco de dados nas máquinas afetadas. É recomendado habilitar autenticação de dois fatores em toda a infraestrutura vital e fixar dependências futuras de pacotes em versões específicas e verificadas para impedir atualizações maliciosas automáticas.

Implicações para CISOs

Este incidente reforça a necessidade de monitoramento contínuo de dependências de software e validação de integridade em pipelines de CI/CD. A segurança da cadeia de suprimentos não pode ser tratada como secundária, pois um único pacote comprometido pode impactar milhares de organizações downstream.

Perguntas frequentes

Como saber se fui afetado? Verifique a versão instalada do pacote elementary-data e o digest da imagem Docker. Se for 0.23.3 ou terminar em 634255, assuma o comprometimento.

O código fonte foi alterado? Não, o ataque explorou o pipeline de publicação, não o código base principal.

Qual a recomendação imediata? Rotacione todas as credenciais expostas e atualize para a versão 0.23.4 ou superior.


Baseado em publicação original de Cyber Security News
Publicado pela Redação Hack Alerta com base em fontes externas citadas e monitoramento editorial do Hack Alerta. Para decisões técnicas, operacionais ou jurídicas, confirme sempre os detalhes na fonte original.