Fases de un Análisis Forense Digital | EL Informático GO Sistemas

Fases de un Análisis Forense Digital

Identificación del incidente: búsqueda y recopilación de evidencias:

 Una de las primeras fases del análisis forense comprende el proceso de identificación del incidente, que lleva aparejado la búsqueda y recopilación de evidencias.

Si sospecha que sus sistemas han sido comprometidos lo primero que tiene que hacer es ¡NO PERDER LA CALMA!, piense que no es el primero y que menos aún va a ser el último al que le ocurre. Antes de comenzar una búsqueda desesperada de señales del incidente que lo único que conlleve sea una eliminación de “huellas”, actúe de forma metódica y profesional.

Asegúrese primero que no se trata de un problema de hardware o software de su red o servidor, no confunda un “apagón” en su router con un ataque DoS. 

Descubrir las señales del ataque:

Para iniciar una primera inspección del equipo deberá tener en mente la premisa de que debe conservar la evidencia, por ello NO HAGA NADA QUE PUEDA MODIFICARLA. Deberá utilizar herramientas que no cambien los sellos de tiempo de acceso (timestamp), o provoquen modificaciones en los archivos, y por supuesto que no borren nada. 

Un inciso importante es que si no hay certeza de que las aplicaciones y utilidades de seguridad que incorpora el Sistema Operativo, o las que se hayan instalado se mantienen intactas deberemos utilizar otras alternativas. Piense que en muchos casos los atacantes dispondrán de herramientas capaces de modificar la información que el administrador verá tras la ejecución de ciertos comandos. Por ejemplo podrán ocultarse procesos o puertos TCP/UDP en uso. Cuestione siempre la información que le proporcionen las aplicaciones instaladas en un sistema que crea comprometido.

No estría de más en este momento crear un CD o DVD como parte de sus herramientas para la respuesta a incidentes, y si trabaja en entornos mixtos UNIX/Linux y Windows, tendrá que preparar uno para cada plataforma. Aunque existen gran cantidad de utilidades a continuación propongo una relación de aquellas que considero debería incluir en su ToolKit, y que le permitan, al menos, realizar las siguientes tareas:

  •  Interpretar comandos en modo consola (cmd, bash) 
  •  Enumerar puertos TCP y UDP abiertos y sus aplicaciones asociadas (fport, lsoft)
  •   Listar usuarios conectados local y remotamente al sistema 
  •  Obtener fecha y hora del sistema (date, time) 
  •  Enumerar procesos activos, recursos que utilizan, usuarios o aplicaciones que los lanzaron (ps, pslist).
  • Enumerar las direcciones IP del sistema y mapear la asignación de direcciones físicas MAC con dichas IP (ipconfig, arp, netstat, net)
  • Buscar ficheros ocultos o borrados (hfind, unrm, lazarus).
  • Visualizar registros y logs del sistema (reg, dumpel)
  • Visualizar la configuración de seguridad del sistema (auditpol) 
  • Generar funciones hash de ficheros (sah1sum, md5sum)
  •  Leer, copiar y escribir a través de la red (netcat, crypcat) 
  • Realizar copias bit-a-bit de discos duros y particiones (dd, safeback) 
  • Analizar el tráfico de red (tcpdump, windump) 
Supongamos que ya dispone de su ToolKit, ahora se hará la siguiente pregunta ¿dónde puedo buscar indicios de un ataque?. Evidentemente, uno de los primeros lugares donde comenzar la búsqueda de indicios es en los equipos que consideremos comprometidos pero no se limite sólo a éstos, piense que sus atacantes han podido borrar algunos registros locales en esos equipos, pero aún así, puede haber indicios en otras máquinas próximas tales como escaneado de puertos o tráfico inusual en cortafuegos y routers de la red.
Al iniciar la investigación nunca sabremos con qué nos vamos a topar, de hecho al principio puede que no se aprecie, a simple vista ninguna huella o indicio del ataque especialmente si para realizarlo han empleado e instalado en sus equipos un rootkit. 
Como primera opción de búsqueda podemos realizar una verificación de integridad de los ficheros del sistema, utilidades como Tripwire o AIDE (Advance Intrusion Detection Enviroment) podrán arrojar algo de luz sobre sus sospechas. Otra opción es realizar una serie de verificaciones sobre del equipo. 

