Servidores y VPS

Malware en VPS: cómo detectarlo y limpiar tu servidor

Aprende a detectar malware en tu servidor VPS con comandos clave, herramientas gratuitas y los pasos exactos para limpiar una infección sin perder tu sitio.

Numerous wires and cables mounted into server patch panel in modern data center

Si sospechas que tu VPS tiene malware, la respuesta directa es esta: busca procesos anómalos, archivos modificados recientemente en rutas del sistema y conexiones de red no autorizadas. Con tres comandos puedes tener una primera imagen clara en menos de cinco minutos.

A continuación encontrarás un proceso completo: señales de alerta, herramientas de análisis gratuitas y los pasos para limpiar la infección y reforzar el servidor.

Señales de que tu VPS podría estar infectado

No todo comportamiento raro es malware, pero estas señales merecen investigación inmediata:

  • CPU o RAM al 100% sin causa aparente. Un proceso oculto de minería o un bot DDoS consume recursos de forma constante.
  • Tráfico de red inusual. Conexiones salientes hacia IPs desconocidas o picos de ancho de banda fuera de horario.
  • Archivos del sistema modificados recientemente. Binarios del sistema que nadie debería haber tocado con fecha de hoy.
  • Nuevos usuarios o claves SSH. Líneas inesperadas en /etc/passwd o en ~/.ssh/authorized_keys.
  • Listas negras de IP o dominio. Tu dominio o IP aparece en listas antispam o tu correo rebota.
  • Tu proveedor te avisa. Notificaciones de abuso por escaneo de puertos, spam o ataques salientes.

Comandos para detectar malware rápidamente

Ejecuta estos comandos como root (o con sudo) para una primera revisión.

Procesos sospechosos

# Procesos ordenados por uso de CPU
top -b -n 1 | head -20

# Todos los procesos con su ruta real del ejecutable
ps aux --sort=-%cpu | head -20

