Blog

No pretendo ser un gurú. En la red hay muchos y muy buenos.

26 Mar 2018

Seguridad en la Raspberry. Episodio V: Cazando Rootkits

Para poder detectar intrusos en nuestro sistema que puedan tener el control del mismo, vamos a instalar un detector de accesos no autorizados. El conjunto de herramientas que utilizan los intrusos se denominan rootkits, y para su detección voy a utilizar RkHunter.

Empezamos como siempre instalando:

sudo pacman -S rkhunter

Actualizamos la base de datos de RkHunter

sudo rkhunter --update --check -sk

Tomamos una muestra del estado actual de nuestro sistema operativo, creando una base de datos con los binarios actuales, para que RkHunter nos avise si alguno ha sido modificado

sudo rkhunter --propupd

Y lanzamos el primer chequeo manualmente. La opción rwo sólo nos reportará los mensajes de advertencia

sudo rkhunter -c --rwo

En el primer chequeo han saltado algunos falsos positivos que están ya ampliamente reportados en la red

Warning: The command '/usr/bin/ldd' has been replaced by a script
Warning: Hidden file found: /usr/share/man/man5/.k5identity.5.gz
Warning: The command '/usr/bin/egrep' has been replaced by a script
Warning: The command '/usr/bin/fgrep' has been replaced by a script

RkHunter también nos advierte del siguiente fichero oculto

Warning: Hidden file found: /etc/.updated: ASCII text

pero se trata de un fichero que ArchLinux utiliza en las actualizaciones.

Para evitar estos falsos positivos vamos a modificar el fichero de configuración de RkHunter

sudo nano /etc/rkhunter.conf

y añadiremos al final

# Rootkit Hunter Custom Settings

## Allow some hidden directories/files
ALLOWHIDDENDIR=/etc/.git
ALLOWHIDDENFILE=/etc/.etckeeper
ALLOWHIDDENFILE=/etc/.gitignore
ALLOWHIDDENFILE=/etc/.updated
ALLOWHIDDENFILE=/usr/share/man/man5/.k5identity.5.gz
ALLOWHIDDENFILE=/usr/share/man/man5/.k5login.5.gz

## Ignore the warnings: 'The command ... has been replaced by ...'
SCRIPTWHITELIST=/usr/bin/egrep
SCRIPTWHITELIST=/usr/bin/fgrep
SCRIPTWHITELIST=/usr/bin/ldd

También en el primer chequeo han aparecido las siguientes advertencias

Warning: Unable to check for passwd file differences
Warning: Unable to check for group file differences

Es un mensaje informativo en la primera ejecución cuando RkHunter todavía no había hecho una copia. En los siguientes ya no aparecen.

Si volvemos a ejecutar

sudo rkhunter -c --rwo

Solo deberían aparecer los cambios en los ficheros realizados.

Todo el análisis se guarda en rkhunter.log. Para consultarlo

sudo nano /var/log/rkhunter.log

Para evitar ejecutar manualmente, crearemos un script que nos permitirá ejecutar el análisis diario a las 3:00 de la madrugada.

sudo nano /etc/systemd/system/rkhunter.service
[Unit]
Description=rkhunter rootkit scan and malware detection

[Service]
Type=oneshot
ExecStart=/usr/bin/rkhunter --update
ExecStart=/usr/bin/rkhunter --propupd
ExecStart=/usr/bin/rkhunter --check -sk
RemainAfterExit=yes
sudo nano /etc/systemd/system/rkhunter.timer
[Unit]
Description=Run rkhunter daily at 3:00 AM

[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=multi-user.target

Activamos el servicio

sudo systemctl enable rkhunter.timer

y arrancamos

sudo systemctl start rkhunter.timer

Comprobamos con

systemctl list-timers --all

Por ultimo, y para que nos avise por mail de las advertencias encontradas modificaremos de nuevo

sudo nano /etc/rkhunter.conf
MAIL-ON-WARNING=Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
MAIL_CMD=mail -s "[rkhunter] Warnings found for ${HOST_NAME}" -a /var/log/rkhunter.log

Esto es todo para la detección de rootkits. En el siguiente artículo veremos como detectar y bloquear ataques automatizados utilizando Failban. ¿Regresamos al blog?

Visto 325 veces
Valora este artículo
(0 votos)

Deja un comentario

Asegúrate de llenar la información requerida marcada con (*). No está permitido el código HTML. Tu dirección de correo NO será publicada.

Twitter

Últimos tweets