RootKits
La amenaza oculta
Pablo Iglesias Morales
[email protected]
Facultad de Informática
Universidad de A
Coruña
Lunes, 2 de Mayo de
¿Qué vamos a aprender?


* Definiciones
* Un poco de
historia

* Tendencias

* Rootkits en




* Detección
* Prevención y
buenas prácticas
* Caso práctico
la Plataforma
Windows
Índic
e
Rootkit se refiere a ...

Tradicionalmente: Root+kit
Conjunto
de
herramientas
que
permiten el acceso a un equipo o
red a nivel de administrador
ps, netstat, ls y passw

Actualmente:
Técnicas que ocultan, de forma
activa,
su
existencia
y
sus
acciones a usuarios y a otros
procesos del sistema
Influencia de MS Windows
Definici
ones
Una rootkit no es un...
* Virus
Programas que se replican AUTOMÁTICAMENTE y que
pueden ocultar información confidencial, bloquear los
recursos del sistema, destruir información o realizar
otros actos malignos.
* Troyanos
Programas
que
parecen
aplicaciones
de
software
inofensivas o incluso útiles a simple vista, pero que
en su interior albergan código malintencionado. Aunque
los troyanos NO SE AUTO REPLICAN, pueden hacer que un
equipo infectado descargue otro malware que sí lo
haga.
* Gusanos
Malware que se replica mediante la distribución de
copias a través de una red compartida, una unidad USB,
etc, a menudo de forma autónoma, SIN necesidad de
INTERVENCIÓN HUMANA.
* PUP (Potentially Unwanted Programs)
Aunque se parecen a los troyanos y a otro software
maligno
en
que
suelen
apoderarse
de
información
confidencial y privada, son diferentes, ya que se
instalan y ejecutan con la APROBACIÓN tácita DEL
USUARIO.
Definici
Un poco de historia ...
* 1986 -> Brain
Primer virus para PC. Interceptaba las interrupciones del
sector de arranque y redirigía las operaciones de lectura a
otro sector del disco.
* 1987 -> Lehigh
Rápida neutralización tras su lanzamiento debido a que no
utilizaba técnicas de ocultación.
~ Conciencia ~
La longevidad de un virus
dependía esencialmente
de las técnicas de ocultación
* 1991 -> Tequila / 1993 -> 1689 Stealth
Uso de técnicas para ocultar el aumento de tamaño de los
archivos.
Mediados de los 90 => Punto de inflexión
¿Porqué?
Histor
ia
* La aparición de Windows 95 trajo la inmunidad a los virus DOS y
breve período de inactividad en cuanto a innovación de técnicas
ocultación.
Los autores de virus tuvieron que aprender a utilizar las interfaces
programación de aplicaciones de Windows (API) y la arquitectura
memoria protegida.
un
de
de
de
* 2001 -> NTrootkit / 2003 -> HackerDefender
Fin de la tregua. Estos troyanos se "enganchaban" al sistema
operativo en un nivel muy bajo de llamadas a funciones, lo que les
permitía ocultar su presencia.
Es tan fácil como....
Cambiar el nombre de un archivo infectado de forma que parezca un
archivo legítimo del sistema o del usuario.
El troyano scvhost.exe o svehost.exe puede residir en el directorio
system32 de Windows junto al archivo original llamado svchost.exe. Del
mismo modo, puede ejecutarse un troyano llamado svchost.exe desde
los directorios Windows o WINNT.
Histor
ia
Y con la llegada de Internet...
Para los malos: nuevas vías de
propagación y proporcionó millones de
víctimas potenciales
“Bueno” para
todos
Para los buenos: nuevos métodos de
detección a través de la red en
tiempo
real
con
sistemas
de
prevención de intrusiones (IPS) y
otros dispositivos de supervisión
del
tráfico
para
vigilar
los
síntomas que revelan la presencia
de actividad maligna.
Existen los buenos? Quiénes son?
Histor
ia
31 de Octubre de 2005
Mark Russinovich descubre que el software de gestión de
derechos digitales de Sony
BMG, Extended Copy
Protection (XCP) hace uso de tecnologías de ocultación
que exponían a los equipos a posibles ataques. XCP
incorpora
una
implementación
de
controlador
de
dispositivo que incluye privilegios a nivel de kernel.
Este controlador oculta archivos y procesos de gestión de
derechos
digitales
para que el
usuario
no pueda
desactivarlos y realizar copias ilegales de archivos de
música. Para conseguir esta protección, se escribió
código kernel que ocultaba cualquier archivo, carpeta o
proceso que comenzara por la cadena "$sys$"
Noviembre 2005
W32/Brepibot , cuya presencia se
comunicó en noviembre de 2005
y que se propaga a través de
canales Internet Relay Chat (IRC),
aprovechan esta vulnerabilidad.
Otros casos: Symantec (NTProtect)
Kaspersky(iStreams)
Histor
ia
Entonces...¿Cuáles son los
objetivos de las Rootkits?
Ocultar los rastros de la entrada de un
intruso en el ordenador
Ocultar la presencia de procesos o
aplicaciones maliciosas
Ocultar las actividades dañinas como si fueran
realizadas por programas legítimos
Objetiv
os
Entonces...¿Cuáles son los
objetivos de las Rootkits?
(II)
Ocultar la presencia de exploits, backdoors
Almacenar información a la que un intruso
no podría tener acceso de otra manera
Utilizar al sistema comprometido como
intermediario para llevar a cabo otras
intrusiones y/o ataques maliciosos
Objetiv
os
Por qué tienen éxito?
Porque están presentes en troyanos, malware y pup
Motivo: esfuerzos conjuntos de
investigación en línea
Tenden
cias
Por qué tienen éxito?
(II)
Porque cada vez son más sofisticados
Factor de complejidad: número de
archivos que forman la rootkit
Tenden
cias
Por qué tienen éxito?
(III)
Porque “romper” Windows es un reto
Desafío: Gran número de APIs no
documentadas
Tenden
cias
Por qué tienen éxito?
(IV)
Porque también están presentes en software legal
A tener en cuenta: también han
convencido a los proveedores de
software comercial
Tenden
cias
Por qué tienen éxito?
(V)
Porque lo puede hacer “cualquiera”
Factores: fácil acceso al código
+
kits de creación gratuitos
Tenden
cias
Parte II:
Análisis de la plataforma Windows
Conceptos previos:
La arquitectura i386 admite cuatro anillos,
o niveles de privilegios,(numerados del 0 al 3)