Primero sería interesante conocer los procesos que se están ejecutando actualmente en el equipo, en busca de alguno que le resulte extraño, deberán llamarnos la atención aquellos que consuman recursos en exceso, con ubicaciones poco frecuentes en el sistema de archivos, que mantengan conexiones de red en puertos TCP o UDP no habituales, etc. 

Este último punto nos llevará a realizar otra comprobación de interés, listar todos los puertos TCP y UDP abiertos además de los procesos (PID), usuarios y aplicaciones que los utilizan, siempre con la idea de identificar actividad no usual, recuerde la importancia de que el administrador conozca muy bien los parámetros de actividad normal del sistema. La aparición en el listado de procesos sin nombre o que emplean puertos altos (por encima del 1024) pueden ser indicios de la ejecución de un troyano o puerta trasera (backdoor) en el equipo. Una buena opción sería buscar en Internet (especialmente en Google) alguna referencia sobre el puerto o proceso que le resulta sospechoso. 

Si tras estas consultas sus temores aumentan, pase ahora a editar los archidos de registro del sistema y logs en busca de entradas y avisos sobre fallos de instalación, accesos no autorizados, conexiones erróneas o fallidas, etc. Dependiendo de la plataforma que emplee encontrará estos archivos en distintas ubicaciones.

Microsoft Windows: Este sistema operativo le proporciona un entorno para realizar estas pesquisas puede consultar, si considera que se trata aún de una aplicación segura, dentro del menú Herramientas administrativas, el Visor de sucesos, el de Servicios o el de la Directiva de seguridad local. Si no entiende bien la información que estos visores le aporten puede consultar la base de datos de ayuda de Microsoft. Otro lugar donde se esconde gran cantidad información es el registro de Windows. La aplicación del sistema regedit.exe puede ayudarle en esta tarea, pero si no se fía de ella use las herramientas de su CD tales como reg (permite hacer consultas al registro sin modificarlo), o regdmp (exporta el registro en formato de texto plano, .txt), para su posterior consulta. En estos archivos tendrá que buscar “una aguja en un pajar”, debido a la ingente cantidad de información que almacena y que se mezcla. Un punto de partida podría ser buscar en las claves del registro Run, RunOnce, RunOnceEx, RunServices, RunServicesOnce, Winlogon, pues bajo estas claves se encuentran los servicios, programas y aplicaciones que se cargarán en el inicio del sistema. Si ve algo raro, acuda nuevamente a Google.

UNIX/Linux: En este tipo de sistemas se dispone de una serie de archivos de registro (logs), que podremos encontrar habitualmente bajo el directorio /var/log, siendo los más importantes los que se detallan a continuación: 
Además los programas y aplicaciones crean normalmente sus propios archivos de registro, que podrá encontrar bajo el directorio /var. Todos estos archivos están en modo texto, por lo que podrá utilizar cualquier editor o visor de texto para buscar indicios del ataque. Observe el siguiente fragmento de un archivo /var/log/messages, en una máquina comprometida:
¿No aprecia nada raro?, fíjese en la 4ª y 5ª entradas del archivo, éste parece haber sido modificado pues aparece un salto en la secuencia de fechas, con dos entradas fechadas el 22 de agosto tras dos entradas con fecha 23 de agosto. Este tipo de detalles, aunque no son determinantes, si pueden ser síntomas de que han estado “trasteando” en sus sistemas.

Además de estos archivos de registro, también pueden contener indicios los archivos de claves, usuarios y grupos, podrá encontrarlos en /etc/passwd, /etc/shadow,  /etc/group. También pude encontrar indicios de actividad anómala al editar el archivo /root/.bash_history que contiene los comandos ejecutados por el usuario roo el intérprete vas.

