08 noviembre 2015

Seguridad: Rootkits y herramientas chkrootkit y rkhunter

Introducción

En un documento de la UNED (Universidad Nacional a Distancia) nos explica qué son exactamente los rootkits.
Son herramientas que permiten esconder actividades intrusas dentro de un sistema, después de que un intruso ha logrado penetrar en él. Además, proveen al atacante de vías de acceso ocultas para utilizar nuevamente el sistema en futuras oportunidades. El nombre de rootkit se origina a partir de la idea de quien lo utiliza puede acceder fácilmente al nivel de root, o de administrador del sistema, una vez la herramienta ha sido instalada.


En anteriores entradas hablamos de los virus y de la baja probabilidad de que un sistema Linux se infectara, digo baja, lo que no excluye la posibilidad. Sin embargo con los rootkits la cosa se pone muy seria.

Una vez instalado un rootkit en la máquina el intruso tiene el control de la misma.

El cómo un intruso se cuela en el ordenador puede ser múltiple. Voy a poner dos ejemplos que seguramente os provocarán una amarga sonrisa.

 

El rootkit de Sony

Este caso salta en el años 2005 y existe abundante literatura en Internet sobre el tema.

El 31 de Octubre de 2005 Mark Russinovich comunica en una entrada de su blog que Sony BMG Music Entertainment incluía en sus CD’s musicales un sistema de protección contra copia que consistía en instalar, en secreto, un rootkit en los ordenadores de los usuarios. Se ejecutaba sin su conocimiento y sin su consentimiento. Ello podía permitir que un intruso penetrara en esos ordenadores.

La cosa paso de blog en blog hasta llegar a otros medios y convertirse en un escándalo. Sony comunicó que retiraba ese sistema de protección de sus productos. Además retiraba esos CD’s de las tiendas y ofrecía un cambio gratuito a los usuarios que tenían CD’s infectados.Más tarde ofreció una solución para eliminar el rootkit, solución que no funcionó, dejaba de ser oculto, pero no se desinstalaba.

Sony predicaba que el rootkit no permitía la entrada en los equipos. Era mentira, la permitía. Llegó a decir que la mayoría de los usuarios no tenían idea de que era un rootkit por lo que no debía importarles.
Entretanto algunos ciberdelincuentes, encantados con el asunto, aprovecharon el rootkit para hacer también de las suyas e infectar a otros programas.

No creáis que las empresas de seguridad informática pusieron el grito en el cielo. McAfee da una pobre ayuda, elimina la ocultación, pero el rootkit sigue instalado y sigue llamándolo sistema de protección de copyright. Claro no era cuestión de meterse con Sony.

Otras compañías reaccionaban incluso de forma similar. Microsoft, la mas afectada, reacción hasta que la presión de los usuarios era imposible de ignorar.
Evidentemente el asunto acabó en los tribunales donde Sony tuvo que pagar fuertes indemnizaciones.

Nos encontramos con un tipo de malware bastante peligroso y difícil de erradicar. Chema Alonso, hacker mundialmente conocido, advierte en su blog, Un informático en el lado del mal, entrada: Rootkits para Bios,que la comunidad de desarrolladores de rootkits es una de las más activas a día de hoy…

 

Tipos de rootkits

Según el documento de la UNED y de acuerdo con la tecnología empleada existen tres clases principales de rootkits:

1. Kits binarios Alcanzan su meta sustituyendo ciertos ficheros del sistema por sus contrapartes Troyaneadas.

2. Kits del núcleo: Utilizan los componentes del núcleo (también llamados módulos), que son reemplazados por troyanos.

3. Kbits de librerías: Emplean librerías del sistema para contener Troyanos.
El modo de operar general es el de remplazar archivos de programa del sistema con versiones modificadas para que se ejecute. Pensemos que alguien nos sustituye el sudo de nuestro sistema introducimos la clave. Todo parecerá igual, pero ese sudo esta recopilando información (ocultamente), a la que el intruso puede acceder.

Los archivos que los intrusos suelen troyanizar son:

* login, su, telnet, netstat, ifconfig, ls, find, du, df, libc, sync

* Los binarios que se encuentran en etc/inetd.conf.

(UNED Centro de servicios Informáticos)


Herramienta chkrootkit

Esta herramienta comprueba e intenta detectar signos de rootkit en nuestro ordenador. Se compone de varias utilidades:

- chkrootkit: Shell script que comprueba binarios del sistema.
- ifpromisc.c: Comprueba si la interfaz está en modo promiscuo.
- chklaslog.c: Comprueba supresiones lastlog.
- chkwtmp.c: Comprueba supresiones wtmp.
- chkproc.c: Comprueba signos (procesos) de troyanos LKM.
- chkdirs.c: Comprueba signos de troyanos LKM.
- strings.c: Reemplazo de strings.
- chkutmp.c: Comprueba supresiones utmp.

Antes de nada quiero resaltar que estas herramientas pueden advertir de peligros que realmente no lo son, se denominan falsos positivos, la mayoría de estos falsos positivos están detectados, podéis consultar las wiki de Linux, Ubuntu, Linux Mint para ver los artículos relacionados con este tema. En mis ejemplos veremos algún aviso de este tipo y que no representa ningún peligro.

Por ello vamos a trabajar con dos herramientas: chkrootkit y rkhunter, será conveniente que hagamos el análisis con ambas herramientas. Veremos como, en algunos casos, una detecta algún archivo como peligroso y la otra no. En estos casos, muy probablemente, nos encontremos ante un falso positivo.

 

