You are on page 1of 10

UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE ESTUDIOS SUPERIORES ARAGON

ALUMNO: PULIDO MUOZ SONIA ESMERALDA RESUMEN DE LAS CONFERENCIAS TOPICOS AVANZADOS DE ROOTKITS ELECTRICIDAD Y MAGNETISMO GRUPO: 1207 PROFRE: ALEJANDRO SUAREZ HERRERO

30/AGOSTO/2012

CONTENIDO 1. INTRODUCCION DEFINICION TIPOS DE ROOTKITS PROCESOS COMUNES DE ROOTKITS 2. LA PERSPECTIVA DEL ATACANTE METODOS DE ATAQUE KERNEL HACKING TASK STRUCT MODIFICATION 3. LA PERSPECTIVA DEL FORENSE METODOS DE DETECCION 4. FIN

1. INTRODUCCION: Resumen de la conferencia de Tpicos avanzados en Rootkits impartido por el Ing. en Sistemas Computacionales Marcos Schejtman Rubio con duracin de 47 min. DEFINICION: QU ES UN ROOTIKIT? Un rootkit es un programa que permite un acceso de privilegio continuo a una computadora pero que mantiene su presencia activamente oculta al control de los administradores al corromper el funcionamiento normal del sistema operativo o de otras aplicaciones. (Wikipedia) TIPOS DE ROOTIKITS Existen 2 tipos de rootikits: 1.- Los rootkits que viven en el espacio de usuario
Los cuales corren en Ring-3, y modifican librerias, o archivos de configuracion, e inclusive ejecutables (ls, ps, etc).

2.- Los rootkits que viven en el espacio de kernet


Los cuales corren en Ring-0, y modifican estructuras del kernel, atrapan llamadas de sistema /dev/kmem

(hijacking syscall-table), etc. Podemos tenerlos como LKM's o como patch al kernel corriendo

FUNCIONES COMUNES DE LOS ROOTKITS Esconder procesos Esconder archivos Esconder conexiones de red

Backdoors Keylogers Darnos acceso a root

LA PERSPECTIVA DEL ATACANTE METODOS DE ATAQUE Modificacin de las estructuras de datos (la misma que contiene los procesos corriendo en el sistema actualmente). Interceptando las llamadas a sistema mediante la modificacin de la tabla de llamadas o del handler de cierta syscall (Dinamyc or Static Hijacking). (IDT) 0x80. Interrupt Hooking, modificando la tabla de descriptores de las interrupciones Modificando la memoria del kernel (/dev/kmem). Interceptando el manejo de llamadas del VFS (/proc /sys) Virtual Memory Subversion, un ataque novedoso para presentar vistas de la memoria de los procesos. KERNEL HACKING Intel tiene cuatro anillos

MS Windows y otros manejan solo dos. Usando solo dos niveles de privilegios, no hay separacin entre el kernel y los drivers (root es tambien ring-3). Los drivers pueden modificar la memoria asociada con objetos del kernel... tales como aquellos que representan un proceso.

Las comunicaciones entre el espacio de usuario (ring-3), y el espacio del kernel (ring-0), se hacen mediante archivos.

INTRODUCIENDO AL LKM

Debido al punto anterior, existe y conocemos /proc, /sys/dev. Dichos directorios SYSTEM CALLS Process Managment Memory Managment File System Network Protocole

Low level code and device drivers Llamadas a sistemas, estan guardadas en una tabla especial (sys call table). solo existen en RAM.

Process Layer Hardware layer

CONSIDERACIONES:
Las diferencias mas importantes entre un desarrollo a nivel kernel o espacio usuario son: El kernel carece de proteccin de memoria... algo que se ofrece en el espacio de usuario. El kernel no puede ejecutar de manera sencilla operaciones en punto flotante. El kernel tiene un espacio en pila muy reducido por proceso. Debido a la naturaleza asncrona de las interrupciones del kernel, la concurrencia es de los temas a poner mas nfasis al desarrollar (Race-Conditions). La potabilidad... entre versin y versin de ncleo.

HIDDING THE MODULE:


El kernel maneja un lista enlazada en la cual, mantiene la referencia de todos los modulos que estn cargados (lsmod y /proc leen dicha lista). Esconder nuestro modulo es muy sencillo, en la funcin de inicio del modulo basta con eliminar la referencia de la lista: list_del(&THIS_MODULE->list); Dos problemas con esta primera aproximacin: 1.- Aun somos detectables desde /sys

2.- Al hacer un unload del modulo, debido a que no existe en la lista, se provoca un Oops que genera un kernel panic o crash del sistema, dejando rastros. Cada entrada en /sys es un objeto module kobject (de_nido en module.h) que internamente tienen una estructura del tipo kobject (de_nido en kobject.h). debemos eliminarnos de /sys y posteriormente de la vista. NULL Recomendaciones: 1.
1 Recordar

