Ontem à noite, várias empresas de segurança de rede detectaram que a Red Hat havia lançado vários pacotes de software com cargas maliciosas na plataforma NPM. Essas cargas maliciosas usavam versões variantes do worm de código aberto Mini Shai-Hulud. Depois de entrar no ambiente de desenvolvimento, eles coletariam e criptografariam várias credenciais confidenciais e as carregariam em servidores controlados por hackers. Ao mesmo tempo, o worm usaria essas credenciais para continuar a se espalhar lateralmente para infectar mais ambientes de desenvolvimento e roubar mais credenciais.

Após investigação preliminar, os pesquisadores de segurança acreditam que a origem do ataque à cadeia de suprimentos foi o sequestro da conta GitHub de um engenheiro da Red Hat. O hacker então usou o mecanismo de publicação confiável do NPM para enviar pacotes de malware de tokens OIDC de curto prazo emitidos no GitHub Actions. Não está claro quantos desenvolvedores downstream foram realmente afetados, mas esses pacotes de software lançados pela Red Hat são principalmente para uso empresarial, portanto, a maioria dos desenvolvedores downstream infectados também são desenvolvedores de nível empresarial.

113209.png

O mecanismo de publicação confiável também é ignorado:

O mecanismo de publicação confiável do NPM visa remover tokens de publicação de longo prazo do pipeline de CI/CD e, em vez disso, usar tokens OIDC de curto prazo emitidos pelo GitHub Actions para substituir esses tokens de longo prazo. Este mecanismo foi originalmente projetado para melhorar a segurança e evitar problemas de segurança causados ​​pelo vazamento de credenciais válidas de longo prazo. No entanto, casos recentes de ataques à cadeia de abastecimento mostraram que se um atacante obtiver acesso ao pipeline de CI/CD através de uma vulnerabilidade ou de um token roubado, o mecanismo de publicação confiável pode ser completamente contornado.

Neste caso de ataque, a conta GitHub de um engenheiro da Red Hat foi comprometida e usada por hackers para enviar envios órfãos maliciosos diretamente para vários repositórios de código. Todo o processo também contornou a revisão do código. Esses envios órfãos continham o arquivo de fluxo de trabalho CI.YAML e o script _INDEX.JS. Quando o fluxo de trabalho estiver em execução, ele instalará o Bun e executará _INDEX.JS e, em seguida, passará a lista de pacotes de destino por meio de variáveis ​​de ambiente. O script também usará permissões para solicitar OIDC de curto prazo do GitHub. token e, em seguida, use o token para enviar o pacote que contém a carga maliciosa diretamente para o NPM.

Versões variantes de mini-vermes da areia:

A equipe TeamPCP, que anteriormente se dedicava a ataques à cadeia de suprimentos, lançou o worm Shai-Hulud como código aberto. Agora, mais e mais hackers estão usando esse worm para realizar ataques. O worm usado pelos hackers neste caso de ataque é modificado com base no Sandworm, mas é essencialmente usado para roubar diversas credenciais no ambiente de desenvolvimento e tentar espalhá-las horizontalmente.

Os tipos de credenciais roubadas incluem: chaves de ações do GitHub, chaves de acesso e tokens de sessão da AWS, credenciais padrão do GCP e arquivos de chave de serviço de conta, credenciais principais de serviço do Azure e tokens de identidade gerenciados, tokens de publicação NPM e PYPI, chaves SSH, credenciais de registro do Docker, chaves GPG e quaisquer arquivos .env encontrados em todo o ambiente de desenvolvimento.