Pacote PyPI foi hackeado


Um atacante distribuiu uma versão maliciosa do popular pacote elementary-data Python Package Index (PyPI) para roubar dados confidenciais de desenvolvedores e carteiras de criptomoedas.

A versão problemática é a 0.23.3, e o problema se estendeu à imagem Docker devido ao fluxo de trabalho do pacote, que cria a imagem a partir do código e a carrega em um registro de contêineres para implantação.

O membro da comunidade crisperik identificou o upload malicioso e abriu uma ocorrência no GitHub do projeto no sábado, alertando o mantenedor e diminuindo o período de exposição.

Uma versão limpa de substituição, elementary-data 0.23.4 , foi disponibilizada aos usuários. No entanto, os usuários que baixaram a variante maliciosa permaneceram com a segurança comprometida.

O pacote elementary-data é uma ferramenta de observabilidade de dados de código aberto para dbt, usada principalmente por engenheiros de dados/análise que trabalham com pipelines de dados. É uma ferramenta popular no ecossistema dbt (Data Build Tool), com mais de 1,1 milhão de downloads mensais no PyPI.

O invasor explorou uma falha no fluxo de trabalho do projeto, em vez de comprometer as contas dos mantenedores, como é mais comum em atualizações maliciosas; publicou um comentário malicioso em uma solicitação de pull request que explorava uma falha de injeção de script no GitHub Actions, fazendo com que o fluxo de trabalho executasse um código shell controlado pelo atacante. Isso expôs o GITHUB_TOKEN do fluxo de trabalho, que foi então usado para forjar um commit e uma tag assinados (v0.23.3) e acionar o pipeline de lançamento legítimo do projeto.

O pipeline construiu e publicou o pacote com backdoor no PyPI, bem como uma imagem maliciosa no GitHub Container Registry, fazendo com que parecesse uma versão oficial.

A versão maliciosa continha o arquivo elementary.pth, que era executado automaticamente na inicialização para carregar um programa ladrão de segredos que tinha como alvo os seguintes tipos de dados:

  • Chaves SSH, credenciais Git, credenciais de nuvem (AWS/GCP/Azure)
  • Segredos do Kubernetes, Docker e CI
  • Arquivos .env e tokens de desenvolvedor
  • Arquivos de carteira de criptomoedas (Bitcoin, Litecoin, Dogecoin, Zcash, Dash, Monero, Ripple)
  • Dados do sistema (/etc/passwd, logs, histórico do shell)

Os pesquisadores afirmam que a mesma carga útil chegou à imagem Docker do projeto, porque o “fluxo de trabalho do pacote de lançamento que faz upload para o PyPI também possui uma tarefa de construção e envio de imagem Docker”.

Os sistemas que não utilizavam versões fixadas baixavam automaticamente a versão com backdoor. Quem baixou a versão maliciosa, elementary-data==0.23.3, e as imagens com as tags ghcr.io/elementary-data/elementary:0.23.3 e :latest, deve rotacionar todos os segredos e restaurar seus ambientes a partir de um ponto seguro conhecido.

Últimas Notícias

IBP se reúne com presidente do Suriname e o CEO da Staatsolie para discutir oportunidades no setor de energia

O presidente do IBP, Roberto Ardenghy, e líderes das empresas associadas se reuniram em Brasília, com Jennifer Simons, presidente do Suriname, e Annand Jagesar, presidente da Staatsolie, empresa...

Petrobras aprova adesão à nova subvenção econômica e ajusta preços do diesel

O Conselho de Administração da Petrobras, em reunião realizada ontem (01/06), aprovou a adesão da companhia à subvenção econômica aos produtores e importadores de...

Chevron prepara US$ 13,8 bilhões para Vaca Muerta

A Chevron deu mais um passo para consolidar sua posição em Vaca Muerta ao apresentar ao governo argentino um projeto de investimento estimado em...