Cómo escanear tu Linux contra virus y rootkits

Seguramente cualquier PC con sistema operativo Linux sea menos susceptible de infectarse que uno con Windows, pero eso no quita que no pueda ser igualmente comprometido. Lo peor es muchos usuarios no han instalado ni ejecutado nunca un antivirus en Linux (y ni mucho menos un anti-rootkit) cuando en otros equipos en Windows saben que no pueden (ni deben) trabajar sin un antivirus de puesto de usuario o endpoint.

No debemos caer en esa falsa sensación de seguridad. El malware por simple economía de escalabilidad está más presente en número y forma en sistemas Windows pero los usuarios de Linux debemos protegernos igualmente contra las mismas amenazas.

Precisamente, navegando por Internet encontré un pequeño artículo de Nick Congleton que recomienda usar ClamAV (quizás el antivirus de código abierto más usado en Linux) además de un par de herramientas para detección de rootkits. ¿Qué usas Linux y todavía no los tienes instalados? No dejes pasar esta oportunidad...

1. ClamAV

ClamAV y su frontend gráfico ClamTk son paquetes independientes. Si usas Ubuntu o una distribución basada en Debian puedes instalarlos simplemente con:

sudo apt install clamav clamtk

Una vez instalados tendremos que actualizar la base de datos del antivirus:

sudo freshclam


El mensaje anterior es debido a que freshclam está corriendo ya como demonio, así que si queremos forzar la actualización de forma manual necesitaremos pararlo previamente:

sudo systemctl stop clamav-freshclam

Ahora ya si podremos actualizar la bd sin problemas:


A continuación procederemos a escanear el filesystem completo (o si preferís un directorio en particular), para ello usaremos clamtk, la versión gráfica.

Eso sí, previamente tendremos que irnos a la configuración y marcar las opciones para que el motor escanee ficheros que empiecen con punto (.*), mayores de 20 MB y directorios recursivamente:


Finalmente seleccionaremos el directorio a escanear para empezar el proceso de análisis:


Una vez completada la exploración, ClamTK mostrará cualquier amenaza descubierta y nos permitirá elegir qué hacer con ellas.


Eliminarlas es obviamente mejor, pero podría desestabilizar el sistema, así que se requiere investigar un poco por si acaso.

2. Chkrootkit

El siguiente paso es instalar es Chkrootkit. Chkrootkit escanea los archivos del sistema para detectar signos de alteraciones maliciosas y los revisa contra una base de datos de rootkits conocidos.

Chkrootkit está disponible en la mayoría de los repositorios de muchas distribuciones y normalmente se debe poder instalar sin problemas con el gestor de paquetes correspondientes.

sudo apt install chkrootkit

Después simplemente ejecutamos el comando como root o con sudo.

sudo chkrootkit

Rápidamente empezará a buscar la posible presencia de una buena lista de rootkits conocidos. Puede detenerse durante un tiempo en algunos mientras explora archivos. Debería mostrar "nada encontrado" o "no infectado" al lado de cada uno.


El programa no da un informe final cuando termina, así que hay que volver y comprobar manualmente que no hay resultados.

También se puede parsear la salida del programa con grep y buscar INFECTED, pero eso no lo cogerá todo.

Falso Positivos Conocidos

Hay un error extraño con Chkrootkit que reporta un falso positivo para Linux/Ebury - Operation Windigo. Este es un error conocido desde hace tiempo por la introducción de un indicador -G en SSH. Hay un par de pruebas manuales que podemos ejecutar para verificar que es un falso positivo.

Primero, ejecutamos lo siguiente como root.

find /lib * -type f -name libns2.so

No debería aparecer nada. A continuación, comprobamos que el malware no esté utilizando un socket Unix.

netstat -nap | grep "@/proc/udevd"

Si ninguno de los dos comandos da resultados, el sistema está limpio.

También parece haber un falso positivo bastante nuevo para tcpd en Ubuntu. Si devuelve un resultado positivo en el sistema, investigaremos más, pero hay que tener en cuenta que casi con toda probabilidad el resultado podría ser incorrecto.


También podemos encontrar notificaciones para wted. Éstas pueden ser causados ​​por errores de corrupción o registro en fallos del sistema. Utilizaremos el último para comprobar si los tiempos se alinean con reinicios o bloqueos. En esos casos los resultados probablemente sean causados ​​por esos eventos y no por actividad maliciosa.

3. Rkhunter

Rkhunter es otra herramienta para buscar rookits. Es conveniente ejecutarlo adicionalmente en nuestro sistema para asegurarnos que chkrootkit no se dejó nada y para verificar falsos positivos.

De nuevo, éste debe estar en los repositorios de cada distribución.

sudo apt install rkhunter

Para ejecutar el análisis, primero debemos actualizar también la base de datos de rkhunter.

sudo rkhunter --update

A continuación, lanzamos el escaneo:

sudo rkhunter --check

El programa se detendrá después de cada sección:


Probablemente veremos algunas advertencias. Muchas surgen debido a ciertas configuraciones:


Cuando finalice la exploración, podremos echar un vistazo a log completo en /var/log/rkhunter.log. Ahí podemos ver cada advertencia en detalle.
También le ofrece un resumen completo de sus resultados de análisis.


Y esto es todo. Veis como con unos sencillos pasos hemos podido escanear nuestro sistema en busca de posibles amenazas. Si a ésto añadimos un firewall personal y un poco de sentido común, podremos utilizar un sistema Linux lo más seguro posible.

3 comentarios :

  1. Muy buen artículo! Gracias por la info.

    ResponderEliminar
  2. gracias por la ayuda, gracias a vosotros con vuestros artículos pude levantar htt://nomasvirus.com sois geniales, buen artículo, apoyado, te invito a ella, ella es vuestra, genios

    ResponderEliminar