O vírus Miasma começou a se espalhar rapidamente depois que atacantes desconhecidos publicaram seu código-fonte, permitindo que qualquer pessoa o modificasse e o utilizasse para seus próprios fins.

Fonte da imagem: Kevin Ku / unsplash.com
Na última segunda-feira, 8 de junho, repositórios maliciosos apelidados de “Miasma-Open-Source-Release” começaram a aparecer. Os administradores do GitHub os removeram, mas especialistas da SafeDep conseguiram examinar um dos projetos e determinar que se trata de algo mais do que um simples worm de cadeia de suprimentos. Ele permite que seu operador execute “diversos ataques baseados em credenciais contra pacotes arbitrários e direcionados em plataformas de acesso público, incluindo PyPI, npm, RubyGems, JFrog Artifactory, bem como repositórios do GitHub e GitHub Actions, envenene configurações de ferramentas de programação com inteligência artificial, mova-se lateralmente via SSH e execute outros vetores de ataque”.
O primeiro a realizar esse feito foi o grupo de hackers TeamPCP, que disponibilizou o miniworm Shai-Hulud em código aberto e anunciou uma competição para ataques à cadeia de suprimentos. O worm Miasma, que opera de maneira semelhante, infectou inicialmente mais de cem projetos da Red Hat e da Microsoft antes de se espalhar para outras vítimas. Até terça-feira, especialistas da Socket haviam rastreado 473 pacotes infectados. O código-fonte do Miasma foi publicado em nome de quatro usuários que já haviam sido hackeados. Desde a publicação do código-fonte, não foram documentados casos de uso do Miasma como arma.

Fonte da imagem: Philipp Katzenberger / unsplash.com
Uma característica interessante desses dois worms é que eles não exigem um servidor de comando e controle (C2) separado — todas as funções relevantes são implementadas nativamente na plataforma GitHub. Como resultado, as equipes de segurança “precisam trabalhar mais próximas do protocolo de aplicação para detectar anomalias comportamentais em vez de anomalias de rede”.
Os comandos de controle estão ocultos em commits públicos do GitHub, que são detectados por ferramentas de busca padrão usando tags especiais. A tag “DontRevokeOrItGoesBoom” é acompanhada pelo token de acesso pessoal (PAT) do atacante, criptografado com AES-256-CBC. Esses dados são usados para enviar credenciais roubadas pelo worm e outras informações confidenciais. A tag “TheBeautifulSandsOfTime” é acompanhada por código JavaScript que é verificado uma vez na inicialização. Após a verificação, o payload é executado via eval(), uma função que executa uma string de texto como código. Finalmente, a tag “firedalazer” fornece URLs para scripts Python para monitoramento. Os três canais são acessíveis sem autorização, utilizam a API pública de busca de commits do GitHub e usam chaves de verificação e descriptografia diferentes, o que significa que comprometer um deles não compromete os outros dois.