Para el propósito inicial de confirmación del ataque o compromiso de sus sistemas estas primeras pesquisas serán suficientes, aunque tendrá que volver a utilizar de forma más exhaustiva estos datos tal y como veremos en el apartado de análisis de evidencias.

Recopilación de evidencias:
Bien, ya está seguro de que sus sistemas informáticos han sido atacados. En este punto deberá decidir cuál es su prioridad:

A.- Tener nuevamente operativos sus sistemas rápidamente. 
B.- Realizar una investigación forense detallada.  

 Piense que la primera reacción de la mayoría de los administradores será la de intentar devolver el sistema a su estado normal cuanto antes, pero esta actitud sólo hará que pierda casi todas las evidencias que los atacantes hayan podido dejar en “la escena del crimen”, eliminando la posibilidad de realizar un análisis forense de lo sucedido que le permita contestar a las preguntas de ¿qué?, ¿cómo?, ¿quién?, ¿de dónde? y ¿cuándo? se comprometió el sistema, e impidiendo incluso llevar a cabo acciones legales posteriores si se diese el caso. Esto también puede que le lleve a volver a trabajar con un sistema vulnerable, exponiéndolo nuevamente a otro ataque.

Si no está seguro de lo que está haciendo, ¡NO HAGA NADA!, y póngase en contacto con expertos en la materia. 

Asumamos que elige el “Plan B”, que el análisis forense es su prioridad y que está capacitado para realizarlo, así que a partir de ahora tendrá que seguir una serie de pasos encaminados a recopilar evidencias que le permitan determinar el método de entrada al sistema, la actividad de los intrusos, su identidad y origen, duración del compromiso y todo ello extremando las precauciones para evitar alterar las evidencias durante el proceso de recolección. 

 
Este es un buen momento para hacerse con un cuaderno donde comenzar a tomar apuntes detallados de todas las operaciones que realice sobre los sistemas atacados, no se fíe de su memoria, anote la fecha y hora de inicio y fin de cada uno de los pasos que dé, anote también características como números de serie de cada equipo, de sus componentes, de su S.O., etc. No escatime en la recopilación de datos incluso haga fotografías de los equipos y del entorno, nunca se sabe si tendrá que vérselas con sus atacantes en un juicio, y cualquier evidencia puede ser definitiva. También sería recomendable que le acompañase otra persona durante el proceso de recopilación de evidencias, ésta actuaría como testigo de sus acciones, así que si es alguien imparcial mejor, y si puede permitirse que le acompañe un Notario mejor que mejor, recuerde los requisitos legales para que una evidencia pase a ser considerada como prueba en un juicio. No sería la primera vez que un excelente análisis técnico de un incidente es rechazado en un juicio por no guardar las debidas garantías procesales. 

Ahora que ya está preparado para la recolección de evidencias tendrá que decidir si comienza a tomar muestras sobre el sistema “vivo” o “muerto”. Tenga presente que en el sistema habrá pruebas ocultas con diferentes niveles de volatilidad, como los registros del procesador, estructuras de datos en la memoria RAM o memoria de tipo caché, conexiones de red activas, usuarios y procesos actuales, sistema de archivos, etc. Será muy difícil reunir toda esta información a la vez y gran parte de esta se perderá si decide apagar el equipo de la forma habitual, ya que en este proceso se realizan una serie de pasos programados para cerrar el sistema de forma limpia, pero si además el atacante ha instalado las herramientas adecuadas éste podría eliminar, modificar y sustituir ficheros a su antojo durante el apagado, y se “limpiarán” también del equipo las huellas de su atacante. Además si el atacante sigue on-line, puede detectar su actividad y actuar con una acción evasiva o, peor aún, destructiva eliminando todo tipo de información. Pero si por la severidad del ataque o por la importancia de los datos comprometidos decide apagar el equipo, no lo dude ¡DESCONÉCTELO DIRECTAMENTE DE LA RED ELÉCTRICA!, si ha leído bien, de esta forma perderá la información volátil de la RAM, micro, etc. Pero conservará aún bastante información sobre el ataque.

