Jenkins Miner explora desserialização Java no Jenkins para mineração de Monero

Jenkins Miner explora desserialização Java no Jenkins para mineração de Monero

Operação combinou abuso da interface CLI do Jenkins, exploração da CVE-2017-1000353, PowerShell oculto, download de minerador Monero e infraestrutura de pools para monetizar servidores comprometidos.

ComponenteServidores Jenkins com interface CLI exposta e implementação Java vulnerável a desserialização insegura pela CVE-2017-1000353.
VetorO operador envia duas requisições subsequentes à interface CLI; a segunda usa o cabeçalho de sessão correspondente e carrega objetos serializados manipulados.
ImpactoExecução de código para iniciar mineração de Monero, degradação de desempenho, aumento de carga e possibilidade de indisponibilidade por consumo de recursos.
PrioridadeIdentificar Jenkins exposto, corrigir a falha conhecida, restringir a CLI, caçar execução anômala de PowerShell e remover mineradores persistentes.
ArtefatosO fluxo observado envolve um objeto Capability, um objeto Command, PowerShell em segundo plano e o binário minerxmr.exe gravado em caminho do Windows.
IoCsExemplo defangado essencial: hxxp://222[.]184[.]79[.]11:5329/minerxmr.exe; o uso de pools de mineração e de uma carteira única também foi descrito.
MitigaçãoAplicar correção da vulnerabilidade, limitar acesso à interface administrativa, revisar processos e conexões de mineração, e validar se não restaram componentes de RAT ou XMRig.
Resumo técnico

A operação conhecida como Jenkins Miner explorou servidores Jenkins vulneráveis para instalar componentes de mineração de Monero e transformar recursos computacionais de vítimas em receita para o operador. O ponto técnico central é a exploração da CVE-2017-1000353, uma falha na implementação Java de desserialização do Jenkins. A condição descrita permite que objetos serializados sejam aceitos sem validação suficiente, criando uma oportunidade para que um cliente malicioso induza o servidor a processar conteúdo controlado pelo atacante. No fluxo observado, a interface CLI do Jenkins é usada como canal de entrada, e a cadeia depende de requisições sequenciais que preservam uma relação de sessão antes do envio do objeto que contém a instrução maliciosa.

O impacto não se limita ao simples consumo de CPU por mineração. A execução do minerador dentro de um servidor Jenkins pode degradar builds, atrasar pipelines, consumir memória, elevar uso de disco e afetar disponibilidade de serviços que dependem da plataforma de automação. O contexto também descreve a possibilidade de lentidão e negação de serviço quando a carga se torna intensa. Como o Jenkins costuma armazenar integrações com repositórios, credenciais de automação e conexões com ambientes de entrega, a presença de um minerador em um servidor desse tipo deve ser tratada como comprometimento de infraestrutura, mesmo quando o objetivo financeiro observado seja mineração de criptomoeda.

Fluxo técnico

A cadeia começa com duas requisições subsequentes direcionadas à interface CLI do Jenkins. A primeira estabelece a sessão inicial. A segunda é construída para corresponder ao cabeçalho de sessão e transportar dois objetos serializados relevantes. O primeiro objeto, identificado como Capability, informa capacidades do cliente ao servidor. O segundo, identificado como Command, carrega o conteúdo usado para acionar a execução. A fragilidade decorre da aceitação indevida de objetos serializados na implementação vulnerável, o que dá ao operador a capacidade de inserir lógica que será interpretada no contexto do processo do Jenkins.

Após a desserialização maliciosa atingir o servidor, o fluxo observado usa PowerShell de forma oculta para manter a execução em segundo plano. O script cria um cliente web com variação de caixa em nomes e chamadas, uma técnica simples de evasão contra controles frágeis que procuram padrões textuais exatos. Em seguida, baixa o binário de mineração minerxmr.exe de uma infraestrutura remota para um caminho local no Windows e inicia o processo para produzir Monero. O comando operacional foi omitido, mas o efeito defensivo relevante é claro: download remoto de executável, gravação em diretório do sistema e criação de processo associado a mineração.