Examinando el codigo del kernel, vemos que en la descarga del modulo, primero Hay que tomar en cuenta, que el kernel no libera objetos que estn iniciado a

informacin previa (prev y next en la lista).

2. 2Sobrescribir readproc y writeproc 3. 3Funciones estticas para no dejar rastros en /proc/kallsyms

TASK STRUCT MODIFICATION

OVERVIEW
El kernel de linux contiene una lista enlazada (definida en include/linux/types.h e include/linux/list.h) de tareas, las cuales son una estructura declarada en include/linux/sched.h.

HIDDING
Esconder un proceso no es ms que eliminar la tarea de los punteros prev y next de la lista tasks.

ISSUES:
La eliminacin de las referencias en next y prev, ocasionan que el scheduler no vea el proceso que escondimos. Si el scheduler no ve el proceso, no le asigna tiempo de CPU, ocasionando que la tarea se congele. Adicional, es preciso modificar el scheduler para que asigne tiempo al proceso padre del PID 0 (init).

Es posible encontrar el proceso? Si. Usando gdb, conociendo nuestra arquitectura y cuanto pesa nuestra task struct. A partir de ahi y haciendo uso de System.map, /dev/kcore y la imagen es posible recrear la tabla de procesos.

Interrupciones a llamadas de sistema se usan para evitar accesos a procesos o archivos generados por nosotros.

HIJACKING SYSCALL

HIJACKING VFS (VIRTUAL FIGTH SYSTEM)


Interrupciones a llamadas de sistema se usan para evitar accesos a procesos o archivos generados por nosotros.

LA PERSPECTIVA DEL FORENSE METODOS DE DETECCION Comparando la tabla de Simbolos, Cada cierto tiempo se realizaran comparaciones con la tabla de Sistema original (System.map) con la actual tabla. Analisis de Binarios, desde mtodos tan sencillos como constantes revisiones de la suma MD5, hasta utilizacin de trazas y visualizacin de estructuras de datos sobre el kernel. Anlisis del Path de Ejecucin, Un rotkit modifica el camino de ejecucin de una llamada a sistema.

PATH ANALYSIS

FIN: CONCLUSIONES

Luego de haber analizado los conceptos pertinentes al malware asistido por tecnologas Rootkit, podemos disertar varias deducciones: Los efectos de este tipo de amenazas claramente sobrepasan las jurisdicciones de la ley, no hay fronteras geogrficas, pueden dar inicio a Botnets y Ciber-mafias Internacionales constituyendo un problema global, y no es uno, o dos o tres pases los encargados de afrontar y castigar a los responsables, si no, todos juntos. El nivel de automatizacin que han ganado la amenazas informticas es tal, que no se requieren altos conocimientos para su operacin, el manejo de las Botnets construidas en base a TDL-4 refleja muy bien lo expuesto. El fcil acceso, tanto econmico como tcnico, a las herramientas de desarrollo de estas amenazas ha disparado desmesuradamente el nmero de personas que se dedican a esta prctica. Dado que los delitos electrnicos trascienden fronteras y su efecto no se limita dentro de una sola zona geogrfica, debe proponerse la integracin de las leyes internacionales y organizaciones para aplicar castigos igualmente severos en todas las zonas involucradas por el crimen informtico, esto, para remediar el hecho de que en algunas naciones (mayoritariamente aquellas en vas de desarrollo) los ciber-crimenes ni siquiera se encuentran penados, esto ltimo tambin atae pases de Latinoamrica Tomando como referencia el alto crecimiento del nmero de usuarios de internet, es imperativo proponer a los sistemas de Educacin de cada regin en particular la implementacin de programas de instruccin a la poblacin Estudiantil, informando la alta peligrosidad de temas como el Rootkit y lasdiversas formas en las que el malware puede atacar. Se debe tenerse en cuenta todos los procedimientos sealados en el presente documento para minimizar en gran medida, los riesgos de infeccin de este tipo de amenazas (anti-malwares y sistemas operativos actualizados, firewalls, escaneos de rutina, etc.) Dado que el malware, como en el caso de los Boot-Rootkits, presenta formas de ataque cada vez ms complejas y a bajo nivel, la industria de la seguridad deber

apostar sin titubear por maniobras cada vez ms audaces. Quien sabe, quizs en el futuro, lo ltimo que debamos cargar al encender nuestro ordenador sea el sistema operativo, dando el primer lugar y prioridad mxima a nuestras herramientas de seguridad. Puede verse el impacto que las tecnologas Rootkit y el malware tienen en la sociedad, en la poltica, etc., viendo con preocupacin casos como Stuxnet o Flame, y la peligrosidad que estos pueden alcanzar en el sabotaje de los procesos industriales.