Um cibercriminoso desconhecido carregou uma versão modificada (0.23.3) do elementary-data, um utilitário de monitoramento de dados, na plataforma PyPI. A versão maliciosa do aplicativo rouba credenciais, incluindo chaves SSH, credenciais de acesso a recursos da AWS, tokens de API e carteiras de criptomoedas. O desenvolvedor legítimo removeu o pacote comprometido, mas ele permaneceu acessível publicamente por meio dia e provavelmente causou danos.

Fonte da imagem: Towfiqu barbhuiya / unsplash.com
O atacante explorou uma vulnerabilidade em um dos fluxos de trabalho do GitHub Actions do projeto elementary-data. Usando o GITHUB_TOKEN fornecido automaticamente, ele criou uma solicitação de pull request para um pacote legítimo contendo código malicioso e conseguiu liberar automaticamente uma nova versão do pacote. Este pacote foi projetado para coletar uma ampla gama de dados sensíveis: chaves SSH, credenciais de recursos da nuvem Amazon Web Services (AWS), contêineres Docker e Kubernetes e arquivos de carteiras de criptomoedas, incluindo Bitcoin, Litecoin, Dogecoin e Ethereum. Os dados roubados foram compilados em um arquivo trin.tar.gz e enviados para um servidor controlado pelo atacante.
O cibercriminoso usou uma conta do GitHub recém-registrada e, às 2h20 da manhã, horário de Moscou, em 25 de abril, carregou uma versão maliciosa do elementary-data no PyPI. Às 2h24 da manhã, ele carregou uma imagem Docker infectada contendo este pacote no Registro de Contêineres do GitHub, expandindo assim o vetor de ataque. Os administradores do projeto Elementary removeram os arquivos maliciosos somente às 13h45 daquele mesmo dia, mais de 11 horas depois, e substituíram o pacote por uma versão limpa do elementary-data 0.23.4. O pacote Elementary dbt associado, os recursos do Elementary Cloud e outras versões do próprio projeto não foram afetados pelo incidente, informaram os desenvolvedores.
Recomenda-se fortemente que os usuários que instalaram a versão infectada do elementary-data 0.23.3 a desinstalem e a substituam pela versão segura 0.23.4. Eles também devem excluir os arquivos de cache e o diretório “.O arquivo “trinny-security-update” do pacote malicioso — se esse arquivo estiver presente no sistema, significa que o malware estava sendo executado nele. Os desenvolvedores da Elementary atualizaram o token de publicação do PyPI, o token do GitHub e as credenciais.Os dados do GitHub Container Registry foram removidos, o fluxo de trabalho vulnerável do GitHub Actions foi corrigido e todos os outros foram verificados.