Seguridad del sistema Linux- Rootkits- Malware- Puertos Abiertos.
En anteriores artículos les comentaba el uso del antivirus ClamAV y su interfaz gráfica ClamTK para mantener limpios y a salvo nuestras distros Linux que por otro lado son uno de los sistemas más sólidos hasta el momento. Pero como las habilidades tecnológicas de algunos sujetos evolucionan a un ritmo veloz, nos podemos encontrar con algunas amenazas peculiares, como diversos tipos de Malware de diseño especifico que se camuflan y tratan de pasar desapercibidos en nuestro sistema, así como los procesos ocultos que generan la apertura de puertos, cambios de registros, etc, como es el caso de los llamados Rootkits que usas técnicas diversas.
Definición según la Wikipedia:
“El término Rootkits tiene connotaciones peyorativas ya que se lo asocia al Malware, al esconder 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 comandar acciones o extraer información sensible.”
Como veis “el espécimen en cuestión” es todo un hábil maestro del camuflaje y las herramientas de infiltración, pero tranquilos afortunadamente el software libre lleva años combatiendo todo tipo de amenazas. Por ello hoy hablaremos de Chkrootkit y Rkhunter, dos herramientas que cuentan ya con años de solera a sus espaldas, encauzadas a permitirnos un escaneo en profundidad de sistema Linux para localizar la existencia de estos “cabroncetes en potencia,” así como su eliminación sin problemas de un modo sencillo mediante la linea de comandos ¡eso si! Creo que es un buen momento para irle perdiendo el miedo a la terminal, ¡animo amigos! Creerme todo se aprende.
Cabe destacar que ambas herramientas tiene un campo de acción parecido y su uso es similar ya que escanean bajo demanda del usuario los cambios mencionados y la existencia de Rootkits en el sistema.
Campo de acción de Chkrootkit y Rkhunter. Veréis son dos aplicaciones de escaneo parecidos pero con sutiles diferencias.
-
Chkrootkit (Check Rootkit)
Es un programa de escaneo mediante la terminal de los sistemas Unix y así como sus derivados que nos permiten localizar Malware, concretamente Rootkits, mediante la búsqueda de ficheros de código binario modificado por dichos Malware. Básicamente analiza las huellas o cambios en Linux, sirviéndose de las ordenes “strings y grep” para buscar las bases de firmas de los programas comunes del sistema comparándolos con el archivo del sistema “/proc” con la salida de orden “Ps” que básicamente son el (estado de los procesos (process status)) y revisa las posibles discrepancias. Todo esto puede sonar a “chino mandarín” pero básicamente busca y compara los registros legitimamos del sistema y localiza posibles diferencias que alerten de la localización de todo tipo de Rootkits y ficheros maliciosos.
Aunque en el “universo no perfecto donde vivimos” se puede dar el caso, de que estos especímenes de Malware pueden llegar también a atacar y comprometer las firmas de Chkrookit o medidas similares para evadir ser localizados.
-
Rkhunter (o Rootkit Hunter)
Esta otra aplicación similar a la anterior, también se usa mediante demanda por parte del usuario desde la terminal y está diseñada para la localización de todo este software mal intencionado, tiene además sutiles diferencias con la anterior. Pasemos a desmenuzarlas levente:
Rkhunter es una herramienta diseñada para entornos Unix y Linux principalmente, que además de buscar Rootkits, también revisa “los backdoors y los exploit locales,” mediante la comparación de los “hashes MD5” de ficheros importantes, verificando que posean su firma correcta con su base de datos en línea, comprueba además los directorios por defecto donde suelen esconderse, también comprueba y verifica los permisos incorrectos, la existencia de archivos ocultos, apertura de puertos, las cadenas sospechas en los módulos del Kernel, ya que muchos de ellos se funden con el inicio del sistema para estar a salvo fuera del mismo. Como os decía es valido para Linux y FreeBSD.
Bueno después de bucear convenientemente por este apasionante universo e intentar aclarar cuales son las posibilidades generales de estas dos fantásticas herramientas pasaremos a ver como las podemos instalar en nuestro sistemas Linux
INSTALACIÓN
Ambas herramientas mencionadas Chkrootkit y Rkhunter como poseen varios años ya de experiencia, se pueden localizar en la mayoría de los repositorios oficiales de las principales distribuciones Linux.
Pasaremos a continuación a revisar como las podemos instalar fácilmente en ellas.
En Ubuntu y sus derivados (Xubuntu, Kubuntu o Linux Mint, entre otros usaremos el siguiente comando:
$ sudo apt-get install chkrootkit o en su defecto $ sudo apt-get install rkhunter |
En Debian es conveniente hacerlo como usuario Root para que pueda acceder a todos los directorios nos servimos “apt-get o aptitude” indistintamente:
$ su # apt-get install chkrootkit o en su defecto $ apt-get install rkhunter |
En Fedora, Red Hat o similar usaremos yum
$ su # yum install chkrootkit o en su defecto $ yum install rkhunter |
Para Arch Linux y sus derivadas :
$ su # pacman -S chkrootkit o en su defecto $ pacman -S rkhunter |
De este modo tendemos instalado fácilmente cualquiera de las dos aplicaciones.
Uso de los comandos para su utilización:
Uso de Chkrootkit
Para ejecutar la herramienta Chkrootkit necesitaremos permisos de súper usuario ya que la aplicación necesitará poder acceder a los diversos directorios y puntos delicados del sistema, para sus oportunas comprobaciones. Para ello en Ubuntu deberemos ejecutarlo siempre con el ‘sudo’ delante, y en Debian, Fedora y otras distros deberás loguearte previamente como usuario root mediante el comando ‘su’.
Su uso es simple y no dispone de gran variedad de opciones de escaneo, el examen tardara más o menos rato, según la extensión nuestro sistema y nos irá mostrando en la terminal los diferentes aspectos y parámetros analizados, simplemente le tenemos que dejar hacer y nos dará al final los resultados hallados.
En Ubuntu , Debian y derivados usaremos el siguiente comando
$ sudo chkrootkit |
También podemos realizar un escaneo idéntico pero mostrando en pantalla solamente las alertas y detecciones mostradas para ello usaremos el parámetro “-q”
$ sudo chkrootkit -q |
Uso de Rkhunter
Lo primero que debemos hacer es comprobar las actualizaciones de las firmas virales
$ sudo rkhunter –update |
Con este comando se hará correr el script, que en primer lugar comprobara la versión instalada del programa sea la más reciente y luego descarga e instalara las actualizaciones de la base de datos del mismo.
Debemos considerar qué si lo instalamos desde los repositorios oficiales de Ubuntu, Debian o similar es muy posible que al llevar a cabo este proceso o alerte de que existe una versión más reciente del programa. Es algo normal ya que los repositorios por lo general no suelen tener las ultimas versiones.
Nota sobre la actualización:
Este programa no lo usaba desde hace algunos años, al instalarlo y actualizarlo comprobé que en algunos caso se producía un error sobre Debian, con el siguiente parámetro de notificación: “Invalid WEB_CMD configuration option: Relative pathname: “/bin/false.” Si eso ocurre, bastará con cambiar los siguientes parámetros del archivo de configuración, localizado en el fichero /etc/rkhunter.cfg emplazamos las siguientes líneas y le hacemos las oportunas modificaciones:
Basta modificar los parámetros siguientes
UPDATE_MIRRORS=0 MIRRORS_MODE=1 WEB_CMD=“/bin/false” |
Con los siguientes valores…
UPDATE_MIRRORS=1 MIRRORS_MODE=0 WEB_CMD=“” |
Si quieres disponer de la última versión, siempre te queda la opción de descargar Rkhunter desde la web oficial del proyecto, aunque es preferible mantener la versión de los repositorio.
Comencemos a analizar el sistema con esta aplicación
Si queremos consultar un listado con los diferentes tipos de test que Rkhunter realiza durante el escaneo completo así como sus distintas opciones usaremos el siguiente comando.
$ sudo rkhunter –list tests |
Es conveniente realizar un escaneo completo del sistema, para buscar la presencia de Rootkits conocidos y comparalos con su gran base de datos y además que realice la comprobación de cambios de configuración del sistema, revisión de log y actividad de red con sus puertos abiertos correspondientes
$ sudo rkhunter –check |
Si queremos no realizar puntualmente alguno de los tipos de test configurados por defecto en el análisis, podemos usar el siguiente comando donde sustituiremos la palabra “test” por alguno específico de los que realiza.
$ sudo rkhunter –disable <test> –check |
Disponemos de un manual con todo el conjunto de opciones predefinidas para revisarlo podemos ejecutar el siguiente comando
$ man rkhunter |
Nos aparecerá en la terminal un manual en inglés dejo a continuación algunos parámetros traducidos al español.
Observaciones finales
Ambas herramientas la he usado hace años en mis inicios en Linux, en toces llego con fuerza esta serie de amenazas y yo como usuario llegado de sistemas más vulnerables como Windows, digamos me sentía más presionado para tomar mayor control de mi sistema. Hoy os las muestro, para todos aquellos usuarios que o bien llegan a Linux recientemente o los que por desconocimiento ignoraban la existencia de estas dos poderosas aplicaciones.
Por otro lado ambas aplicaciones cumplen una función de escaneo, lo que nos puede arrojar algo de luz sobre el estado real de nuestros sistemas, cuando nos surjan alguna duda o observemos algo extraño en los mismos, otorgándonos mayores garantías.
Recordar que debemos ser prudentes con nuestro actos y tener activados otras medidas básicas como una correcta configuración del Firewall y demás.
Debemos tener también en cuenta que los resultados de los análisis son a veces algo complejos de manejar debido a que pueden incluir algún falso positivo, ya que incorpora en el resultado las más mínimas modificaciones llevadas a cabo en los ficheros de nuestro Linux durante las actualizaciones de sistema. Por lo que debemos tener calma y otorgarnos un periodo de aprendizaje donde iremos poco a poco asimilando esta información.
También podemos usar Google para verificar la información resultante dada al finalizar el análisis si dudamos si es un falso positivo o no.
Podéis consultar otro apasionante tema de seguridad informática titulado “Como usar el antivirus ClamAV desde la línea de comandos” en el siguiente enlace