Rookits

En esta oportunidad hablaré sobre el tema de rookits y las herramientas que podemos emplear para combatirlos. Para quien no sepa un rookit es otro tipo de amenaza, y lo malo de estos es que se ocultan de tal forma que hacen creer a nuestro sistema que son parte del mismo e incluso.
Un rootkit es una herramienta, o un grupo de ellas que tiene como finalidad esconderse a sí misma y esconder a otros programas, procesos, archivos, directorios, llaves de registro, y puertos que permiten al intruso mantener el acceso a un sistema para remotamente comandar acciones o extraer información sensible, a menudo con fines maliciosos o destructivos. Son insertados en una computadora después de que algún atacante ha ganado el control de un sistema.
Existen rootkits para una amplia variedad de sistemas operativos, como Linux, Solaris o Microsoft Windows. Los rootkit generalmente incluyen funciones para ocultar los rastros del ataque, como es borrar los log de entradas o encubrir los procesos del atacante. Los rootkit pueden incluir puertas traseras, permitiendo al atacante obtener de nuevo acceso al sistema o también pueden incluir exploits para atacar otros sistemas.
Un rootkit se usa habitualmente para esconder algunas aplicaciones que podrían actuar en el sistema atacado. Suelen incluir backdoors (puertas traseras) para ayudar al intruso a acceder fácilmente al sistema una vez que se ha conseguido entrar por primera vez.
Los rootkits se utilizan tambi én para usar el sistema atacado como “base de operaciones”, es decir, usarlo a su vez para lanzar ataques contra otros equipos. De este modo puede parecer que es el sistema inflitrado el que lanza los ataques y no el intruso externo. Este tipo de ataques podrían ser de Denegación de Servicio (DoS), ataques mediante IRC o mediante spam a traves de correo electrónico.
Los rootkits se pueden clasificar en dos grupos: los que van integrados en el núcleo (kernel) y los que funcionan a nivel de aplicación.
  • Los que actúan desde el kernel añaden o modifican una parte del código de dicho núcleo para ocultar el backdoor. Normalmente este procedimiento se complementa añadiendo nuevo código al kernel, ya sea mediante un controlador o un módulo, como los módulos del kernel de Linux o los dispositivos del sistema de Windows. Estos rootkits suelen parchear las llamadas al sistema con versiones que esconden información sobre el intruso. Son los más peligrosos, ya que su detección puede ser muy complicada.
  • Los rootkits que actúan como aplicaciones pueden reemplazar los archivos ejecutables originales con versiones crackeadas que contengan algún troyano, o también pueden modificar el comportamiento de las aplicaciones existentes usando hacks, parches, código inyectado, etc.
Hay limitaciones inherentes a cualquier programa que intente detectar rootkits mientras se estén ejecutando en el sistema sospechoso. El principal problema de la detección de rootkits consiste en que el sistema operativo en ejecución no es fiable globalmente. En otras palabras, algunas acciones como pedir la lista de los procesos en ejecución o listar los archivos de un directorio no son fiables al no comportarse como deberían.
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 o un PenDrive, ya que 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.
Si un rootkit consigue esconderse durante el proceso de detección, será identificado por el detector de rootkits, que busca movimientos sospechosos. Si el rootkit “decide” detenerse momentáneamente, será identificado como un virus. Esta técnica combinada de detección puede obligar a los atacantes a implementar mecanismos de contraataque (retro-rutinas) en el código del rootkit, con el objetivo de eliminar los procesos creados por el software de seguridad, eliminando así al programa antivirus de la memoria. Al igual que con los virus convencionales, la detección y eliminación de los rootkits será una batalla permanente entre los creadores del rootkit y de los programas de seguridad.

Algunos Programas AntiRookits que podemos emplear

chkrootkit (UNIX/Linux) 
chkrootkit
RootkitRevealer (Windows)
RootkitRevealer
rkhunter (UNIX/Linux)
rkhunter
IceSword (Windows)
IceSword
TrendMicro Rootkit Buster
Avira Anti-Rootkit
Sophos Anti Rootkit
McAfee Rootkit Detective
RKDetector

Lo que sí quiero recalcar es que estas herramientas deben ser manejadas con cautela, ya que el registro de Windows no es precisamente lo que se diga muy resistente a manipulaciones inducidas por herramientas de este tipo. Especial cuidado a la hora de interpretar los resultados de estos, programas. 
Leer con cautela
 la información que acompaña a cada anti-rootkit es obligatorio.

Enlaces externos

Comentarios

Entradas populares