jueves, 5 de diciembre de 2013

Rootkits.- Métodos de Análisis y la Detección

Hoy vamos a echar un vistazo a algunas técnicas de detección de rootkit basados ​​en el análisis de volcado de memoria y otros métodos, va a ser una entrada bastante teórica así que voy a ponerme un poco profe con todo esto. 


Análisis del volcado de memoria

Los volcados de memoria [contienen instantáneas estáticas de la memoria volátil del ordenador] (RAM). Es posible crearlo para un solo proceso, núcleo del sistema o todo el sistema. Mediante el análisis de estos volcados, los examinadores pueden garantizar un entorno de trabajo limpio y sin resistencia activa desde el rootkit. Las técnicas utilizadas en el análisis de volcado de memoria también pueden ser desplegados en un sistema vivo, con restricciones. Normalmete la extracción se offline para evitar cualquier conexión que pueda interferir en nuestro análisis. 

Técnicas de detección de rootkits

Hay varias técnicas disponibles para detectar rootkits.

Análisis basado en firmas

Este método utiliza firmas características (una secuencias de bytes fija) de rootkits conocidos. La mayoría de las herramientas anti-virus utilizan firmas extraídas de muestas de rootkit (por ejemplo, de archivos o de paquetes de red). Además, hay modelos heurísticos y de comportamiento sobre la base de ciertas actividades típicas de un rootkits (por ejemplo, un uso agresivo de un determinado puerto de red en el equipo).

Detección Intercepciones

Windows utiliza tablas de puntero para redirigir las solicitudes del sistema, por ejemplo, IDT (Interrupt Descriptor Table), SSDT (System Service Descriptor Table), IAT (Import Address Table). Rootkits pueden sustituir o modificar estas tablas para especificar sus propios controladores para ciertas interrupciones. Como resultado, las solicitudes de determinadas funciones del sistema operativo siempre se entregarán al rootkit, lo que permite que el rootkit para detectar y contrarrestar los esfuerzos de detección. 

Comparando datos de distintas fuentes

Con el fin de enmascarar su presencia, los rootkits pueden alterar ciertos datos que son devueltos al examinador. Por ejemplo, mediante la sustitución de la API de alto nivel con sus propios controladores. Por lo tanto, es posible detectar su presencia mediante la comparación de resultados devueltos con llamadas del sistema de alto nivel y  de bajo nivel.

Otra variación de este método se basa en la comparación de la memoria de procesos cargados en la memoria volátil del ordenador con el contenido del archivo almacenado en el disco duro (herramientas como [RootkitRevealer]  están utilizando este enfoque).

Comprobación de integridad

Una firma digital (por ejemplo, con una función hash criptográfica) se calcula para cada biblioteca del sistema en el comienzo mismo (cuando el sistema está limpio, que no suele ser siempre xD). Después de eso, las bibliotecas se pueden comprobar por alteración código. Herramientas como [Tripwire]  están utilizando este método.

Se que es una entrada algo pesada pero me apetecía. Sed Buenos ;) 

No hay comentarios:

Publicar un comentario en la entrada