Skip to main content
Detección de rootkits en Linux con rkhunter

Detección de rootkits en Linux con rkhunter

Un rootkit es un programa que permite un acceso de privilegio continuo a un sistema pero que mantiene su presencia activamente.

Bienvenidos a un nuevo post en byte-mind, en este caso vamos a tratar una herramienta para la detección de rootkits en nuestro sistema Linux, se trata de rkhunter.

Vamos a ver en qué consiste esta herramienta, aunque para aquellos que no lo sepan vamos a explicar primero que es un rootkit.

 

¿Qué es un rootkit?

Un rootkit es un programa que permite un acceso de privilegio continuo a un sistema pero que mantiene su presencia activamente.

Se oculta del control de los administradores al corromper el funcionamiento normal del sistema operativo o de otras aplicaciones. El término proviene de una concatenación de la palabra inglesa “root” que significa raíz (nombre tradicional de la cuenta privilegiada en los sistemas operativos Unix) y de la palabra inglesa “kit” que significa conjunto de herramientas (en referencia a los componentes de software que implementan este programa). El término “rootkit” tiene connotaciones negativas ya que se le asocia al malware.

En otras palabras, usualmente se le asocia con malware, que se esconde a sí mismo y a otros programas, procesos, archivos, directorios, claves de registro, y puertos que permiten al intruso mantener el acceso a una amplia variedad de sistemas operativos como pueden ser GNU/Linux, Solaris o Microsoft Windows para remotamente ejecutar acciones o extraer información sensible.

Vista la explicación en este post no vamos a explicar a como protegernos sino que vamos a enseñar una herramienta que nos ayude a detertarlos, esa es la función de la tool rkhunter.

 

Instalación de rkhunter

Para la instalación del paquete podemos hacerlo desde el repositorio de la distribución utilizada o mediante la descarga e instalación del paquete desde su página oficial, vamos a explicar como hacerlo de las dos formas.

Para la instalación en sistemas basados en Debian:

O desde aptitude:

Instalaciónn en centos:

O, si disponemos de dnf:

 

La otra opción es la descarga del paquete desde sourceforge. Descargaremos el mismo:

Extracción del mismo:

E instalación:

 

Ayuda de la herramienta

Como siempre dispone de un comando de ayuda para observar las posibilidades del mismo:

 

Configuración de rkhunter

Una vez instalado rkhunter es necesario configurar el mismo antes de realizar la primera revisión del sistema, para ello deberemos editar el fichero de configuración situado en /etc/rkhunter.conf

Opciones para la actualización de la base de datos

La variable UPDATE_MIRRORS se encargará de verificar los archivos en busca de actualizaciones cuando se buscan actualizaciones de rkhunter con la opción –update, el valor a 1 permitirá estas actualizaciones.

La variable MIRRORS_MODE indicará que repositorios utilzar cuando se proporcionen las opciones de –update o –versioncheck, en este caso hay 3 posibles opciones:

  • 0 -> utiliza cualquier repo
  • 1 -> utiliza sólo repos locales
  • 2 -> utiliza sólo repos remotos

La variable WEB_CMD nos permite establecer el comando a utilizar cuando rkhunter se descarga datos de internet para la actualización de su base de datos, por defecto su valor está vacío.

 

Opciones para el escaneo y programación de tareas con cron

Por defecto, rkhunter generará un fichero en el directorio cron.daily para el análisis del sistema y búsqueda de actualizaciones, por lo tanto este script se ejecutará todos los días, pero es posible realizar algunos cambios para evitar cuando y como se hacen estos chequeos.

La variable CRON_DAILY_RUN (booleano) nos permite establecer si debe de ejecutarse diariamente, sólo deberemos de indicar con “true” o “false” si queremos que se ejecute.

La variable CRON_DB_UPDATE (booleano) permite especificar si queremos habilitar las actualizaciones semanales de la base de datos.

La variable APT_AUTOGEN (booleano) permite activar las actualizaciones automáticas de la base de datos.

 

Permitir ficheros y directorios ocultos

Podemos añadir en la configuración ficheros o directorios ocultos conocidos para evitar las alertas al realizar un chequeo con rkhunter, podemos hacerlo con la siguiente variable:

 

Chequear la configuración aplicada

Para verificar que no tenemos errores en los cambios aplicados, podemos ejecutar la opción –config-check o -C en su versión corta:

Si existe algún error mostraría el mismo para su corrección, en caso de no haber nada, el comando anterior no devolverá ninguna salida por consola.

 

Actualización de la base de datos de rkhunter

Una vez aplicada nuestra configuración podemos forzar la actualización de los datos de rkhunter mediante la opción –update, esta opción es vital ya que son los archivos que utilizará la herramienta para determinar si hay actividades sospechosas en el sistema, por lo que es necesario que estén actualizados.

Los ficheros i18/* son sólo para fines de localización por lo que no son esenciales para la funcionalidad del programa.

También podemos comprobar sólo la versión con el comando:

 

Establecer una línea base para los chequeos

Rkhunter comparará varias propiedades de los archivos existentes con lo obtenido anteriormente. Para actualizar el estado actual en el archivo de datos de rkhunter podemos realizar con la opción –propupd:

 

Chequear el sistema

Ahora que ya está configurado y actualizado el estado del sistema podemos realizar un chequeo del mismo con la opción –check.

Como lo he montado en una máquina virtual simplemente para la demostración, adjunto a continuación la salida completa del chequeo realizado:

 

Tal y como indica la salida anterior podemos ver el registro completo del chequeo en el log de la herramienta situado en la ruta /var/log/rkhunter/rkhunter.log

Además del comando anterior podemos utilizar la opción –skip-keypress o –sk en su versión corta para evitar que solicite un prompt con cada verificación:

O, mostrar sólo los mensaje de waring con la opción –report-warnings-only o –rwo en su versión corta:

 

Notificaciones por correo

Otra posibilidad es el envío de los resultados por correo electrónico en caso de que encuentre una amenaza en el sistema.

Para ello se debe indicar en el fichero /etc/rkhunter.conf con la siguiente variable indicando el correo en el cual queremos recibir la misma:

O también, es posible configurar el comando que se ejecutará para el envío del correo:

Completado este paso, chequea la configuración tal y como indicamos anteriormente para empezar a recibir mails con los resultados de los análisis.

 

 

Esto es todo por el momento, espero que esta herramienta les sea muy útil en su día a día para evitar ataques a sus sistemas y como siempre, cualquier duda o sugerencia es bienvenida en la sección de comentarios.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.