A operação também é descrita como uma combinação de funcionalidades de RAT e minerador XMRig ao longo de meses de campanhas. Esse detalhe muda a leitura defensiva: não basta encerrar o processo de mineração se houver indício de componente remoto capaz de manter controle ou reinstalar artefatos. A troca de pools de mineração entre campanhas indica manutenção ativa da infraestrutura de monetização, enquanto o uso de uma única carteira para depósitos sugere centralização operacional dos ganhos. O valor reportado de aproximadamente 3 milhões de dólares minerados mostra que a atividade alcançou escala relevante antes de ser documentada.

Superfície afetada

A superfície primária é formada por instâncias Jenkins que expõem a interface CLI e permanecem vulneráveis à CVE-2017-1000353. Em ambientes corporativos, esse tipo de servidor frequentemente fica em redes internas de engenharia, zonas de CI/CD ou segmentos conectados a repositórios, agentes de build e sistemas de implantação. Mesmo quando o minerador é executado em um host Windows específico, a plataforma Jenkins pode coordenar múltiplos nós, o que amplia o esforço de verificação para além do servidor principal. A notícia também menciona que o minerador é capaz de operar em muitas plataformas e versões de Windows, mas não fornece uma matriz completa de versões afetadas.

O perfil de vítima descrito inclui máquinas ao redor do mundo e, até aquele momento, uma quantidade significativa de computadores pessoais. Ainda assim, o vetor Jenkins coloca ambientes de infraestrutura e automação em foco, porque servidores de build expostos tendem a oferecer alta disponibilidade, bons recursos de CPU e conectividade útil para baixar componentes externos. A consequência operacional imediata é a perda de capacidade computacional para tarefas legítimas. Em pipelines, isso pode aparecer como builds mais lentos, filas maiores, timeouts, falhas intermitentes e aumento de custo em infraestrutura hospedada.

A exposição também depende de controles de rede e autenticação. Uma interface administrativa acessível de redes amplas, sem filtragem adequada, aumenta a chance de abuso. A presença de egress irrestrito facilita o download do minerador e a comunicação com pools. Onde há agentes Jenkins distribuídos, credenciais de serviço ou permissões amplas, a resposta deve verificar se o comprometimento ficou contido no host inicial ou se algum componente de controle remoto tentou ampliar alcance.

  • Servidores Jenkins com CLI acessível e correção da CVE-2017-1000353 ausente.
  • Hosts Windows nos quais o binário minerxmr.exe possa ter sido gravado e executado.
  • Ambientes de CI/CD com saída para a internet permitindo download de executáveis e comunicação com pools de mineração.
  • Nós de build ou agentes conectados ao Jenkins que possam herdar tarefas, scripts ou processos anômalos.
Hunting e telemetria

A investigação deve começar pela linha do tempo do Jenkins. Procure acessos à interface CLI com pares de requisições próximos no tempo, uso de cabeçalhos de sessão correlacionados e erros ou eventos incomuns associados ao processamento de objetos serializados. Logs de aplicação, proxy reverso e balanceadores podem mostrar requisições ao endpoint administrativo, origem de IP, user-agent, volume e sequência. A ausência de logs detalhados não elimina a hipótese de exploração; nesse caso, a análise deve se apoiar em processos, arquivos criados, conexões de saída e comportamento de carga.

No endpoint, os sinais mais relevantes são criação de processo PowerShell sem relação com tarefas administrativas esperadas, execução em segundo plano, download de executável remoto e surgimento do arquivo minerxmr.exe em caminho do Windows. A telemetria de EDR deve correlacionar o processo pai com o serviço Jenkins ou com o usuário de serviço usado pela plataforma. Picos persistentes de CPU, processos com argumentos associados a mineração, conexões frequentes para pools e tráfego de saída em horários incomuns são sinais de alta utilidade. A investigação também deve procurar artefatos compatíveis com XMRig e possíveis componentes de acesso remoto, já que a operação foi descrita como híbrida.

