Detectar Rootkits en Linux


Detectar Rootkits en Linux

Una de las primeras acciones que lleva a cabo un intruso, una vez ingresa a un sistema, es instalar un rootkit, el cual facilita el control de la máquina desde ese momento en adelante. Dichas herramientas presentan un gran riesgo para los administradores y, por tanto, es de vital importancia conocer sus alcances, funcionamiento y los mecanismos que existen para detectarlos.

Los Rootkits fueron descubiertos a mediados de los '90. En aquella época, los administradores de sistema del sistema operativo Unix de SUN 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.

1. ¿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 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.

2. ¿Qué tipos hay?

De acuerdo a la teconología empleada, existen tres clases principales de Rootkits disponibles hoy:
  • Kits binarios: alcanzan su meta substituyendo ciertos ficheros del sistema por sus contrapartes Troyaneadas.
  • 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.
3. ¿En qué se basan?
El principio operativo de los rootkits es el de reemplazar archivos de programa del sistema con versiones modificadas, para que se ejecuten determinadas operaciones. A estas versiones modificadas se les conoce con el nombre de troyanos. Un rootkit es, en esencia, una colección de programas troyanos.

4. Objetivos
El objetivo de los troyanos es imitar exactamente el comportamiento de las aplicaciones originales, pero escondiendo los archivos, acciones y evidencias del intruso. En otras palabras, una vez instalado el rootkit, en principio, el intruso podrá utilizar el sistema sin ser detectado por el administrador. Sin embargo, actualmente existen métodos para detectar la presencia de rootkits dentro de un sistema.

5. Qué ficheros suelen los intrusos troyanizar 

Algunos son:  login, su, telnet, netstat, ifconfig, ls, find, du, df, libc, sync
Así como los binarios listados en /etc/inetd.conf.

6. Algunos Rootkits 
Solaris rootkit, FreeBSD rootkit, lrk3, lrk4, lrk5, lrk6, t0rn (and t0rn v8), some lrk variants, Ambient's Rootkit for Linux (ARK), Ramen Worm, rh[67]-shaper, RSHA, Romanian rootkit, RK17, Lion Worm, Adore Worm, LPD Worm, kenny-rk, Adore LKM, ShitC Worm, Omega Worm, Wormkit Worm, dsc-rootkit.

Detectar Rootkits

Existen maneras de diferenciar los ejecutables legítimos de los troyanos mediante el uso de algoritmos de chequeo de suma. Dichos algoritmos, como el MD5 checksum, garantizan que la única forma de que el resultado de la suma sea igual para dos archivos, es que los dos archivos sean perfectamente idénticos. De esta forma, un administrador precavido debe almacenar los checksum de su sistema en dispositivos externos, tales como CD's, para poder, más adelante, identificar rootkits comparando dichos números con los generados por un programa de chequeo en un momento determinado.

A. Una herramienta diseñada para este fin es Tripwire, el cual mantiene control de integridad sobre los archivos del sistema.

B. Otra manera para detectar la posible existencia de rootkits es realizar escaneos de puertos desde otros equipos, con el fin de detectar puertas traseras que estén escuchando en puertos que normalmente no se utilizan. También existen demonios especializados, como rkdet para detectar cualquier intento de instalación de un rootkit y, de ser posible, impedirlo y avisar al administrador del hecho.

C. Otra herramienta es Chkrootkit que es un shell script que busca en nuestro sistema binarios modificados por rootkits.

Entre otras tareas Chkrootkit revisa localmente rastros de rootkits incluyendo detección de:
  • rootkits LKM
  • ifpromisc.c: para revisar y ver si la interface de red está en modo promiscuo
  • chklastlog.c: para revisar lastlogs por las tachaduras
  • chkkwtmp.c: para revisar wtmp por las tachaduras
Algunas herramientas antirootkits recomendadas para su instalación:

Estas son algunas de la herramientas que recomendamos su instalación para evitar los accesos indeseados, como programar su ejecución, ya se lo dejamos al administrador:
Y así, es como podrá instalarlos directamente desde sus propios repositorios (que además es lo recomendado). Para buscar paquetes relacionados se puede usar yum search rootkit o apt-cache search rootkit

Comentarios

Entradas populares