Una de las primeras acciones que los atacantes realizan cuando se vulnera la seguridad de un sistema, una vez logeado en él, es instalar un rootkit, el cual facilita el control de la máquina para futuras ocasiones.
Dichas herramientas presentan un gran riesgo para los sysadmin y, por tanto, es de vital importancia conocer sus alcances, funcionamiento y los mecanismos que existen para detectarlos.
Los rootkits de hoy día se infiltran en el sistema objetivo a nivel de kernel o núcleo escapando de esta manera de la atención del administrador.
Los llamados rootkits esconden procesos, conexiones de red y los archivos de los administradores, y garantizan el acceso al atacante mediante una puerta trasera.
En muchos casos programas que ejecutan los administradores, como un simple ps, o un netstat ocultan información relevante a sus ojos y camuflan procesos para que no sean percatados por los sysadmin.
Los Rootkits fueron descubiertos a mediados de los años 90. En aquella época, los administradores del sistema operativo UNIX comenzaron a ver un comportamiento extraño en el servidor, la falta de espacio de disco, ciclos extra en la CPU y las conexiones de red que no se mostraba con el comando netstat.
El nombre Rootkit se origina a partir de la idea de que quien lo utiliza puede acceder fácilmente al nivel de root, o de administrador del sistema, una vez la herramienta ha sido instalada.
Tipos de Rootkit
De acuerdo a la tecnología empleada, existen 3 clases:
Kits binarios: alcanzan su meta substituyendo ciertos ficheros del sistema por sus contrapartes con los troyanos ocultos.
Kits del núcleo: utilizan los componentes del núcleo (también llamados módulos) que son reemplazados por troyanos.
Kits de librerías: emplean librerías del sistema para contener Troyanos.
Procedimiento inicial
Típicamente, un atacante instala un rootkit en una computadora después de haber obtenido inicialmente un acceso al nivel raíz, ya sea por haberse aprovechado de una vulnerabilidad conocida o por haber obtenido una contraseña (ya sea por crackeo de la encriptación o por ingeniería social).
Una vez que el rootkit ha sido instalado, permite que el atacante disfrace la siguiente intrusión y mantenga el acceso privilegiado a la computadora por medio de rodeos a los mecanismos normales de autenticación y autorización. Pese a que los rootkits pueden servir con muchos fines, han ganado notoriedad fundamentalmente como malware, escondiendo programas que se apropian de los recursos de las computadoras o que roban contraseñas sin el conocimiento de los administradores y de los usuarios de los sistemas afectados. Los rootkits pueden estar dirigidos al firmware, al hipervisor, al núcleo, ó , más comúnmente, a los programas del usuario.
Detección
Desde el punto de vista del hacker, los rootkits tienen una desventaja importante: simplemente comparando el checksum MD5 con el archivo original podemos descubrir un sabotaje.
No debemos olvidar que existen programas especiales de búsqueda denominados cazadores de rootkits que descubren rápidamente estos cambios.
Otra desventaja es que la influencia del hacker está restringida a las herramientas manipuladas: cualquier software que se instale posteriormente o herramientas en medios de sólo lectura (CD-ROM) se mantienen a salvo.
Hay varios programas disponibles para detectar rootkits.
En los sistemas basados en Unix, dos de las aplicaciones más populares son chkrootkit y rkhunter.
Para Windows está disponible un detector llamado Blacklight (gratuito para uso personal) en la web de F-Secure. Blacklight presenta problemas de incompatibilidad en Windows 7.
Otra aplicación de detección para Windows es Rootkit Revealer de Microsoft, antes Systernals . Detecta todos los rootkits actuales comparando las funcionalidades del sistema operativo original con las que se han detectado. Sin embargo, algunos rootkits han empezado a añadir este programa a la lista de los cuales no deben esconderse.
En esencia, eliminan las diferencias entre los dos listados, de modo que el detector no los encuentra. Pero algo tan simple como renombrar el fichero rootkitrevealer.exe hace que el rootkit ya no sepa que se está enfrentando a un detector. Como se decía antes, será una continua batalla entre los rootkits y los antivirus.
Los rootkits de kernel y su difícil detección.
Los programas basados en checksum, como Aide o Tripwire, no pueden ayudarnos en la batalla contra los rootkits a nivel de kernel.
Los rootkits de kernel manipulan las llamadas al sistema directamente, o en otros lugares del kernel, y esto les proporciona la capacidad de trucar cualquier programa en espacio de usuario. Necesitamos saber cómo funciona exactamente un rootkit para tener alguna oportunidad de descubrir algún rastro revelador de un sabotaje. Dónde tienen que mirar los expertos forenses y que tendrán que encontrar, depende enormemente del rootkit que están cazando.
Un rootkit que manipule el kernel posee un control mucho mayor del sistema. El kernel sirve información del sistema a los procesos, y luego la presenta al usuario o administrador.
Desde la versión 2.2 de Linux y posteriores cargan módulos dinámicos del kernel para proporcionar al administrador la posibilidad de cargar drivers y demás código en tiempo de ejecución, y para eliminar la necesidad de recompilar el kernel y reiniciar. Los rootkits a nivel de kernel aprovechan este vía de ataque para ejecutar código en espacio de kernel , eliminando la información que un atacante tuviera que esconder antes de alcanzar el espacio de usuario.
El rootkit engaña de esta manera a los programas en ejecución, sin importar si se instalaron posteriormente a quedar comprometido el equipo o con qué librerías se han enlazado.
Los excelentemente programados rootkits de kernel de hoy son casi perfectos maestros del disfraz. Ni las herramientas normales del sistema, ni las históricas herramientas forenses detectan este tipo de manipulación.
En este caso lo único que podemos hacer:
El mejor método para detectar un rootkit kernel es apagar el sistema que se considere infectado y revisar o salvar los datos arrancando desde un medio alternativo, como un CD-ROM de rescate o un PenDrive. En muchos servidores dedicados de empresas de hospedaje, dejan mecanismos modo rescue para este efecto, o cargan kernels alternativos.
Un rootkit inactivo no puede ocultar su presencia. Los programas antivirus mejor preparados suelen identificar a los rootkits que funcionan mediante llamadas al sistema y peticiones de bajo nivel, las cuales deben quedar intactas. Si hay alguna diferencia entre ellas, se puede afirmar la presencia de un rootkit. Los rootkits intentan protegerse a sí mismos monitorizando los procesos activos y suspendiendo su actividad hasta que el escaneo ha finalizado, de modo que el rootkit no pueda ser identificado por un detector.
Ejemplo de uso de rkhunter en Debian
sudo aptitude install rkhunter
root@server:~# rkhunter –propupd
¿Como usarlo?
Para comprobar que nuestro sistema esté libro de estos “bichos” simplemente ejecutamos:
$ sudo rkhunter –check
En distros CenOs, ejemplos servidores dedicados 1and1, ovh, etc.
1. Vamos a descargarlo, instalarlo y actualizar su base de datos.
cd /usr/local/src
wget http://downloads.sourceforge.net/project/rkhunter/rkhunter/1.4.0/rkhunter-1.4.0.tar.gz
tar -zxvf rkhunter-1.4.0.tar.gz
cd rkhunter-1.4.0
./installer.sh –layout default –install
/usr/local/bin/rkhunter –update
/usr/local/bin/rkhunter –propupd
rm -Rf /usr/local/src/rkhunter*
cd
2. Lo agregamos al CRON para que se ejecute a diario:
3. Agregamos el siguiente texto al archivo chkrootkit.sh:
#!/bin/sh
(
/usr/local/bin/rkhunter –versioncheck
/usr/local/bin/rkhunter –update
/usr/local/bin/rkhunter –cronjob –report-warnings-only
) | /bin/mail -s ‘rkhunter Daily Run (Nombre de tu Servidor)’ tu@email.com
4. Le damos los permisos necesarios:
chmod 700 /etc/cron.daily/rkhunter.sh
Enlaces herramientas detección de Rootkit
Malwarebytes: http://www.malwarebytes.org/products/mbar/
Panda: http://research.pandasecurity.com/New-Panda-Anti-Rootkit-Version-1.07/
Kasperky: http://support.kaspersky.com/sp/faq/?qid=208280686
Sophos: http://www.sophos.com/en-us/products/free-tools/sophos-anti-rootkit.aspx
Avg: http://recursostic.educacion.es/observatorio/web/es/software/software-general/546-nohemi-luque
Al detalle 😉
Aviso: No me hago responsable de la instalación por parte del usuario, de los enlaces proporcionados. Son Links externos a herramientas generalmente gratuitas.
Aviso: No me hago responsable de la instalación por parte del usuario, de los enlaces proporcionados. Son Links externos a herramientas generalmente gratuitas.
Ejemplo herramienta Anti Rootkit Avast
Libro recomendado
The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System (traducido al castellano como ‘El arsenal Rootkit: escape y evasión en los oscuros rincones del sistema’) es un título escrito por Bill Blunden, publicado por Jones & Bartlett en mayo del 2009.
El libro conduce al lector hacia la tecnología de los rootkits y sus usos. Se tratan temas como el ensamblado en IA-32, la arquitectura del sistema Windows, la depuración del kernel, el desarrollo avanzado de rootkits y mucho más alrededor de esta tecnología y su aplicación.
El libro también proporciona muchos ejemplos de código fuente sobre el desarrollo de rootkits y cómo utilizarlos correctamente. Eso sí, es recomendable tener una buena comprensión previa en programación de computadoras y sistemas operativos con el fin de comprender plenamente el contenido del libro.
http://www.amazon.es/The-Rootkit-Arsenal-Evasion-Corners/dp/144962636X
Consejo:
Cuidado con los sistemas operativos piratas presentes en redes de intercambio, pueden contener rootkits ya incorporados. Por lo que estamos “infectados” desde la instalación inicial.