Na rede, o indicador defangado hxxp://222[.]184[.]79[.]11:5329/minerxmr.exe é um exemplo pontual, mas não deve ser tratado como lista completa. O texto descreve mudanças de pools entre campanhas, portanto a detecção por um único endereço tende a ser frágil. É mais consistente caçar padrões: downloads de executáveis a partir de servidores Jenkins, comunicação para serviços de mineração, processos de build estabelecendo conexões externas incomuns e novas tarefas que coincidam com degradação de desempenho. Em ambientes com proxy, filtre por agentes Jenkins ou contas de serviço acessando destinos não relacionados ao ciclo normal de desenvolvimento.

  • Requisições sequenciais à interface CLI do Jenkins com cabeçalhos de sessão relacionados.
  • Processos PowerShell iniciados a partir do serviço Jenkins ou de contas de automação.
  • Criação ou execução de minerxmr.exe em diretórios do Windows.
  • Tráfego de saída para infraestrutura de download ou pools de mineração, incluindo o exemplo hxxp://222[.]184[.]79[.]11:5329/minerxmr.exe.
  • Aumento sustentado de CPU, filas de build maiores e timeouts sem mudança legítima de carga.
Mitigação

A resposta deve priorizar contenção da superfície Jenkins antes de apenas remover o minerador. Instâncias expostas precisam ser inventariadas, corrigidas contra a CVE-2017-1000353 e revisadas quanto ao acesso à interface CLI. Quando a CLI não for necessária, a redução ou desativação do acesso diminui a superfície. Quando for necessária, o acesso deve ser restrito por rede, autenticação e segmentação. Também é importante revisar a política de saída: servidores de CI/CD raramente precisam baixar executáveis arbitrários de destinos desconhecidos, e controles de proxy podem impedir que uma exploração inicial conclua a etapa de instalação.

Em hosts suspeitos, encerre processos de mineração somente após coletar evidências suficientes para preservar a linha do tempo. Remova o binário, verifique tarefas agendadas, serviços, scripts de inicialização, chaves de persistência e artefatos de acesso remoto compatíveis com o comportamento descrito. Como o texto indica uso combinado de RAT e minerador XMRig, trate o ambiente como potencialmente controlado por operador humano até que logs e telemetria indiquem o contrário. Credenciais usadas pelo Jenkins, tokens de integração e segredos acessíveis a jobs devem ser revisados e rotacionados quando houver indício de execução de código no servidor.

A validação final deve confirmar que builds voltaram ao perfil normal de consumo, que não há novos downloads de binários, que conexões para pools cessaram e que a versão do Jenkins está corrigida. Equipes de engenharia devem revisar jobs que executam scripts com permissões amplas, pois um servidor de automação comprometido pode mascarar atividade maliciosa como tarefa legítima. A defesa também deve transformar a ocorrência em regra de monitoramento: alertas para PowerShell iniciado pelo Jenkins, criação de executáveis fora do fluxo de build, uso anômalo de CPU e comunicação externa inesperada a partir de servidores de CI/CD.

  • Corrigir Jenkins contra a CVE-2017-1000353 e validar a versão efetivamente implantada.
  • Restringir ou desabilitar a interface CLI quando ela não for necessária ao ambiente.
  • Bloquear saída direta para downloads de executáveis e pools de mineração a partir de servidores de CI/CD.
  • Remover minerxmr.exe e investigar persistência, tarefas agendadas, serviços e componentes de RAT.
  • Rotacionar credenciais e tokens acessíveis ao Jenkins se houver evidência de execução de código no servidor.
  • Criar alertas para PowerShell filho do processo Jenkins, picos de CPU e tráfego de mineração.

Postar um comentário

0 Comentários