Nova campanha distribui malware em Go através do registro do HashiCorp
Pesquisadores de segurança revelaram a existência de malware escrito em Go que é propagado por meio de dois módulos Go e dois provedores Terraform, marcando a primeira vez que agentes de ameaças utilizam o repositório centralizado mantido pelo HashiCorp como vetor de distribuição de cargas maliciosas.
O código malicioso apresenta sobreposições com a campanha Graphalgo, documentada pela primeira vez pela ReversingLabs em fevereiro deste ano e atribuída a atores de ameaças norte-coreanos (também conhecidos como DPRK). Para recrutar desenvolvedores, os agressores se passam por empresas Web3 inexistentes em plataformas como LinkedIn e Facebook, ou através de ofertas de emprego em fóruns, solicitando a realização de uma tarefa de codificação que envolve o fornecimento de um repositório GitHub aparentemente benigno, o qual introduz comportamento malicioso por meio de uma dependência publicada no npm ou PyPI.
Essa descoberta coincide com a identificação de um novo conjunto de pacotes npm maliciosos reportados esta semana, que entregam o mesmo malware. Empresas de segurança como Checkmarx, JFrog e SafeDep destacaram vários desses pacotes. Em alguns casos, a execução do malware só é acionada quando uma operação criptográfica específica é realizada, um sinal claro de que a operação é altamente direcionada.
"O payload só é descriptografado quando a vítima resolve um sistema linear com uma matriz específica, recebe ordens de um contrato inteligente no testnet Ethereum Sepolia, mantém um segundo canal de comando aberto via Slack e oculta-se atrás de contagens de download geradas por uma fazenda de trabalhadores do GitHub Actions", comentou a JFrog.
A cadeia de ataque leva a um payload criptografado com criptografia assimétrica, cujas funções exatas permanecem desconhecidas. O implante se conecta a um canal do Slack, consulta o endpoint "conversations.history" a cada dez segundos e executa ações com base no tipo de pacote recebido. Além disso, existe um caminho baseado em blockchain que descriptografa dados remotos, escreve um subwatcher e o inicia com Node.js, segundo a SafeDep.
O malware para Go é uma versão adaptada que compartilha a infraestrutura de blockchain e Slack com a versão npm, empregando dois canais de comando e controle: um sistema de dead drop baseado em blockchain e um token de bot do Slack. Imediatamente após a infecção, o código coletam informações do sistema, como atributos de hardware, sistema operacional, hostname e disponibilidade do nó. Esses dados são então transmitidos para um canal do Slack controlado pelos atacantes através da API.
Após o check-in inicial, o malware gera um par de chaves pública e privada efêmeras e as combina com duas chaves públicas dos atores de ameaças para derivar uma chave compartilhada. Essa chave compartilhada permite que o malware se comunique com clientes infectados usando canais compartilhados, sem expor as comunicações C2 ou vazar mensagens entre hosts comprometidos, conforme explicou o pesquisador de segurança Oliver Smith.
O componente C2 baseado em blockchain recupera comandos de um contrato inteligente do Ethereum na rede de teste Arbitrum Sepolia, utilizando um endereço fixo no contrato. Os comandos, que são criptografados, são consultados a cada três segundos e posteriormente executados como código Go ou JavaScript. Segundo Smith, o mecanismo C2 é mais uma evidência de que esta operação é direcionada, com clientes consumindo todas as mensagens e permanecendo inativos caso não consigam descriptografar mensagens destinadas a outros clientes.
Especialistas, como Karlo Zanki da Socket, observam que a campanha Graphalgo mantém o mesmo estilo operacional, utilizando entrevistas de emprego falsas como vetor de acesso inicial. A execução está condicionada a um check básico por dados que provavelmente são fornecidos pelo componente front-end, um comportamento que pode sugerir ataques estreitamente direcionados, mas que provavelmente serve para dificultar a análise caso os pesquisadores descubram o payload de backend sem o front-end correspondente. O comportamento observado na operação Graphalgo original exibe a mesma característica.
O surgimento de provedores Terraform representa uma nova tática, embora esperada, já que esses provedores podem oferecer um caminho mais direto para obter credenciais de produção críticas. Os agentes de ameaças estão, assim, expandindo o alcance da campanha para além do npm e do PyPI. Não é a primeira vez que adversários norte-coreanos recorrem a provedores Terraform para distribuir malware; um relatório recente da SentinelOne descreveu o cluster de atividades denominado TraderTraitor utilizando arquivos de bloqueio Terraform weaponizados para entregar backdoors em Rust a partir de registros de provedores personalizados controlados pelos atacantes.
Zanki pondera que ainda é cedo para concluir com confiança que atores de ameaças vinculados ao DPRK estão adotando registros de Terraform como nova tática de distribuição. Ainda assim, sua recente aparição em duas campanhas distintas associadas a esses operadores torna a coincidência menos provável. Esses atores de ameaças são conhecidos por introduzir novas técnicas de infecção e aplicar métodos bem-sucedidos em múltiplas campanhas, indicando que os registros de Terraform podem representar o próximo canal de distribuição que eles adotarão em larga escala.
Este desenvolvimento surge em um momento em que outras empresas de segurança, como a CloudSEK, também estão monitorando atividades semelhantes, sinalizando uma evolução contínua nas ferramentas e técnicas utilizadas por grupos de ameaças persistence.
Com informações de: The Hacker News (THN)