Proteger el servidor contra RootKits con ChkRootKit (OPCIONAL) en Linux

proteger-el-servidor-contra-rootkits-con-chkrootkit-en-linux

Generalidades

Un rootkit es una herramienta, o un grupo de ellas que tiene como finalidad esconderse a sí misma y esconder otros programas, procesos, archivos, directorios, claves de registro, y puertos que permiten al intruso mantener el acceso a un sistema para remotamente comandar acciones o extraer información sensible.

Chkrootkit (Check Rootkit) es una aplicación por consola que permite localizar rootkits conocidos, realizando múltiples pruebas en las que busca entre los binarios modificados por dicho software. Usa herramientas comunes de Linux como las órdenes strings y grep para buscar las bases de las firmas de los programas del sistema y correlacionar los resultados del archivo /proc con la salida de la orden ps (estado de los procesos (process status) para buscar discrepancias. Básicamente hace múltiples comprobaciones para detectar todo tipo de rootkits y archivos maliciosos.

Existen limitaciones inherentes en la confiabilidad de cualquier programa que procure detectar compromisos (tales como rootkits y virus informáticos). Los nuevos rootkits pueden específicamente intentar detectar y comprometer copias del programa chkrootkit o tomar otras medidas para evadir las detecciones que éste efectúa.

Instalación

Para instalar ChkRootKit debe ejecutarse:

cd /usr/local/src
wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz
tar xvzf chkrootkit.tar.gz
cd chkrootkit*
make sense

Nota: Verificar el md5, ingresando en ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.md5

Para ejecutar manualmente el comando es:

./chkrootkit [opciones] [nombre-a-probar]

Las [opciones] son:

  •  -h  Muestra la ayuda y sale
  •  -V  Muestra la versión y sale
  •  -l  Muestra las pruebas disponibles
  •  -d   Depuración
  •  -q  Modo Silencio
  •  -x  Modo Experto
  •  -r dir  Utiliza a dir como el directorio raiz
  •  -p dir1:dir2:dirN  Ubicación de los comandos externos usados por chkrootkit
  •  -n  Salta los directorios montados con NFS

Es de hacer notar que las opciones no funcionan sin los nombres de las pruebas a realizar [nombre-a-probar].

Los [nombre-a-probar] son:

  • aliens asp bindshell lkm rexedcs sniffer w55808 wted scalper slapper
  • z2 chkutmp amd basename biff chfn chsh cron crontab date du dirname
  • echo egrep env find fingerd gpm grep hdparm su ifconfig inetd
  • inetdconf identd init killall ldsopreload login ls lsof mail mingetty
  • netstat named passwd pidof pop2 pop3 ps pstree rpcinfo rlogind rshd
  • slogin sendmail sshd syslogd tar tcpd tcpdump top telnetd timed
  • traceroute vdir w write

Por ejemplo, el siguiente comando verifica si los ejecutables de ps y ls tienen troyanos y también verifica si la interfaz de red está en modo promiscuo:

./chkrootkit ps ls sniffer

La opción ‘-q’ puede usarse para colocar al chkrootkit en Modo Silencio. En este modo la salida resultante solo mostrará los mensajes con el estado infectado (`infected’) para las pruebas escogidas en [nombre-a-probar].

Con la opción `-x’ el usuario puede examinar cadenas sospechosas en los programas ejecutables que podrían indicar la existencia de un troyano. Todo el análisis se deja en manos del administrador del sistema. Puede verse mucha información ejecutando:

./chkrootkit -x | more

ó

./chkrootkit -x | egrep '^/'

chkrootkit utiliza los siguientes comandos para ejecutar sus pruebas:

awk, cut, egrep, find, head, id, ls, netstat, ps, strings, sed, uname.

Es posible usar la opción `-p’ para indicar la ubicación alternativa al chkrootkit de tal forma que no haga uso de los ejecutables del sistema posiblemente comprometido para realizar sus pruebas. Por ejemplo para utilizar los ejecutables ubicados en CD ROM (/cdrom/bin) puede ejecutarse:

./chkrootkit -p /cdrom/bin

Para lograr que nos envíe un email diario de ejecución debemos seguir los pasos a continuación:

nano /etc/cron.daily/chkrootkit.sh

Colocar dentro del archivo lo siguiente:

#!/bin/bash
cd /usr/local/src/chkrootkit-0.50/
./chkrootkit | grep INFECTED | mail -s "Ejecucion diaria de chkrootkit en el Servidor N" hostmaster@sudominio.com

Salir y Guardar.

Nota: En el texto del mensaje cambiar N por el número o nombre del servidor correspondiente.

Luego se debe colocar el permisivo adecuado al archivo creado con:

chmod 755 /etc/cron.daily/chkrootkit.sh

Para ejecutar una prueba ingresar en:

cd /etc/cron.daily/

y luego ejecutar

./chkrootkit.sh

Falso Positivo:

En los emails recibidos de chkrootkit se anuncia:

Checking `bindshell'... INFECTED (PORTS: 465)

Esto es un falso positivo para los servidores basados en Fedora y CentOS

Enlaces a Recursos:

http://www.chkrootkit.org/

http://www.chkrootkit.org/README

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *