¿Qué es un rootkit?
El término viene de la unión de “root” y de “kit”. “root” se refiere al usuario con máximos derechos en sistemas tipo Unix (puede ser Unix, AIX, Linux, etc). Es el superusuario, el “administrador”, en definitiva, es la expresión máxima de autoridad sobre un determinado sistema informático. Por su parte, “kit” se refiere a un conjunto de herramientas, por lo que un rootkit se puede entender como un conjunto de herramientas con categoría de administrador de un sistema.
Un rootkit es una herramienta, o un grupo de ellas usadas para esconder los procesos y archivos que permiten al intruso mantener el acceso al sistema, a menudo con fines maliciosos. Hay rootkits para una amplia variedad de sistemas operativos, como Linux, Solaris o Microsoft Windows.
Los rootkits, en la práctica, son programas que una vez instalados en un sistema, efectúan las modificaciones necesarias para poder llevar a cabo las tareas que tiene programadas sin que su presencia pueda ser detectada tan fácilmente como un virus. Fundamentalmente, los rootkits tratan de encubrir a otros procesos que están llevando a cabo acciones maliciosas en el sistema. Por ejemplo, si en el sistema hay una puerta trasera para llevar a cabo tareas de espionaje, el rootkit ocultará los puertos abiertos que delaten la comunicación; o si hay un sistema para enviar spam, ocultará la actividad del sistema de correo o si por ejemplo el rootkit reserva una cantidad de espacio de disco (2Teras) en un servidor de una empresa para colgar videos porno, ocultará que esos 2 Teras de disco se estén utilizando, como me han contado hace poco. La única limitación es la imaginación del creador.
Invisibilidad de los rootkits
Los rootkits, al estar diseñados para pasar desapercibidos, no pueden ser detectados fácilmente. Si un usuario (o incluso el usuario root) intenta analizar el sistema para ver qué procesos están ejecutándose, el rootkit mostrará información falsa, mostrando todos los procesos excepto él mismo y los que está ocultando. O si se intenta ver un listado de los ficheros de un sistema, el rootkit hará que se muestre esa información pero ocultando la existencia del propio fichero del rootkit y de los procesos que esconde.
Cuando el antivirus hagan una llamada al sistema operativo para comprobar qué ficheros hay, o cuando intente averiguar qué procesos están en ejecución, el rootkit falseará los datos y el antivirus no podrá recibir la información correcta para llevar a cabo la desinfección del sistema.
Un rootkit no se propaga como un virus
Además, los rootkits presentan un problema añadido: no son códigos que se propaguen por sí solos. Si un rootkit está en un sistema es porque ha sido introducido directamente, no porque se haya propagado a través de Internet como un gusano tradicional. Así, es muy posible que un determinado rootkit esté pensado y diseñado para un sistema concreto, no para una generalidad de ordenadores. Sus funciones y características dependen del sistema atacado, una solución hecha a medida para llevar a cabo acciones maliciosas en un determinado sistema.
Desinfección de rootkits
A pesar de todo esto, los rootkits pueden eliminarse, aunque no tan fácilmente como un virus. Como ya he dicho, los rootkits se autoprotegen escondiéndose y evitando que ningún otro proceso (como un antivirus) pueda detectarlos. Pero para que ese proceso pueda ocultarse, debe estar en funcionamiento y activado en memoria.
El mejor método para detectar un rootkit 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. 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.
Anti-rootkits
La forma más fácil de detectar y así poder eliminar un rootkit de nuestro sistema es utilizando un Anti-rootkit.
Para Sistemas Windows:
– RootkitRevealer
RootkitRevealer compara los resultados del escaneo de un sistema al nivel más alto (la API de Windows) y al más bajo (formato de almacenaje en disco del Registro, denominado por RKR como Registry hive). De este modo un rootkit que manipula la API de Windows o una API nativa para ocultarse de un comando dir, por ejemplo, será visto por RKR como una discrepancia entre la información devuelta por la API y lo que detecta el escaneo a bajo nivel de la estructura de un sistema de ficheros FAT o NTFS…
El programa es gratuito y sólo pesa 190 KB.
Tras descargar el programa, basta descomprimirlo y pulsar el botón Scan del ejecutable. Para no ser detectado por los creadores de malware, RKR se ejecuta como servicio bajo una copia de nombre aleatorio.
Página Oficial RootkitRevealer
url: http://www.microsoft.com/technet/sysinternals/utilities/RootkitRevealer.mspx
Para Sistemas Unix, BSD y Linux:
– Rootkit Hunter
Se basa en valores hash MD5 de ficheros importantes o típicos, busca ficheros ocultos, ejecuta tests específicos para cada sistema operativo, analiza permisos de ficheros, módulos del kernel, puertos a la escucha, etc.
Página Oficial Rootkit Hunter
url: http://www.rootkit.nl/projects/rootkit_hunter.html
Fuentes:
http://es.wikipedia.org
http://www.baquia.com
http://www.microsoft.com
http://www.kriptopolis.org