Como detectar se o seu VPS foi comprometido
Um servidor invadido nem sempre dá sinais óbvios. Muitas vezes, o invasor usa a máquina silenciosamente para minerar criptomoedas, enviar spam ou atacar outros servidores. Saiba o que observar.
Sinais de alerta
- CPU alta constante sem motivo aparente (mineração);
- Tráfego de saída incomum ou aviso do provedor sobre ataques partindo do seu IP;
- Seu IP em listas de spam (blacklists);
- Usuários ou chaves SSH que você não criou;
- Arquivos estranhos em
/tmp,/dev/shmou na pasta do site; - Tarefas cron desconhecidas;
- Site redirecionando para páginas suspeitas ou com conteúdo injetado;
- Logs apagados ou com lacunas.
Investigando
Se suspeitar de invasão em um servidor crítico, considere tirar um snapshot antes de mexer — ele preserva evidências.
Processos
top -o %CPU
ps auxf --sort=-%cpu | head -20
Desconfie de processos com nomes aleatórios, rodando de /tmp ou /dev/shm, ou com nomes que imitam processos do sistema. Veja o executável real:
sudo ls -l /proc/PID/exe
Conexões de rede
sudo ss -tunap
sudo ss -tunap state established
Procure conexões para IPs e portas desconhecidas, especialmente de processos estranhos.
Usuários e acessos
cat /etc/passwd | grep -v nologin
getent group sudo wheel
last -a | head -30
sudo lastb | head -30 # tentativas falhas
cat ~/.ssh/authorized_keys
sudo cat /root/.ssh/authorized_keys
Tarefas agendadas
sudo crontab -l
for u in $(cut -f1 -d: /etc/passwd); do sudo crontab -l -u $u 2>/dev/null | sed "s/^/$u: /"; done
ls -la /etc/cron.* /etc/cron.d
systemctl list-timers --all
Arquivos modificados recentemente
sudo find /etc /usr/bin /usr/sbin -mtime -3 -type f
sudo find /var/www -name "*.php" -mtime -3
sudo find /tmp /dev/shm -type f -executable
Serviços desconhecidos
systemctl list-unit-files --type=service --state=enabled
ls -la /etc/systemd/system/
Ferramentas de verificação
sudo apt install rkhunter chkrootkit -y
sudo rkhunter --check
sudo chkrootkit
Para sites, scanners de malware específicos (como plugins de segurança no WordPress) ajudam a encontrar código injetado.
Confirmou a invasão. E agora?
- Isole: restrinja o acesso ao servidor (firewall) para conter o dano;
- Preserve evidências: snapshot e cópia dos logs;
- Não confie no sistema: um invasor com root pode ter deixado portas dos fundos difíceis de encontrar;
- Reconstrua: o caminho mais seguro é reinstalar o servidor do zero e restaurar dados de um backup anterior à invasão;
- Troque todas as credenciais: SSH, banco de dados, painéis, APIs, e-mails;
- Descubra a causa: plugin desatualizado? senha fraca? porta exposta? Corrija antes de voltar ao ar;
- Avalie obrigações legais: se houve vazamento de dados pessoais, a LGPD pode exigir comunicação à ANPD e aos titulares.
Prevenção
- SSH por chave, firewall e Fail2ban;
- Atualizações automáticas;
- Aplicações e plugins atualizados;
- Backups externos e testados;
- Monitoramento de recursos com alertas — CPU a 100% de madrugada é um sinal que você quer receber.
Conclusão
Detectar cedo reduz muito o impacto de uma invasão.Monte seu servidor com segurança desde o início em um VPS-NVME-BR da VittHost — e use o cupom SP-VITT20 para ganhar 20% de desconto na primeira fatura enquanto a promoção estiver ativa.