Instalación de chkrootkit

La instalación la realizamos desde el Gestor de software de Linux Mint o el Centro de software de Ubuntu. Para más rapidez podemos abrir Terminal e instalarlo con:

            sudo apt-get install chkrootkit
 
Una vez descargado podemos comprobar las opciones disponibles visualizando el manual en Terminal:

            man chkrootkit
 
No son muchas ni el manual da mucha información. Quizás la más importante es la opción -x, el análisis en modo experto.

Antes de ejecutarlo vamos a realizar una actualización, este proceso debéis hacerlo regularmente. Evidentemente no es cuestión de ejecutar chkrootkit todos los días, así que de vez en cuando conviene ejecutar la actualización por si hubiera algo nuevo.

            sudo chkrootkit --update
 
Ahora podemos ejecutar la herramienta, siempre con privilegios de administrador:

            sudo chkrootkit
 
Comenzará el análisis y los resultados se visualizan en el Terminal, en forma de listado, conforme se van realizando lo que dificulta bastante su lectura.

Esta cuestión la solucionamos redireccionando la salida a un fichero de texto que podemos llamar, por ejemplo, infork.txt y podemos dejarlo en nuestro directorio Documentos.

    sudo chkrootkit > /home/usuario/Documentos/infork.txt
 
Donde usuario deberá sustituirse por el nombre de usuario que estéis utilizando.
El informe tendrá más o menos este aspecto:




Las salidas más usuales son not found (no encontrado) o not infected (no infectado).

En esta primera parte está comprobando comandos del shell como echo, find, egrep, date, su, etcétera. Recordemos que los rootkits se disfrazan con estos nombres para sustituir al comando real.

Sigo revisando mi informe hasta encontrar:




Tengo el siguiente aviso: Warning: /sbin/init INFECTED, del que hay abundante información en Internet y en los foros de Linux, Linux Mint y Ubuntu. Se trata de un falso positivo, por lo que, en principio no debéis preocuparse. Cuando utilicemos rkhunter no será detectado como peligroso.

Siempre que encontréis algún aviso de peligro, antes de realizar cualquier acción, buscar por las páginas especializadas la alerta y documentaros. Además la existencia de falsos positivos recomienda utilizar más de una herramienta de selección, por ello además de chkrookit utilizaremos rkhunter para asegurar los análisis.

Así que en el caso de que tengáis este aviso, Warning: /sbin/init INFECTED, podéis estar tranquilos. Se trata de un falso positivo.

Herramienta rkhunter

Otro script de UNIX y Linux para la detección de este tipo de malware, sin embargo parece una herramienta un poco más completa.
Podemos descargar rkhunter del Centro de Software o desde nuestro Terminal:

 sudo apt-get install rkhunter
 
La ejecución de los comandos de rkhunter se hará siempre desde la consola y requiere permisos de administrador (sudo). El manual y la ayuda la podemos obtener con:
  • man rkhunter
  • rkhunter -h
Una vez instalado el programa vamos a actualizar la base de firmas, como en otros programas, dispone de actualizaciones periódicas del malware que va apareciendo. Se recomienda una actualización semanal y para ello ejecutaremos:

sudo rkhunter --update
 
En caso de que esté actualizada os saldrá algo como:




No se trata de ningún error, simplemente no se han actualizado los archivos porque ya estaban actualizados de ahí el mensaje: No update.
A continuación y antes de ejecutar una análisis rkhunter debe actualizar la base de datos de propiedades de archivo. Utilizamos la opción:

sudo rkhunter --propupd
 
Esta opción tendremos que ejecutarla cada vez que se actualice nuestro sistema, nuestro software o se instale un programa. De no estar actualizado pueden resultar informes con falsos positivos, ya que encuentra cambios de los que no está informado.

A continuación lanzaremos un análisis con:

sudo rkhunter --checkall
 
Veréis que ejecuta diversos análisis, cuando termina uno se para y espera a que presionemos la tecla Enter para continuar.

El resultado del análisis queda guardado en el archivo: rkhunter.log. La ruta completa es:

/var/log/rkhunter.log
 
En las líneas anteriores, donde realiza una análisis con chkrootkit, hablamos de un falso positivo, concretamente en el archivo: /sbin/init. En el análisis realizado por rkhunter no se detecta ningún peligro:





Pero más adelante aparecen aparecen algunos falsos positivos como peligro. Para verlos abro con un editor de texto el archivo rkhunter.log:




Como siempre una vuelta por Internet para revisar estos peligros que también son falsos positivos. El aviso Warning: Hidden directory found: /etc/.java: directory, tiene en el siguiente enlace su explicación, os lo dejo como ejemplo ya que ésta explicado en castellano.


Afortunadamente el sistema se encuentra limpio

Si os apareciera un aviso de peligro y después de investigar tuvieseis una duda razonable de que se trata malware os dejo la dirección de esta página donde podéis suscribiros a rkhunters-users. La suscripción es gratuita y podéis enviar los datos de los peligros encontrados:


Tanto chkrootkit como rkhunter disponen de más opciones, aquí se han expuesto las más comunes, podéis ver alguna opción más y daros una vuelta por los cientos de páginas dedicadas a este malware.

Como siempre quedo a vuestra disposición para cualquier cuestión.
Gracias por vuestra atención.

Saludos cordiales.

No hay comentarios:

Publicar un comentario