dhpcd: O criptominer que se escondeu por quatro anos
Resumo executivo
O Grupo de inteligência sobre a segurança da Akamai detectou uma campanha de ataque de longa duração, que apelidamos de "dhpcd". A campanha visa máquinas Linux com servidores SSH utilizando a técnica de força bruta para descobrir senhas e executa um criptominerador Monero nessas máquinas.
A campanha foi identificada pela primeira vez em abril de 2018 pela rede de sensores de ameaça da Akamai e ainda permanece ativa.
Observamos mais de 2.200 ataques de mais de 800 IPs de origem exclusivos em nossa rede de sensores de ameaça desde o surgimento, com pico inconfundível em maio de 2022.
Como parte da cadeia de ataque, os invasores implantam várias backdoors usando alterações de senha e adicionando uma chave SSH, executam vários scripts para neutralizar concorrentes e usam tarefas cron e o arquivo rc.local para persistência.
Alguns dos arquivos binários do criptominerador são desconhecidos para outros fornecedores de segurança.
As origens da infraestrutura dos invasores são desconhecidas, pois operam atrás dos nós de saída do Tor. Alguns desses nós de saída do Tor pertencem a universidades, organizações sem fins lucrativos, empresas de cibersegurança e assim por diante.
A lista parcial de IOCs (Indicators of Compromise, Indicadores de Comprometimento) está disponível no apêndice. Uma lista completa de IOCs e um script de detecção estão disponíveis em nosso repositório público.
O que é dhpcd?
Como grande parte da Internet é executada na infraestrutura da Akamai, temos uma visão abrangente do que acontece. A descoberta de novos (ou dos mais recentes) malwares é um dos resultados dessa ampla visão. Em abril de 2018, o criptominerador baseado no software de código aberto XMRig, que chamamos de "dhpcd", foi detectado pelos sensores de ameaça da Akamai pela primeira vez e permaneceu ativo desde então. É incomum encontrarmos um malware que foi detectado e permaneça em execução por tanto tempo e com relativa consistência que não tenha sido analisado. Isso ocorre porque esse criptominerador usa força bruta, se esconde e se esquiva daquilo que poderia detectá-lo.
O nome é um jogo de palavras difícil de detectar com o daemon legítimo do Linux dhcpd: um processo responsável pela configuração do servidor DHCP em execução na máquina quando ela é iniciada. Essa técnica de troca de letras é muito usada em vários vetores de ataque a fim de escapar da detecção, parte do sucesso desse malware em permanecer ativo por pelo menos quatro anos. Ele usa nós de saída do Tor para se esconder, o que dificulta, se não impossibilita, rastrear as origens do ataque. Em seguida, ele executa a mineração da moeda de privacidade Monero. Conseguimos obter as carteiras Monero dos arquivos binários do criptominerador.
Ele passou por algumas modificações, o que contribuiu para que não fosse detectado não apenas localmente na máquina infectada, mas também por fornecedores de segurança e vários feeds de inteligência de ameaças. Nesta publicação do blog, entenderemos o fluxo e a mitigação do ataque e o impacto das várias implantações.
Atividade de incidentes
Desde abril de 2018, nossos sensores registraram mais de 2.200 incidentes de mais de 800 endereços IP exclusivos. Esses endereços IP pertenciam principalmente a empresas de hospedagem e comunicação. No entanto, também havia um número significativo de IPs de universidades e organizações sem fins lucrativos que, na verdade, se tornaram a infraestrutura para atender à finalidade pretendida do malware.
Em março de 2022, observamos uma grande atualização de versões do XMRig, o criptominerador em que o dhpcd se baseia, desde a versão 2.13.0 até a 5.2.0. Em conjunto com essa atualização de versões significativa, observamos um grande aumento em escala e escopo. Pouco depois disso, em maio de 2022, observamos o pico mais alto do ano até agora. Embora não tenha sido tão alto quanto o pico de 2021, isso mostra o desejo dos invasores de aumentar os ganhos potenciais desse malware em particular no futuro. É por isso que veremos mais exemplos disso nos próximos meses.
Escopo da campanha
Desde nossa primeira detecção do dhpcd, tivemos 2.215 ataques, espalhados por 843 IPs de invasores diferentes, com média de 2,6 ataques por IP. Para cada IP de origem, observamos um número de ataques que vai de 1 a 27.
Dos 840 IPs de invasores, aproximadamente 80% eram nós de saída do Tor, tornando quase impossível rastrear o agente invasor por trás do ataque. O uso do Tor é uma prática recomendada de OPSEC do lado dos invasores; no entanto, isso significa que as organizações que o utilizam participam ativamente da propagação do dhpcd (e de outras campanhas) e da distribuição de malware. Dentre as organizações detectadas pelos sensores de ataque da Akamai, havia máquinas pertencentes a universidades dos EUA, organizações europeias sem fins lucrativos e outras.
Com base no número de nós de saída do Tor existentes nesses países, a maioria dos IPs invasores estava localizada nos Estados Unidos e na Europa. A maioria dos ataques europeus vieram da Alemanha e dos Países Baixos.
Finanças
Os invasores usam várias carteiras para coletar os respectivos lucros de criptomineração. Encontramos 13 carteiras Monero exclusivas, codificadas nos arquivos binários do criptominerador. No processo de monitoramento dessas carteiras, descobrimos que cada uma continha um valor equivalente a 150–160 dólares. Depois de obter esse valor, os invasores provavelmente "migravam" para outra carteira. Considerando essa quantidade de saldo relativamente baixa que cada carteira detinha, presumimos que o número real de carteiras é significativamente mais elevado. Essas pequenas quantidades são outro exemplo da OPSEC desse malware: capturar e manter pequenas quantidades para reduzir as chances de detecção.
Os lucros totais que calculamos até agora são de aproximadamente 85 mBTC, o que equivale a cerca de 2.000 dólares. Mas presumimos que há mais carteiras em arquivos de malware que não obtivemos, portanto, o ganho real provavelmente é significativamente maior.
Os invasores mineraram moedas Monero (XMR) usando os domínios de pool de mineração minexmr[.]com, como: sg97[.]minexmr[.]com, fr13[.]minexmr[.]com, us40[.]minexmr[.]com etc. A lista completa está em nosso repositório de IOCs.
Em 19 de agosto, esses pools de mineração foram fechados, e os invasores tiveram de encontrar outra solução. O pool de mineração atual é pool[.]supportxmr[.]com:80.
Fluxo de ataque
Violação inicial
Os invasores violam as máquinas Linux de destino que executam servidores SSH usando a descoberta de senhas por forma bruta. Em seguida, eles baixam um arquivo executável fictício para a pasta bin usando SCP. O programa fictício registra simplesmente "Hello, World" no console, possivelmente para verificar as permissões de execução. Os nomes dos arquivos são strings alfanuméricas aleatórias de 26 caracteres, como /bin/cpuufcdmorv9crpa8h6wgh6iq2.
Criptominerador
Em seguida, os invasores baixam o criptominerador, um arquivo chamado "dhpcd", para o mesmo diretório via SCP. O minerador procura servidores de pool de mineração disponíveis na porta TCP 4444:
fr14[.]minexmr[.]com
ca61[.]minexmr[.]com
sg97[.]minexmr[.]com
fr13[.]minexmr[.]com
us40[.]minexmr[.]com
Persistência
Os invasores concentram-se, então, em tornar o criptominerador persistente. Eles usam várias técnicas para isso.
Eles começam alterando as senhas de usuários existentes no sistema, como root, admin, test, oracle, test1, ubuntue muito mais. Eles protegem as próprias alterações modificando os atributos do /etc/shadow, um arquivo que mantém as senhas com hash no sistema, assim como seus metadados.
Os invasores adicionam sua própria chave SSH ao arquivo ~/.ssh/authorized_keys e a tornam imutável.
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCuhPmv3xdhU7JbMoc/ecBTDxiGqFNKbe564p4aNT6JbYWjNwZ5z6E4iQQDQ0bEp7uBtB0aut0apqDF/SL7pN5ybh2X44aCwDaSEB6bJuJi0yMkZwIvenmtCA1LMAr2XifvGS/Ulac7Qh5vFzfw562cWC+IOI+LyQZAcPgr+CXphJhm8QQ+O454ItXurQX6oPlA2rNfF36fnxYss1ZvUYC80wWTi9k2+/XR3IoQXZHKCFsJiwyKO2CY+j
Os invasores usam o cron, um agendador de tarefas que define comandos e tarefas a serem executados periodicamente, para executar o criptominerador a cada hora. Como outra ferramenta de persistência de exploração de recursos, eles baixam um arquivo de script /etc/rc.local que inicia o criptominerador simultaneamente a cada inicialização do sistema:
/bin/dhpcd -o ca.minexmr.com:4444 -B >/dev/null 2>/dev/null exit 0
Neutralização da atividade dos concorrentes
Os invasores concentram-se em eliminar a atividade de outros agentes de ameaça para maximizar os recursos das máquinas e, consequentemente, os lucros. Para isso, eles executam dois scripts do diretório /dev/shm: /dev/shm/knrm e /dev/shm/r , mas antes verificam as permissões de execução desse diretório (novamente usando o programa "Hello, World").
A pasta /dev/shm é um sistema de arquivos tmpfs. Ela mantém todos os seus arquivos na memória virtual em vez de armazená-los em um dispositivo de armazenamento persistente. Ao salvar e executar scripts da /dev/shm, o malware não deixa rastros desses arquivos no sistema de arquivos.
Os scripts Bash eliminam a concorrência completamente. Usaremos o /dev/shm/r para demonstrar como isso é feito. O script começa consultando os principais processos consumidores de recursos em execução no sistema e encerra aqueles que consomem muita RAM a fim de garantir que mais memória esteja disponível para sua própria atividade. Em seguida, ele exclui arquivos cron associados a outras campanhas de ataque, como XorDdos, Tsunami e aliyun.one.
/etc/cron.hourly/gcc.sh
/etc/cron.hourly/cron.sh
/etc/cron.hourly/gcc4.sh/lib/libudev.so
O script exclui arquivos associados às campanhas de malware mencionadas anteriormente (além de outras).
/root/pty
/tmp/bash
/dev/shm/bash
/var/tmp/bash
/var/lock/bash
/var/run/bash
/bin/httpsd
/lib/udev/udev
/lib/udev/debug
/root/sysem
/root/systma
/etc/jourxlv
/tmp/sysem
/tmp/su
'/tmp/ddgs.*'
/root/pty10
/root/pty4
/root/xmr64
/usr/local/sbin/t
/usr/local/sbin/rsync
/etc/ceurnad
Além disso, ele encerra processos relacionados a malware, como Xm64, Ceurnad, /tmp/samba e Sc64u se estiverem em execução.
Para coletar informações sobre concorrentes novos ou desconhecidos, o script executa o comando atq para exibir a lista de tarefas pendentes, bem como os arquivos de vários diretórios do sistema. Depois de filtrar padrões de arquivos conhecidos (dump, docker, mount etc.), o invasor obtém uma lista de arquivos de malware possivelmente rivais.
Detecção e mitigação
O uso de servidores SSH é muito comum. Infelizmente, também são comuns servidores SSH executados com altos privilégios e acessados com senhas básicas. Os ataques direcionados a SSH, como o dhpcd, podem ser facilmente bloqueados configurando o SSH para funcionar exclusivamente com chaves privadas e públicas e que bloqueiam todas as tentativas de login com base em senha.
Para isso, modifique seu arquivo de configuração SSH (/etc/ssh/sshd_config) para que tenha as duas linhas a seguir:
PermitRootLogin no
PasswordAuthentication no
Para bloquear a atividade de criptomineração do dhpcd, você pode bloquear a porta TCP de saída 4444, que foi usada em um número significativo de incidentes de ataque que observamos. Além disso, bloqueie todas as conexões a domínios de pool de mineração conhecidos. Você pode encontrar os que são relacionados ao dhpcd em nosso repositório de IOCs.
Para detectar se o sistema está infectado, execute nosso script de detecção para localizar rastros do dhpcd.
Considerações finais
O dhpcd é uma campanha de criptomineração que usa técnicas testadas e comprovadas: se dissemina por SSH, executa um criptominerador baseado no conhecido XMRig e usa táticas conhecidas para configurar backdoors e eliminar concorrentes.
Essa campanha demonstra uma OPSEC melhor do que a da maioria das campanhas de ataque que observamos, incorporando o Tor ao canal de infecção. O uso do Tor impede que as defesas rastreiem a infraestrutura e as origens do ataque, tornando toda a operação mais estável e resistente.
O uso do Tor é como uma espada de dois gumes: as organizações o utilizam para fins de anonimato, privacidade e segurança. Contudo, ao instalar nós de saída, eles se tornam parte da cadeia de infecção como consequência. Mesmo não estando necessariamente infectadas, essas organizações fornecem um mecanismo que é usado para espalhar o malware pela Internet, ajudando os invasores a permanecer anônimos e protegidos.
Mais uma vez, o dhpcd nos prova que até mesmo as campanhas de ataque mais básicas e simples, caracterizadas por ataques de dicionário realizados para comprometimento e por nomes de arquivos cujas letras são trocadas para reduzir a detecção, ainda conseguem infectar redes e lucrar. Além disso, essas campanhas são desenvolvidas e mantidas para aumentar a escala e o escopo dos ganhos potenciais. No entanto, as táticas, dicas e procedimentos simples sugerem que, mesmo com medidas de proteção básicas, as defesas de alerta podem aumentar a segurança dos próprios sistemas.
Apêndice: indicadores de comprometimento
A seguir, apresentamos uma lista parcial de IOCs. Veja a lista completa em nosso repositório.
Nomes de arquivos
/bin/[a-z0-9]{26} (programa "Hello, World")
/bin/dhpcd
Domínios
fr14[.]minexmr[.]com
ca61[.]minexmr[.]com
sg97[.]minexmr[.]com
fr13[.]minexmr[.]com
us40[.]minexmr[.]com
pool[.]supportxmr[.]com
Hashes de arquivos
eb808932714c9533962e129e61d84c29536497e62b2a7d89dce3376d882c6965
e971fa0c392a9f43c37dccfdd4f8e6bc109e162716d9b206170f7bb133634ffd
76005592ad7d8901c64a5cfbcdde589a960ba35c9672da6182d131cd67ae0c97
2cca764d24212f8fc58780b9135740929f38b45bcd5fc82c4a2ff47e90890d06
3ea8cc0977e5542053353bcf3e58de947dd727259369707a13a4d0c8f14b7486