Los anillos 0 y 3 son empleados
seguridad de los procesos y los datos.

para la
Las
aplicaciones
de
usuario
solicitan
recursos del kernel del sistema operativo y del
hardware.

Para
comunicarse
con
aplicaciones en modo de
llamadas API Win32.

el
kernel,
las
usuario utilizan
La transferencia del control desde el modo de
usuario al modo de kernel se efectúa a través
de una función especial del procesador.

Conceptos
previos
La rootkit debe alterar el flujo de
ejecución normal para conseguir que
prospere su implementación de ocultación
(Hooking)
Conceptos
previos
Rootkits en modo de usuario

Pasan desapercibidos para el Administrados de Tareas

Su efectividad depende de su habilidad para ocultarse
Dependen de APIs de Windows documentadas que se
emplean habitualmente en utilidades, depuradores,
herramientas de desarrollo, ...

Tipos de
rootkits
Métodos de Inyección
A través de extensiones de aplicaciones
Proporciona acceso al espacio de
direcciones del proceso
A través de filtros de mensajes de
Windows
Uso de SetWindowsHookEx para
interceptar eventos del sistema
A través de vulnerabilidades de
aplicaciones
Diversos métodos de comunicación
Multiplica las posibles vías de ataque
Tipos de
rootkits
¿Cómo se interceptan los mensajes?
Intercepción de la tabla de direcciones de importación
(IAT)
Cada vez que se
ejecuta una llamada a
la API de destino, se
ejecuta el rootkit
Tipos de
rootkits
¿Cómo se interceptan los mensajes?
(II)
Intercepción de funciones en línea
Las llamadas del proceso pasan
primero por la rootkit
Tipos de
rootkits
Rootkits en modo kernel
La
utilizan
habitualmente
aplicaciones
legítimas, como controladores de dispositivos del
sistema y programas antivirus.

Objetivo:
operar
en
privilegios de sistema

modo
de
kernel
con
Se hace más difícil su detección y
eliminación
Mediante la instalación de un controlador de
dispositivo en modo de kernel, consiguen que su
código se cargue en el espacio de direcciones del
kernel

Son complejas y poco compatibles, por lo que
su popularidad no ha sido mayor que las rootkits
en modo usuario

Tipos de
rootkits
Modificación de la tabla de descriptores de servicios
del sistema (SSDT)
Aproximadamente el 50% de los rootkits observados
en circulación implementan este técnica.

Puede ser
detectada por
la mayoría de
los
analizadores de
memoria
Tipos de
rootkits
Entonces...Cómo sabemos si tenemos una Rootkit?
Las herramientas tradicionales de
monitorización no son fiables
Monitorización externa: Sniffers (1)
Análisis forense: detección Offline (2)
Análisis estadísticos: estudios de bajo nivel (3)
Comparación de resultados
(2)
Sistema
de ficheros
propio
(1)
NTRootkit
(3)
PatchFinder2
Detec
ción
Para protegernos deberíamos de...
Instalar una solución
periódicamente
anti-rootkit
y
ACTUALIZARLA
Instalar un firewall que proteja de accesos no
autorizados al ordenador
Mantener las aplicaciones instaladas en el ordenador
siempre actualizadas, instalando los parches de
seguridad proporcionados por los fabricantes
Preven
ción
Ejemplo:
* Requisitos:
-> Windows 2000/XP/2003
-> Rootkit Hacker Defender 1.00 [2004]
~ Capacidad de ocultación de
espacio libre en disco y
conexiones.
~ bdclient.exe para comunicarse con
el atacante.
* Configuración (hxdef100.ini):
- Hidden table: Almacena la lista de ficheros
ocultos por la rootkit.
- Root proccess: Procesos que podrían acceder a
todos los recursos, aunque estén ocultos.
- Hidden services: Esntradas de servicios ocultas
en el sistema.
- Hidden Regkeys: Entradas de registro ocultas
(claves de los programas que hemos instalado en el
sistema)
- Hidden regvalues: Como lo anterior, pero para
valores.
- Startup run: Tiene la misma funcionalidad que la
clave run del registro. Inicia programas ocultos al
ejecutarse la rootkit
- Free space: Se puede configurar que cada unidad
muestre un número de bytes extras en el espacio
libre para que no sospeche de la falta de espacio
en disco por nuestras herramientas.
- Hidden ports: Oculta puertos locales abiertos
para que no se detecten aplicaciones que están
escuchando en puertos, como pueda ser un servicio
ftp o un netcat.
- Settings: Configuración del nombre de servicio y
contraseña.
Ejempl
o
Ejecución:
hxdef100.exe -:Installonly
Se genera un nuevo
servicio:
-> Hacker defender100
Ejempl
o
Descargar

sabia.tic.udc.es