Supongamos que puede mantener su equipo “vivo” un poco más, comience a recopilar evidencias siguiendo el orden de mayor a menor volatilidad. Este proceso se describe muy bien e el RFC 3227, .Estableceremos el siguiente orden de volatilidad y por tanto de recopilación de evidencias:
  • Registros y contenidos de la caché. 
  • Contenidos de la memoria.
  • Estado de las conexiones de red, tablas de rutas. 
  • Estado de los procesos en ejecución. 9 Contenido del sistema de archivos y de los discos duros.  Contenido de otros dispositivos de almacenamiento.  
Observe que los cuatro primeros puntos representan un tipo de datos, volátil, que se perderán o modificarán si apaga o reinicia el sistema, es por tanto muy fácil eliminar evidencias de forma inadvertida.
Dentro de las evidencias volátiles será de interés recuperar los siguientes datos del sistema en tiempo real: 
  •  Fecha y hora.
  •   Procesos activos. 
  •  Conexiones de red. 
  •  Puertos TCP/UDP abiertos y aplicaciones asociadas “a la escucha”. 
  •  Usuarios conectados remota y localmente.  
Durante este proceso de recopilación de evidencias, tendrá que hacer uso de su ToolKit, pero como se indicó anteriormente, deberá tener precaución pues el atacante aún puede estar fisgoneando por sus sistemas. Con un buen entrenamiento será capaz de recopilar toda esta información con un número de comandos mínimo, haciendo su labor casi desapercibida, incluso sería recomendable que tuviese preparado un script en Perl para sistemas UNIX/Linux o un archivo de proceso por lotes para entornos Windows que realizase todas estas operaciones de forma automatizada y que, además, enviase la información a un lugar seguro.

Y ahora viene otra cuestión , a la hora de recopilar estas evidencias volátiles, ¿dónde las almacenamos?, ¿dónde está ese lugar seguro?. Las salidas de algunos comandos pueden ocupar poco espacio, pero otros pueden generar tal cantidad de información que sea necesario el uso de medios de almacenamiento con una capacidad considerable (desde cientos de Mbytes hasta decenas de Gbytes). Una Opción interesante sería usar discos externos USB, muy económicos y que le permiten gran flexibilidad de manejo y transporte de grandes cantidades de información. Otra opción es emplear herramientas de transmisión de datos por la red tipo netcat, que le permitiría enviar toda la información recopilada a un sistema seguro, como por ejemplo un equipo conectado en la misma red o un portátil conectado directamente al sistema afectado.  

En cualquier caso tenga en cuenta el siguiente consejo, NUNCA almacene la información volátil en el equipo comprometido con la idea de recuperarla más tarde para su análisis... ¡puede que ya no esté ahí cuando vuelva a buscarla!.

Tan pronto como haya obtenido toda la información volátil del sistema tendremos que recopilar la información contenida en los discos duros, teniendo en cuenta que estos dispositivos no sólo contienen las particiones, los archivos, directorios, etc. Sino que también contienen otro tipo de datos que hacen referencia a los propios archivos y a flujos de información, son los metadatos que serán de gran importancia en el análisis forense.

En este punto cabe hacer una aclaración muy importante, cuando se realiza una copia de seguridad de un disco o soporte en general se procede a copiar los archivos tal cual el sistema operativo los “ve”, perdiéndose gran cantidad de información oculta en el disco. Por el contrario si realizamos una imagen del disco, creamos una copia bit-a-bit del disco original preservando toda la información que contenga, incluyendo los bloques de los ficheros eliminados, espacio libre tras cada bloque, inodos (metadatos), etc. 
Como norma general, obtendremos siempre imágenes de los discos duros para su posterior análisis y, siempre sobre medios de sólo lectura. 

Una de las herramientas más empleadas en entornos UNIX/Linux es dd, ésta permite crear imágenes de discos bit-a-bit, además de ofrecer otras opciones como obtención del hash MD5 de la copia, etc. Si además la combinamos con la herramienta netcat, podríamos transferir las imágenes completas a través de la red. 

Publicar un comentario

Tema Anterior Tema Siguiente