# Busca procesos sin nombre visible (truco rootkit)
ls /proc/*/exe 2>/dev/null | xargs -I{} readlink {} 2>/dev/null | sort -u

Conexiones de red activas

# Conexiones establecidas con el proceso que las originó
ss -tunap

# Escucha en puertos no estándar
ss -tlnp | grep -v ':22\|:80\|:443\|:3306'

Archivos modificados recientemente en rutas críticas

# Archivos cambiados en las últimas 24 horas en /bin /usr /etc /tmp
find /bin /usr/bin /usr/sbin /etc /tmp -mtime -1 -ls 2>/dev/null

Cron jobs ocultos

# Crontabs de todos los usuarios
for u in $(cut -f1 -d: /etc/passwd); do crontab -l -u "$u" 2>/dev/null && echo "--- $u"; done

# Archivos en /etc/cron.* y /var/spool/cron
ls -la /etc/cron.* /var/spool/cron/crontabs/ 2>/dev/null

Herramientas gratuitas de escaneo

Los comandos manuales tienen límites. Estas herramientas automatizan la detección y reconocen firmas conocidas.

Herramienta Qué detecta Cómo instalar (Ubuntu/Debian)
ClamAV Virus, troyanos, webshells PHP apt install clamav && freshclam
rkhunter Rootkits, backdoors, cambios en binarios apt install rkhunter
chkrootkit Rootkits clásicos de Linux apt install chkrootkit
Maldet (LMD) Malware orientado a hosting web Descarga desde rfxn.com

Ejemplo de escaneo completo con ClamAV:

clamscan -r --bell -i /var/www /home /tmp /usr/local/bin 2>/dev/null

Ejemplo con rkhunter:

rkhunter --update && rkhunter --checkall --skip-keypress 2>&1 | grep -E 'Warning|Infected'

Pasos para limpiar la infección

Una vez confirmada la infección, sigue este orden. La limpieza apresurada sin entender el alcance puede dejar puertas traseras activas.

  1. Aisla el servidor. Bloquea el tráfico saliente no esencial con tu firewall para detener la exfiltración o los ataques hacia terceros.
  2. Guarda evidencia. Copia los logs actuales (/var/log/auth.log, /var/log/syslog, /var/log/apache2/) antes de que roten o se borren.
  3. Identifica el vector de entrada. Revisa logs de acceso SSH (lastlog, last, /var/log/auth.log) y los logs de tu servidor web para encontrar la petición que abrió la puerta.
  4. Elimina los archivos maliciosos. Borra solo lo que hayas identificado con certeza. Si usas ClamAV con --remove, confirma cada archivo antes.
  5. Revoca accesos comprometidos. Cambia todas las contraseñas, regenera claves SSH, elimina usuarios no reconocidos de /etc/passwd y limpia authorized_keys.
  6. Actualiza todo el software. Aplica parches de sistema operativo, CMS, plugins y dependencias. La vulnerabilidad explotada puede seguir abierta.
  7. Restaura desde backup limpio si hay dudas. Si no puedes confirmar que el sistema está 100% limpio, un reinstalado desde imagen es más seguro que la limpieza manual.

Si tu VPS fue comprometido seriamente, considera leer la guía seguridad avanzada para servidores VPS para entender el alcance completo de las medidas preventivas.

Prevención: cómo evitar la próxima infección

La detección reactiva es necesaria, pero la prevención es más barata. Estas prácticas reducen drásticamente la superficie de ataque:

  • Deshabilita el login SSH por contraseña. Usa solo claves SSH y desactiva el acceso de root directo.
  • Mantén el sistema actualizado. Activa actualizaciones automáticas de seguridad o revísalas semanalmente.
  • Usa un firewall estricto. Abre solo los puertos que realmente necesitas. ufw default deny incoming es un buen punto de partida.
  • Monitorea con Fail2ban. Bloquea IPs que intenten fuerza bruta en SSH, WordPress, FTP y correo.
  • Haz backups automáticos fuera del servidor. Un backup en el mismo VPS no te protege si el atacante tiene acceso root.
  • Instala un escáner periódico. Programa ClamAV o Maldet para correr cada noche y enviarte el reporte por correo.

Para un enfoque integral de seguridad, los especialistas de elenlace.com pueden auditar tu VPS y configurar monitoreo continuo para que no tengas que hacerlo solo.

Conclusiones clave

  • Los síntomas más comunes de malware en VPS son CPU/RAM elevada sin causa, conexiones salientes anómalas y archivos del sistema modificados.
  • Con top, ss -tunap y find puedes hacer un primer diagnóstico en minutos.
  • ClamAV, rkhunter y chkrootkit son herramientas gratuitas que automatizan la detección de firmas conocidas.
  • La limpieza debe seguir un orden: aislar, evidenciar, identificar el vector, eliminar, revocar accesos y actualizar.
  • La prevención (SSH con claves, firewall estricto, actualizaciones automáticas) es mucho más barata que la remediación.

Si sospechas que tu servidor está comprometido o quieres blindarlo antes de que ocurra un incidente, contacta a elenlace.com para una revisión de seguridad profesional.

Preguntas frecuentes

¿Puedo limpiar el malware sin reinstalar el servidor?

En muchos casos sí, especialmente si la infección está confinada a archivos web (webshells, scripts PHP maliciosos). Si hay un rootkit que comprometió binarios del sistema o el kernel, la reinstalación limpia es la única opción confiable.

¿Cuánto tarda un escaneo completo con ClamAV?

Depende del tamaño del disco. En un VPS con 20 GB de datos puede tardar entre 10 y 40 minutos. Puedes acotar el escaneo a /var/www y /home para resultados más rápidos si solo te preocupan los archivos web.

¿Rkhunter siempre da falsos positivos?

Sí, especialmente tras actualizaciones del sistema, porque compara los binarios actuales contra una base de referencia. Cuando aparezca una advertencia, verifica manualmente si el cambio corresponde a una actualización legítima del paquete antes de alarmarte.

¿Mi proveedor de VPS me avisa si hay malware?

Algunos proveedores monitorean el tráfico de red y te notifican si tu servidor genera abuso (spam, escaneo de puertos). Sin embargo, no escanean activamente tus archivos: esa responsabilidad es tuya. Por eso conviene configurar un escáner automático desde el primer día.

Para saber más

Otros proveedores y guías que vale la pena comparar:

← Todos