Metodología para la Recolección de Datos Volátiles Aplicados a un Proceso de Investigación Forense-Edición Única Title Metodología para la Recolección de Datos Volátiles Aplicados a un Proceso de Investigación Forense-Edición Única Issue Date 2006-04-01 Publisher Instituto Tecnológico y de Estudios Superiores de Monterrey Item Type Tesis de maestría Downloaded 19/05/2018 07:17:26 Link to Item http://hdl.handle.net/11285/567549
177
Embed
METODOLOGÍA PARA LA RECOLECCIÓN DE DATOS · PDF fileAtizapán de Zaragoza, Edo. Méx., Abril de 2006. 2 ... Herramientas (toolkit) ... TABLA 3.4 Suite “PsTools
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Metodología para la Recolección deDatos Volátiles Aplicados a un Procesode Investigación Forense-Edición Única
Title Metodología para la Recolección de Datos Volátiles Aplicados aun Proceso de Investigación Forense-Edición Única
Issue Date 2006-04-01
Publisher Instituto Tecnológico y de Estudios Superiores de Monterrey
Las computadoras se han convertido en una parte esencial en nuestro trabajo, esto genera el
riesgo de tener violaciones no autorizadas a nuestro sistema (incidentes de seguridad) por el mal
manejo que podamos tener sobre éste. Los delitos informáticos se han vuelto cada día más
importantes debido a la utilización de los servicios que ofrece la red Internet, algunos crímenes
convencionales, especialmente los concernientes a comercio y finanzas, se hacen más
sofisticados tecnológicamente.
Para protegerse contra las amenazas constantes de hackers, crackers y código malicioso, las
organizaciones hacen uso de firewalls, software antivirus y sistemas de detección de intrusos.
Pero a pesar de estas medidas de defensa, computadoras y redes conectadas a Internet, aún siguen
siendo sujetas a ataques frecuentes.
Como resultado de estos hechos desafortunados, organizaciones y gobiernos alrededor del mundo
deben estar preparados para responder ante un incidente de seguridad [1].
11
1.1 RESPUESTA A INCIDENTES
En un incidente donde una brecha de seguridad se ha abierto o un acto criminal involucra a una
computadora, la respuesta inicial es muy importante, las primeras acciones tomadas durante la
atención al incidente puede hacer que se puedan encontrar las pruebas necesarias para detectar la
falla y/o al culpable del acto criminal.
En una respuesta a incidentes el equipo de emergencia hace la verificación del incidente,
recolecta evidencia, analiza la situación, reacciona ante un desastre y reporta acciones, el
investigador forense va un poco mas allá, recolecta y preserva evidencia de la intrusión, busca
pistas, analiza la situación, reporta hallazgos y determina propósitos y motivos.
En un incidente de seguridad es esencial que los pasos que se tomen aseguren la protección de los
datos en el medio de almacenamiento ya que estos datos son invaluables para determinar el nivel
de la brecha de seguridad y la localización de evidencia potencial acerca del acto criminal. El
éxito de la recuperación de datos y el enjuiciamiento dependerá de las acciones del individuo que
inicialmente descubrió el incidente computacional. En la mayoría de las situaciones, el equipo de
emergencia es solo el administrador del sistema. La mayoría de los administradores empiezan a
tomar acciones cuando ocurre un incidente sin darse cuenta del costo que éstas pueden implicar
sobre la evidencia. Es por esto que el proceso de Respuesta a Incidentes tendrá un impacto
significante en el análisis forense posterior.
Las organizaciones necesitan desarrollar un equipo especializado que tenga la capacidad de
responder a incidentes de seguridad, esto incluye personal con habilidades técnicas necesarias
que conozcan los procedimientos y políticas de seguridad.
Mientras la respuesta a incidentes varía dependiendo de las circunstancias, los objetivos
principales en todos los casos según Douglas Schweitzer [21] son:
• Recuperarse rápida y eficientemente del incidente de seguridad.
• Minimizar el impacto causado por la pérdida de datos o robo de información.
• Responder sistemáticamente siguiendo los procedimientos para evitar la recurrencia.
12
Las organizaciones deben desarrollar e implementar un plan de seguridad, llevarlo a cabo y
retroalimentarlo. Deben estar preparadas para actuar rápida y eficientemente para minimizar el
impacto de estos incidentes y establecer los procedimientos que se llevarán a cabo en una
respuesta a incidentes en forma clara y precisa [7].
1.1.1 PROCEDIMIENTOS
No existe un manual que indique paso a paso lo que debemos hacer ante cada uno de los
escenarios en incidentes de seguridad, por lo que podemos ayudarnos con los procedimientos que
algunas dependencias ya han establecido para tomar las medidas precautorias ante un incidente
como la guía de respuesta inicial del Laboratorio de Cómputo Forense del Departamento de
Energía de los E.U. [5] que expone los siguientes cuatro puntos:
1.1.1.1 Respuesta inicial del administrador del sistema
El rol del administrador del sistema es vital para asegurar todos los aspectos de la red, seguridad
y mantenimiento. Desde el punto de vista del forense la situación ideal es aislar el equipo de
cómputo, pero existen casos donde el equipo es un servidor en producción donde la pérdida de
evidencia es inminente.
1.1.1.2 Protegiendo la integridad de la evidencia
Es de gran importancia tener cuidado en preservar la evidencia en su estado original, el simple
hecho de abrir un archivo puede alterar la evidencia, esto en sentido legal puede ser inadmisible
como evidencia. La evidencia incluye también medios de almacenamiento, notas y bitácoras
escritas a mano y documentos del área donde la computadora ha sido involucrada.
1.1.1.3 Procedimientos shut-down
Una de las primeras acciones que se realizan puede estar entre: respaldar evidencia, encontrar
pistas, apagar o dejar arriba el sistema. Cualquier cosa que se haga o no se haga cambiará el
estado del sistema.
13
Cuando se da de baja limpiamente el sistema, se modifica la información del disco y la memoria,
esta es la opción menos viable cuando se desea obtener evidencia. Al apagar el sistema se pierde
información de todos los procesos en ejecución y memoria.
Otra opción es aislar el equipo bajo análisis de la red de trabajo, es decir desconectar de la red y
conectar el otro extremo a un concentrador que no esta conectado a ninguna otra parte, haciendo
suponer a la máquina que sigue conectada a la red y limitando la cantidad de cambios en el
sistema, esto porque la mayoría de los sistemas escriben mensajes de error en los archivos de
bitácora si no se encuentra la red.
Una de las decisiones más difíciles al tratar con un sistema sospechoso es la forma de apagar el
equipo sin corromper la integridad de los archivos. En muchos casos el tipo de sistema operativo
será la clave para tomar la decisión. En algunos sistemas jalar del cordón de poder es un método
para apagar el sistema, pero en otros casos esto puede causar la pérdida de archivos importantes,
o procesos e información en memoria o que el disco duro se dañe. En el caso de los equipos con
Windows se recomienda desconectar el equipo, en el caso de los equipos con Unix se puede
utilizar el comando halt, en sistemas MAC se puede realizar un shutdown especial o quitar el
cordón de corriente.
1.1.1.4 Cadena de custodia
El investigador debe asegurar y administrar eficientemente la evidencia. Una vez que la evidencia
ha sido obtenida se debe tener cuidado de mantener una custodia sobre ésta, en caso de no tenerla
se puede causar un daño grave en la investigación. Por lo que es importante realizar notas de
quién, qué y cuándo se hizo la transferencia de evidencia y mantenerla en un lugar seguro. El
análisis se debe realizar sobre copias en vez de la evidencia original y utilizar firmas digitales
para proveer integridad al contenido original [3].
14
1.2 METODOLOGÍA EN UNA RESPUESTA A INCIDENTES
Los criminales emplean la tecnología como depósito para ocultar evidencia incriminatoria o
materiales de contrabando. Los oficiales de policía deben tener conocimiento y equipo
actualizado para investigar eficientemente la actividad criminal de hoy en día. El reto de la
comunidad policíaca es identificar, investigar e iniciar el procedimiento penal contra las personas
físicas y las organizaciones que usan éstas y otras tecnologías emergentes como medio para sus
operaciones ilícitas. Esto es lo que sucede durante un caso normal:
1.- La víctima notifica que un crimen ha ocurrido.
2.- La policía obtiene evidencia y detecta sospechosos.
3.- Entrevistas y/o interrogaciones pueden ser conducidas.
4.- Al sospechoso son aplicados los cargos.
5.- El caso es llevado a juicio para presentación ante el jurado.
Con el crecimiento del crimen electrónico, una serie de prácticas, procedimientos, procesos de
decisión, referencias, etc. han sido preparados por grupos de trabajo técnico y expertos en
crímenes electrónicos para asistir a las agencias policíacas. La serie de guías direccionarán el
proceso desde la respuesta inicial en la escena del crimen, el laboratorio y ante la corte.
Los departamentos deben contar con herramientas para procesar la escena del crimen. Los
siguientes dispositivos pueden ser útiles en la escena del crimen:
Herramientas de documentación:
Etiquetas de cables
Marcadores indelebles
Herramientas de desensamble y retiro
Desarmadores
Pinzas
Tijeras
Empaquetar y transportar
Bolsas antiestáticas
15
Cables de amarre
Evitar los materiales que puedan producir electricidad estática
Otros dispositivos
Guantes
Lentes de aumento
Maleta de mano
Lámpara
Los siguientes pasos son realizados en una respuesta a un incidente de seguridad:
Tabla 1.1 Pasos de un Respuesta a Incidentes
Preparación Detección del incidente Respuesta inicial Identificar y recolectar evidencia Proceso forense Preservar la evidencia Analizar la evidencia Presentar la evidencia Recuperación Implementación de mecanismo de seguridad Documentación
La preparación cubre todo lo que se necesita hacer antes de que el incidente tome lugar, como
preparar las herramientas de respuesta y forenses, aprender los ambientes, configurar los sistemas
para una respuesta óptima y monitoreo, asignar responsabilidades, formar equipos de trabajo
establecer procedimientos de escalación, etc.
Después de que se ha reportado e identificado el incidente, la respuesta inicial debe tomar los
pasos para asegurar la escena del crimen protegiéndo la integridad de la evidencia, tanto
tradicional como electrónica de todo el personal con acceso a la escena del crimen.
16
Después de asegurar la escena del crimen, la repuesta inicial debe identificar la evidencia
potencial, tanto la electrónica como la convencional. La respuesta inicial debe evaluar la escena
del crimen y formular el siguiente plan. Como actividades se deberá restringir inmediatamente el
El tiempo de vida de los datos digitales depende de donde se encuentren almacenados. Dan
Farmer y Wietse Venema establecieron el siguiente orden de volatilidad:
1 Procesador
2 Sistemas de almacenamiento
3 Tablas del kernel
4 Medios fijos
29
5 Medios removibles
6 Impresiones
Mientras mayor volatilidad de los datos es mayor la dificultad de capturarlos, y menor el tiempo
que tenemos para realizar un análisis. Por ejemplo en el caso del procesador es improbable que se
pueda utilizar el contenido de los registros, el simple acto de buscar en ellos puede modificarlos,
así es que, buscando sobre el contenido de la memoria del sistema y el estado de la red podemos
obtener claves valiosas, el tipo y la fuente de un ataque de entrada, etc. Examinar esta tipo de
estructuras requiere de cierta experiencia para analizar y capturar los datos en forma segura.
A continuación se muestra la tabla 2.1 que publica las diferentes fuentes de sistemas de datos su
volatilidad y su utilidad en la investigación [2].
Tabla 2.1 Fuentes de sistemas de datos su volatilidad y utilidad Máximo tiempo de vida
Categoría Tipo de almacenamiento de datos
Significado para el investigador forense
Registros Captura irrealizable y mínima utilidad
Procesador
Caches Captura irrealizable como una entidad discreta pero puede obtenerse información a través de una imagen de memoria del sistema.
Tan corto como un ciclo de reloj
Video RAM La pantalla actual puede ser capturada y provee información útil si se sospecha que el intruso entró al sistema mediante la consola o en una terminal X Windows
Sistemas de almacenamiento
RAM Incluye información sobre todos los procesos corriendo y el estado del kernel. Fácil de capturar, pero el acto de capturarlos puede cambiarlos. Requiere conocimiento especializado para reconstruirlo completamente, pero no requiere habilidades especiales para buscar estos datos por palabras clave.
Estado de red Puede ayudar a determinar si una puerta trasera “backdoor” ha sido instalada y si está activa. Debe ser analizado para determinar la actividad de red.
Hasta que el host es dado de baja
Tablas de Kernel
Procesos corriendo
Algunos procesos pueden mostrar actividad no autorizada. Todos los procesos deberán ser verificados contra binarios seguros, verificando que
30
Máximo tiempo de vida
Categoría Tipo de Significado para el investigador forense almacenamiento de datos
no sean caballos de Troya.
Espacio swap Cuando las demandas del sistema exceden la capacidad de la RAM, algunos datos del kernel son copiados al disco duro. Estos datos complementan los de la memoria RAM para el análisis de tiempos.
Directorios Queue
Incluye información sobre procesos corriendo y actividades incompletas. Se puede observar correo saliente y trabajos de impresión que no existen en otro lugar en el sistema
Directorios Temp.
Son archivos de trabajo de todo el sistema. Se espera que sea borrado periódicamente, por lo que es un lugar apropiado para dejar datos que no serán necesitados en el futuro. Se pueden encontrar datos que fueron deliberadamente borrados sobre otras partes del sistema
Directorios Log
Esto es crucial para la reconstrucción de eventos. La dificultad es que crecen demasiado, los logs son mantenidos, viejos datos son eventualmente borrados o sobre-escritos.
Medios fijos (Discos duros)
Directorios de configuración, usuario, binarios y librerías.
Cada parte del sistema de archivos que no es considerada temporal, como bitácoras que incluyen archivos que pueden permanecer indefinidamente. Sin embargo, cualquier usuario con acceso de escritura podrá borrar o cambiar los datos.
Discos floppy Uso menos frecuente en ambientes de red, pero puede contener archivos útiles. Discos de alta capacidad que pueden ser usado para respaldos
Cintas Son una fuente confiable de información acerca del contenido histórico del sistema. En caso de existir cintas antes del incidente, pueden ser usadas para determinar el periodo de tiempo durante el cual un incidente ocurrió.
Hasta que sean sobre-escritos o borrados
CD-ROM Read/write
El estándar para CDs es ahora multisesion. Debemos estar seguros de que examinar un CD sospechoso puede mostrar todas las sesiones. Los datos no pueden ser sobrescritos, pero cada sesión crea una nueva tabla de directorio.
Medios removibles
CD-ROM Write/only
Medio de escritura de una sola vez, es un lugar excelente para almacenar archivos log porque ellos no pueden ser alterados.
Hasta que sean físicamente destruidos Salidas Impresiones en
papel Es difícil hacer búsquedas en impresiones muy largas, pero su periodo de destrucción es corto. Es probablemente el mecanismo de almacenamiento de mayor vida
Es imposible completar la captura de todo el estado de una computadora en un incidente. El
simple acto de examinar los datos volátiles provoca que el estado del sistema se modifique.
31
2.3 PROBLEMÁTICA DE RECOLECCIÓN DE DATOS EN UNA
INVESTIGACIÓN FORENSE
De acuerdo a lo que se ha expresado en las secciones anteriores podemos encontrar diversos
problemas a los que se puede enfrentar un investigador forense en la recolección de información.
Ante una respuesta a un incidente, el personal que atiende el incidente debe decidir si el equipo se
queda encendido o apagado. En caso de apagarlo también debe decidir si debe desconectarlo de
la energía o realizar un apagado (shutdown) normal.
Sea lo que decida el personal de respuesta a incidentes el investigador forense realizará la
recolección tal como encontró el equipo y deberá recolectar la información posible que le pueda
llevar a encontrar claves para resolver el caso al que se enfrente.
Por lo que podemos generalizar son dos situaciones a las que se enfrentará el investigador forense
para la recolección de información, cuando el equipo esta encendido y cuando el equipo está
apagado.
Se sabe que en algunas situaciones, especialmente en intrusiones de Internet, la evidencia puede
ser encontrada solamente en la memoria, pero debido a su alta volatilidad si se desconecta el
equipo antes de capturarla, se puede destruir la poca evidencia existente. Por lo que para
recolectar información volátil de un sistema utilizando las herramientas tradicionales de software
necesitamos tener el equipo encendido y corriendo sus procesos en forma normal.
Pero con el sistema corriendo es fácil cometer errores que traigan consecuencias graves, además
se viola uno de los principales principios de investigación forense que es no modificar la
evidencia, como por ejemplo en Linux, cada herramienta en el espacio de usuario o kernel
utilizada para capturar datos, por naturaleza cambia el estado del sistema. Correr herramientas en
un sistema vivo, hace que éstas se carguen en memoria y creen por lo menos un proceso que
puede sobrescribir evidencia. Creando un nuevo proceso, los sistemas de administración de
memoria del sistema operativo colocan datos en memoria principal y puede sobrescribir datos no
32
colocados en la memoria principal o en la memoria swap, que también es totalmente válido en los
ambientes Windows.
Otro problema se presenta cuando queremos tomar acciones legales y necesitamos cumplir con
las leyes locales. Las señales de intrusión encontradas en imágenes de memoria principal pueden
ser no confiables, porque son creadas con herramientas que adquirimos. Por lo que al tomar una
acción debemos decidir si o no, vamos a obtener datos volátiles de un sistema comprometido.
Pero algunas veces el procedimiento vivo describe la única forma de adquirir datos del incidente,
porque cierto código malicioso como algunos “rootkits” son cargados en memoria y no modifican
archivos o directorios.
2.4 PROPUESTAS DE SOLUCIÓN
Como ya hemos mencionado en la mayoría de los casos de atención de incidentes, se encuentra al
sistema en dos estados, se puede encontrar un sistema vivo (donde todavía se puede obtener
evidencia volátil) o se puede encontrar el sistema muerto (el investigador lo encuentra apagado).
El estado del sistema determinará cuales son las primeras acciones que se tomarán. En un sistema
vivo se tiene la opción de monitorear la red, se puede optar por dejar el sistema corriendo después
de recolectar la evidencia y/o instalar algún sniffer en el sistema (si es que lo permiten las
políticas).
En el caso de que el investigador se encuentre con un equipo encendido o “vivo”, lo importante
es actuar lo más rápido posible para capturar información, pero teniendo en cuenta que cada
acción que se tome durante la investigación, debe ser hecha de manera que pueda explicarse
fácilmente, ya que cada error en el sistema vivo puede traer consecuencias.
En el caso de que el investigador encuentre el equipo apagado o “muerto”, podemos pensar que
ya no es posible recuperar la información volátil del sistema, pero de acuerdo a la investigación
realizada en este proyecto, sí se puede recuperar algo de información de la memoria RAM
utilizando métodos físicos. Esto abre la posibilidad de que todavía podamos obtener claves para
una investigación forense aún si encontramos el equipo apagado.
33
No hay duda de que una metodología es llevada a cabo en un fraude computacional, por lo que
tampoco hay duda de que una investigación forense debe contar con una metodología también,
además una metodología formal permite al investigador enfocar e investigar un crimen en forma
racional y rápidamente. También es importante establecer un protocolo por el cual la evidencia
electrónica es obtenida y manejada para reducir el riego de ser corrompida. Sin una metodología
será más difícil investigar exitosamente y por lo tanto controlar un abuso o fraude computacional.
Es requisito que en un proceso de investigación forense se exhiban las características de una
metodología científica. Por ejemplo un proceso válido debe consistir en pasos bien definidos que
puedan ser repetidos en toda la investigación, cada paso debe ser consistente. Sin una
metodología formal comprobada la evidencia recopilada no será tomada seriamente en una corte.
En este trabajo se ha establecido una metodología general aplicada al estado “vivo” del sistema,
para que a partir de ésta se pueda llevar a cabo una recolección de información volátil útil en una
investigación forense, esta metodología será aplicada en cincos casos diferentes con el equipo
encendido y con sus procesos corriendo en forma “normal”, bajo los sistemas operativos más
comunes Linux con Red Hat Entreprise 3 y Windows 2000.
Como parte de la investigación también se mostrarán las herramientas útiles para llevar a cabo
cada procedimiento, dentro de las dos plataformas descritas, esto con el fin de que una vez que
conozcamos lo que existe en el mercado y lo que podemos utilizar del sistema operativo
tengamos la oportunidad de crear un conjunto de herramientas que nos va a ayudar a realizar la
recolección de información. Este paso de crear el conjunto de herramientas es tan importante
como el de la investigación misma, por lo que el siguiente capítulo mostrará estas herramientas,
así el investigador podrá decidir cuales son la que utilizará en su investigación.
Considerando también el problema al que se enfrenta el investigador forense en una situación
donde el estado del sistema esta “muerto”, en el último capítulo se expondrá una serie de
ejemplos experimentales llevados a cabo por Universidades con especialidades en
semiconductores y seguridad, que se basan en los defectos de los dispositivos semiconductores
para recuperación de información en las memorias, y así obtener información clave para una
investigación forense.
34
CAPITULO 3
HERRAMIENTAS PARA LA RECOLECCIÓN DE INFORMACIÓN DE DATOS VOLÁTILES Y MEMORIA
35
3. HERRAMIENTAS PARA LA RECOLECCIÓN DE
INFORMACIÓN DE DATOS VOLÁTILES Y MEMORIA.
Como hemos mencionado el conjunto de herramientas que utilizará el investigador forense o el
equipo de respuesta a incidentes para la captura de información volátil es tan importante como los
pasos del proceso forense.
Es importante conocer las herramientas que existen en el mercado y las que el sistema trae ya
integrado. La memoria RAM como dispositivo de alta volatilidad involucra que muchas veces el
investigador tenga que recolectar información con lo que tenga a primera mano, este es el caso
del sistema operativo. Con experiencia y el conocimiento propio, el sistema operativo puede ser
una excelente plataforma para realizar la recolección de evidencia.
Durante este capítulo se presentarán las principales herramientas de sistema para la recolección
de información volátil, programas para realizar imágenes de memoria, así como software forense
especializado que nos puede ser útil para conformar nuestro conjunto de herramientas de
recolección.
36
3.1 SO WINDOWS NT Y 2000
3.1.1 HERRAMIENTAS DE CAPTURA CON UTILERÍAS DEL SO PARA WINDOWS
Los comandos y utilerías para tareas administrativas del sistema pueden ser de gran utilidad ante
una respuesta inmediata. Esta es la razón por la que a continuación se exponen herramientas del
sistema operativo que no tiene el propósito específico de capturar información para un proceso de
investigación forense, pero se pueden utilizar para ese fin.
3.1.1.1 MS-DOS y comandos del sistema
La tabla 3.1 muestra los comandos útiles y su función en la recolección de datos. Todos estos
comandos van incorporados dentro del sistema operativo, por lo que no será necesario bajarlos de
Internet o comprarlos, a menos que no contemos con el sistema operativo. Tabla 3.1 Comandos del sistema operativo Windows Utilería
Función
debug y dump Visualiza la memoria, carga porciones del disco en memoria y vuelve a grabarlas, pero del subsistema de MSDOS únicamente.
mem Muestra qué y cuánta memoria se está utilizando, pero del subsistema de MSDOS únicamente.
at.exe
El comando AT programa la ejecución de comandos y programas en un equipo a una hora y fecha especificadas. El servicio de programación debe estar en ejecución para utilizar el comando AT.
cmd.exe
Inicia una nueva instancia del intérprete de comandos de Windows XP
dir.exe Muestra la lista de subdirectorios y archivos de un directorio.
ipconfig.exe
Muestra la dirección IP, máscara, subred, puerta de enlace. Puede liberar o renovar las concesiones de dirección IP.
nbtstat.exe
Muestra las estadísticas del protocolo y las conexiones actuales de TCP/IP usando NBT (NetBIOS sobre TCP/IP).
net.exe
Muestra información de cuentas, computadoras, estadísticas de red.
netstat.exe
Muestra estadísticas del protocolo y conexiones TCP/IP actuales
nslookup.exe
Muestra información acerca del nombre de host o de dominio
route.exe
Manipula tablas de enrutamiento
tracert.exe Muestra la ruta para llegar a un host determinado, los saltos y el tiempo
37
Utilería Función de espera hostname
Comando de sistema que despliega el nombre de la máquina
arp
Despliega y modifica la tabla de direcciones IP a direcciones físicas, utilizando el protocolo ARP
doskey
Almacena el historial de comandos aplicados en la línea de comandos.
archivo .dmp Archivo donde se descarga la memoria RAM.
dumpchk.exe Comando que se utiliza para verificar que un archivo dump ha sido creado correctamente, es localizado en el CD-ROM de Windows. Se instala ejecutando setup.exe desde el directorio Support\Tools del CD [25].
reg regedit
Estas herramientas permiten hacer una copia del registry. Reg permite agregar, cambiar, buscar, respaldar, restaurar y realizar operaciones sobre el registry en una línea de comandos, puede ser usada en computadoras locales y remotas.
3.1.1.2 Windows Resource Kits
El Resource Kit de Windows es un conjunto de herramientas, artículos y referencias que ayudan
al profesionista en Tecnologías de Información a dar soporte al sistema operativo. Contiene un
conjunto de herramientas que ayuda al administrador con tareas comunes y soporte a fallas en la
operación del sistema. Principalmente para la administración del “Active Directory”1,
configuración de red, características de seguridad y desarrollo de aplicaciones [23].
El Resource Kit de Windows 2000 incluye muchas herramientas, pero solo algunas de ellas están
libres en Internet. Estos archivos son ejecutables autoextraibles que instalan la herramienta y su
documentación en la computadora, de entre ellas podemos utilizar y adquirir las publicadas en la
tabla 3.2. Tabla 3.2 Herramientas de Windows Resource Kit libres Utilería Función
dh.exe
Es un comando en línea que despliega información acerca del uso de procesos en modo usuario y modo kernel. Acepta switches para identificar el proceso desplegar y enviar a un archivo de texto. Es muy útil para listar la basura de memoria y llamadas de asignación de memoria. Despliega “memory hogs” (programas que utilizan mucha memoria. Envía la información a un archivo de descarga (dmp). Nota: Se tienen que
1 El Directorio activo de Windows es un componente central de dicho sistema operativo que proporciona los medios para gestionar las identidades y relaciones que organizan su entorno de red.
38
Utilería Función configurar algunas variables globales en el sistema (gflags) y en el registry
drivers.exe
Esta herramienta lista los drivers cargados en la máquina. Nota: Se aplica solo localmente
pfmon.exe
Este comando en línea permite al desarrollador o administrador de sistema monitorear fallas de páginas (page faults) que se presentan cuando una aplicación está corriendo.
pstat.exe
Es una herramienta que lista todos los hilos (threads) que están corriendo y despliega su estado. Esta herramienta es similar a Qslice.exe, pero utiliza una línea de comandos en vez de la interfaz gráfica. Esta versión de pstat toma una fotografía (snapshot) del sistema.
pulist.exe
Esta herramienta despliega procesos corriendo en maquinas locales o remotas. Despliega el nombre del proceso, su ID e intenta obtener el user name asociado. Esto es importante cuando múltiples procesos se están ejecutando en el sistema en diferentes contextos de seguridad.
qslice.exe
Muestra el porcentaje del total de CPU en uso por cada proceso en el sistema. Es similar a pstat.exe pero presenta la información en forma gráfica.
showperf.exe
Es una herramienta gráfica que permite a los desarrolladores descargar y desplegar raw performance data del registry y desplegarla.
apimon.exe
Monitorea aplicaciones corriendo de todas las llamadas API (Application Programming Interface) de un proceso.
sclist Es un comando en línea que muestra los servicios actualmente corriendo, los servicios parados o todos los servicios en una computadora local o remota. http://www.petri.co.il/download_free_reskit_tools.htmNota: En forma remota solo si se encuentra dentro del dominio
svrinfo Es un comando que despliega los servicios, información acerca del espacio en disco y tipo de particiones en un servidor remoto. http://www.petri.co.il/download_free_reskit_tools.htmNota: Despliega la información local y la información de servidores donde se este conectado o WinXP.
showmembers Es un comando que muestra los miembros de un grupo dentro de un dominio o los grupos en forma local. http://www.petri.co.il/download_free_reskit_tools.htmNota: Para mostrar los miembros del dominio se necesita estar dentro de éste.
dumpel.exe Es un comando en línea que descarga la bitácora de eventos de un sistema local o remoto a un archivo de texto (tab-separated) http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/dumpel-o.asp
now.exe Despliega la fecha y tiempo del sistema en la salida estándar
Los comandos publicados en la tabla 3.3 no se encuentran libres, por lo que hay que comprarlos: Tabla 3.3 Herramientas de Windows Resource Kit con costo Utilería Función
cconect.exe Concurrent Connection Limiter. Provee un método para rastrear conexiones
concurrentes y monitorear que usuarios están conectados al sistema. showacls.exe
Enumera los derechos de acceso para archivos, fólderes y árboles.
sleep.exe Batch Files Wait. Causa que la computadora espere por una cantidad de tiempo especificada.
top.exe
Time-Ordered Processes. Lista los procesos que está usando el tiempo del procesador.
totlproc.exe
Total Processors. Mide el uso de memoria de todos los procesos instalados.
usrstat.exe User Statistics. Lista los nombres completos de usuarios y su última conexión.
3.1.1.3 Herramientas para Windows no propietarias
Existen herramientas libres en Internet para Windows. Una de las más importantes es
md5sum.exe que determina cuando la información ha sido modificada. Una buena práctica es
correr las herramientas de captura, enviar la salida a algún medio e inmediatamente generar un
md5sum o registro de tiempo de los datos.
Otras herramientas útiles son el fport.exe, ethereal, winhex y las utilerías de PsTools [10]. Una
búsqueda en Internet obtendrá estas y otras herramientas, que se podrán utilizar durante una
examinación forense.
PsTools
Los kits de recursos de Windows NT y Windows 2000 vienen con un número de herramientas de
comandos en línea que ayudan a administrar el sistema. PsTools es un conjunto de herramientas
no propietario de Microsoft que incluye comandos similares a los kit de recursos de Windows [27].
Todas estas utilerías trabajan en Windows NT, Windows 2000 y Windows XP y no necesitan ser
instaladas como las herramientas del Resource Kit. La suite PsTools incluye las utilerías
mostradas en la tabla 3.4.
40
Tabla 3.4 Suite PsTools
Utilería Función
psexec
Ejecuta procesos remotamente. Nota: Se necesita cuenta y password de la máquina remota para ejecutar el comando deseado.
psfile
Muestra los archivos de la máquina que han sido abiertos remotamente
psgetsid
Despliega el SID de una computadora o usuario
pskill
Elimina procesos por nombre o ID
psinfo
Lista información detallada acerca de los procesos, el tipo de SO, versión, etc.
psloggedon
Muestra quien esta en una sesión localmente y quienes están conectados a recursos compartidos y desde que hora iniciaron la sesión. Si el servidor esta dentro de un dominio conectado con otros servidores puede dar algunas otras conexiones de usuarios con otros servidores diferente a el.
psloglist
Descarga la bitácora de eventos. Nota: Solo para WinXP.
pspasswd
Cambia los passwords de cuentas
psservice
Muestra y controla servicios
psshutdown
Da de baja o reinicializa la computadora
pssuspend
Suspende procesos de la máquina remota o local
psuptime
Muestra cuanto tiempo el sistema ha estado arriba. Se ha incorporado a psinfo.
pslist
PsList es una utilería que muestra una combinación de información de los dos comandos del Resource Kit (ps y list), incorporando la habilidad de poder ver procesos y estadísticas de hilos en una computadora remota. Con los parámetros de default PsList muestra información orientada a CPU de todos los procesos que están corriendo en el sistema local. La información listada por cada proceso incluye el tiempo de procesador en que se ha ejecutado y cantidad de memoria física asignada. Nota: Para obtener los datos remotamente se necesita que el equipo remoto tenga habilitado el puerto RPC o tener corriendo los servicios remotos del registry.
SYSINTERNALS listdlls
Lista los DLLs abiertos por cada proceso, etiqueta los DLLs cargados con diferentes números de versiones que pueden corresponder a archivos en disco y pueden decir cual DLL esta relocalizado porque no está cargado en su dirección base. Nota: Corre en la máquina localmente
process explorer Muestra la información acerca de un proceso determinado y sus DLLs cargadas o abiertas. Consiste en dos ventanas. Una ventana muestra una lista de los procesos activos, incluyendo el nombre de sus propietarios, si el proceso es un DLL se observará la memoria mapeada. Nota: Corren en la máquina localmente
tcpcon /tcpiew Enumera los “endpoints” de TCP y UDP
Un posible ataque lo podemos detectar al encontrar un volumen de tráfico inesperado en lugares
inusuales. Para detectar el tráfico anómalo debemos entender muy bien el flujo de tráfico de red.
Para lo cual podemos utilizar algunas herramientas libres disponibles e instalarlas en cualquier
linux para formar un buen conjunto de herramientas, aunque el objeto de análisis sea Windows
[22].
Mientras no contemos con una solución integrada, podemos construir un conjunto simple y
rápidamente con las herramientas mostradas en la tabla 3.5.
Tabla 3.5 Herramientas varias Windows
Utilería Función
ethereal Permite capturar y graficar tráfico de red, corre bajo Windows y bajo Linux.
La habilidad de Ethereal para capturar el tráfico de red 802.11 en Windows es limitado debido al bajo soporte ofrecido por los drivers 802.11 de los adaptadores. En Windows, no se puede administrar la captura o controlar los frames, tampoco se puede capturar en modo promiscuo, por lo que solo se podrá capturar el tráfico para y desde la máquina que está corriendo Ethereal. Esto se debe considerar al correr este software en Windows.
etherape Construye “talkers map” para un segmento de red dado, es una gran herramienta para caracterizar trafico “normal”.
tcpreplay Permite repetir tráfico capturado y controlar la velocidad en la cual fluye a través de otro programa.
fport.exe
Fport es soportado por Windows NT, 2000 y XP. Este comando reporta todos los puertos TCP/IP y UDP abiertos. Es la misma información que se despliega usando el comando “netstat -an”, pero muestra estos procesos con el PID corriendo, nombre y ruta. Puede ser utilizado para identificar rápidamente puertos desconocidos abiertos y sus aplicaciones asociadas. http://www.foundstone.com
winhex
Es un editor hexadecimal que es utilizado en recuperación de datos y procesamiento de datos a bajo nivel. Inspecciona y edita toda clase de archivos, recupera archivos borrados o datos perdidos del disco duro en sistemas de archivos corruptos y también en tarjetas de cámaras digitales. Se puede descargar de la siguiente dirección: http://www.winhex.com/winhex/index-e.html
l0pthcrack L0pthCrack o LC es una aplicación para recuperar y auditar passwords. Se puede obtener una versión de evaluación por 15 días en Internet. http://www.atstake.com/products/lc/
pwdump2 Descarga los password hashes (trozos de password encriptados en formato ASCII) del
Utilería Función Active DIrectory. Es una herramienta libre en Internet. http://www.bindview.com/Services/razor/Utilities/Windows/pwdump2_readme.cfm
quickwiper Es una utilería para limpiar discos y archivos, se puede obtener una versión de evaluación en Internet. http://www.soft32.com/download_4586.html
e-timestamp Obtiene un sello de tiempo de los archivos, se puede obtener una versión de evaluación en Internet. http://www.e-timestamp.com/
md5sum.exe
Con la verificación md5 se compara la huella digital (fingerprint) de los archivos que se bajaron con la huella digital de los archivos publicados en el servidor, esto con el fin de verificar que los archivos no estén corruptos. Esta herramienta se encuentra libre en Internet. http://www.etree.org/md5com.html
nmap.exe Programa de escaneo de puertos, versión libre para Linux y para Windows. http://www.insecure.org/nmap/nmap_download.htmlNecesita tener instalado winpcap ( http://www.winpcap.org/ ) que es una serie de librerías Open Source Windows, que son usadas por capas de red de bajo nivel y es la máquina (engine) de varias herramientas de red comerciales y de código abierto (open source). Como nmap, snort, windump, ntop, etc. Nota: Necesita tener instalado winpcap en la máquina donde será corrido.
ntlast
Analizador de bitácoras de seguridad. Identifica quien ha ganado acceso al sistema. http://www.foundstone.com/index.htm?subnav=resources/navigation.htm&subcontent=/resources/freetools.htm Nota: En el equipo bajo análisis deben estar habilitadas las políticas de auditoría
showin Muestra información acerca de Windows. Revela passwords http://www.foundstone.com/index.htm?subnav=resources/navigation.htm&subcontent=/resources/freetools.htm
bintext Encuentra strings en un archivo. http://www.foundstone.com/index.htm?subnav=resources/navigation.htm&subcontent=/resources/freetools.htm
filemon
Monitorea y despliega la actividad del sistema de archivos en tiempo real. Explora la forma en que trabaja Windows, buscando cómo las aplicaciones utilizan los archivos y DLLs. La característica de sello de tiempo (timestamp) de Filemon muestra cuando la abertura, lectura, escritura o borrado se llevó a cabo y el resultado. http://www.sysinternals.com/Utilities/Filemon.html
netcat (cryptcat)
Utilería usada para crear un canal de comunicación entre dos sistemas diferentes. Cryptcat es usada para crear canales de comunicación encriptado. Netcat provee la forma de transferir información entre sistemas en red.
3.1.1.5 Volcado de memoria
El volcado de memoria es un procedimiento de descarga de información de memoria a un un
archivo creado en el sistema con extensión “*.dmp”. Las acciones que realiza Windows cuando
se produce este error son: escribir un suceso en el registro del sistema, alertar a los
administradores, vaciar la memoria del sistema en un archivo que se puede depurar y reinicia
Los registros del archivo de volcado de memoria son un conjunto de información que puede
ayudar a identificar porque la computadora ha parado inesperadamente. Esta opción requiere un
archivo de pagineo (paging file) de por lo menos 2 MB (megabytes) en el volumen de booteo. En
computadoras corriendo Windows 2000 o sistemas recientes, Windows crea un archivo nuevo
cada vez que la computadora para inesperadamente.
Userdump.exe
Esta herramienta se puede utilizar para generar un volcado de usuario de un proceso que se cierra
con una excepción o cuando un proceso deja de responder (bloqueos) [25].
Como leer los archivos dump
Para leer los archivos dump utilizamos la herramienta WinDbg que permite ver el contenido de
los archivos generados por un volcado de memoria producidas por violaciones de acceso por
fallas de página inválidas o fallas de protección [26].
3.1.3 HERRAMIENTAS FORENSES PARA WINDOWS
La mayoría del software forense que se puede correr en Windows es comercial y se necesita
pagar una licencia para poder utilizarlo, en algunos sitios se puede bajar un demo para presentar
el producto. A continuación se muestran algunos productos, pero no se hace uso de ellos en esta
investigación.
3.1.3.1 Software comercial
El software comercial, tiene un costo para poder utilizarlo, algunos de estos productos tienen una
copia de evaluación o demostración, que el investigador podrá bajar y si es útil y se puede
adaptar fácil a sus necesidades, comprarlo. Algunos de los productos comerciales para Windows
son mostrados en la tabla 3.6.
Tabla 3.6 Software comercial para Windows
44
Producto Características
detective y byteback
Ambas herramientas son comercializadas por la compañía Tech Assist Inc. Byte Back es una herramienta de recuperación. Dentro de sus características se encuentra la clonación o creación de imágenes, la recuperación de archivos en particiones FAT y NTFS. Detective es una herramienta de búsqueda y reporte sobre windows, diseñada para investigar PCs en red y stand-alone. Se puede obtener una copia de evaluación en la siguiente dirección en Internet previo registro http://www.toolsthatwork.com.
encase forensic edition
EnCase es un software para Win95/98 y NT, se utiliza para la recuperación de archivos. Utiliza un lenguaje de programación EnScript que permiten al investigador diseñar sus propias rutinas. Los sistemas de archivos interpretados por este software son: FAT, NTFS, HFS, Sun Solaris UFS, EXT, BSD, Palm entre otros. Se puede obtener un CD de evaluación en Internet previo registro en la dirección http://www.guidancesoftware.com/
forensic utility suite
Se puede obtener un software de demostración en Internet previo registro en la dirección http://www.lc-tech.com para el kit con Filerecovery, Photorecovery y RescuePro.
forensic toolkit password toolkit
Access Data es una empresa que ofrece capacitación y servicios en forensia, dentro de sus productos se encuentran:
Forensic Toolkit. Existe una versión de demostración en su página de Internet en la siguiente dirección : http://www.accessdata.com
Password Toolkit. Se puede obtener de la siguiente dirección http://www.accessdata.com
ghost partition magic
Norton Ghost 2002. Software de Symantec que puede clonar y restaurar particiones individuales o discos completos, y puede enviar y recibir imágenes de disco a través de LAN, USB, y conexiones de puertos paralelos. El editor de imágenes de Ghost Explorer permite usar drag-and-drop para mover archivos y directorios dentro o fuera de la imagen clonada. Partition Magic. Software que permite realizar particiones en diversas plataformas. Ambos productos se pueden obtener de la siguiente dirección en Internet : http://www.symantec.com
safeback
Software que es utilizado para crear imágenes de disco duro. Las imágenes de SafeBack no pueden ser modificadas o alteradas. Se puede obtener en la siguiente dirección:http://www.forensics-intl.com/
forensic replicator forensic sorter pda seizure
Paraben Corporation es una empresa que se dedica a ofrecer servicios forenses, capacitación, equipo y software, a través de su página en Internet http://www.paraben.com, podemos encontrar los siguientes productos:
Forensic replicator. Se utiliza para crear réplicas exactas de controladores (drives) y medios. Es basado en windows. Forensic sorter. Ordena los datos en una forma efectiva para hacer búsquedas exactas. PDA Seizure. Herramienta diseñada para capturar y reportar datos de un PDA, reportando sobre un ambiente windows.
ilook
Es distribuido gratuitamente para agencias calificadas como: Inteligencia, Militar y Gobierno. Se puede encontrar en la siguiente dirección: http://www.ilook-forensics.org.
Ya hemos hablado del software necesario para la recolección y análisis forense, pero es necesario
contar con un equipo donde se corra este software que nos va a ser de utilidad para recolectar
datos, monitorear la red y hacer imágenes de disco. Este equipo puede construirse o adquirirse.
Como desconocemos el tipo de SO, equipo de cómputo o dispositivo de comunicación con el que
nos vamos a enfrentar, lo mejor es contar con la mayor cantidad de controladores (drivers) de
dispositivos y Sistemas Operativos. Aún así se puede utilizar cualquier computadora, pero en el
caso de un investigador profesional es mejor estar preparado. Algunos productos de hardware
forense son mostrados en la tabla 3.7.
Tabla 3.7 Hardware Forense
Empresa Producto y descripción
FRED (Forensic Recovery of Evidence Device). Es un equipo que puede ser usado tanto para la adquisición como para el análisis de evidencia. Es modular y se puede usar como una PC estándar.
Tiene preconfigurado multi-boot de Sistemas Operativos (DOS 6.22, Windows 98, XP Prof), contiene el software DriveSpy que es un shell de DOS que puede procesar particiones FAT ocultas de DOS, archivos borrados, espacio asignado o no y RedHat con Norton SystemWorks. Otras de las utilerías con las que cuenta es Image (genera imágenes de discos floppy), PDWipe (limpia el disco duro), PDBlock (previene escrituras inesperadas a un dirve físico), Part (provee información acerca de las particiones del disco duro) y hash MD5.
Existen varias versiones de este tipo de equipo más equipadas o más portátiles.
Intelligence, Inc Compañía que ofrece soluciones de hardware y software para el cómputo forense. Sus productos se pueden obtener en la siguiente dirección: http://www.digitalintel.com/
UltraBlock Es un dispositivo que protege a controladores (drives) de escrituras inesperadas, se puede conectar a través de FireWIre y USB. UltraBlockIDE utiliza manejadores (drives) IDE, ATA, SCSI,etc
46
Empresa Producto y descripción
The Shadow Es un dispositivo que es instalado entre el controlador IDE sospechoso y el disco duro sospechoso. Permite a un sistema bootear en el ambiente sospechoso, manteniendo la integridad del ambiente bajo análisis. Para lo cual almacena y administra todas las operaciones de escritura y modificación del sistema. Asegurando que todas las actualizaciones y escrituras son obtenidas y almacenadas internamente redireccionándolas a una cache interna. Como opera a nivel físico, es compatible con todos los sistemas operativos.
Intelligent Computer Solutions Es una empresa que se dedica al diseño y manufactura de duplicación de equipos a alta velocidad, software de clonación, diagnóstico de sistemas y productos forenses. Sus productos se pueden encontrar en la siguiente dirección: http://www.ics-iq.com/products_cat_fr.cfm
Forensic Link MASSter Es un equipo portátil conteniendo un software de adquisición de datos. Realiza transferencia entre el disco duro sospechoso y un puerto FireWire o USB. Soporta MD5, SHA1 y CRC32 durante la adquisición. Captura cualquier Sistema Operativo, realizando copias a nivel de bit de drive sospechoso incluyendo todos los datos almacenados, archivos borrados, espacio libre y archivos slack. Los métodos de captura de datos se realizan con las herramientas Forensic Tool Kit, Encase y dd de Unix.
47
Empresa Producto y descripción Image MASSter Es un software de duplicación de dispositivos hecho para capturar datos de disco.
Forensic Workhorse IV
Equipo portable que contiene manejadores para CD-ROM, DVD, SCSI, IDE. El equipo es compatible con todo el software de forensia comercial, Encase, Forensic Tool Kit, Safe Back, Mares, etc. Este producto se puede encontrar en la siguiente dirección: www.forensics-computer.com
Adicional al conjunto de herramientas principal, hay muchos otros elementos de los que debemos
disponer cuando se realiza una investigación. Estos elementos incluyen elementos que ayudaran a
documentar actividades en el área. Los dispositivos de registro como cámaras fotográficas, los
medios de almacenamiento seguro y una buena libreta de apuntes.
Es necesario contar con un equipo de red pequeño, como un concentrador (hub) de 4 puertos y
cable de red. Un CD o floppy de respuesta a incidentes para ayudar a buscar y recoger evidencia
en forma segura, sin afectar al sistema victima.
Toma mucho tiempo crear un buen conjunto de herramientas, la mejor forma es probar y
anticipar los sistemas que pueden sufrir intrusiones. Poco a poco se hará mas completo hasta
crear un buen conjunto de herramientas para cada SO, tipo de kernel, etc.
La respuesta a un incidente dependerá de las herramientas que se tengan disponibles.
La respuesta inicial en Unix y Linux es similar a la respuesta inicial en Windows, el objetivo es
obtener datos volátiles de los sistemas antes de proceder a la duplicación forense y poder
expandir el alcance de la respuesta inicial para obtener archivos de bitácoras, archivos de
configuración, sistemas de archivos y archivos relevantes (como herramientas hacker o
programas sospechosos) para confirmar rápidamente si ha ocurrido un incidente o no.
Lo bueno de utilizar Linux para Forensia es que la mayoría de las herramientas son libres y el
ambiente es flexible. Las limitaciones son que como la mayoría de las herramientas son libres, no
se tiene soporte técnico.
Según Kevin Mandia y Chris Prosise [36] una de las diferencias de trabajar en Unix y Linux con
respecto a Windows es la dificultad de recuperar archivos borrados en algunas variantes de Unix
y Linux. Cuando se ejecuta un proceso en Windows NT/2000, no se puede borrar el archivo
correspondiente al proceso. Sin embargo Unix y Linux permite borrar un programa después de
que ha sido ejecutado, el proceso puede seguir corriendo, aun cuando el archivo ha sido borrado
del disco duro.
3.2.1 HERRAMIENTAS DE CAPTURA PARA EL SO LINUX
Linux provee muchas utilerías para realizar recolección y restauración de información del
sistema, cuenta con software de captura de imágenes de memoria como dd y dio. Preparar el
conjunto de herramientas (toolkit) no es tan fácil y toma tiempo, porque cada variante del sistema
operativo puede llegar a requerir un conjunto de herramientas único.
49
3.2.1.1 Comandos del Sistema Operativo Linux
Para evitar una dependencia de las bibliotecas en el sistema víctima, se deben compilar las
herramientas estáticamente. Con la opción “static” para crear un programa ejecutable que no
requiera el uso de bibliotecas compartidas. En caso de ser necesario se puede utilizar el comando
“ldd” para determinar si el programa incluye librerías dinámicas e incluir éstas en el conjunto de
herramientas.
La tabla 3.8 expone comandos del sistema operativo Linux y su utilidad para la recolección de
información.
Tabla 3.8 Comandos del Sistema Operativo Linux para recolección Utilería Función
ps Recopila información de los procesos
-aux lsof Lista los archivos abiertos
top Despliega los proceso del CPU
netstat Imprime conexiones de red, tablas de ruteo, etc.
-nr nmap Herramientas de exploración de red y escaneo de seguridad.
$ nmap –O IPaddr Intenta adivinar el tipo de SO de la IPaddr
nslookup Permite interactuar con un DNS
whois Cliente para el servicio de directorios Whois
host Utilería para la búsqueda en el DNS
nc Netcat, permite conexiones de TCP y UDP
uptime Dice cuanto tiempo el sistema ha estado corriendo
w, who Muestra quien está logeado y que está haciendo.
fuser Identifica procesos usando archivos o sockets
strace Rastrea llamadas a sistema y señales
50
Utilería Función
ltrace Rastrea llamadas a librerías dinámicas que son llamadas por el proceso ejecutado.
strings Imprime los caracteres reconocibles de un archivo. Es útil para determinar el contenido de archivos que no son de texto.
Md5sum Crea y verifica la autenticidad del archivo (checksum)
dd Convierte y copia un archivo Lee dispositivo de discos bloque por bloque, incluyendo bloques de datos marcados como borrados. Copia datos que no copian las herramientas para respaldos regulares como tar o dump.
cat Concatena archivos e imprime en la salida estándar.
lsmod Lista los módulos cargados. Esta información también se encuentra en /proc/modules: $ cat /proc/modules
sfdisk Manipula la tabla de particiones de Linux
df Reporta el espacio utilizado por el sistema de archivos del disco
dmesg Imprime los mensajes de inicio en el booteo
Last Muestra la lista de los usuarios loggeados
date Despliega la fecha y hora del sistema
Ifconfig -a Despliega la información acerca de la tarjeta de red.
ls Información de timestamp, último acceso, modificación y creación para cada archivo. Las opciones son: -c para la última modificación del i-nodo, -a para el último acceso, -ls para la última modificación del estado del archivo. La modificación del i-nodo puede ser: cambiar los permisos (Mode changed), cambiar el nombre del archivo, copiarlo a otro equipo o crear el archivo (File created). El acceso puede ser: verlo o copiarlo con ftp. El estado del archivo puede ser realizar un cambio interno.
find Busca archivos. Ejemplos pueden ser: Buscar archivos por permisos: $ find / -perm 540 –ls Buscar archivos donde el propietario es root: $ find / -user root –ls Buscar archivos modificados en los ultimos 5 días: $find / -mtime -5 Mostrar archivos modificados la semana anterior: $ find / -mtime +2 –a +mtime -7
printenv Imprime todo o parte de un ambiente
file Determina el tipo de archivo. Clasifica los archivos en varios tipos, prueba el sistema de archivos, el número mágico y el lenguaje.
ptrace Llamada a sistema que provee una interfaz por la cual un proceso padre puede observar y controlar la ejecución de otro proceso, examinar y cambiar su imagen core y registros. Es usada principalmente para implementar “breakpoints debugging”
script Hace un typescript de todo lo que se ha impreso en la Terminal. Para iniciar la captura solo se ejecuta el comando “script” para finalizar la captura se puede usar CTRL-d.
more Filtro para páginas a través de texto en una pantalla a la vez
51
Utilería Función
gzip Comprime o expande archivos
bash Shell Bourne. Abre un shell, o espacio de trabajo.
DES Algoritmo criptográfico.
modinfo Despliega información acerca del módulo de kernel
vi Editor de texto. Nota: se puede evitar que los comandos se guarden en el historial con !: “ : ! cat /etc/passwd “
pkginfo Despliega los paquetes de software instalados, para versiones de UNIX , AIX y Solaris.
rpm Red Hat Package Manager. Utilería que permite desplegar los paquetes de software instalados e información referente a estos con la opción: rpm –qa, rpm –qai paquete
rm Remueve archivos y directorios
cp Copia archivos y directorios
mmap Mapea o desmapea archivos o dispositivos en memoria. Es una función para programar
/usr/sbin/tcpd Tcpd anota todos los intentos de conexión que le llegan en /var/log/secure para que tenga la posibilidad de saber quien intenta conectarse a su máquina y si lo consigue
openssl Es una herramienta de criptografía que puede ser utilizada para la creación de llaves RSA, DH, DSA, creación de certificados, el cálculo de los “message digest”, cifrar o descifrar, pruebas de servidores con SSL y TLS, y manejo de correo encriptado.
pkg-config Obtiene metainformación acerca de las librerías instaladas. El directorio donde está instalada, etc. #pkg-config - -cflags glib #pkg-config - - modversion glib
iptables Herramienta de administración para el filtrado de paquetes $iptable –L Lista
debugfs Depurador del sistema de archivos ext2 Para listar los inodos borrados: $ debug /imagenes/floopy.img debug: lsdel
ldd Imprime dependencias de librerías compartidas
mount Comando que permite montar Sistemas de Archivos: CDROM, floppy,etc. swapon swapoff
Habilita o deshabilita dispositivos y archivos para pagineo y swapeo
pstree Despliega el árbol de procesos
Los archivos y programas mostrados en la tabla 3.9 también ayudan a proveer más información sobre el sistema: Tabla 3.9 Archivos y programas del sistema operativo Linux
52
Archivo Utilidad
/proc Es un pseudo-filesystem que funciona como interfaz para las estructuras de datos del kernel
/proc/meminfo Permite determinar la cantidad de memoria física. Podemos observar su contenido con cat.
/etc/inetd.conf o /etc/xinetd.conf Configuración de los servicios de Internet
Perl Lenguaje de programación, incluido en el SO (Red Hat)
/dev/mem Archivo de dispositivo tipo caracter que corresponde a la memoria física del sistema. Es un archivo especial que refleja la memoria principal – byte offsets en el archivo de dispositivo son interpretados como direcciones de memoria por el kernel
/dev/kmem Archivo de la memoria virtual del kernel, representa el espacio de direcciones virtual del kernel y una vista mas uniforme de la memoria en cuestión.
/var/log/wtmp Permite ver quien está logeado $ last –f ./wtmp | more
/etc/passwd Información de usuarios
/var/log/messages Información de las bitácoras
/etc/issue Archivo que contiene la información del SO y su versión.
/var/log/boot.log Archivo que contiene registros de inicialización del sistema.
/etc/fstab Mapa de particiones.
PATH La variable de ambiente PATH, direcciona la ejecución de los programas a la trayectoria definida por esta variable.
3.2.1.2 Volcado de memoria (Memory dump)
La facilidad de crear volcados de memoria (memory dump) provee un análisis de primera falla.
La caída de un sistema (crash) se presenta con una falla (bug) de hardware o software (Oops,
BUG() o panic). En Linux la información del volcado de memoria contiene el estado del
procesador, un rastreo de la pila y un conjunto limitado de instrucciones.
Existen parches disponibles para Linux e implementaciones de algunas versiones de Unix, que
reinicializan el sistema sin limpiar la memoria, vaciando una imagen de memoria a disco duro en
una partición swap. Este procedimiento no es estandarizado y generalmente no es disponible ya
que no todos tienen la facilidad del firmware PCBIOS para hacerlo, aún entre cambios de
53
versiones del mismo firmware, por lo que no es una solución razonable para sistemas operativos
de propósito general [15].
Existen máquinas Intel que no limpian la memoria en la reinicialización. Para saber si el equipo
con el que trabajamos es de ese tipo, en el kernel se coloca el parámetro “reboot=w”. Esto
advierte un “warm reboot” instruyendo al BIOS para saltar el chequeo de memoria. Algunas
veces funciona, aunque la mayoría no [13].
En la distribución de Linux Red Hat existen varias herramientas que podemos utilizar para
obtener información realizando un volcado de memoria: Netdump y GDB
Netdump (Network Console and Crash Dump Facility)
Los dispositivos de red son simples, permiten de una forma fácil habilitar un modo de
interrupciones no manejadas, esta característica le permite al sistema seguir trabajando, aun
cuando ocurra una caída del sistema (crash).
Netdump incluido en la versión de Red Hat Advanced Server 2.1 aprovecha esta ventaja y provee
la facilidad de realizar crash-dump y enviar la información a través de red. Netdump es una
arquitectura cliente-servidor, se debe instalar el paquete netdump-server y configurarlo, los
clientes configuran la dirección del servidor donde enviarán los mensajes del kernel y podrán
vaciar imágenes de memoria al servidor centralizado vía la red.
El servidor centralizado registra los mensajes del kernel, incluyendo crash signature messages,
etc. Los dumps son preservados para análisis comparativos, algo que no es fácil con crash dumps
sobre discos [15].
El crash dump se realiza antes de reinicializar el equipo, esto permite reservar solo la memoria
necesitada por el código de crash dump (algunas páginas de memoria), y extender la información
provista por el dump, incluyendo el estado del hardware.
GDB (GNU Project Debbuger)
54
GDB (Proyecto debugger GNU) desarrollado por Richard Stallman, es el depurador de GNU,
permite ver qué está pasando dentro de un programa cuando se está ejecutando o que otro
programa se está ejecutando en el momento de un crash. Viene incorporado en varios sistemas
como RedHat Enterprise.
Una vez iniciado, gdb lee los comandos desde la terminal. Dentro de GDB los comandos
“dump”, “append” y “restore” en GDB pueden copiar datos entre memoria y archivos. Los
comandos dump y append escriben datos a un archivo, y el comando restore lee los datos del
archivo para regresarlos a memoria. Los archivos pueden estar en formato binario[14].
El siguiente ejemplo vacía el contenido de la memoria desde la dirección de memoria start_addr
(0x00000) hasta la dirección end_addr(0xFFFFF): (gdb) dump memory descarga 0x00000 0xFFFFF
En el siguiente ejemplo el comando append agrega el contenido de la memoria desde la dirección
de memoria start_addr hasta la dirección end_addr al archivo filename en forma binaria.
Después de este paso copiamos los archivos del directorio tct en un floppy: # cp –R /home/hforenses/tct/* /floppy/tct/
Debido a que la copia todavía tiene referencias a los directorios donde se realizó la instalación,
todas estas referencias deben ser cambiadas, para este propósito los autores de TCT proveen el
script de configuración que hace esta tarea muy simple: # cd /floppy/tct # perl reconfig
Terminado el script obtenemos la copia que necesitamos.
GRAVE-ROBBER
Es la herramienta de captura de datos de TCT, intenta obtener y salvar información del sistema
necesaria para el análisis. Esta herramienta puede ser usada en una máquina “viva” o en una
imagen de disco del sistema de archivos de la victima. En el modo “vivo” grave-robber obtiene la
información según el siguiente orden de volatilidad:
1) Toma los atributos de todos los comandos y archivos. Esta información es recolectada
primero para preservar los atributos de tiempo MAC
2) Toma información del estado de los procesos y opcionalmente la memoria de todos los
procesos corriendo
3) Los archivos borrados que aún están activos.
4) Los archivos ejecutables de todos los procesos.
5) Los atributos de los archivos borrados
6) La información del estado de la red
58
7) La información del estado del host, vía comandos dependientes del sistema que proveen
información de configuración.
8) Los atributos de archivos existentes.
9) Opcionalmente, la información sensitiva como archivos que garantizan acceso remoto a
cuentas de usuarios y trabajos “cron” para comandos de ejecución desatendida.
10) Copia archivos de configuración y archivos críticos.
Toda esta información es almacenada en un directorio protegido que tiene el nombre del host y la
hora de inicio de la recolección de datos. Para cada archivo que es almacenado, grave-robber
aplica md5 hash.
Por default grave-robber corre para el sistema completo, se recomienda que corra como root para
que capture archivos y procesos de información que no son disponibles para usuarios normales.
Esta captura puede tomar varias horas.
Grave-robber es útil sobre sistemas “vivos”, pero también puede usarse sobre la imagen de un
disco. Las opciones que maneja son:
-c Esta opción se utiliza para especificar la ruta donde se encuentra la imagen.
-o Indica el tipo de SO de la imagen.
-E Recolecta todo lo que puede, incluyendo operaciones como pcat.
-f Captura rápida. Trata de evitar rutinas “caras” de recolección.
-F Captura archivos de sistema de archivos.
-i Recolecta datos de i-nodos de áreas no asignadas.
-I Captura archivos ejecutables de procesos corriendo. Primero trata de copiarlo
utilizando /proc, después usa icat con información del inodo que fue obtenida de
lsof
-p Copia procesos de memoria a archivos con el comando pcat.
-P Corre los comandos –pcat, lsof, icat- para obtener datos de los procesos corriendo
y hacer copias de lo archivos ejecutables.
-s Ejecuta comandos de shell para obtener información de host y de la red -netstat,
df, etc-
59
-t Recolecta información de servicios (etc, hosts.equiv, xhosts, .rhosts)
-v verbose
-M Realiza un md5sum de todos los archivos
-V Obtiene el número mayor y menor de /dev
-d Especifíca el directorio donde se almacenará la información recolectada (data)
La información recolectada es almacenada en el subdirectorio “data/hostname”. Dentro de este
subdirectorio existirán los archivos y subdirectorios mostrados en la tabla 3.10.
Tabla 3.10 Archivos y directorios de Grave Robber
Archivo y directorio Función
body Este es un archivo donde se concentra la base de datos de “mactime” de todos
los archivos examinados como su información de inodo, checksum md5 y tiempo de acceso
body.s Este archivo contiene la misma estructura de “body” pero contiene información acerca de los archivos SegUID solamente.
coroner.log Archivo que contiene la lista la ejecución de los programas que fueron iniciados con argumentos y registros de tiempo.
error.log Archivo que contiene mensajes de error ocurridos durante la recolección de datos.
MD5_all Archivo que contiene la lista de todos los registros MD5 de todas las salidas generadas por grave-robber
MD5_all.md5 Archivo que contiene el registro MD5 del archivo MD5_all. pcat Este directorio contiene las imágenes de los procesos corriendo que pcat
puede recuperar. Obtiene el history de los shells. Puede preservar o saltar huecos en memoria, además de imprimir un mapa de memoria de procesos. Opera sobre id de procesos.
proc Este directorio contiene imágenes de los procesos corriendo pero en base al sistema de archivos /proc.
Removed_but_running Este directorio contiene todos los archivos borrados que estaban abiertos o corriendo a la hora de obtener la información.
user_vault Copia de archivos sensitivos de los usuarios encontrados mientras se realiza el análisis del sistema (como SSH key, archivos history, etc.)
deleted_files Este directorio contiene los archivos borrados que estaban abiertos o corriendo cuando grave-robber arrancó.
command_out El directorio de la salida de la mayoría de los comandos que ejecuta grave.robber
conf_vault Todos los archivos que son de interés para grave-robber son copiados en este directorio. Este incluye archivos de configuración, archivos críticos, directorios, etc.
trust Se almacenan los archivos respecto a relaciones de confianza entre equipos (.rhosts, etc.)
60
También podemos utilizar las herramientas “C” en forma independiente como se muestra a
continuación:
PCAT
Pcat es útil en un sistema vivo para examinar procesos, porque copia el contenido de la memoria
del proceso a una salida estándar, pero no copia procesos de sistema. Un ejemplo se muestra en
el siguiente comando que envía a pantalla la información legible (con “strings”) del proceso
id_proceso. # /tct/bin/./pcat id_proceso | strings | less
También se puede enviar esta información a un archivo para almacenarlo, ejemplo: # /tct/bin/./pcat id_proceso > archivo.txt
ILS
Ils lista la información de i-nodos, en un análisis post mortem es muy útil para recolectar i-nodos
de archivos borrados. Ils es útil en sistemas vivos para determinar datos que posiblemente estén
h = salta hoyos en archivos, por lo que la información de la dirección absoluta es perdida
H = preserva la dirección absoluta porque copia los hoyos como bloques nulos
f = especifica el tipo de sistema de archivos que estamos utilizando.
FILE
File hace una clasificación por tipos de archivos, haciendo pruebas de sistema de archivos,
número mágico o de lenguaje:
62
# /tct/bin/./file Nombre_de_archivo # /tct/bin/./file /tmp/borrados/* /tmp/borrados/1207: empty /tmp/borrados/16110: ASCII text /tmp/borrados/2039: ELF 32-bit LSB executable, Intel 80386, version 1 /tmp/borrados/2047: perl commands text
MAC times
Mactime es un programa que intenta determinar que archivos fueron accedidos o modificados
con una ventana de tiempo dada. El programa mactime ordena el resultado y produce una lista,
mostrando las tres características de tiempo de los archivos, modificación, acceso y cambio, que
nos permitirá inferir alguna actividad del intruso en cuanto a tiempos.
El siguiente es un ejemplo de utilización de mactime, para crear un reporte de registro de tiempo
de todo el sistema de archivos (se asume que todos los archivos fueron creados después de Enero
2 de 1970):
# /tct/bin/./mactime –y –R –d / 1/2/1970
-R recursivamente a través de los subdirectorios
-d especifica el directorio de escaneo en vez de utilizar la base de datos del archivo body.
-y despliega la fecha como “YY MM DD” en vez de “MM DD YY”
También se puede especificar un periodo de tiempo: # /tct/bin/./mactime –y –R –d bin 1/1/2005-1/14/2005
Todos los archivos son listados en orden por fecha y tiempo (primera columna). La segunda
columna lista el tamaño del archivo, la siguiente columna contiene la acción en el archivo: “m”
para modificación, “a” para acceso y “c” para creación.
Usando la opción –m con grave.robber, también llamamos a mactime para recolectar los registros
de tiempo. # /tct/bin/./grave-robber –m /mnt/hack/root
63
Este resultado es almacenado en la base de datos de recolección de información de TCT en
“data”.
3.2.2.2 MEMDUMP
Memdump es un programa que fue escrito para evitar los problemas que se pueden tener con
“dd” o “cat”. Fue diseñado para alterar la memoria lo menos posible [18]. Después de instalarlo se
crea un archivo ejecutable y se puede obtener una imagen de la memoria sin reinicializar el
sistema y puede ser transferido por la red con netcat o ssl
Esta herramienta provista por los mismos autores de TCT, permite obtener una descarga (dump)
de la memoria física.
En una descarga de sistema de memoria “system memory dump”, se espera encontrar
información del sistema operativo, de procesos corriendo y de cada archivo y directorio que ha
sido accedido recientemente. Dependiendo del sistema operativo, se puede encontrar información
de archivos borrados, sin embargo esta información tiende a ser de corta vida.[18]
Este programa descarga la memoria del sistema a la salida estándar, saltando los hoyos en los
mapas de memoria. Por default, el programa descarga el contenido de /dev/mem. La salida esta
en formato crudo. Sus opciones son:
-k = Intenta descargar la memoria del kernel /dev/kmem
-b = Número de bytes por operación leída en memoria
-d = Número de bytes de memoria a descargar
-m = Escribe el mapa de memoria a un archivo
-p = Especifica el tamaño de la página de memoria
-v = Modo verbose
A continuación se muestra el uso de memdump a través de la red:
memdump | nc hosts port
64
memdump | openssl s_client –connect host:port
Para un mejor resultado enviamos la salida sobre la red usando “netcat” u “openssl.
3.2.2.3 Sleuth Kit y Autopsy
Sleuth Kit (TSK) es una colección de herramientas basadas en TCT y Autopsy, es una interfaz
gráfica para TSK. Estas dos herramientas son de código abierto, corren en sistemas como Linux,
OS X FreeBSD, OpenBSD y Solaris, y analizan sistemas de archivos NTFS, FAT, UFS, EXT2FS
y EXT3FS [16].
Sleuth Kit (TSK) previamente conocida como @stake Sleuth Kit (TASK), es una colección de
herramientas de comandos en línea basada en TCT. Permite examinar el sistema de archivos de
una computadora sospechosa en una forma no intrusiva, porque estas herramientas no se
relacionan con el SO. Soporta particiones DOS, BSD y Mac.
TSK permite analizar la imagen de un sistema de archivos creado con dd o un software similar.
Autopsy proporciona una interfaz gráfica para utilizar las herramientas de TSK. Estas dos
herramientas, en conjunto con TCT hacen un poderoso paquete de herramientas forenses para
Unix, Linux y Windows.
TSK
Algunas de las herramientas que utiliza son:
fsstat Muestra los detalles y estadísticas del sistema de archivos.
dcat Despliega el contenido de un “pedazo” de disco de una imagen forense. La imagen
debe ser creada con dd.
dls Recupera datos de disco. Lista los detalles acerca de unidades de datos y puede
extraer espacio no asignado (unallocated) del sistema de archivos. Es llamado
“unrm” en TCT
dstat Despliega las estadísticas acerca de una unidad de datos dada.
dcalc Calcula donde existen datos en una imagen (dd), en una imagen “slack” (dls –s) o
una imagen “unallocated” (dls).
65
icat Copia archivos por número de inodo. Extrae las unidades de datos de un archivo
ifind Encuentra la estructura del metadato que tiene asignada una unidad de disco dada.
ils Lista la información de los inodos o estructura de metadatos
istat Despliega las estadísticas y detalles acerca de una estructura de metadatos dada.
ffind Encuentra el nombre de un archivo o directorio en base a un inodo dado. Asigna y
libera el nombre de archivos que apuntan a una estructura de datos dada.
fls Lista los nombre de archivos y directorios de una imagen.
hffind Utiliza un algoritmo de ordenamiento binario, que busca hashes.
mactime Toma las salidas de archivos fls e ils para crear una línea de tiempo de la
actividad de los archivos
sorter Ordena los archivos basados en su tipo y extensión
mmls Despliega la distribución del disco, incluyendo el espacio no asignado.
Estas herramientas del sistema de archivos permiten examinar archivos de sistema de una
computadora sospechosa de una manera no-intrusiva. Debido a que las herramientas no dependen
del sistema operativo para procesar archivos de sistema.
Autopsy
Autopsy Forensic Browser, es una interfaz gráfica para la herramienta de análisis forense TSK.
Hace posible el análisis de una imagen obtenida de la máquina víctima a nivel de archivo bloques
e inodo. Autopsy y TSK juntas proveen muchas de las características de herramientas
comerciales de análisis forense para sistemas de archivos Windows y Unix. Autopsy es basado en
HTML, cuenta con un administrador de archivos que muestra los detalles de archivos borrados.
Para la instalación de Autpsy es necesario haber hecho antes la instalación de TSK pues lo que
hace es proporcionar una interfaz gráfica para utilizar las herramientas de TSK. También es
necesario indicarle el directorio donde se concentrará la información de los casos que se manejen.
Una vez instalado se aplica el siguiente comando: #./autopsy
66
Este comando correrá un proceso y deberá permanecer abierto mientras se abre un navegador
HTML con el puerto 9999 del host local. Autopsy puede escuchar solicitudes de cualquier puerto,
por lo que el usuario puede conectarse desde cualquier otro sistema (Windows o Linux) para
operar con Autopsy utilizando un navegador.
La siguiente pantalla muestra el menú inicial, donde podemos ir documentando y analizando cada
caso:
Fig. 3.1 Autposy inicio
A continuación se le indica a Autpsy la creación de un nuevo caso:
Fig. 3.2 Autopsy nuevo caso
67
3.2.2.4 LIVE CD
BIATCHUX BOOTEABLE CD FORENSIC TOOLKIT
Es un CDROM booteable con una distribución portable que provee un ambiente inmediato para
realizar análisis forense, respuesta a incidentes, recuperación de datos, escaneo de virus.
Provee las herramientas necesarias para un análisis forense en vivo, solo montando el CD ROM,
es posible utilizarlos en SO win32, sparc Solaris y x86 linux, los binarios estáticos están
disponibles en /statbins [37].
Las últimas versiones cambiaron al nombre de FIRE
FIRE (Forensic and Incident Response Environment)
Es un CD-ROM booteable que contiene una distribución de Linux con herramientas de
seguridad útiles y un menú de sistema fácil de usar. Es creado y mantenido por William Salusky
[38]. Permite recolectar datos de un host comprometido para iniciar un análisis forense, provee las
herramientas necesarias para responder a un incidente de seguridad utilizando binarios estáticos
confiables de diferentes sistemas operativos como Linux, Solaris y Win32, puede recuperar datos
de particiones perdidas, realizar una verificación de virus y de discos duros en un ambiente
limpio y realizar pruebas de penetración y vulnerabilidades.
FIRE puede ser inicializado en un ambiente de ventanas (X-Windows) o con modo consola.
Requiere un procesador Intel x86 con por lo menos 48MB de RAM. Algunas de las herramientas
que son incluidas son nessus, nmap, hping2, ethereal, snort, tcpdump, ettercap, dsniff, airsnort,
chkrootkit, F-Prot, tct, tctutils, autopsy, testdisk, fdisk,, SSH (client and Server), VNC (client and
server) y perl.
68
Menú de utilidades:
Después de bootear con el CD, se despliega un menú de utilidades, mostrando las siguientes
opciones:
• Start-Here Configuración básica, red, DHCP, Nombre del servidor, etc.
• Virus Scan Realiza un escaneo de virus, puede actualizar firmas de red o desde un
floppy
• Forensics MounDrvsRO/UnMountDrvs que monta y desmonta las particiones
GetWin32Reg que busca los registros Win32 de la máquina local
GetUnixAuth que busca archivos de autenticación de la máquina local
Graphicimgs que busca imágenes
Mac-robber corre en los sistemas de archivos montados
ObtainDrvImg crea imágenes para almacenar
AutopsySetup inicia Autopsy
Si necesitamos utilizar un shell de comandos, podemos utilizar las teclas ALT-F1, ALT-F2, etc.
Con el menú de utilidades podemos montar todas las particiones, pero es importante también
desmontarlas una vez que se haya terminado de utilizarlas. El password de root es firefire.
El CD contiene varios binarios ligados estáticamente que pueden ser utilizados para recolección
de información y análisis forense en un sistema vivo.
KNOPPIX
Es un DVD o CD de inicialización (booteo) con una colección de software GNU/Linux,
detección de hardware automática y soporte para varias tarjetas gráficas y de sonido, SCSI y
USB. Es utilizado como un Linux de escritorio, CD educacional, sistema de respuesta o utilizado
como una plataforma de demostración para software comercial. Debido a la descompresión “on-
the-fly” el CD puede llegar a tener arriba de 2GB de software instalado en el.
69
El software instalado es: Linux-Kernel 2.6.x, KDE V3.x, K Office y Konqueror, X Multimedia
System, programas de manipulación de imágenes GNU, herramientas de seguridad y análisis para
administradores de red, OpenOffice [39].
PENGUIN SLEUTH
CD de booteo para Forensia basado en Knoppix [40]. Las herramientas de seguridad y Forensia
que tiene instaladas se muestran en la tabla 3.11.
Tabla 3.11 Herramientas de seguridad y Forensia para Linux
Herramienta Descripción
Sleuth Kit
Herramienta de Forensia
Autopsy
Parte de Sleuth Kit
Foremost
Herramienta para recuperar archivos utilizando sus cabeceras (headers) o parte final del archivo (footers) – foremost.sourceforge.net
Glimpse
Herramienta para realizar búsquedas rápidas a través de sistemas de archivos completos –www.webglimpse.net
Wipe Utilería en línea de comandos para borrado seguro – wipe.sourceforge.net
Dcfldd Convierte y copia archivos, es una herramienta similar a dd.
Etherape Monitor de red gráfico – etherape.sourceforge.net
Fenris Herramienta de análisis de trayectorias. “Tracer “ multipropósito razor.bindview.xom/tools/fenris/
Honeyd Demonio honeypot. Crea hosts virtuales una red especificada. www.citi.umich.edu/u/provos/honeyd
Snort Sistema de detección de intrusos – www.snort.org
Dsniff Sniffer de passwords – www.monkey.org/~dugsong/dsniff/
John The Ripper
Herramienta de crackeo de password. Para llamarla ejecutamos “john” www.openwall.com/john/
Nikto Herramienta para encontrar archivos web de default y examinar servidores Web y CGI. Ejecutar sobre la línea de comandos. – www.cirt.net/code/nikto.shtml
Nbtscan Herramienta en línea de comandos que escanea por información NETBIOS – www.unixwiz.net/tools/nbtscan.html
Ngrep Función grep en línea de comandos por red – www.packetfactory.net/projects/ngrep
Nemesis Inyector de paquetes de red en línea de comandos. Sus ejecutables se encuentran en el directorio /KNOPPIX/usr/sbin/ nemesis-arp, nemesis-icmp, nemesis-rip, etc. - www.packetfactory.net/Projects/nemesis
Fragroute
Herramienta de pruebas de intrusión de red. Intercepta, modifica y reescribe tráfico de salida – monkey.org/~dugsong/fragroute/
Fping Utilería en línea de comandos para múltiples “pings” – www.fping.com
TCPtraceroute
Traza la ruta “traceroute” de paquetes TCP - michael.toren.net/code/tcptraceroute/
Tcpreplay Utilería en línea de comandos que reenvía paquetes de archivos capturados – tcpreplay.sourceforge.net
Nessus Cliente del escaner de seguridad de red, el servidor está a cargo del atacante – www.nesus.org
Ethereal
Analizador de red gráfico –www.ethereal.com
Netcat Herramienta en línea de comandos para leer y escribir sobre red – www.atstake.com/research/tools/network_utilities/
Tcpdump
Herramienta en línea de comandos que descarga tráfico de red –www.tcpdump.org/
Hping2 Envío de paquetes TCP/IP arbitrarios sobre hosts en red – www.hping.org
Ettercap
Sniffer multipropósito para LANs switcheadas – ettercap.sourceforge.net
Openssh
Utilería de conexión segura remota – www.openssh.com
Kismet Sniffer de redes inalámbricas – www.kismetwireless.net
Airsnort Herramienta de intrusión de red inalámbrica – airsnort.shmoo.com
Gpg Utilerías de cifrado y firmas – www.gnupg.org
Openssl Utilería de conexión segura remota – www.openssl.org
Lsof Utilería en línea de comandos que lista los archivos abiertos
Hunt Herramienta de auditoría de seguridad lin.fsid.cvut.cz/~kra/index.html
Stunnel Paquete de conexión con SSL – stunnel.mirt.net
Arpwatch Monitor ethernet en línea de comandos
Dig Herramienta en línea de comandos para hacer peticiones a servidores de nombres Chkrootkit Busca por rootkits – www.chrootkit.org
Estos se encuentran en el menú de inicio en las secciones de “Internet” y “System”
Por default el usuario con el que se bootea es knoppix, se puede utilizar un shell y convertirse en
root para realizar ciertas tareas, pero en caso de necesitar root en todo el ambiente, se necesita
indicar en el prompt de boot : knoppix 2 y después startx.
SMART
Es un CD con distribución de Linux diseñado para Respuesta a Incidentes investigación
Forenses, creado por la empresa ASR Data [41].
3.2.2.5 Herramientas varias
La tabla 3.12 muestra más herramientas de utilidad para el proceso de recolección de datos que
son disponibles en Internet:
Tabla 3.12 Herramientas varias Linux
Utilería Función
md5deep Md5s recursivo, se puede obtener de la siguiente dirección:
md5deep.sourceforge.net
fatback Archivo de recuperación de sistemas de archivos FAT Sourceforge.net/projects/biatchux
stegdetect Detecta clases de esteganografía en imágenes www.outguess.org
galleta IE cookie parser www.foundstone.com/
pasco IE Activity Parser www.openforensics,org
libpst Convierte archivos de Outlook y Outlook Express a un formato mbox de Linux Sourceforge.net/projects/ol2mbox
flag (forensic and long analysis gui)
www.dsd.goc.au/software/flag
sleauthkit/autopsy Casos de estudio: www.sleuthkit.org/case/index.php chkrootkit Contiene una base de datos de los rootkits mas populares para saber si nuestro
smart CD con distribución de linux diseñado para Forensia y Respuesta a incidentes www.asrdata2.com
ethereal
Analizador de protocolos de red. Corre en plataformas Unix, Linux y Windows. Ethereal es una herramienta utilizada para obtener información de la red, esta herramienta nos ayuda a procesar y desplegar paquetes completos capturados por tcpdump. http://www.ethereal.com/
dio (mission critical linux)
La utilería dio desarrollada por Mission Critical Linux como open source puede generar lecturas y/o escrituras a un dispositivo crudo (raw device), a un archivo o a memoria. Soporta archivos grandes y tamaños de bloque variable http://public.planetmirror.com/pub/mclx/oss/ . Es un comando similar a dd .
pdd.
Es una herramienta basada en windows, que realiza imágenes de memoria y adquisición de datos. Fue escrita por Joes Grand, esta disponible la versión 1.10 de marzo 2002.
pdzap
Es una pequeña aplicación que cuando es colocada en un teléfono celular P800 de SonyEricsson, permite obtener imágenes de los dispositivos flash a un stick de memoria.
maresware El software comercial para cómputo forense tiene un precio de $325 dólares. La empresa ofrece capacitación.
<http://www.maresware.com/>
kstat Detectar módulos de rootkit http://www.s0ftpj.org/en/site.html
tripwire Es una herramienta que verifica la integridad de los sistemas. Puede funcionar como detector de intrusos. http://sourceforge.net/projects/tripwire/
tcp-wrapper Servicio que verifica el origen de las conexiones con su base de datos /etc/hosts.allow y /etc/hosts.deny. Provee un control de acceso basado en la fuente y destino de la conexión y el registro de las conexiones exitosas o no. El programa de implementación de tcp-wrapper es tcpd ubicado en /usr/sbin http://www.iec.csic.es/criptonomicon/linux/tcpwrapper.html
3.3 ANÁLISIS COMPARATIVO DE LAS HERRAMIENTAS
Hay que hacer notar que las herramientas descritas no son las únicas, existen muchas más, pero
es cuestión de cada investigador el encontrar la herramienta con la que mejor se adapte.
Una vez conocidas las herramientas con las que podemos disponer, podemos hacer un análisis del
uso de las herramientas para investigación forense. Para nuestro análisis dividiremos las
Las herramientas comerciales independientemente del sistema operativo que manejen se obtiene
al pagar los derechos por utilizar el software, las herramientas libres se obtienen sin pago alguno
a través de Internet, estas por lo regular corren en SO Linux.
Las herramientas administrativas y forenses
Las herramientas administrativas son las que el SO trae consigo y no se tienen que descargar de
ningún sitio, las herramientas forenses son herramientas especializadas que puede ser comerciales
o libres, en nuestro caso solo utilizamos las herramientas libres.
Comparación de herramientas comerciales con respecto a las herramientas libres
Lo bueno de utilizar Linux para Forensia es que la mayoría de las herramientas son libres, el
ambiente es flexible y cuando las herramientas son usadas apropiadamente, la evidencia puede
ser relevante para levantar cargos al culpable.
La limitación es que como la mayoría de las herramientas son libres, no se tiene soporte técnico y
no se puede llamar al autor a una corte si es necesario, lo cual permite a la defensa recorrer el
código en busca de errores “bugs” y poder descartar la información obtenida por la herramienta
en cuestión. Otra limitación es que no tienen todas las características como los paquetes
comerciales y son más complicadas de usar que las herramientas comerciales.
Por otra parte, las herramientas comerciales tienen todo el respaldo de la empresa o autor que lo
patrocina, pero debemos pagar el precio que marca y las posibles actualizaciones para contar con
la garantía de dicho producto.
Comparación de herramientas forenses con respecto a las herramientas administrativas
Las herramientas administrativas son de gran utilidad para el administrador del sistema nos dan
información fácil y rápidamente, pero no están diseñadas para la recolección y análisis forense
74
En el caso de utilizar las herramientas forenses con respecto a las herramientas administrativas, la
razón por lo que es preferible usar las herramientas forenses es que la mayoría de los sistemas no
pueden ser simplemente desmantelados, los datos crudos (raw data) son demasiado voluminosos
y no es fácil manejarlos. Las herramientas forenses como TCT contienen programas de captura y
de análisis que permiten al investigador entender como operan los sistemas y como defenderse en
incidentes de seguridad futuros.
Para trabajar con las herramientas forenses se necesita mucha práctica para entender cómo
funciona el software y saber interpretar bien los resultados. La recopilación y análisis de
información los crea en paquete sin tener una amplia flexibilidad de lo que queremos y no
queremos respaldar. Las herramientas TSK y Autopsy hacen el análisis sobre imágenes de disco
del sistema bajo análisis y no propiamente sobre la información volátil que es donde nos estamos
enfocando en este trabajo.
Las herramientas de volcado de memoria
Las herramientas de volcado de memoria son software desarrollado para obtener información
después de una falla de sistema que cause su caída, debe ser instalado y configurado previamente
en el sistema, por lo que para este tipo de software se necesita que el usuario esté familiarizado
con el equipo ya que se configura y reconstruye el kernel.
Beneficios de contar un CD LIVE
Utilizar los CD LIVE o CD con sistema operativo y herramientas de seguridad integrados son de
gran utilidad ya que contienen lo necesario para una respuesta rápida, pueden contener un sistema
de menús que hace más fácil su uso, ofrecen una gran cantidad de aplicaciones y detección de
hardware, con las herramientas relevantes para expertos en seguridad, pero es conveniente que el
investigador forense cree su propio conjunto de herramientas que va ir complementando en cada
caso que resuelva.
75
CAPITULO 4
METODOLOGÍA PARA LA RECOLECCIÓN DE INFORMACIÓN
Y CASOS
76
4. METODOLOGÍA PARA LA RECOLECCIÓN DE INFORMACIÓN Y CASOS. En este capítulo se presentará una metodología general de recolección de información volátil y
memoria en un sistema vivo en base a la volatilidad de los datos, esta metodología se aplicará a
cinco casos que se dividirán en el tipo de acceso al sistema sospechoso, es decir si está conectado
en red o se trabajará en forma local y sobre las plataformas más comunes Windows y Linux.
Dentro de cada caso se explicará a detalle la obtención de datos utilizando diversas herramientas
y comandos del sistema operativo y forense, con el fin de capturar datos volátiles y de la
memoria RAM antes de quitar la energía del equipo bajo análisis.
En la figura 4.1 se muestra cada uno de los casos con el estado del sistema “vivo”, así como el
estado del sistema cuando no tiene energía de alimentación o “muerto”, pero esta última parte se
verá con detalle en el siguiente capítulo.
Estado del
sistema
MUERTO VIVO
CASO 2: Windows
CASO 1: Windows
Local Por red Tipo de acceso al sistema
CASO 3: Linux
CASO 4: Linux
CASO 5: Grave_robber Linux
Recuperación de datos con métodos físicos
(ejemplos)
Fig. 4.1 Casos a considerar para la presente investigación
77
4.1 ESTABLECIENDO UN PROCEDIMIENTO “GENERAL” PARA
APLICAR EN CADA CASO.
Dentro de los pasos forenses debemos obtener, guardar y seguir la pista de información acerca de
una posible actividad criminal, esto significa que se debe tener mucha precaución para recolectar
en forma exacta y confiable los datos para hacerlos seguros.
En general la mejor práctica para recolectar evidencia es usar herramientas confiables, salvar
datos en medios removibles y asegurar la autenticidad de los datos. Considerando que nada
acerca del sistema puede ser confiable, debemos tratar cada equipo como si estuviera
comprometido, tuviera “rootkits” instalados o pudiera estar monitoreado por atacantes.
De acuerdo a Kevin Mandia y Chris Prosise en su libro “Incident Response” [36], para la
recolección de datos volátiles es más importante la respuesta inicial que el análisis técnico
posterior. Al dar de baja el sistema bajo investigación se puede llegar a destruir evidencia crítica,
esto debido a que los atacantes han aprendido a tomar ventajas de los medios de almacenamiento
volátil.
Una de las reglas básicas del cómputo forense es que no debemos trabajar con los datos
originales, pero para capturar la información volátil quizá sea la única forma de poder obtenerla.
Por lo que si vamos a trabajar con un sistema vivo debemos recordar que para cada decisión y
paso a tomar, el investigador deberá tener razones sólidas de cada acción realizada y ser
debidamente documentada.
Si sabemos que el examinar datos volátiles los altera, consideraremos que el sistema se
modificará por lo que deberemos saber específicamente qué y porqué se modificó, para lo cual
deberemos conocer muy bien las herramientas que utilizaremos y saber que archivos se
modifican al utilizarlas, también deberemos tomar un registro de tiempo de todos los archivos del
sistema antes y después de proceder a la captura. Con esto sabremos qué estaremos modificando
en el momento de la recolección.
78
Independientemente del sistema operativo con el que cuente el equipo bajo análisis y de acuerdo
a lo explicado en el capítulo 2, los siguientes datos son perdidos una vez que el sistema es dado
de baja:
• Los registros del procesador y el contenido del cache.
• El contenido de la memoria.
• El estado de las conexiones de red.
• El estado de los procesos que están corriendo en ese momento.
El contenido en los registros del procesador y su cache es casi imposible obtenerlos debido a que
el simple intento de capturarlos los alteraría, por lo que no intentaremos capturar esta
información.
En la memoria también existen áreas principales que pueden ser alteradas, algunas páginas en el
área de memoria serán modificadas al correr los comandos de nuestro conjunto de herramientas y
cuando hagamos una clonación o descarga de ésta.
Obtener el estado de las conexiones de red y procesos corriendo tiene un impacto menor en el
sistema. La información es generalmente almacenada en tablas residentes en la memoria del
kernel y la simple lectura de los datos no los modificará.
Todo esto nos lleva a la conclusión de que antes de revisar un sistema “vivo” debemos contar
con una metodología de captura.
A continuación se propone una metodología “general” que contiene los pasos para obtener los
datos volátiles más críticos:
(1) Establecer una línea de comandos segura (shell)
En este paso se realizará una conexión donde los comandos y programas que aplicaremos sean
confiables.
79
(2) Realizar un registro de tiempo del sistema (time stamp)
En este paso iniciamos la obtención de datos utilizando herramientas que nos permitan obtener el
tiempo y fecha del sistema y obtener un registro de tiempo de todos los archivos y directorios
(timestamp).
(3) Obtener los datos y el estado del sistema
En este paso empezaremos a recolectar la información, realizando las siguientes acciones que a
continuación se describen:
a.- Obtener los datos del sistema (nombre, dirección IP, etc.)
b.- Determinar los puertos abiertos
c.- Listar los procesos corriendo (sockets, servicios, etc.)
d.- Respuesta inicial profunda (bitácoras), en el caso de contar con el tiempo necesario.
(4) Determinar quien está dentro del sistema y quienes se han conectado recientemente
En este paso tratamos de determinar las conexiones actuales y recientes al sistema bajo análisis
además de la información de red contenida en el sistema.
(5) Realizar un segundo registro de tiempo
En este paso realizaremos nuevamente un registro de tiempo en los archivos y directorios para
que podamos compararlo con el primer registro y sepamos los cambios que hicimos durante
nuestra recolección de información.
(6) Hacer una copia de la memoria RAM
Finalmente haremos una imagen del sistema de memoria RAM, para después analizarlo con
mayor tiempo y no durante la respuesta inicial.
80
(7) Documentar y transferir a un medio seguro
Una vez obtenida la información deberemos trasferirla y almacenarla en un lugar seguro.
Podremos realizar estos pasos rápidamente si los concentramos en un script. Finalmente todos
estos pasos los tenemos que documentar
Los pasos establecidos en la metodología pueden cambiar de orden, dependiendo de las
circunstancias de la investigación, del sistema operativo, versiones, y también del objetivo de la
investigación ya que puede ser buscar al culpable más que recuperar la información.
Equipo de herramientas
Ya con la metodología establecida, el primer paso es contar con un buen conjunto de
herramientas, que ya hemos conformado con los comandos y software explicados en el capítulo
anterior, que en general deberá incluir:
• Un programa para examinar procesos.
• Programas para examinar el estado del sistema
• Un programa para realizar copias bit a bit
• Programas para generar checksum y firmas
• Programas para generar imágenes core
• Scripts para automatizar la recolección de evidencia.
Contar con el password de acceso
Otra situación a la que se enfrenta el investigador forense es contar con un password de acceso al
sistema, debido a que para recuperar el password de acceso a un sistema muchas veces es
necesario reiniciarlo, o que para tratar de adivinarlo, el proceso lleva tiempo, hemos tomado la
decisión de que en caso de no contar con el password de acceso procederemos a apagar el equipo
sin recolectar la información volátil, debido a que al tratar de obtener el password de acceso
perderemos casi toda la información volátil que estamos buscando, por lo que en los casos
propuestos se considera que se tiene un password de acceso al sistema.
81
4.2 APLICANDO EL PROCEDIMIENTO DE RECOLECCIÓN: CASO 1
WINDOWS CON ACCESO LOCAL
Después de haber establecido la metodología general donde el objetivo es recolectar información
volátil aplicaremos esos pasos al primer caso.
Las condiciones bajo las cuales se encuentra el equipo bajo sospecha son; el estado del sistema
será “vivo”, es decir el equipo sospechoso estará conectado a la energía y corriendo sus procesos
en forma “normal”, el sistema operativo al que se enfrentará el investigador será Windows 2000
y se contará con el password de acceso.
Estado del
sistema
MUERTO VIVO
CASO 2: Windows
CASO 1: Windows
Local Por red Tipo de acceso al sistema
CASO 3: Linux
CASO 4: Linux
CASO 5: Grave_robber Linux
Recuperación de datos con métodos físicos
(ejemplos)
Fig. 4.2 Caso 1: Aplicación de metodología con Windows en forma local
Tal como consta la figura 4.2 el procedimiento se aplicará a un sistema vivo donde el
investigador forense se conectará directamente en la consola del equipo sospechoso estableciendo
una conexión segura en forma local, una vez establecida esta comunicación el investigador
aplicará los comandos de su conjunto de herramientas a través de esta conexión.
Los programas que utilizará en esta captura no serán instalados en el sistema bajo análisis,
correrán desde una fuente de archivos “confiables” que puede ser un floppy o un drive USB, estas
herramientas correrán sobre el sistema operativo en cuestión y finalmente los resultados
obtenidos se almacenará en un medio confiable (floppy o drive USB).
82
PASO 1: ESTABLECER UNA LÍNEA DE COMANDOS SEGURA (shell)
En este primer paso vamos a hacer disponible el conjunto de herramientas montando el medio en
el sistema, después procedemos a establecer una línea de comandos segura ejecutando la
herramienta “cmd.exe” confiable. Se debe tener cuidado de que el atacante haya puesto algunas
trampas para hacer fracasar la captura de datos, por ejemplo se puede presentar la situación en
que al ejecutar el comando cmd.exe en la máquina victima se active un proceso aplicando el
comando del *.* en el directorio \winnt\System32, haciendo el sistema virtualmente inoperable.
Por lo que ejecutaremos el comando “cmd.exe” de manera confiable, direccionándolo al drive
donde se almacenan nuestras herramientas, en este caso será la letra “a:”, como se muestra en la
siguiente ventana:
Fig. 4.3 cmd.exe PASO 2: REALIZAR UN REGISTRO DE TIEMPO DEL SISTEMA (TIMESTAMP)
Después de crear un “shell” seguro, se captura la hora (time) y fecha (date) del sistema con las
herramientas almacenadas en nuestro medio seguro (drive a:), la opción –t de los comandos
obliga a que el comando no quede en espera. a:\toolkit>date /t The current date is: Thu 08/18/2005 a:\toolkit>time /T The current time is: 16:58:09.14 También podemos utilizar el comando “now” del resource kit, que despliega “date” y “time” en
un solo comando:
A:\toolkit\now
Fri Apr 07 17:53:09 2006
Después de obtener el tiempo y fecha del sistema hacemos un registro de tiempo de todos los
archivos del sistema, utilizando el comando “dir” para obtener un listado de todos los archivos en
el sistema bajo análisis, tiempos de acceso, modificación y creación.
83
Utilizando el comando “dir”, se puede hacer un despliegue por propietario (/Q) y tiempo de
último acceso al archivo (/TA) de todos los archivos del sistema (/S), esto con el fin de marcar un
sello de tiempo (time stamp): a:\toolkit>dir c:\ /Q /S /TA Volume in drive C has no label. Volume Serial Number is ECD3-2160 Directory of c:\ 08/16/2005 05:43p 36,112 BUILTIN\Administrators Auditpol.exe 08/16/2005 05:43p 24,848 BUILTIN\Administrators dh.exe 08/16/2005 05:43p 9,488 BUILTIN\Administrators dhcmp.exe 08/18/2005 05:51p <DIR> BUILTIN\Administrators Documents and Settings 08/16/2005 05:43p 6,928 BUILTIN\Administrators drivers.exe 08/17/2005 12:34p 114,688 BUILTIN\Administrators Fport.exe 08/18/2005 04:29p <DIR> BUILTIN\Administrators Inetpub 08/16/2005 05:43p 53,248 BUILTIN\Administrators listdlls.exe 08/18/2005 04:29p <DIR> BUILTIN\Administrators nmap 08/16/2005 05:43p 208,948 BUILTIN\Administrators NTLast.exe 08/18/2005 04:29p <DIR> BUILTIN\Administrators Program Files 08/18/2005 04:29p <DIR> BUILTIN\Administrators programas 08/17/2005 05:26p 25,252,224 LUNA\alicia_user resp.reg 08/18/2005 04:29p <DIR> BUILTIN\Administrators temp 08/18/2005 04:29p <DIR> BUILTIN\Administrators toolkit 08/18/2005 04:29p <DIR> BUILTIN\Administrators WINNT 8 File(s) 25,706,484 bytes Directory of c:\Documents and Settings 08/18/2005 05:51p <DIR> BUILTIN\Administrators . 08/18/2005 05:51p <DIR> BUILTIN\Administrators .. 08/18/2005 05:51p <DIR> BUILTIN\Administrators Administrator 08/17/2005 04:42p <DIR> BUILTIN\Administrators alicia_user 08/18/2005 01:58p <DIR> BUILTIN\Administrators All Users 0 File(s) 0 bytes Directory of c:\Documents and Settings\Administrator . . .
El siguiente comando provee un listado recursivo de los tiempos de acceso al drive C a:
\toolkit>dir /t:a /a /s /o:d c
El siguiente comando provee un listado recursivo de los tiempos de modificación del drive D a:\toolkit>dir /t:w /a /s /o:d d El siguiente comando provee un listado recursivo de los tiempos de creación del drive E a:\toolkit>dir /t:c /a /s /o:d e Para obtener los listados recursivos de los tiempos de acceso, modificación y creación también podemos utilizar el comando “ls.exe” incluido en el CD-live de FIRE. a:\toolkit>ls –alRu para tiempos de acceso a:\toolkit>ls –alRc para tiempos de modificación a:\toolkit>ls –alR para tiempos de creación
84
PASO 3: DETERMINAR LOS DATOS Y EL ESTADO DEL SISTEMA
Para determinar el estado del sistema realizaremos las siguientes acciones:
1. Obtener los datos del sistema
2. Determinar los puertos abiertos
3. Listar todos los procesos corriendo
4. Respuesta inicial mas profunda
o Obtener la bitácora de eventos durante una respuesta viva
o Revisar el “registry” durante la respuesta viva
Acción 1: Obtener los datos del sistema
Para obtener los datos del sistema verificamos el nombre del equipo con el comando “hostname”:
a:\toolkit>hostname comprometido
A continuación obtenemos la identificación de red del equipo con el comando “ipconfig” como
se muestra a continuación: a:\toolkit>ipconfig /all Windows 2000 IP Configuration Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 172.29.69.83 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 172.29.69.254
Acción 2: Determinar los puertos abiertos
Para enumerar los puertos por los cuales los procesos están escuchando, utilizamos la
herramienta “fport”, esta herramienta nos muestra los puertos que están actualmente escuchando,
pero no nos dice que puertos están sirviendo a usuarios remotos en el momento. Para esto
utilizamos el comando de Windows “netstat” que enumera los puertos escuchando y además las
conexiones a esos puertos:
a:\toolkit>fport FPort v2.0 - TCP/IP Process to Port Mapper
85
Copyright 2000 by Foundstone, Inc. http://www.foundstone.com Pid Process Port Proto Path 1052 inetinfo -> 25 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 1052 inetinfo -> 80 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 436 svchost -> 135 TCP C:\WINNT\system32\svchost.exe 8 System -> 139 TCP 1052 inetinfo -> 443 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 8 System -> 445 TCP 492 msdtc -> 1025 TCP C:\WINNT\System32\msdtc.exe 880 MSTask -> 1026 TCP C:\WINNT\system32\MSTask.exe 1052 inetinfo -> 1028 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 8 System -> 1030 TCP 1000 svchost -> 1050 TCP C:\WINNT\system32\svchost.exe 8 System -> 1099 TCP 8 System -> 1723 TCP 1052 inetinfo -> 2087 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 492 msdtc -> 3372 TCP C:\WINNT\System32\msdtc.exe 436 svchost -> 135 UDP C:\WINNT\system32\svchost.exe 8 System -> 137 UDP 8 System -> 138 UDP 8 System -> 445 UDP 228 lsass -> 500 UDP C:\WINNT\system32\lsass.exe 1052 inetinfo -> 1029 UDP C:\WINNT\System32\inetsrv\inetinfo.exe 600 svchost -> 1031 UDP C:\WINNT\System32\svchost.exe 600 svchost -> 1032 UDP C:\WINNT\System32\svchost.exe 600 svchost -> 1033 UDP C:\WINNT\System32\svchost.exe 600 svchost -> 1645 UDP C:\WINNT\System32\svchost.exe 600 svchost -> 1646 UDP C:\WINNT\System32\svchost.exe 8 System -> 1701 UDP 600 svchost -> 1812 UDP C:\WINNT\System32\svchost.exe 600 svchost -> 1813 UDP C:\WINNT\System32\svchost.exe 1052 inetinfo -> 3456 UDP C:\WINNT\System32\inetsrv\inetinfo.exe A continuación se muestra la aplicación de la herramienta ”netstat” que es útil para grabar datos
permitidos. Por ejemplo si “pslist” revela que el proceso EVENTVWR está corriendo, esto
sugiere que alguien está observando las bitácoras. Si se observa el USRMGR, se puede sospechar
que alguien trata de cambiar las políticas de auditoría, borrar o agregar una cuenta de usuario o
cambiar los datos de una cuenta de usuario o password.
Acción 4: Respuesta inicial más profunda
Si es que se cuenta con mayor tiempo se pueden ejecutar los siguientes comandos con el fin de
obtener un poco más de información sobre el sistema vivo, en caso de no contar con mayor
tiempo continuaremos con el siguiente paso de la metodología planteada.
Para obtener una bitácora de los accesos que ha habido al sistema podemos utilizar la herramienta
“Ntlast” que nos permite monitorear las entradas (“logons”) exitosas y fallidas al sistema y si la
auditoría de entradas/salidas (“logon/logoff”) fue activada o desactivada en el sistema. “Ntlast”
con la opción –r lista todas las entradas exitosas de un sistema remoto y la opción –f lista los
intentos fallidos. a:\toolkit>ntlast Administrator LUNA LUNA Thu Aug 18 12:37:52pm 2005 Administrator LUNA LUNA Wed Aug 17 06:26:26pm 2005 alicia_user LUNA LUNA Wed Aug 17 02:09:24pm 2005 Administrator LUNA LUNA Wed Aug 17 12:14:31pm 2005 - End Of File - Nota: Este comando da información solo si las políticas de auditoría están habilitadas en el
equipo bajo análisis.
88
Obteniendo la bitácora de eventos durante una respuesta viva
Según Kevin Mandia [36] existen dos fuentes importantes de información en Win2000 y NT: la
bitácora de eventos y el Registry.
El comando “dumpel” se puede utilizar para obtener las bitácoras y copiarlas a un archivo de
texto, a continuación se muestra la captura de los eventos de seguridad, aplicación y sistema: dumpel –l security –t descarga las bitácoras de seguridad dumpel –l application –t descarga las bitácoras de aplicación. dumpel –l system –t descarga las bitácoras de sistema. Ejemplo de aplicación del comando: a:\toolkit>dumpel –l security –t 8/17/2005 12:14:24 PM 16 2 529 Security NT AUTHORITY\SYSTEM LUNA atorres LUNA 2 User32 Negotiate LUNA 8/17/2005 12:14:31 PM 8 9 680 Security NT AUTHORITY\SYSTEM LUNA MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 administrator LUNA 8/17/2005 12:14:31 PM 8 2 528 Security LUNA\Administrator LUNA Administrator LUNA (0x0,0x27C7C) 2 User32 Negotiate LUNA 8/17/2005 12:16:18 PM 16 9 681 Security NT AUTHORITY\SYSTEM LUNA MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 atorres ATORRES 3221225572 8/17/2005 12:34:08 PM 8 2 538 Security NT AUTHORITY\ANONYMOUS LOGON LUNA ANONYMOUS LOGON NT AUTHORITY (0x0,0x377B2) 3 8/17/2005 12:44:35 PM 8 2 538 Security NT AUTHORITY\ANONYMOUS LOGON LUNA ANONYMOUS LOGON NT AUTHORITY (0x0,0x37D3A) 3 8/17/2005 1:05:44 PM 8 2 538 Security NT AUTHORITY\ANONYMOUS LOGON LUNA ANONYMOUS LOGON NT AUTHORITY (0x0,0x38345) 3 8/17/2005 1:53:22 PM 8 2 538 Security NT AUTHORITY\ANONYMOUS LOGON LUNA ANONYMOUS LOGON NT AUTHORITY (0x0,0xDBA2) 3 8/18/2005 10:10:27 AM 8 2 538 Security NT AUTHORITY\ANONYMOUS LOGON LUNA ANONYMOUS LOGON NT AUTHORITY (0x0,0xDD2B) 3 . . . . . . . . . . . . . . Capturando el registry durante la respuesta viva
El Registry NT/2000 almacena datos útiles durante la respuesta inicial. Para obtener estos datos
podemos utilizar las herramientas “regedit” o “reg”. Regedit genera un archivo grande y reg
obtiene solo valores específicos que sean de nuestro interés (keys). a:\toolkit\regedit –e respaldo_registry.reg a:\toolkit\reg export HKLM respaldo_registry.reg The operation completed succesfully : Para obtener información de los usuarios podemos aplicar la siguiente sintaxis: reg query “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\REgisteresOwner” reg query “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon” Para obtener información del sistema podemos aplicar la siguiente sintaxis:
El siguiente es un ejemplo de aplicación del comando “reg”, con la llave para obtener
información de usuarios: a:>toolkit>reg query “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon” ! REG.EXE VERSION 3.0 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon AutoRestartShell REG_DWORD 0x1 DefaultDomainName REG_SZ LUNA DefaultUserName REG_SZ administrator LegalNoticeCaption REG_SZ LegalNoticeText REG_SZ PowerdownAfterShutdown REG_SZ 0 ReportBootOk REG_SZ 1 Shell REG_SZ Explorer.exe ShutdownWithoutLogon REG_SZ 0 System REG_SZ Userinit REG_SZ C:\WINNT\system32\userinit.exe, VmApplet REG_SZ rundll32 shell32,Control_RunDLL "sysdm.cpl" SfcQuota REG_DWORD 0xffffffff allocatecdroms REG_SZ 0 allocatedasd REG_SZ 0 allocatefloppies REG_SZ 0 cachedlogonscount REG_SZ 10 passwordexpirywarning REG_DWORD 0xe scremoveoption REG_SZ 0 DontDisplayLastUserName REG_SZ 0 AppSetup REG_SZ DebugServerCommand REG_SZ no SFCDisable REG_DWORD 0x0 ShowLogonOptions REG_DWORD 0x1 AltDefaultUserName REG_SZ administrator AltDefaultDomainName REG_SZ LUNA HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\GPExtensions HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Notify PASO 4: DETERMINANDO QUIEN ESTÁ EN EL SISTEMA
El siguiente paso es determinar que cuentas de usuarios tiene conexiones activas al sistema. Para
esto nos ayudaremos con la utilería de PStools “psloggedon”: a:\toolkit>psloggedon PsLoggedOn v1.31 - Logon Session Displayer Copyright (C) 1999-2003 Mark Russinovich Sysinternals - www.sysinternals.com Users logged on locally: 8/18/2005 12:38:01 PM LUNA\Administrator Users logged on via resource shares: 8/18/2005 5:02:49 PM (null)\ALICIA_USER Para determinar quien está conectado al sistema utilizamos “net session”, “arp” y “nbtstat”.
La herramienta “nbtstat” es usada para acceder al cache NetBIOS, permitiéndonos listar las
conexiones recientes, con la opción –c se muestra la información en cache de Netbios
90
a:\toolkit>nbtstat –c Local Area Connection: Node IpAddress: [172.29.69.83] Scope Id: [] No names in cache La herramienta “nbtstat” con la opción –n muestra los nombres de Netbios locales a:\toolkit>nbtstat –n Local Area Connection: Node IpAddress: [172.29.69.83] Scope Id: [] NetBIOS Local Name Table Name Type Status --------------------------------------------- COMPROMETIDO <00> UNIQUE Registered FORE <00> GROUP Registered COMPROMETIDO <20> UNIQUE Registered COMPROMETIDO <03> UNIQUE Registered FORE <1E> GROUP Registered FORE <1D> UNIQUE Registered ..__MSBROWSE__.<01> GROUP Registered INet~Services <1C> GROUP Registered IS~COMPROMETIDO....<00> UNIQUE Registered
La herramienta “nbtstat” con la opción –r lista los nombres resueltos por broadcast vía WINS a:\toolkit>nbtstat –r NetBIOS Names Resolution and Registration Statistics ---------------------------------------------------- Resolved By Broadcast = 0 Resolved By Name Server = 2 Registered By Broadcast = 0 Registered By Name Server = 9
La herramienta “nbtstat” con la opción –s lista la tabla de sesiones a:\toolkit>nbtstat –s Local Area Connection: Node IpAddress: [172.29.69.83] Scope Id: [] NetBIOS Connection Table Local Name State In/Out Remote Host Input Output ---------------------------------------------------------------------------- COMPROMETIDO <03> Listening El comando “net” con la opción “session”, obtiene una lista de sesiones establecidas en el
sistema, como se muestra a continuación. a:\toolkit>net session Computer User name Client Type Open Idle time --------------------------------------------------------------------------------- \\172.29.69.69 ATORRES Windows 2002 Serv 1 02:21:03
El comando “arp” es utilizado para mapear direcciones IP a direcciones físicas MAC con las
cuales el sistema se ha comunicado. Con la opción “–a” se muestra y modifica la tabla de
conversión de direcciones IP a direcciones físicas.
91
a:\toolkit>arp –a Interface: 172.29.69.83 on Interface 0x1000003 Internet Address Physical Address Type 172.29.69.254 00-20-9c-12-db-b4 dynamic
PASO 5: REALIZAR EL SEGUNDO REGISTRO DE TIEMPO DEL SISTEMA (TIME
STAMP)
Este paso tiene el fin de obtener un segundo registro para que al compararlo con el primero
podamos identificar bien los cambios que hemos hecho en el sistema a la hora de la recolección
de información, para lo cual nos podemos ayudar nuevamente de la herramienta “dir” o “ls”
como en el paso 1: a:\toolkit>dir c:\ /Q /S /TA Volume in drive C has no label. Volume Serial Number is ECD3-2160 Directory of c:\ 08/16/2005 05:43p 36,112 BUILTIN\Administrators Auditpol.exe 08/16/2005 05:43p 24,848 BUILTIN\Administrators dh.exe 08/16/2005 05:43p 9,488 BUILTIN\Administrators dhcmp.exe 08/18/2005 05:51p <DIR> BUILTIN\Administrators Documents and Settings 08/16/2005 05:43p 6,928 BUILTIN\Administrators drivers.exe 08/17/2005 12:34p 114,688 BUILTIN\Administrators Fport.exe 08/18/2005 04:29p <DIR> BUILTIN\Administrators Inetpub 08/16/2005 05:43p 53,248 BUILTIN\Administrators listdlls.exe 08/18/2005 04:29p <DIR> BUILTIN\Administrators nmap 08/16/2005 05:43p 208,948 BUILTIN\Administrators NTLast.exe 08/18/2005 04:29p <DIR> BUILTIN\Administrators Program Files 08/18/2005 04:29p <DIR> BUILTIN\Administrators programas 08/17/2005 05:26p 25,252,224 LUNA\alicia_user resp.reg 08/18/2005 04:29p <DIR> BUILTIN\Administrators temp 08/18/2005 04:29p <DIR> BUILTIN\Administrators toolkit 08/18/2005 04:29p <DIR> BUILTIN\Administrators WINNT 8 File(s) 25,706,484 bytes . . . . . . . . . PASO 6: REALIZAR UNA COPIA DE LA MEMORIA
Este paso se deberá realizar una vez concluidos los anteriores porque se producirá un volcado de
memoria que modificará el registry y reiniciará el sistema.
Por lo que para forzar al sistema para que cree un archivo “.dmp” cambiamos la configuración
del “registry” con el siguiente comando que utiliza la herramienta “reg.exe”: a:\>reg ADD HKLM\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters /v CrashOnCtrlScroll /t REG_DWORD /d 0x1
92
Después de haber realizado esta configuración en el “registry” y para poder crear el archivo
dump, será necesario provocar el fallo en la computadora oprimiendo la tecla derecha CTRL y al
mismo tiempo oprimir dos veces la tecla Bloq/despl (ScrollLock). Se pondrá la pantalla azul y se
reiniciará el sistema.
Después de que reinicie la computadora se habrá creado el archivo de descarga o volcado de la
memoria en el directorio del sistema. Por ejemplo c:\WINNT>MEMORY.DMP
PASO 7: DOCUMENTANDO LOS COMANDOS USADOS DURANTE LA RESPUESTA
INICIAL, TRANSFERIR Y ALMACENAR LOS DATOS
Todos los pasos con sus respectivas acciones y herramientas aplicadas son resumidos en la tabla
4.1.
Tabla 4.1 Pasos y acciones realizadas: Caso 1
Pasos Acciones Windows
NT/2000 1 Línea de comandos seguros Hacer disponible el conjunto de herramientas
Establecer un nuevo shell cmd.exe
2 Registro de tiempo Obtener el tiempo y fecha del sistema Time stamp, tiempo de creación de los archivos
date, time, now dir, ls
3 Estado del sistema Nombre del equipo Información Obtener los puertos abiertos Listar los procesos que corren actualmente Listar los procesos que abren sockets Lista las conexiones exitosas y fallidas Obtiene las bitácoras y hace la transferencia Obtiene valores de interés del registry Descarga todo el registry a un archivo
4 Quien esta en el sistema Conexiones activas Conexiones recientes Sesiones establecidas Tabla de direcciones
psloggedon nbtstat net session arp
5 2o. Registro de tiempo Listar archivos y directorios dir, ls 6 Copia de la memoria Volcado de memoria reg y archivos
.dmp 7 Documentación Transferir y almacenar los datos en un lugar
seguro Identificar y documentar los pasos
script md5
93
Todos estos comandos pueden ser incorporados en un programa batch como script y hacer la
captura con mayor velocidad. Para realizarlo creamos un archivo de texto con los comandos
requeridos y le ponemos la extensión bat.
En este caso elaboramos 5 scripts, en el primero se concentran los comandos aplicados y para la
respuesta inicial profunda donde se almacenan las bitácoras y el resultado del “registry”,
elaboramos los 4 script restantes.
La figura 4.4 muestra los scripts elaborados.
Fig. 4.4 Scripts Después de ejecutarlos aplicamos el comando “md5sum” al archivo generado por el script para
asignarle una identificación de integridad de los datos.
94
Se ejecuta el script “comandos” y se genera el archivo “datos.txt”, al cual se le aplica el comando
“md5sum” generando el archivo “datos.sum” que contiene el identificador de integridad. a:>toolkit>commandos >> datos.txt a:>toolkit>md5sum datos.txt >> datos.sum a:>toolkit>type datos.sum 7122f802e1a087a0b31848f70862c0d1 *datos.txt Este ejemplo ejecuta el script “copy_reg” que hace una copia del registry, al cual se le realiza el
mismo procedimiento anterior. a:>toolkit>copy_reg >> copy_reg.txt a:>toolkit>md5sum copy_reg.txt >> copy_reg.sum a:>toolkit>type copy_reg.sum 116798d3a85f14acdd5870ee16c4608d *copy_reg.txt Por último se ejecuta el script “sys_log” que obtiene la bitácora de sistema y al cual se le realiza
el mismo procedimiento anterior. a:>toolkit>sys_log >> sys_log.txt a:>toolkit>md5sum sys_log.txt >> sys_log.sum a:>toolkit>type sys_log.sum 301657924f0263c89caa702e08cc48e7 *sys_log.txt Ya que es necesario llevar nota de todos los pasos realizados, nos ayudaremos de la tabla 4.1
para registrar los datos importantes como la hora de inicio de la captura, el comando aplicado, si
es confiable o no, la salida del md5sum al archivo de datos y posibles comentarios, como se
muestra en la tabla 4.2. Tabla 4.2 Documentando: Caso 1
Confiable
Tiempo de inicio
Programa BAT
Archivo generado
Comando aplicado
SI NO
Salida del md5sum
Notas
9:19:20 montaje X 116798d3a85f14acdd5870ee16c4608d
9:22:23 cmd.exe cmd.exe X 301657924f0263c89caa702e08cc48e7
9:27:22 comandos.bat datos.txt date /t time /t dir c:\ /Q /S /TA hostname ipconfig fport netstat -an pslist ntlast
X 7122f802e1a087a0b31848f70862c0d1
El archivo generado es guardado en el medio confiable
95
Confiable
psloggedon nbtstat -c nbtstat -n nbtstat -r nbtstat -s net session arp –a dir c:\ /Q /S /TA
9:32:20 copy_reg.bat copy_reg.txt
regedit -e respaldo_registry.reg
X 116798d3a85f14acdd5870ee16c4608d
9:35:23 sys_log.bat sys_log.txt
dumpel -l system –t X 301657924f0263c89caa702e08cc48e7
X El archivo generado es guardado en el directorio de sistema del equipo bajo análisis
La información obtenida, será copiada a un lugar de almacenamiento seguro, a un medio
conectado a la estación de trabajo bajo análisis como una memoria USB o un floppy. También se
puede transferir por red a una estación de trabajo segura con el comando “netcat”. Otra
herramienta útil es contar con una cámara fotográfica para tomar fotografías de todas las
pantallas posibles.
96
4.3 APLICANDO EL PROCEDIMIENTO DE RECOLECCIÓN: CASO 2
WINDOWS CON ACCESO REMOTO
En el segundo caso las condiciones bajo las cuales se encuentra el equipo bajo sospecha son
similares al primer caso, el sistema se encontrará “vivo” conectado a energía eléctrica y con sus
procesos en estado “normal”, solamente que en este caso no se tiene acceso local al sistema, por
lo que se tendrá que obtener la información a través de la red. El sistema operativo con el que se
enfrentará el investigador será Windows 2000 y se cuenta con el password de acceso. La
siguiente figura muestra el tipo de caso a tratar:
Estado del
sistema
MUERTO VIVO
CASO 2: Windows CASO 1:
Windows
Local Por red Tipo de acceso al sistema
CASO 3: Linux
CASO 4: Linux
CASO 5: Grave_robber Linux
Recuperación de datos con métodos físicos
(ejemplos)
Fig. 4.5 Caso 2: Aplicación de metodología con Windows en forma remota
El equipo bajo sospecha puede ser un servidor o estación de trabajo conectado en red, por lo que
en este caso observamos que se puede obtener información de dos formas; la primera a través de
lo que el mismo equipo bajo sospecha emana a través de la red y por lo tanto a todos los equipos
conectados a ésta, sin establecer ningún tipo de conexión al sistema sospechoso, y la segunda
forma estableciendo una conexión segura específica al sistema sospechoso para obtener toda la
información volátil posible con comandos locales aplicados remotamente.
Por lo que la metodología la vamos a aplicar dos veces:
97
• Procedimiento1: Aplicación de la metodología obteniendo información a través de los
servicios activos de red disponibles del equipo comprometido, sin que se tenga que
establecer una conexión segura a través de la red y directa al equipo.
• Procedimiento 2: Aplicación de la metodología estableciendo una línea de comunicación
segura específica al equipo sospechoso a través de la red.
La información recolectada por ambos procedimientos podrá complementarse para obtener
mayor información del sistema bajo sospecha.
Para tener una mejor idea de la situación, la figura 4.6 muestra el diagrama de conexión de los
equipos en la red y los procedimientos que se llevarán a cabo para realizar la recolección:
Equipo comprometido
Investigador forense
Win2000
Procedimiento 2: shell seguro
Procedimiento 1: Servicios activos en red
Fig. 4.6 Diagrama de conexión: Caso 2
La estación forense tendrá cargado el conjunto de herramientas que se utilizará y ésta misma
almacenará los datos recolectados.
98
PROCEDIMIENTO 1: Información obtenida a través de los servicios de red disponibles de
la máquina comprometida
Dentro de este procedimiento aplicaremos los pasos de la metodología propuesta.
PASO 1: ESTABLECER UNA LINEA DE COMANDOS SEGURO
Para este caso en una primera etapa trataremos de obtener todos los datos posibles a través de
servicios disponibles en red de la máquina bajo análisis, por lo que nos saltaremos este paso y
comenzaremos con el segundo.
PASO 2: REALIZAR UN REGISTRO DE TIEMPO
En este paso de la metodología vamos a obtener información en forma remota. Los comandos
que aplicaremos nos permiten obtener información a través de la red, sin necesidad de tener algún
tipo de acceso al equipo.
Primero obtenemos el tiempo y fecha del sistema con el comando “net time”, como se muestra a
continuación: net time \\machinename (forense)C:\pruebas>net time \\comprometido La hora actual en \\luna es 8/16/2005 4:42 PM Se ha completado el comando correctamente. PASO 3: OBTENER EL ESTADO DEL SISTEMA
A continuación podemos obtener información del sistema con el comando “srvinfo” que es una
utilería del resource kit. (forense)C:\pruebas>srvinfo \\comprometido Server Name: comprometido Security: Users NT Type: NT Member Server - Enterprise Version: 5.0 Build: 2195, Service Pack 4 Current Type: Uniprocessor Free Product Name: Microsoft Windows 2000 Registered Owner: alicia
99
Registered Organization: cna ProductID: 51879-270-5770243-05434 Original Install Date: Tue Jul 05 10:36:02 2005 Domain: Error 2 PDC: Error 1717 IP Address: 172.29.69.83 CPU[0]: x86 Family 6 Model 7 Stepping 3: 498 MHz Hotfixes: [ServicePackUninstall]: [Q147222]: [KB842526]: [KB841873]: [KB841872]: [KB840315]: [KB839645]: [KB839643]: [KB837001]: [KB824146]: [KB824141]: [KB824105]: Drive: [FileSys] [ Size ] [ Free ] [ Used ] C$ NTFS 3050 994 2056 Services: [Running] Alerter [Stopped] Application Management [Stopped] Background Intelligent Transfer Service [Running] Computer Browser [Stopped] Indexing Service [Stopped] ClipBook [Running] Distributed File System [Running] DHCP Client [Stopped] Logical Disk Manager Administrative Service [Running] Logical Disk Manager [Running] DNS Client [Running] Event Log [Running] COM+ Event System [Stopped] Fax Service [Running] IIS Admin Service [Stopped] Intersite Messaging [Stopped] Kerberos Key Distribution Center [Running] Server [Running] Workstation [Running] License Logging Service [Running] TCP/IP NetBIOS Helper Service [Running] McAfee Framework Service [Running] Network Associates McShield [Running] Network Associates Task Manager [Running] Messenger [Stopped] NetMeeting Remote Desktop Sharing [Running] Distributed Transaction Coordinator [Stopped] Windows Installer [Stopped] Network DDE [Stopped] Network DDE DSDM [Stopped] Net Logon [Running] Network Connections [Stopped] File Replication [Stopped] NT LM Security Support Provider [Running] Removable Storage [Running] Plug and Play [Running] IPSEC Policy Agent [Running] Protected Storage [Stopped] Remote Access Auto Connection Manager [Running] Remote Access Connection Manager [Running] Routing and Remote Access [Running] Remote Registry Service [Stopped] Remote Procedure Call (RPC) Locator [Running] Remote Procedure Call (RPC) [Stopped] QoS RSVP [Running] Security Accounts Manager [Stopped] Smart Card Helper [Stopped] Smart Card [Running] Task Scheduler [Running] RunAs Service [Running] System Event Notification
100
[Stopped] Internet Connection Sharing [Running] Simple Mail Transport Protocol (SMTP) [Running] Print Spooler [Stopped] Performance Logs and Alerts [Running] Telephony [Stopped] Terminal Services [Stopped] Telnet [Stopped] Distributed Link Tracking Server [Running] Distributed Link Tracking Client [Running] User Mode Process Dump [Stopped] Uninterruptible Power Supply [Stopped] Utility Manager [Stopped] Windows Time [Running] World Wide Web Publishing Service [Running] Windows Management Instrumentation [Running] Windows Management Instrumentation Driver Extensions [Running] Automatic Updates [Stopped] Wireless Configuration Network Card [0]: System Up Time: 0 Days, 3 Hr, 13 Min, 47 Sec Aplicamos el comando “pslist” para obtener los procesos que están corriendo en el sistema
sintaxis, donde la opción “sT” significa conexiones TCP : nmap –sT <dirección IP>
101
(forense)C:\toolkit\nmap\nmap-3.81>nmap -sT 172.29.69.83 Starting nmap 3.81 ( http://www.insecure.org/nmap ) at 2005-08-16 11:27 Hora est . de AmÚrica Central Warning: OS detection will be MUCH less reliable because we did not find at lea st 1 open and 1 closed TCP port Interesting ports on 172.29.69.83: (The 1654 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE 25/tcp open smtp 80/tcp open http 135/tcp open msrpc 139/tcp open netbios-ssn 443/tcp open https 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 1723/tcp open pptp 3372/tcp open msdtc MAC Address: 00:50:DA:B7:D5:BD (3com) Device type: general purpose Running: Microsoft Windows 95/98/ME|NT/2K/XP OS details: Microsoft Windows Millennium Edition (Me), Windows 2000 Pro or Advan ced Server, or Windows XP Nmap finished: 1 IP address (1 host up) scanned in 118.749 seconds Los rootkits y otros programas de acceso remoto son ejecutados desde un servicio, por lo que
listamos los servicios utilizando “sclist”: (forense)C:\toolkit>sclist \\comprometido -------------------------------------------- - Service list for \\comprometido -------------------------------------------- running Alerter Alerter stopped AppMgmt Application Management stopped BITS Background Intelligent Transfe running Browser Computer Browser stopped cisvc Indexing Service stopped ClipSrv ClipBook running Dfs Distributed File System running Dhcp DHCP Client stopped dmadmin Logical Disk Manager Administr running dmserver Logical Disk Manager running Dnscache DNS Client running Eventlog Event Log running EventSystem COM+ Event System stopped Fax Fax Service running IISADMIN IIS Admin Service stopped IsmServ Intersite Messaging stopped kdc Kerberos Key Distribution Cent running lanmanserver Server running lanmanworkstation Workstation running LicenseService License Logging Service running LmHosts TCP/IP NetBIOS Helper Service running McAfeeFramework McAfee Framework Service running McShield Network Associates McShield running McTaskManager Network Associates Task Manage running Messenger Messenger stopped mnmsrvc NetMeeting Remote Desktop Shar running MSDTC Distributed Transaction Coordi stopped MSIServer Windows Installer stopped NetDDE Network DDE stopped NetDDEdsdm Network DDE DSDM stopped Netlogon Net Logon running Netman Network Connections stopped NtFrs File Replication stopped NtLmSsp NT LM Security Support Provide running NtmsSvc Removable Storage running PlugPlay Plug and Play
102
running PolicyAgent IPSEC Policy Agent running ProtectedStorage Protected Storage running PSEXESVC PsExec stopped RasAuto Remote Access Auto Connection running RasMan Remote Access Connection Manag running RemoteAccess Routing and Remote Access running RemoteRegistry Remote Registry Service stopped RpcLocator Remote Procedure Call (RPC) Lo running RpcSs Remote Procedure Call (RPC) stopped RSVP QoS RSVP running SamSs Security Accounts Manager stopped SCardDrv Smart Card Helper stopped SCardSvr Smart Card running Schedule Task Scheduler running seclogon RunAs Service running SENS System Event Notification stopped SharedAccess Internet Connection Sharing running SMTPSVC Simple Mail Transport Protocol running Spooler Print Spooler stopped SysmonLog Performance Logs and Alerts running TapiSrv Telephony stopped TermService Terminal Services stopped TlntSvr Telnet stopped TrkSvr Distributed Link Tracking Serv running TrkWks Distributed Link Tracking Clie running udmpsvc User Mode Process Dump stopped UPS Uninterruptible Power Supply stopped UtilMan Utility Manager stopped W32Time Windows Time running W3SVC World Wide Web Publishing Serv running WinMgmt Windows Management Instrumenta running Wmi Windows Management Instrumenta running wuauserv Automatic Updates stopped WZCSVC Wireless Configuration Otra de las herramientas que podemos aplicar para listar los archivos compartidos y quien los ha
accedido es “srvcheck”, pero debe ser aplicado con una cuenta privilegiada, que en el siguiente
ejemplo muestra al usuario alicia_user y al usuario alicia_admin con privilegios totales sobre la
\\comprometido\carpeta_compartida_de_comprometido COMPROMETIDO\alicia_user Full Control COMPROMETIDO\alicia_admin Full Control
PASO 4: DETERMINAR LAS CONEXIONES AL SISTEMA
En este paso de la metodología obtenemos las estadísticas del protocolo y las conexiones actuales
de TCPIP con el comando “nbtstat” y la siguiente sintaxis: nbtstat –a \\machinename La opción “-a” hace una lista de los equipos remotos
Ejemplo de aplicación del comando (forense)C:\toolkit>nbtstat -a comprometido
103
Conexión de área local: Dirección IP: [172.29.69.69] Id. de ámbito : [] NetBIOS Remote Machine Name Table Nombre Tipo Estado --------------------------------------------- LUNA <00> Único Registrado FORE <00> Grupo Registrado LUNA <20> Único Registrado LUNA <03> Único Registrado FORE <1E> Grupo Registrado FORE <1D> Único Registrado ..__MSBROWSE__.<01> Grupo Registrado INet~Services <1C> Grupo Registrado IS~LUNA........<00> Único Registrado Dirección MAC = 00-50-DA-B7-D5-BD PROCEDIMIENTO 2: Con línea de comunicación segura
En este procedimiento primero estableceremos una línea de comunicación segura a través de la
red para aplicar las herramientas y una vez hecha, capturamos la información.
PASO 1: ESTABLECER UNA LÍNEA DE COMANDOS SEGURA
Aplicaremos el primer paso de la metodología estableciendo una conexión segura, ya que el
investigador forense no se encuentra físicamente en el lugar donde se ubica el quipo bajo análisis.
Los comandos se copiarán remotamente y se ejecutarán en forma local.
Para realizar una conexión administrativa a la máquina remota utilizamos el comando “net use”
desde la estación forense con la siguiente sintaxis: Net use \\machine\ipc$ /user:machine\administrator password
Ejemplo de aplicación: (forense)C:\>net use \\comprometido\ipc$ /user:administrator password Se ha completado el comando correctamente. Una vez establecida la conexión copiamos los comandos confiables de nuestro conjunto de
herramientas (toolkit) con el comando xcopy: (forense) C:\>xcopy /SVI toolkit \\comprometido\c$\toolkit toolkit\Auditpol.exe toolkit\dh.exe toolkit\dhcmp.exe toolkit\drivers.exe toolkit\Fport.exe
104
toolkit\listdlls.exe toolkit\NTLast.exe toolkit\perms.exe toolkit\procexp.chm toolkit\procexp.exe toolkit\psexec.exe toolkit\psfile.exe toolkit\psgetsid.exe toolkit\Psinfo.exe toolkit\pskill.exe toolkit\pslist.exe toolkit\psloggedon.exe toolkit\psloglist.exe toolkit\pspasswd.exe toolkit\psservice.exe toolkit\psshutdown.exe toolkit\pssuspend.exe toolkit\Rasusers.exe toolkit\README.TXT toolkit\Regrest.exe toolkit\Sclist.exe toolkit\Showmbrs.exe toolkit\Srvcheck.exe toolkit\Srvinfo.exe toolkit\tcpvcon.exe toolkit\nmap\nmap-os-fingerprints toolkit\nmap\nmap-services toolkit\nmap\nmap.exe 33 archivos copiados Una vez copiados los archivos, establecemos una línea de comandos segura (cmd.exe) aplicando
la herramienta “psexec” con la siguiente sintaxis: psexec \\machine cmd
Ejemplo de aplicación (forense)C:\>cd toolkit (forense)C:\toolkit>psexec \\comprometido cmd PsExec v1.55 - Execute processes remotely Copyright (C) 2001-2004 Mark Russinovich Sysinternals - www.sysinternals.com Microsoft Windows 2000 [Version 5.00.2195] (C) Copyright 1985-2000 Microsoft Corp. (comprometido)C:\WINNT\system32>cd \toolkit PASO 2: REALIZAR UN REGISTRO DE TIEMPO DEL SISTEMA (TIME STAMP)
Como en el caso 1 utilizamos el comando “dir” o “ls” para obtener un listado de todos los
archivos en el sistema bajo análisis, tiempos de acceso, modificación y creación. a:\toolkit>dir c:\ /Q /S /TA Volume in drive C has no label. Volume Serial Number is ECD3-2160 Directory of c:\ 08/16/2005 05:43p 36,112 BUILTIN\Administrators Auditpol.exe
Una vez hecho el registro de tiempo en el equipo comprometido, procedemos a obtener el estado
del sistema con los comandos de nuestro conjunto de herramientas que ya se encuentra en el
sistema bajo análisis:
Acción 1: Obtener los datos del sistema
Como en el caso anterior obtenemos la identificación de red del equipo con el comando
“ipconfig”, como se muestra a continuación: (forense) C:\toolkit>ipconfig /all Windows 2000 IP Configuration Ethernet adapter Local Area Connection: Connection-specific DNS Suffix . : IP Address. . . . . . . . . . . . : 172.29.69.83 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 172.29.69.254 Acción 2: Determinar los puertos abiertos Para enumerar los puertos por los cuales los procesos están escuchando, utilizamos la herramienta “fport”: (comprometido)C:\toolkit\fport.exe (comprometido)C:\toolkit>fport FPort v2.0 - TCP/IP Process to Port Mapper Copyright 2000 by Foundstone, Inc. http://www.foundstone.com Pid Process Port Proto Path 1056 inetinfo -> 25 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 1056 inetinfo -> 80 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 436 svchost -> 135 TCP C:\WINNT\system32\svchost.exe 8 System -> 139 TCP
Para obtener la lista de procesos que está corriendo en el sistema utilizamos la herramienta
“pslist”, esta información ya la obtuvimos en forma remota, pero a menos que no se haya podido
obtener, procederemos a su captura mediante la conexión segura al equipo.
Acción 4: Respuesta inicial más profunda
Este paso se realiza si se cuenta con tiempo suficiente para obtener las bitácoras del sistema.
Primero podemos descargar la información del “registry” a un archivo, con el comando “reg” y
“regedit”, como se muestra a continuación: (comprometido)c:\toolkit\regedit –e respaldo_registry.reg (comprometido)c:\toolkit\reg export HKLM respaldo_registry.reg The operation completed successfully Para obtener las bitácoras nos podemos auxiliar del comando dumpel.exe del resource kit. En el
siguiente ejemplo se muestra la obtención de las bitácoras de seguridad, sistema y aplicaciones: (comprometido)c:\toolkit\dumpel –f security.bck –l security The operation completed successfully (comprometido)c:\toolkit\dumpel –f system.bck –l system The operation completed successfully (comprometido)c:\toolkit\dumpel –f application.bck –l application The operation completed succesfully
107
PASO 4: DETERMINAR LAS CONEXIONES AL SISTEMA
El siguiente paso es saber quien esta en el sistema para lo cual utilizaremos las herramientas “net
session” y “tcpvcon” (comprometido)C:\toolkit>net session Computer User name Client Type Opens Idle time ------------------------------------------------------------------------------- \\ATORRES ADMINISTRATOR Windows 2002 Serv 4 00:00:00 The command completed successfully. (comprometido)C:\toolkit>tcpvcon TCPView v2.34 - TCP/UDP endpoint lister Copyright (C) 1998-2003 Mark Russinovich Sysinternals - www.sysinternals.com [TCP] System PID: 8 State: ESTABLISHED Local: comprometido:netbios-ssn Remote: atorres:4082 También listamos los miembros del grupo administrador usando la herramienta “showmbrs” para
verificar algo inusual (comprometido)C:\toolkit>showmbrs administrators Members of local group [\administrators]: COMPROMETIDO\Administrator COMPROMETIDO\alicia_admin Utilizamos la herramienta “psloggedon” para mostrar los usuarios que están en el sistema (logged
on) actualmente. (comprometido)C:\toolkit>psloggedon PsLoggedOn v1.31 - Logon Session Displayer Copyright (C) 1999-2003 Mark Russinovich Sysinternals - www.sysinternals.com Users logged on locally: 8/16/2005 5:37:00 PM COMPROMETIDO\Administrator Users logged on via resource shares: 8/16/2005 6:04:31 PM (null)\ADMINISTRATOR
Con la herramienta “arp” mostramos las conexiones en la tabla de direcciones. (comprometido)C:\toolkit>arp -a Interface: 172.29.69.83 on Interface 0x1000003 Internet Address Physical Address Type 172.29.69.69 00-09-6b-14-84-c9 dynamic 172.29.69.254 00-20-9c-12-db-b4 dynamic
108
Con la herramienta “netstat” mostramos las conexiones activas. (comprometido)C:\toolkit>netstat -a Active Connections Proto Local Address Foreign Address State TCP comprometido:smtp comprometido:0 LISTENING TCP comprometido:http comprometido:0 LISTENING TCP comprometido:epmap comprometido:0 LISTENING TCP comprometido:https comprometido:0 LISTENING TCP comprometido:microsoft-ds comprometido:0 LISTENING TCP comprometido:1025 comprometido:0 LISTENING TCP comprometido:1026 comprometido:0 LISTENING TCP comprometido:1028 comprometido:0 LISTENING TCP comprometido:1030 comprometido:0 LISTENING TCP comprometido:1031 comprometido:0 LISTENING TCP comprometido:pptp comprometido:0 LISTENING TCP comprometido:2087 comprometido:0 LISTENING TCP comprometido:3372 comprometido:0 LISTENING TCP comprometido:netbios-ssn comprometido:0 LISTENING TCP comprometido:netbios-ssn ATORRES:4082 ESTABLISHED TCP comprometido:1041 ATORRES:netbios-ssn TIME_WAIT UDP comprometido:epmap *:* UDP comprometido:microsoft-ds *:* UDP comprometido:1029 *:* UDP comprometido:1034 *:* UDP comprometido:1645 *:* UDP comprometido:1646 *:* UDP comprometido:l2tp *:* UDP comprometido:radius *:* UDP comprometido:radacct *:* UDP comprometido:3456 *:* UDP comprometido:1032 *:* UDP comprometido:1033 *:* UDP comprometido:netbios-ns *:* UDP comprometido:netbios-dgm *:* UDP comprometido:isakmp *:* Para encontrar un historial de entrada al sistema (login history) utilizamos la herramienta
“ntlast.exe“, como se muestra a continuación: (comprometido)C:\toolkit>ntlast alicia_user COMPROMETIDO COMPROMETIDO Wed Aug 17 02:09:24pm 2005 Administrator COMPROMETIDO COMPROMETIDO Wed Aug 17 12:14:31pm 2005 - End Of File -
PASO 5: REALIZAR EL 2º. REGISTRO DE TIEMPO
Como en el paso 1 nuevamente utilizamos el comando “dir” para obtener un listado de todos los
archivos en el sistema bajo análisis, tiempos de acceso, modificación y creación. (forense) C:\toolkit>dir c:\ /Q /S /TA Volume in drive C has no label. Volume Serial Number is ECD3-2160 Directory of c:\ 08/16/2005 05:43p 36,112 BUILTIN\Administrators Auditpol.exe 08/16/2005 05:43p 24,848 BUILTIN\Administrators dh.exe 08/16/2005 05:43p 9,488 BUILTIN\Administrators dhcmp.exe
La tabla 4.3 resume los pasos realizados, las acciones tomadas y las herramientas utilizadas que
nos ayudarán a realizar la documentación apropiada de la captura de datos.
Tabla 4.3 Pasos y acciones realizadas: Caso 2
Pasos Acciones Windows
NT/2000 Procedimiento 1: Información obtenida vía la red
2 Registro de tiempo Tiempo y fecha del sistema net time 3 Estado y datos del sistema Información del equipo
Listar los procesos que abren sockets Obtener los puertos abiertos Listar los servicios Directorios compartidos y quien los ha accedido
srvinfo pslist nmap sclist srvchk
4 Conexiones al sistema Conexiones actuales establecidas nbtstat Procedimiento 2: Información obtenida localmente
1 Conectarse remotamente Establecer una conexión administrativa Copias remotas Ejecución de comandos remotos
net use xcopy psexec
2 Registro de tiempo Time stamp, tiempo de creación de los archivos dir 3 Estado del sistema Obtener los puertos abiertos
Respuesta inicial profunda Descarga todo el registry a un archivo Obteniendo las bitácoras
fport regedit, reg dumpel
4 Conexiones al sistema Listar la conexiones abiertas Listar los miembros del grupo administrador Determinar quien está dentro del sistema Listar conexiones recientes Desplegar direcciones IP y físicas Lista las conexiones exitosas y fallidas Historial de entradas al sistema
net session, tcpvcon showmbrs netstat psloggedon arp netstat nlast
5 2º. Registro de tiempo Time stamp, tiempo de creación de los archivos dir 6 Información de la memoria Obtener detalles de la memoria y procesos pslist –t
pslist –x 7 Transferir y documentar Transferir y almacenar los datos en un lugar script
112
Pasos Acciones Windows NT/2000
seguro Documentar los pasos
netcat md5sum
Una vez seleccionados los programas y pasos, realizamos un programa script que corra todos
estos comandos al mismo tiempo o también se puede correr cada comando en forma individual y
transferirlos a un sitio seguro con ayuda de la herramienta “netcat”, que envía información a
través de la red.
Para utilizar “netcat” el primer paso es levantar el servicio en nuestra estación de trabajo
(dirección IP 172.29.69.69), para escuchar (l) o recibir los datos remotos por el puerto (p) que en
este caso será el número 2222: (forense)c:\WSForense>nc –l –p 2222 > datos En el equipo bajo análisis se dirige la salida del script generado hacia la dirección IP de la
estación de trabajo forense: (comprometido)c:\toolkit>script | nc 172.29.69.69 2222 En caso de la aplicación de cada comando en forma individual, en la estación forense se abrirá un
archivo para recibir los datos del comando aplicado (forense)c:\WSForense>nc –l –p 2222 > timestamp1.txt
En el equipo comprometido se ejecutará el comando y la salida de dicho comando saldrá por la
red al archivo que hemos abierto en la estación forense: (comprometido)c:\toolkit>dir c:\ /Q /S /TA >> | nc 172.29.69.69 2222 Y así sucesivamente para cada comando.
Para cerrar la conexión se puede teclear CTRL-C.
Una vez concentrada la información en la estación de trabajo forense, se coloca una
identificación de integridad a la información obtenida con la herramienta “md5sum.exe”, como
se muestra a continuación:
113
(forense)c:\WSForense>md5sum datos > datos.sum
Para el caso donde se ejecuta cada comando en forma individual, también se aplica esa misma
herramienta, de la siguiente manera: (forense)c:\WSForense>md5sum timestamp1.txt > timestamp1.sum
114
4.4 APLICANDO EL PROCEDIMIENTO DE RECOLECCIÓN: CASO 3
LINUX CON ACCESO LOCAL
Ahora aplicaremos la metodología sobre la plataforma Linux. La respuesta inicial en un sistema
Linux es similar a la respuesta inicial en Windows, el objetivo es obtener datos volátiles del
sistema antes de proceder a obtener la información estática2 . Las condiciones bajo las cuales se
encuentra el equipo bajo sospecha son que el estado del sistema será “vivo”, estará trabajando
sobre Linux Red Hat Enterprise y el investigador contará con el password de acceso, tal como se
consta en la figura 4.7.
Estado del
sistema
MUERTO VIVO
CASO 2: Windows
CASO 1: Windows
Local Por red Tipo de acceso al sistema
CASO 3: Linux CASO 4:
Linux CASO 5: Grave_robber Linux
Recuperación de datos con métodos físicos
(ejemplos)
Fig. 4.7 Caso 3: Aplicación de metodología en Linux con acceso local
El procedimiento se aplicará directamente a la consola del equipo sospechoso estableciendo una
conexión segura en forma local, esto elimina la posibilidad de que el atacante esté monitoreando
la respuesta y asegura que se corran comandos confiables.
Los programas que serán utilizados en esta captura trabajan sobre Linux y no serán instalados en
el sistema bajo análisis, estos correrán desde un CDROM y la información capturada será enviada
a un floppy o USB. 2 La información estática es la información que permanece en el sistema hasta que sea sobrescrita, borrada o destruída como pueden ser archivos de bitácoras, archivos de configuración, sistemas de archivos y que no se pierde al apagar el equipo.
115
PASO 1: LINEA DE COMANDOS SEGURA
Acceder localmente en la consola de la víctima puede evitar la generación de tráfico de red. En
este punto se monta el toolkit confiable y el medio donde se almacenará la información que se
recolecte: # mount /dev/hdc /mnt/fcdrom Para montar un cdrom El primer paso en toda respuesta es estar seguro de que se están ejecutando comandos seguros en
el shell. Los shells de Linux pueden ser alterados (trojaned) por un atacante, que provocan que
los comandos ejecutados realicen operaciones erróneas en los comandos del investigador. Por lo
que será necesario ejecutar un shell seguro también (bash). Una vez ejecutado se direccionarán
todos los comandos a ese shell, colocando la variable de ambiente PATH igual a punto (.),
evitando ejecutar accidentalmente un comando no confiable. Un tip es cambiar el nombre de
nuestros ejecutables confiables para no cometer ese error, por ejemplo en vez de teclear netstat,
# /mnt/cdrom/mount /dev/fd0 /mnt/floppy Para montar el floppy o USB donde almacenar la información. # /mnt/cdrom/mount /dev/sda1 /mnt/memstick
# /mnt/cdrom/mount /dev/sda1 –n vfat /mnt/memstick Especificando en tipo de sistema Los binarios no deben utilizar bibliotecas dinámicas, pero en caso necesario se deberán ligar a
bibliotecas en el CD. Los CD con distribución portable ya contienen herramientas en forma
estática (FIRE, knoppix o Trinux).
PASO 2: REGISTRO DE TIEMPO
Obtener el tiempo y fecha del sistema
Una vez montadas las herramientas obtenemos un registro de tiempo del sistema con el comando
“date”: # /mnt/cdrom/date > /mnt/floppy/date_start.txt Obtener el MAC (Modification, Creation, Access Time) de todos los archivos
116
Una vez que se decide realizar la respuesta inicial, se deben obtener todos los “time/date stamp”
en el sistema de archivos, para eso utilizaremos el comando “ls” con los siguientes argumentos: # /mnt/cdrom/ls –alRu > /mnt/floppy/access_start.txt # /mnt/cdrom/ls –alRc > /mnt/floppy/modification_start.txt # /mnt/cdrom/ls –alR > /mnt/floppy/creation_start.txt PASO 3: ESTADO DEL SISTEMA Para determinar el estado del sistema realizaremos las siguientes acciones:
1. Obtener los procesos corriendo
2. Capturar información del sistema /proc
3. Listar los puertos abiertos y aplicaciones en escucha
4. Respuesta inicial mas profunda
o Detectando y capturando un proceso sospechoso
Acción 1: Listar los procesos corriendo Para obtener todos los procesos corriendo utilizaremos los comandos estándar “ps” o “pstree”. # /mnt/cdrom/pstree –pla > /mnt/floppy/pstree.txt
2.- Nos cambiamos al directorio /proc del ID del proceso #cd /proc/970 #ls -al total 0 dr-xr-xr-x 3 root root 0 Oct 10 10:33 . dr-xr-xr-x 68 root root 0 Oct 10 03:01 .. -r--r--r-- 1 root root 0 Oct 10 10:41 cmdline lrwxrwxrwx 1 root root 0 Oct 10 10:41 cwd -> / -r-------- 1 root root 0 Oct 10 10:41 environ lrwxrwxrwx 1 root root 0 Oct 10 10:41 exe dr-x------ 2 root root 0 Oct 10 10:41 fd -r--r----- 1 root root 0 Oct 10 10:41 maps -rw------- 1 root root 0 Oct 10 10:41 mem -r--r--r-- 1 root root 0 Oct 10 10:41 mounts lrwxrwxrwx 1 root root 0 Oct 10 10:41 root -> / -r--r--r-- 1 root root 0 Oct 10 10:41 stat -r--r--r-- 1 root root 0 Oct 10 10:41 statm -r--r--r-- 1 root root 0 Oct 10 10:41 status 3.- Copiamos el archivo binario. La información más significativa se puede encontrar en el
directorio “fd”, la liga “exe” y el archivo “cmdline”.
120
La liga exe permite al investigador recuperar los archivos borrados que aún siguen corriendo. Por
ejemplo, si se ejecutó el siguiente comando: # rm /root/ir/proc_sosp rm: remove ‘/root/ir/proc_sosp?y Aunque se haya removido el programa sospechoso, éste está ligado al sistema de archivos. El
comando “ls” no mostrará el archivo en el FS, sin embargo, en el contenido del directorio
/proc/970, se verá la siguiente salida: 970# ls –al lrwx------- 1 root root 0 Apr 5 20:13 exe -> /root/ir/proc_sosp (deleted). Se puede usar el comando “cp” para crear una copia del ejecutable corriendo en el sistema de
archivos.
En el subdirectorio “fd” (file descriptor), se pueden identificar todos los procesos que un archivo
ha abierto. Cuando el kernel de Linux, abre, lee, escribe o crea un archivo o socket de red, este
regresa un “file descriptor” (un entero positivo) que es usado para referenciar el archivo o socket
de red. Se pueden ignorar los fd 0, 1 y 2 que son “file descriptors” predefinidos para la salida o
entrada estándar. fd# ls –la lrwx------- 1 root root 64 Apr 5 20:12 1 -> /dev/pts/4 lrwx------- 1 root root 64 Apr 5 20:12 4 -> socket: [1359] El archivo “cmdline” muestra los argumentos exactos de la línea de comandos usados para correr
dicha aplicación. Normalmente, este es desplegado cuando un usuario ejecuta un comando “ps”.
Para desplegar su contenido tecleamos: # cat cmdline nautilus --no-default-window --sm-client-id default3
PASO 4: QUIEN ESTÁ EN EL SISTEMA
Determinar quien está en el sistema es un poco más simple. Solo ejecutamos el comando “w”
(what), y desplegará los IDs de usuarios conectados, de que sistemas están entrando y que están
ejecutando. También provee la hora y fecha del sistema: # /mnt/cdrom/w > /mnt/floppy/w.txt Ejemplo de salida del comando
121
11:01:55 up 3:00, 3 users, load average: 0.08, 0.04, 0.04 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root :0 - 8:02am ? 0.00s 0.94s /usr/bin/gnome- root pts/0 :0.0 8:04am 0.00s 2.98s 0.04s w root pts/1 :0.0 10:11am 48:33 0.23s 0.23s bash La línea de cabecera indica la hora actual del sistema, cuánto tiempo el sistema ha estado arriba y
cuántos usuarios están actualmente conectados
El comando para determinar si la interfaz está en modo promiscuo es “ifconfig”: # /mnt/cdrom/ifconfig –a > /mnt/floppy/ifconfig.txt Ejemplo de salida del comando: eth0 Link encap:Ethernet HWaddr 00:00:39:77:E3:C6 inet addr:172.29.69.111 Bcast:172.29.69.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:3088 errors:0 dropped:0 overruns:0 frame:0 TX packets:174 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:338230 (330.3 Kb) TX bytes:67384 (65.8 Kb) Interrupt:11 Base address:0xef40 Memory:f7efe000-f7efe038 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:3503 errors:0 dropped:0 overruns:0 frame:0 TX packets:3503 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:364926 (356.3 Kb) TX bytes:364926 (356.3 Kb)
Si la tarjeta se descubre en modo promiscuo, se puede suponer que existe un sniffer en el sistema
bajo análisis que eleva la severidad del ataque. Esto sugiere que el sistema comprometido no es
únicamente ese, también significa que el atacante tiene acceso a nivel de root [36].
Para obtener el nombre del sistema y el tiempo que ha estado levantado tecleamos los siguientes
En el caso de Linux a diferencia de Windows no es necesario reiniciar el equipo para obtener una
copia de la memoria RAM, por lo que en este caso intercambiamos el paso 5 por el paso 6.
122
No existen muchas formas de descargar la memoria RAM en máquinas Linux. Normalmente se
transfiere el archivo /proc/mem o /proc/kcore del sistema bajo análisis. Este archivo contiene el
sistema RAM en un arreglo no continuo.
El comando dd es parte de el paquete fileutils de Red Hat, lo podemos utilizar para crear una
imagen o copia exacta de un archivo. Para copiar directamente el dispositivo de memoria
utilizamos la siguiente sintaxis: # mnt/cdrom/dd if=/dev/mem of=/dev/fd0/image_memory
129024+0 records in 129024+0 records out
# ls –l image_memory -rw-r--r-- 1 root 66060288 Sep 25 18:27 image_memory El tipo de archivo obtenido no se puede leer con un “cat” normal, pero se puede utilizar el
comando “string” para obtener los caracteres entendibles y mandarlos a un archivo que después
podamos analizar con tiempo. # string image_memory > resultado Utilizando GDB para capturar memoria
GDB puede estar ejecutándose en la misma máquina o remotamente, en algún dispositivo externo
de solo lectura.
Para invocar gdb: [root@luna gdb-6.0]# gdb GNU gdb 6.0 Copyright 2003 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". (gdb) Dentro de GDB los comandos dump, append y restore copian datos entre memoria y archivos.
Los comandos dump y append escriben datos a un archivo, y el comando restore lee los datos del
archivo para regresarlos a memoria. Los archivos pueden estar en formato binario. (gdb) dump memory descarga 0x00000 0xFFFFF
123
El comando anterior vacía el contenido de la memoria desde start_addr (0x00000) hasta
end_addr(0xFFFFF).
PASO 6: REGISTRO DE TIEMPO
Nuevamente como en el paso 2 volvemos a tomar el registro de tiempo del sistema y de los
archivos, para saber que archivos pudimos haber modificado durante la recolección de
La tabla 4.4 muestra los pasos que se siguieron y los programas que se utilizaron para llevar a
cabo cada paso. Esto nos ayudará a documentar todos los pasos realizados:
Tabla 4.4 Pasos y acciones realizadas: Caso 3
Pasos Acciones Comandos
Linux 1 Línea de comandos seguros Montar el CD con las herramientas
Establecer un nuevo shell Definir rutas de binarios y librerías seguros
mount bash PATH
2 Registro de Tiempo Obtener el tiempo y fecha del sistema Obtener el MAC de todos los archivos
date ls
Listar los procesos que corren actualmente Listar los procesos que corren actualmente Obtener los puertos abiertos Listar los archivos abiertos Capturando información en el FS proc
pstree ps netstat lsof /proc
Para un solo proceso sospechoso
3 Estado del sistema
Listar los procesos Identificar el ID en el FS /proc Copiar el archivo binario Identificar las líneas de comandos del proceso
ps –aux /proc/ID /proc/ID/exe /proc/ID/cmdline
4 Quien esta en el sistema Determinar quien está dentro del sistema Información de la tarjeta de red Nombre del equipo Tiempo que el sistema ha estado levantado
w ifconfig hostname uptime
5 Copia de la memoria Captura de la memoria física dd, /dev/mem dd, /dev/kmem
6 Registro de tiempo Obtener el tiempo y fecha del sistema Time stamp, tiempo de creación de los archivos
date ls
124
Pasos Acciones Comandos Linux
7 Documentación Identificar y documentar los pasos Registro de integridad Automatizar la recolección
md5 bash script
Registro de integridad
A cada uno de los comandos aplicados se le debe generar un registro de integridad de la
evidencia original para validarla. Para lo cual podemos utilizar “md5sum”: # /mnt/cdrom/md5sum image_mem 166e20b346bff5b030cbf07b3f4963718 image_mem
Automatizar la recolección
En este caso también se puede realizar un script que automatice todos los pasos realizados y la
recolección de información sea más rápida. Lo importante es estar seguro de que cualquier
archivo creado o copiado por un script esté en un medio seguro.
Para realizar un script en Linux creamos el siguiente archivo: # !/bin/bash # SCRIPT DE RECOLECCIÓN DE INFORMACIÓN # PASO 2: REGISTRO DE TIEMPO /mnt/cdrom/date > /mnt/floppy/date_start.txt /mnt/cdrom/md5sum date_start.txt > date_start.md5 /mnt/cdrom/ls –alRu > /mnt/floppy/access_start.txt /mnt/cdrom/md5sum access_start.txt > access_start.md5 /mnt/cdrom/ls –alRc > /mnt/floppy/modification_start.txt /mnt/cdrom/md5sum modification_start.txt > modification_start.md5 /mnt/cdrom/ls –alR > /mnt/floppy/creation_start.txt /mnt/cdrom/md5sum creation_start.txt > creation_start.md5 # PASO 3: ESTADO DEL SISTEMA /mnt/cdrom/pstree –pla > /mnt/floppy/pstree.txt /mnt/cdrom/md5sum pstree.txt > pstree.md5 /mnt/cdrom/ps –Auxw > /mnt/floppy/procesos.txt /mnt/cdrom/md5sum procesos.txt > procesos.md5 /mnt/cdrom/netstat –anp > /mnt/floppy/netstat.txt /mnt/cdrom/md5sum netstat.txt > netstat.md5 /mnt/cdrom/lsof > /mnt/floppy/lsof.txt /mnt/cdrom/md5sum lsof.txt > lsof.md5 /mnt/cdrom/ls /proc > /mnt/floppy/proc.txt /mnt/cdrom/md5sum proc.txt > proc.md5 # PASO 4: QUIEN ESTA EN EL SISTEMA /mnt/cdrom/w > /mnt/floppy/w.txt /mnt/cdrom/md5sum w.txt > w.md5 /mnt/cdrom/ifconfig –a > /mnt/floppy/ifconfig.txt /mnt/cdrom/md5sum ifconfig.txt > ifconfig.md5 /mnt/cdrom/hostname > /mnt/floppy/hostname.txt
125
/mnt/cdrom/md5sum hostname.txt > /mnt/floppy/hostname.md5 /mnt/cdrom/uptime > /mnt/floppy/uptime.txt /mnt/cdrom/md5sum uptime.txt > /mnt/floppy/uptime.md5 # PASO 5: COPIA DE MEMORIA /mnt/cdrom/dd if=/dev/mem of=/dev/fd0/image_memory.txt /mnt/cdrom/md5sum image_memory.txt > image_memory.md5 # PASO 6: REGISTRO DE TIEMPO /mnt/cdrom/date > /mnt/floppy/date_end.txt /mnt/cdrom/md5sum date_end.txt > date_end.md5 /mnt/cdrom/ls –alRu > /mnt/floppy/access_end.txt /mnt/cdrom/md5sum access_end.txt > access_end.md5 /mnt/cdrom/ls –alRc > /mnt/floppy/modification_end.txt /mnt/cdrom/md5sum modification_end.txt > modification_end.md5 /mnt/cdrom/ls –alR > /mnt/floppy/creation_end.txt /mnt/cdrom/md5sum creation_end.txt > creation_end.md5 El script contiene todos y cada uno de los pasos ejecutados, esto también puede ser una referencia
de documentación del proceso.
126
4.5 APLICANDO EL PROCEDIMIENTO DE RECOLECCIÓN: CASO 4
LINUX A TRAVÉS DE RED
Las condiciones bajo las cuales se aplicará la metodología en este caso serán sobre un sistema
vivo, el tipo de acceso que se tendrá al sistema será local y la información se recolectará a través
de la red, el sistema operativo con el que se enfrentará el investigador será Linux Red Hat
Enterprise y se contará con el password de acceso. La siguiente figura muestra el tipo de caso a
tratar.
Estado del
sistema
MUERTO VIVO
CASO 2: Windows
Captura de paquetes
Analizador
CASO 1: Windows
Local Por red Tipo de acceso al sistema
CASO 3: Linux
CASO 4: Linux
CASO 5: Grave_robber Linux
Recuperación de datos con métodos físicos
(ejemplos)
Fig. 4.8 Caso 4: Aplicación de la metodología a través de la red con Linux
El equipo bajo sospecha puede ser un servidor o estación de trabajo conectado a red, por lo que la
información recolectada puede ser enviada a través de la red misma a una estación segura,
complementando la información con un equipo analizador de paquetes conectado a la misma red,
como se observa en la figura 4.9. Equipo comprometido
Linux
Conexión segura
Fig. 4.9 Diagrama de conexión: Caso 4
Monitor de red
o o o o o o o o
Linux
Estación forense
Investigador forense
127
Por lo que en este caso se conectarán dos equipos seguros la estación forense para recopilar
información y el equipo de monitoreo que en forma paralela estará capturando los paquetes que
circulen por la red.
MONITOREO DE RED
Para obtener datos de un sistema vivo, podemos correr un analizador de paquetes de red (network
sniffer) y observar el flujo de información para y desde el equipo comprometido, así, podemos
detectar algún tipo de actividad maliciosa, grabando y analizando en tiempo real su
comunicación.
Para capturar el tráfico del equipo sospechoso configuramos el switch donde esta conectado el
equipo para que envíe una copia del tráfico de ese puerto al puerto donde tenemos colocado
nuestro analizador de red. Para que esto se pueda realizar el switch debe tener disponible en los
puertos la técnica “Port Mirror” para que se pueda realizar esta acción.
El analizador de red que podemos utilizar es Ethereal que viene instalado en la versión de Red
Hat con la que estamos trabajando, a continuación presentamos las ventanas para correr una
captura de paquetes. Toda esta información puede ser guardada a un archivo que puede analizarse
posteriormente:
Fig. 4.10 Pantallas Ethereal
128
Fig. 4.10 Pantallas Ethereal
Una vez mostrada la forma de obtener los datos a través de un equipo de monitoreo podemos
empezar a aplicar los pasos de la metodología planteada:
PASO 1: ESTABLECIENDO UNA CONEXIÓN SEGURA
En este paso primero haremos disponible el conjunto de herramientas confiable, éste se montará
en el sistema comprometido. Por lo que vamos a usar el comando “mount” no confiable de ese
sistema para realizar esta tarea, esperando que sea el único comando no confiable que habremos
de correr.
Para verificar el impacto que el comando “mount” tendrá en el sistema podemos utilizar el
comando “strace” del sistema operativo que nos ayuda a identificar los archivos y directorios que
son modificados al aplicar el comando “mount”: #strace /bin/mount /mnt/cdrom execve("/bin/mount", ["/bin/mount", "/mnt/cdrom"], [/* 32 vars */]) = 0 uname({sys="Linux", node="pegaso", ...}) = 0 brk(0) = 0x8059cc0 open("/etc/ld.so.preloadopen("/etc/ld.so.cache", O_RDONLY) = 3
", O_RDONLY) = -1 ENOENT (No such file or directory)
Concluimos que los archivos que se modifican son: /etc/ld.so.cache /lib/tls/libc.so.6 /usr/lib/locale-archive /etc/fstab /etc/mtab /dev/cdrom /bin/mount Es evidente que este procedimiento debe haberse realizado antes de aplicar la metodología en una
investigación.
Como ya sabemos los archivos que se modificarán al utilizar el comando “mount” no confiable,
procedemos a montar el CDROM con el toolkit creado: (comprometido)# mount –n /mnt/cdrom La opción –n monta sin escribir en el archivo /etc/mtab.
Una vez montado el CD con las herramientas establecemos un shell seguro: (host comprometido) # /mnt/cdrom/./bash (host comprometido) # /mnt/cdrom/PATH=.
PASO 2: REGISTRO DEL TIEMPO
Enviamos información de la fecha y hora del sistema comprometido a la estación forense que
almacenará los datos (en este caso 192.29.69.69) a través de “netcat” por el puerto 2222 como
sigue: (forense) # nc –l –p 2222 > datos_recolectados En el host comprometido aplicamos los comandos, direccionándo la salida a la estación forense: (comprometido)# /mnt/cdrom/statbins/./date | /mnt/cdrom/./nc 192.29.69.69 2222 Para mantener la integridad de la evidencia digital, calculamos el valor “hash” del archivo
recolectado.
130
(forense)# md5sum datos_recolectados > datos_recolectados.md5 Para tomar la hora del sistema utilizamos el mismo comando “date” con la opción “-u”, el
resultado es presentado en el formato UTC (Coordinated Universal Time) (forense) # nc –l –p 2222 > start_time (comprometido)# /mnt/cdrom/statbins/./date –u | /mnt/cdrom/statbins/./nc 172.29.69.69 2222 (forense) # md5sum start_time > start_time.md5 A continuación tomamos una referencia de tiempo de todos los archivos en el sistema (time
stamp) con el comando “mactime” para tener un control de lo que habremos de modificar en la
recolección de información: (forense) # nc –l –p 2222 > mactime.txt (comprometido)# /mnt/cdrom/statbins/./mactime –y –R –d / /mnt/cdrom/statbins/./nc 172.29.69.69 2222 (forense) # md5sum mactime.txt > mactime_txt.md5 También lo podemos hacer con el comando “ls” con sus opciones “c” que muestra modificación
del inodo, “u” del último acceso y sin parámetro la fecha de modificación del estado del archivo
Una vez identificado el proceso sospechoso. Utilizamos la herramienta “pcat” para copiar la
memoria del proceso. (comprometido)#/mnt/cdrom/statbins/./pcat proc_id > mem_proces_ID.txt
PASO 4: QUIEN ESTÁ EN EL SISTEMA
Información de Cache
Primero recolectamos información de la tabla cache por el tiempo de vida de estos datos (que es
muy corto). Recolectamos datos de las tablas de ruteo y arp.
Tabla cache de direcciones MAC: (forense) # nc –l –p 2222 > arp (comprometido) # /mnt/cdrom/statbins/./arp –an | mnt/cdrom/statbins/./nc 172.29.69.69 2222 (forense) # md5sum arp > arp.md5 Tabla cache del ruteo IP del Kernel: (forense) # nc –l –p 2222 > route (comprometido) # /mnt/cdrom/statbins/./route –Cn | /mnt/cdrom/statbins/./nc 172.29.69.69 2222 (forense) # md5sum route > route.md5 C=Operar en el cache de ruteo del Kernel N=Mostrar las direcciones numéricas
Conexiones actuales, pendientes y puertos TCP/UDP abiertos
Recolectamos las conexiones y puertos abierto con el comando “netstat”: (forense) # nc –l –p 2222 > netstat.txt (comprometido) # /mnt/cdrom/statbins/./netstat –an | /mnt/cdrom/statbins/./nc 172.29.69.69 2222 (forense) # md5sum netstat.txt > netstat_txt.md5
También se puede utilizar el comando “cat” en vez de “netstat” con la información de puertos
abiertos que es almacenada en el sistema de archivos proc (Archivos: /proc/net/tcp y
/proc/net/udp). La información de la conexiones activas se encuentra en el archivo
/proc/net/netstat. Todos los datos en estos archivos se presentan en formato hexadecimal, por
ejemplo la dirección 0100007F:0401 en decimal es 127.0.0.1:1025. Las conexiones activas
también pueden ser detectadas por el analizador de tráfico.
133
Para obtener la dirección de red tecleamos lo siguiente: (forense) # nc –l –p 2222 > ifconfig (comprometido)# /mnt/cdrom/statbins/./ifconfig -a | /mnt/cdrom/statbins/./nc 172.29.69.69 2222 (forense) # md5sum ifconfig > ifconfig.md5
PASO 5: IMAGEN DE MEMORIA
Se puede obtener la memoria física copiando directamente el dispositivo /dev/mem como lo
hicimos en el caso anterior, pero también podemos hacerlo a través del archivo kcore. Este
archivo representa la RAM en un sistema operativo Linux, es encontrado en el directorio /proc,
su tamaño es igual al de la memoria física, la ventaja de utilizar kcore es que este archivo tiene
formato ELF, por lo que puede ser depurado fácilmente con la herramienta “gdb”.
Utilizar una computadora remota como en este caso puede ser la mejor manera de salvar datos
con un mínimo de modificación sobre la memoria. (remoto)# nc -l -p 2222 > kcore (comprometido)# /mnt/cdrom/statbins/./dd < /proc/kcore | /mnt/cdrom/statbins/./nc 172.29.69.69 2222 (remoto)# md5sum kcore > kcore.md5
Cuando copiamos todo el sistema de memoria, se copian los datos colocados y los no colocados
(allocated/unallocated) porque el proceso copia la imagen entera de la memoria física.
También se puede utilizar memdump para obtener una imagen de la memoria sin reinicializar el
sistema y puede ser transferido por la red con netcat o ssl: (forense)# nc -l -p 2222 > memdump (comprometido)# /mnt/cdrom/statbins/./memdump | /mnt/cdrom/statbins/./nc 172.29.69.69 2222 (forense)# md5sum memdump > memdump.md5
Sintaxis para ssl: (forense)# memdump | openssl s_client –connect host:port
También podemos copiar la información en la memoria swap. La forma más fácil de copiar este
tipo de memoria es con un “cat” o “dd” al dispositivo de archivos en cuestión. (forense)# /mnt/cdrom/statbins/./swapon –s Filename Type Size Used Priority /dev/hda3 partition 449812 0 -1 (forense)# /mnt/cdrom/statbins/./cat /dev/hda3 >> swap_cap.file
134
PASO 6: 2º. REGISTRO DE TIEMPO
Después de finalizar la recolección de información, nuevamente registramos la hora del sistema. (forense)#nc -l -p 2222 > end_time (comprometido)# /mnt/cdrom/statbins/./date | /mnt/cdrom/statbins/./nc 172.29.69.69 2222 Para tomar un registro de tiempo de todos los archivos utilizamos los comandos “ls” o “mactime”
En este punto podemos desconectar de la energía el equipo comprometido. Recordando que no se
deberá utilizar “shut down” o “init”. Deberemos desconectar el cable directamente de la
alimentación de energía.
PASO 7: DOCUMENTACIÓN
La tabla 4.5 muestra los pasos que se siguieron y los programas que se utilizaron y con esta tabla
podemos a empezar a documentar todas nuestras acciones: Tabla 4.5 Pasos y acciones realizadas: Caso 4 Pasos Acciones Comandos
Linux Información obtenida vía la red
Obtener información de red Detectar tráfico anómalo
ethereal
Información obtenida localmente 1 Estableciendo una conexión
al sistema Montar el conjunto de herramientas Obtener un shell seguro
mount bash
2 Registro de tiempo Obtener el tiempo y fecha del sistema Time stamp de los archivos Time stamp, tiempo de creación de los archivos
date mactime ls
3 Quien esta en el sistema Información de cache Listar las conexiones y puertos abiertos Desplegar direcciones IP y físicas
arp route netstat ifconfig
4 Estado del sistema Listar los procesos activos Listar los módulos cargados
lsof cat /proc/modules
135
Pasos Acciones Comandos Linux
Símbolos exportados por el modulo kernel Nombre del equipo Tiempo que el sistema ha estado levantado
cat /proc/ksyms hostname uptime
Para un solo proceso sospechoso Listar los procesos que corren Lista las conexiones y archivos abiertos Observar el proceso Registrar las llamadas a rutinas (librerías) Copiar el contenido de la memoria del proceso
5 Información de la memoria Obtener una copia de la memoria Obtener una copia de la memoria swap
dd /proc/kcore memdump swapon
6 Registro de tiempo Obtener el tiempo y fecha del sistema Registro de tiempo de todos los archivos
date mactime
7 Documentación Documentar los pasos Nuestro siguiente paso es documentar la información obtenida del sistema comprometido. Esta
información es necesaria para preparar una descripción propia del incidente y realizar una copia
de todo el sistema de archivos. Recordando que todos los resultados tienen que ser enviados a la
estación forense remota. La tabla 4.6 es un resumen de los comandos que conjuntan esa
información:
Tabla 4.6 Documentando: Caso 4
Confiable
Salida del md5sum
Tiempo de inicio
Acción Comando aplicado Archivo generado
SI
NO
9:19:20 Montar el CD
mount –n /mnt/cdrom
X
9:22:23 Abrir un shell
/mnt/cdrom/statbins/./bash X
9:23:24 Tomar la hora del sistema
/mnt/cdrom/statbins/./date -u start_time X 7122f802e1a087a0b31848f70862c0d1
9:24:00 Registros MAC de archivos
/mnt/cdrom/statbins/./mactime –y –R –d /
Mactime X aec67122f802e1a08727bfa628447285
9:24:25 Modificaciones del inodo del archivo
/mnt/cdrom/statbins/./ls –lRc maChange X 89caa702e08cc48301657924f0263cca
9:25:26 Acceso al archivo
/mnt/cdrom/statbins/./ls –lRa mAccesc X cdd5870ee16c460a702e08cc48a70ccc
136
Confiable
Salida del md5sum
Tiempo de inicio
Acción Comando aplicado Archivo generado
SI
NO
9:26:27 Modificaciones del estado del archivo
/mnt/cdrom/statbins/./ls –lRs Modifyac X 301657924f0263c7122f802e1a087ade
9:27:28 Direcciones MAC
/mnt/cdrom/statbins/./arp –an
arp.md5
X 472854960acebf27baec629ba5184cef
9:27:40 Ruteo IP
/mnt/cdrom/statbins/./route –Cn
route.md5
X 85027bfa628492be1743953719ba8146
9:28:00 Conexiones y puertos abiertos
/mnt/cdrom/statbins/./netstat –an
netstat.txt
X 2849174ab4395ca63859b1284629aef9
9:28:17 Dirección de red
/mnt/cdrom/statbins/./ifconfig -a ifconfig X caa702e08cc4802e08cc487122f8 70
9:28:29 Procesos activos
lsof -n -P -l lsof X 702e08cc48a702e08cc487122f870aaf
9:29:18 Módulos cargados
cat /proc/modules
lkms
X 116798d3a85f14acdd5870ee16c4608d
9:30:30 Símbolos del kernel
cat /proc/ksyms ksyms X e08cc48301657924f0263ca702e08cc48
9:31:29 Nombre del equipo
/mnt/cdrom/statbins/./hostname hostname X Cc482e1a087a301657924f0263c22f8e
9:32:22 Tiempo de trabajo del sistema
/mnt/cdrom/statbins/./uptime uptime X Ca89caa702e08cc48a702e022f802e 88
9:33:24 Copia de memoria
/mnt/cdrom/statbins/./dd < /proc/kcore
kcore X C2e1a087a7022f802e2e08cc487122f8
9:33:24 Copia de memoria
/mnt/cdrom/statbins/./memdump memdump X C2e1a087a7022f802e2e08cc487122f8
9:50:33 Registro de hora
/mnt/cdrom/statbins/./date end_time X caa702e08cc48301657924f0222f802e
9:53:00 Registro de tiempo de los archivos
/mnt/cdrom/statbins/./mactime mactime_end
X 08cc41653919ae30581bcf1938284677
137
4.6 RECOLECCIÓN DE INFORMACIÓN CON GRAVE-ROBBER: CASO 5
En este caso vamos a aplicar la herramienta forense “grave-robber” de TCT sobre un sistema
“vivo” a través de un acceso local directo en la consola del equipo sospechoso. La figura 4.11
muestra el tipo de caso a tratar:
Estado del
sistema
MUERTO VIVO
CASO 2: Windows
CASO 1: Windows
Local Por red Tipo de acceso al sistema
CASO 3: Linux
CASO 4: Linux
CASO 5: Grave_robberLinux
Recuperación de datos con métodos físicos
(ejemplos)
Fig. 4.11 Caso 5: Herramientas forenses “grave robber”
Se trabajará bajo las siguientes condiciones:
• El procedimiento se aplicará a un sistema vivo antes de quitar la energía eléctrica.
• Se accederá al sistema a través de la consola del sistema y no a través de la red.
• El investigador forense se conectará al equipo sospechoso estableciendo una conexión
segura en forma local.
• El sistema operativo del equipo comprometido es Linux (Red Hat Enterprise 3.0)
• Se cuenta con el password de acceso.
• La herramienta forense de captura será “grave-robber” que corre desde un floppy y los
archivos generados serán copiados a una memoria USB.
Las herramientas forenses ya traen incluida su metodología a seguir y sus scripts de recopilación
de información como se mencionó en el capitulo 3. Por lo que los pasos 2, 3, 4, 5 y 6 de la
metodología se realizarán en este caso en un solo paso.
138
PASO 1: ESTABLECIMIENTO DE UNA CONEXIÓN SEGURA
El primer paso será montar la herramienta: (comprometido)# mount /dev/fd0 /mnt/floppy Una vez montado el medio con las herramientas establecemos un shell seguro: (comprometido) # /mnt/floppy/./bash (comprometido) # /mnt/floppy/PATH=.
Montamos el medio donde se almacenará la información, puede ser el mismo donde tenemos la
herramienta, pero en nuestro caso utilizaremos un stick de memoria: (comprometido)# mount /dev/sda1 –t vfat /mnt/memstick
Se debe tomar en cuenta que puede que no esté creado el directorio memstick en /mnt
PASOS 2,3,4,5,6: RECOLECCIÓN DE INFORMACIÓN VOLÁTIL DEL SISTEMA
Para una recolección rápida con grave-robber podemos usar las siguientes opciones: (comprometido)# /mnt/cdrom/tct/bin/grave-robber –d /mnt/memstick –lPstv /
Para una recolección mayor con grave-robber podemos usar las siguientes opciones, auque esta
ALAPSI/ITESM 2001 [5] Department of Energy, Computer Forensics Laboratory.”First Responder´s Manual”. [en
línea] . [ref. Marzo 2003]. Disponible en pdf en Internet: <http://www.linuxsecurity.com/resource_files/documentation/firstres.pdf>
[6] Brezinski, D. y Killalea, T. “Guidelines for Evidence Collection and Archiving”. Request
for Comments[en línea]. RFC 3227, categoría: Best Current Practice. Febrero 2002. [ref. Abril 2003]. Disponible en Internet: <http://www.rfc-archive.org/getrfc.php?rfc=3227>
[7] Aquino Luna, Rubén. “Análisis forenses en sistemas Windows/Unix.” Cómputo Académico UNAM. Marzo 2003. [8] Write, Timothy E. “The Field Guide for Investigating Computer Crime: Overview of a
Methodology for the”. Security Focus [en linea]. Mayo 26 2002 [ref. Jul 2003]. Disponible en WWW: <http://www.securityfocus.com/infocus/1245>
[9] International Organization on Computer Evidence. “G8 proposed principles for forensic
evidence”. International Organization on Computer Evidence IOCE [en línea]. 2002. [ref. Ago 2003]. Disponible en pdf en Internet. <http://www.ioce.org/ >
[10] Russinovich, Mark. “Ps Tools”. Sysinternals [en línea]. 2005. [ref. Octubre 2005]. Conjunto de herramientas disponible en Internet:<http://www.sysinternals.com/Utilities/PsTools.html>
[11] Robinson, Matt D. y Morano, Tom. “Linux Kernel Crash Dump”. Sourceforge [en línea].
2000. [ref. Sep 2004]. Disponible en WWW: <http://lkcd.sourceforge.net/> [12] Linux Education. “LKCD Installation and Configuration”. IBM Global Services [en
línea]. 2000.[ref. Sep 2004]. Disponible en pdf en Internet: <http://lkcd.sourceforge.net/doc/lkcd_tutorial.pdf> [13] Winchell, Dave, Moyer, Jeff y Huber, Josh. “Mission Critical Linux”. Mission Critical
Linux [en línea]. Inc. 2000. [ref. Oct 2004]. Disponible en WWW: <http://oss.missioncriticallinux.com/projects/mcore/>
[14] The GNU Project Debugger. “GDB”. The GNU Project Debugger [en línea]. Enero 2002.
[ref Sep 2004]. Disponible en Internet: <http://sources.redhat.com/gdb/> [15] Johnson, Michael K. “Netdump Rationale”. Red Hat, Inc.'s Network Console and Crash
Dump Facility [en línea]. 2002. [ref. Ago 2003]. Disponible en WWW: <http://www.redhat.com/support/wpapers/redhat/netdump/>
[16] Carrier, Brian. “ Sleuth Kit” y “Autopsy Browser”. Sleuthkit.org [en línea]. [ref. Mayo
2005]. Disponible en WWW: <http://www.sleuthkit.org/> [17] Venema, Wietse. “The Coronoer´s Toolkit (TCT). Porcupine.org [en línea]. [ref. Mayo
2005].Disponible en WWW:< http://www.porcupine.org/forensics/tct.html> [18] Venema, Wietse. “Memdump”. Porcupine.org [en línea]. [ref. Mayo 2005].Disponible en
WWW:<http://www.porcupine.org/forensics/memdump-1.0.README> [19] Gutman, Peter. “ Secure Deletion of Data from Magnetic and Solid-State Memory”.
Department of Computer Science, University of Auckland [en linea]. 6o. Simposio de Seguridad USENIX, Julio 1996. [ref. Enero 2005]. Disponible en formato pdf en Internet:
<http://www.cs.auckland.ac.nz/~pgut001/> [20] Gutman, Peter. “ Data Remanence in Semiconductor Devices.”. IBM T.J. Watson
Research Center [en línea].10 Simposio de Seguridad USENIX, Agosto 2001. [ref. Enero 2005]. Disponible en Internet: <http://www.cs.auckland.ac.nz/~pgut001/>
[23] Microsoft. “Windows 2000 Resource Kits”. Microsoft Corporation [en línea]. 2004. [ref. Mayo 2005]. Disponible en WWW: <http://www.microsoft.com/windows2000/techinfo/reskit/default.asp>
[24] Microsoft. “How to configure system failure and recovery options in Windows”.
Microsoft Corporation [en línea]. 2003. [ref. Agosto 2005]. Disponible en WWW: <http://support.microsoft.com/kb/307973>
[25] Microsoft Support. “How to Use Dumpchk.exe to Check a Memory Dump File”.
Microsoft Corporation [en línea]. 2003. [ref. Agosto 2005]. Versión en español Id. del artículo 241215 Disponible en WWW: <http://support.microsoft.com/kb/315271/EN-US/> inglés
<http://support.microsoft.com/default.aspx?scid=kb;es;241215 > español [26] Microsoft. “Debugging Tools for Windows”. Microsoft Corporation [en línea]. 2003.
[ref. Agosto 2005]. Disponible en WWW: <http://www.microsoft.com/whdc/devtools/debugging/default.mspx>
Disponible en WWW: <http://www.sysinternals.com/ntw2k/freeware/pstools.shtml> [28] Nacional Computer Security Center. “A Guide to Understanding Data Remanence in
Automated Information Systems”. Department of Defense Trusted Computer System Evaluation Criteria [en línea]. Rainbow Series. Library No. 5-236,082, version 2, Septiembre 1991. [ref. Febrero 2005]. Disponible en WWW: <http://www.fas.org/irp/nsa/rainbow/tg025-2.htm>
[29] Skorobogatov, Sergei P. “Semi-Invasive Attacks (definition). University of Cambridge
[en línea]. Octubre 2001. [ref. Febrero 2005]. Disponible en WWW: <http://www.cl.cam.ac.uk/~sps32/semi-inv_def.html>
[30] Skorobogatov, Sergei P. “Copy Protection in Modern Microcontrollers”. University of
Cambridge [en línea]. Noviembre 2001. [ref. Febrero 2005]. Disponible en WWW: <http://www.cl.cam.ac.uk/~sps32/mcu_lock.html>
[31] Skorobogatov, Sergei. “Low Temperature Data Remanence in Static RAM”. University of Cambridge Computer Laboratory. Junio 2002. [ref. Febrero 2005]. Disponible en pdf en Internet: < http://www.cl.cam.ac.uk/TechReports/UCAM-CL-TR-536.html>
[32] Skorobogatov, Sergei y Anderson Ross. “Optical Fault Induction Attacks” University of
Cambridge [en línea]. Mayo 2002. [ref. Marzo 2005]. Disponible en WWW: <http://www.ftp.cl.cam.ac.uk/ftp/users/rja14/faultpap3.pdf>
Enero 2003. [ref. Marzo 2005]. Disponible en WWW: <http://www.g3card.com/> [34] Skorobogatov, Sergei y Anderson Ross. “On a New Way to Read Data from Memory”.
University of Cambridge [en línea]. Diciembre 2002. [ref. Marzo 2005]. Disponible en formato pdf en Internet: <http://www.cl.cam.ac.uk/~sps32/>
[35] Chakraborty, Kanad y Mazumder, Pinaki. “Reliability and Fault Tolerance of RAMs”.
Pearson Education, Informit [en línea]. Ejemplo de Capítulo cortesía de Prentice Hall. Octubre 2002. [ref. Abril 2005]. Disponible en WWW: <http://www.informit.com/articles/article.asp?p=29732>
[36] Mandia, Kevin y Prosise, Chris. “Incident Response: Investigating Computer Crime”. Editorial: Osborne/McGraw Hill. 2001.
[37] Wreski, Dave. “Biatchux Booteable CD Forensics Toolkit”. Linux Security.com [en línea] Febrero 2002. [ref. Agosto 2005]. Disponible en Internet: <http://www.linuxsecurity.com/content/view/111308/65/>
línea] 2004.[ref. Septiembre 2005]. Disponible la herramienta y documentación en Internet: <http://fire.dmzs.com/>
[39] Knopper, Klaus. “Knoppix”. Knopper.net [en línea]. [ref. Septiembre 2005]. Disponible la
herramienta y documentación en Internet: < http://www.knoppix.org/> [40] Baca Ernest. Penguin Sleuth Booteable CD”. Linux-Forensics.com [en línea] 2003. [ref.
Septiembre 2005]. Disponible herramienta y documentación en Internet: < http://www.linux-forensics.com/downloads.html>
[41] ASR Data. “Smart Linux”. ASR Data [en línea] 2005. [ref. Septiembre 2005]. Disponible
la herramienta y documentación en Internet: <http://www.asrdata2.com/> [42] Sánchez Franco, Alfredo. “Delitos Informáticos y su prueba - Algunas Consideraciones
sobre la Ley Penal Mexicana, con base en la Legislación Penal Internacional”. Delitos Informáticos [en línea]. Enero 2004. [ref Octubre 2005]. Disponible en WWW: <http://www.delitosinformaticos.com/delitos/ensayomexico.shtml>
[43] Semiconfareast.com. “Microprobing”. Semiconfareast.com [en línea]. [ref. Octubre 2005]. Disponible en Internet: http://www.semiconfareast.com/microprobing.htm
[44] Gómez, Roberto. “Mejores Prácticas para confiscar evidencia electrónica”. [ref. Mayo
2006].Apuntes de la MCC ITESM Campus Estado de México. [45] Peikaru, Cyrus y Chuvakin, Antón. “Security Warrior”. Editorial: O´Reilly&Associates.
ARTICULO 211 bis 1.- Al que sin autorización modifique, destruya o provoque pérdida de
información contenida en sistemas o equipos de informática protegidos por algún mecanismo de
seguridad, se le impondrán de seis meses a dos años de prisión y de cien a trescientos días multa.
Al que sin autorización conozca o copie información contenida en sistemas o equipos de
informática protegidos por algún mecanismo de seguridad, se le impondrán de tres meses a un
año de prisión y de cincuenta a ciento cincuenta días de multa.
ARTICULO 211 bis 2.- Al que sin autorización modifique, destruya o provoque pérdida de
información contenida en sistemas o equipos de informática del Estado, protegidos por algún
mecanismo de seguridad, se le impondrán de uno a cuatro años de prisión y de doscientos a
seiscientos días multa. Al que sin autorización conozca o copie información contenida en
sistemas o equipos de informática del Estado, protegidos por algún mecanismo de seguridad, se
le impondrán de seis meses a dos años de prisión y de cien a trescientos días de multa.
ARTICULO 211 bis 3.- Al que estando autorizado para acceder a sistemas y equipos de
informática del Estado, indebidamente modifique, destruya o provoque pérdida de información
que contengan, se le impondrán de dos a ocho años de prisión y de trescientos a novecientos días
de multa.
Al que estando autorizado para acceder a sistemas y equipos de informática del Estado,
indebidamente copie información que contengan, se le impondrán de uno a cuatro años de prisión
y de ciento cincuenta a cuatrocientos cincuenta días de multa.
ARTICULO 211 bis 4.- Al que sin autorización modifique, destruya o provoque pérdida de
información contenida en sistemas o equipos de informática de las instituciones que integran el
167
sistema financiero, protegidos por algún mecanismo de seguridad, se le impondrán de seis meses
a cuatro años de prisión y de cien a seiscientos días de multa.
Al que sin autorización conozca o copie información contenida en sistemas o equipos de
informática de las instituciones que integran el sistema financiero, protegidos por algún
mecanismo de seguridad, se le impondrán de tres meses a dos años de prisión y de cincuenta a
trescientos días de multa.
ARTICULO 211 bis 5.- Al que estando autorizado para acceder a sistemas y equipos de
informática de las instituciones que integran el sistema financiero, indebidamente modifique,
destruya o provoque pérdida de información que contengan, se le impondrán de seis meses a
cuatro años de prisión y de cien a seiscientos días multa.
Al que estando autorizado para acceder a sistemas y equipos de informática de las instituciones
que integran el sistema financiero, indebidamente copie información que contengan, se le
impondrán de tres meses a dos años de prisión y de cincuenta a trescientos días multa. Las penas
previstas en este artículo se incrementarán en una mitad cuando las conductas sean cometidas por
funcionarios o empleados de las instituciones que integran el sistema financiero.
ARTICULO 211 bis 6.- Para los efectos de los artículos 211 bis 4 y 211 bis 5 anteriores, se
entiende por instituciones que integran el sistema financiero, las señaladas en el artículo 400 bis
de este Código.
ARTICULO 211 bis 7.- Las penas previstas en este capítulo se aumentarán hasta en una mitad
cuando la información obtenida se utilice en provecho propio o ajeno [42].
168
ANEXO B
MICROPRUEBAS
Micropruebas (microprobing) o simplemente probing, es una técnica de análisis de fallas
utilizada para realizar contactos eléctricos o acceso a un punto en un circuito activo o muerto.
Emplea una pieza especial de equipo conocido como estación de microprueba, algunos ejemplos
se muestran en la siguiente figura:
Durante al análisis de circuitos en una micropruena, el analista emplea el mismo proceso de
análisis que en una falla de un circuito de gran tamaño. La microprueba es solo una herramienta
para que el analista acceda a nodos críticos o circuitos microscópicos mientras analiza el
comportamiento de varias partes del circuito.
169
Las mediciones de corriente y voltaje son realizadas por instrumentos de medición eléctricos
implementadas en el probador y manejadas a través de micromanipuladores, como los mostrados
abajo:
Instrumentos comunes son voltímetros, osciloscopios, fuentes de voltaje, generadores de onda. La
glassivation (deposición al final de la capa de pasivación, que protege de daños mecánicos y
corrosión) en la cubierta de un CI es removida por un grabado de iones reactivos (reactive ion
etching) antes de la prueba.
Las micropruebas también requieren de un diagrama esquemático del dispositivo para ser
efectivo y eficiente. El análisis necesita estos diagramas par apuntar inmediatamente a nodos
críticos para la prueba y aislamiento de la falla. Pero aún que el analista no esté familiarizado
con el funcionamiento del circuito y no tenga los diagramas, se puede llevar a cabo el análisis
correlacionando lo que es conocido y comparando voltajes y señales. La coordinación de ojos y
manos, así como la experiencia se necesitan para localizar un área de interés, elegir un punto de
prueba y ejercer la presión correcta par un buen contacto eléctrico [43].
170
ANEXO C
GLOSARIO Archivo de símbolos (Symbol File) Un archivo de símbolos contiene información de depuración similar a la que provee un archivo ejecutable, sin embargo, esta información es almacenada en un archivo debug (.dbg) o una base de datos de programas (program database - .pdb), mas que un ejecutable. Apología Discurso en el que se alaba o defiende a una persona o a una causa. BIOS (Basic Input/Output System) Es una memoria flash colocada en la mayoría de las computadoras donde se almacena los programas de entradas y salidas del sistema (BIOS). El BIOS asegura que todos los otros chips, discos duros, puertos y CPU funcionen juntos. Built in Self Test y algoritmos de prueba Es una técnica de diseño de hardware y software en circuitos integrados, que permiten la realización de auto pruebas. Checksum Es una forma simple de medición que protege la integridad de los datos detectando errores. Trabaja añadiendo un componente al mensaje y almacenando el valor resultante en el mensaje. Cluster de disco Es un grupo de sectores de disco. CMOS (Complimentary Metal Oxide Semiconductor) Tipo de material usado en la construcción de un chip. CRC (Cyclic Redundance check) Es un tipo de función hash usado para producir un checksum.
171
CYGWIN Es una colección de herramientas de software libre, que permite a varias versiones de Microsoft Windows actuar como un sistema UNIX. Deep Submicron Fabrication Technologies Esta tecnología habilita la creación de circuitos con decenas de millones de transistores. Las tecnologías de fabricación deep-submicron permiten a los ingenieros de diseño poner un número impresionante de componentes como microprocesadores, memorias e interfaces en un simple microchip. Depurar (debugging) Es un proceso metódico para encontrar y reducir el número de “bugs” o defectos de un programa o hardware electrónico. DFT (Design for Test) DFT (también referida como “structured test”) agrega transistores adicionales a la circuitería de un chip para hacer más fácil las pruebas sobre éstos. Utilizar una metodología DFT agrega trabajo y tiempo adicional al proceso del diseño, pero también puede eliminar tiempo significante en el programa de pruebas. Dieléctrico Sustancia aislante en la cual puede existir un campo eléctrico en estado estacionario. Esta sustancia tiene como principales características eléctricas su permitividad y su poder de aislamiento Dopante Elemento introducido en un semiconductor para establecer conductividad tipo p o n; comúnmente los dopantes de Si son para el tipo p Boro (B) y para tipo n Fósforo (P), Arsénico (As) y Antimonio (Sb). Eddy Current Non-Destructive Testing (Prueba NDT) La corriente de remolino (eddy) es creada a través de un proceso llamado inducción electromagnética. Cuando corriente alterna es aplicada a un conductor (alambre de cobre) un campo magnético es desarrollado alrededor del conductor, este campo magnético se expande cuando la corriente aumenta, si otro conductor eléctrico es acercado al campo se inducirá una corriente por el segundo conductor. La corriente de remolino es corriente eléctrica inducida que fluye en una trayectoria circular o de remolino. ELF (Executable and Linking Format) ELF (Executable and Linking Format) define el formato binario de default en los SO para Linux, Solaris y SVR. EOS- Electrical Overstress (Sobre-estrés electrica) Se refiere a la destrucción de circuitos debido a voltaje, corriente o potencia excesiva. ESD- Electrostatic Discharge (Descargas electrostáticas) Es un caso especial de EOS. Es una transferencia de carga electrostática entre dos objetos.
172
Excepciones Una excepción es una herramienta de programación útil para el manejo de errores. Cuando se encuentra un error (un caso excepcional), simplemente se manda una excepción. Las excepciones proveen una forma conveniente de manejar condiciones anormales. File descriptor Es un entero no asignado usado por un proceso para identificar un archivo abierto. Dos mil descriptores de archivos son disponibles por cada proceso. Las subrutinas “open, pipe, create y fcntl” generan descriptores de archivos. Los descriptores de archivos son generalmente únicos por cada proceso, pero pueden ser compartidos por sus procesos hijos creados con una subrutina “fork” .Los descriptores de archivos son indexados a una tabla de descriptores de archivos en un área mantenida por el kernel para cada proceso. Firmware Software (programas o datos) que han sido escritos para memorias de solo lectura (ROM). El firmware es una combinación de software y hardware. ROMs, PROMs y EPROMs que tienen datos o programas grabados son firmware. FireWIre (IEEE 1394) Estándar de bus externo que soporta velocidades de transmisión arriba de 400Mbps (1394a) y 800Mbps (1394b) Floating gate (en la memoria FLASH) Área central de almacenamiento de una celda de memoria FLASH, que es de 80 por 160 nanómetros. GDB (GNU Debugger) Es el depurador estándar de GNU. GNU (“GNU´s Not Unix”) Proyecto que involucra el desarrollo de software libre, permitiendo a los usuarios copiar modificar o redistribuir código. Hash (Función hash) Es una función (subrutina o secuencia de código que realiza tareas específicas) que convierte una entrada de gran rango en una salida de pequeño rango (valor hash). IDE/ATA (Integrated Drive Electronics/AT Attachment) IDE es una interfaz usada para controlar los discos duros, también es conocida con otra variedad de nombres como ATA, ATA/ATAPI, EIDE,ATA-2, Fast ATA, ATA-3, Ultra ATA, Ultra DMA, etc. Ionización La ionización es un mecanismo mediante el cual un electrón puede absorber suficiente energía para desprenderse de la estructura atómica y unirse a portadores libres en la banda de conducción. Interferómetro láser Aparato de medición de precisión sobre superficies planas hechas de cristal, metal y cerámica.
173
Kernel El módulo central del sistema operativo Latch Registro de instrucciones o registro de direcciones. Latch up es definido como la creación de una trayectoria de baja impedancia entre la energía de alimentación y la circuitería de salida. Es un caso especial de sobre-estrés eléctrico. Lógica Transistor-Transistor (TTL) El circuito básico de la compuerta TTL consiste de un transistor multiemisor de entrada y un transistor de salida. LKM (Loadable Kernel Module) El LKM permite al administrador del sistema agregar o remover funcionalidad a un sistema corriendo. Esta habilidad ayuda a los desarrolladores a crear nuevas partes del kernel sin tener que rebotear la máquina constantemente para probar los cambios. Malware (Malicious Software) Software diseñado para dañar o destruir un sistema, este puede ser un virus o un caballo de Troya. MD5 (Message Digest Algorithm 5) Es una función hash criptográfica que utiliza un valor hash de 128. MD5 ha sido utilizado en una amplia variedad de aplicaciones de seguridad y es referido al estándar de Internet RFC1321. Memory Stick Es un medio diseñado para grabar, compartir e intercambiar información digital, como fotografías, datos de computadora, música, imágenes, etc. Memoria RAM tipos La memoria RAM (Random Access Memory) es una forma de almacenamiento electrónico con la característica de ser rápida y temporal. Se clasifica en memorias RAM estáticas (SRAM, Static Random Access Memory) y memorias RAM dinámicas (Dynamic Random Access Memory) Memoria ROM Read Only Memory. Memoria de solo lectura MOSFET Tipo de transistor que compone una celda DRAM en serie con un capacitor, también es referido como transistor array-acces o dispositivo de transferencia. Object File u Object Code Es una representación intermedia de código generada por el compilador después de que procesa su código fuente. Un formato de archivo objeto es un formato usado para almacenar el código objeto y sus datos relacionados típicamente producidos por el compilador o ensamblador.
174
PDA (Personal Digital Assistant) Dispositivo móvil que combina organización y tecnologías de conectividad en un pequeño paquete. Se puede enviar correo, faxes o hacer llamadas telefónicas, contiene un software organizador para contactos y agenda. Portable Executable El formato PE es un formato de archivo ejecutable utilizado en versiones de Windows32 y 64. El termino “portable” se refiere a la portabilidad del formato a través de 32 bits. PE es una versión modificada del formato de archivos de Unix COFF. Port Mirroring También conocido como “Roving Analysis Port”, es un método para monitorear tráfico de red que envía una copia de cada entrada o salida de paquetes de un puerto de un switch a otro puerto, donde el paquete puede ser estudiado. Es una herramienta de diagnóstico. Pruebas funcionales Es el proceso que aplica vectores de un patrón a un dispositivo y verifica la salida para determinar si el dispositivo está operando acorde a su tabla de verdad (Pruebas paramétricas). También puedes ser el proceso de probar un dispositivo para identificar su habilidad en la realización de sus funciones (ejemplos: lectura/escritura de pruebas de memoria, pruebas de conversión analógico digital, etc.) Prueba paramétrica Es el proceso de probar un dispositivo con respecto a sus especificaciones para medidas con características eléctricas como lo es voltaje o corriente. Rootkit Herramientas normalmente en software que se utilizan para comprometer un sistema de cómputo “sin detectarse”. Un programa para “hackear” root. SCSI (Small Computer System Interface) Es un bus de alta velocidad (arriba de 160 Mbps) para conectar componentes en estaciones de trabajo y equipos de cómputo, entre los componentes se encuentras: discos duros, escaner, CD-ROM, impresoras, etc. Señales Las señales son usadas para notificar un proceso o hilo de un evento particular. Las señales se describen como una interrupción de software. Cuando una señal es enviada a un proceso o hilo, un manejador de señal entra en funcionamiento de manera similar al trabajo desarrollado por un manejador de interrupciones en cuestión de hardware. SHA (Secure Hash Algorithm). Es un conjunto de funciones cirptográficas hash. La más común es SHA-1, que es empleada en una gran variedad de aplicaciones de seguridad y protocolos incluyendo IPSec, PGP y SSH. SHA-1 es considerado a ser el sucesor de MD5. Slack space Espacio no usado en un disco o cluster de discos.
175
.sig archivos Es un bloque corto de texto al final de un mensaje identificando el emisor del mensaje y provee información adicional acerca de él. Símbolos en Windows Un símbolo es un nombre que representa un registro o un valor absoluto o una dirección de memoria absoluta o relativa. Los símbolos son generados por el compilador, explican la relación entre el código fuente y objeto. Los módulos y símbolos de Windows proveen información diferente dependiendo del depurador que esté corriendo. Los símbolos obtienen las direcciones hexadecimales del procedimiento. Un símbolo se asigna cuando se crea un objeto de un recurso en la programación de Windows. Sistema de Archivos (File System) Es un método para almacenar y organizar los archivos y datos para acceder a ellos y encontrarlos fácilmente. Tipos de sistemas de archivos pueden ser de disco, red o base de datos. Sistema de Archivos de disco Almacena los archivos y datos por un controlador de disco, que puede estar conectado directa o indirectamente a la computadora. Algunos ejemplos son: FAT (File Allocation Table) Desarrollado por MS-DOS para consumidores de Windows Microsoft. NTFS (New Technology File System) Es un sistemas de archivos estándar para WinNT, 2000 y sus descendientes Ext2 (Second Extended File System) Fué un sistema de archivos estándar utilizado en SO Linux ISO 9660 Define un sistema de archivos para CDROM ODS-5 o Files 11 (On-Disk Structure) Es el sistema de archivos utilizado por Hewlett Packard para el SO OpenVMS. UDF (Universal Disk Format) Es una especificación de formatos para almacenar archivos en medios regrabables. UFS (Unix File System) Es un Sistema de archivos utilizado por Unix. CDFS (Compact Disc Files System) ReiserFS Sistema de archivos de propósito general. Actualmente soportado por Linux. Sistema de Archivos de red También conocido como sistema de archivos distribuidos, es un sistema de archivos donde los archivos son accedidos mediante la red, con la finalidad de estar compartidos por varias computadoras. Ejemplos son: NFS (Network File System) Comparte archivos sobre la red en base a UDP CIFS (Common Internet Files System) Versión de Microsoft del SMB (Server Message Block) que es un protocolo de red para compartir archivos, impresoras y puertos seriales en la red. Lustre Es un sistema de archivos Open Source, generalmente utilizado por clusters. Global File System Sistema de archivos para clusters. Sistema de Archivos de bases de datos Es un nuevo concepto de administración de archivos en base a archivos de bases de datos. En lugar de utilizar una estructura jerárquica, los archivos son identificados por sus características como tipo de archivo, tópico, autor, etc. Ejemplos son: Gnomo Storage y WInFS.
176
State-of-the-art El nivel de desarrollo (de un dispositivo, procedimiento, proceso, técnica o ciencia) alcanzada a una fecha en particular frecuentemente como resultado de métodos modernos. Temperatura Tjunction Temperatura de empalme PN o límite de transición entre materiales tipo P y tipo N en un dispositivo semiconductor. Time stamp Prueba inequívoca de que el contenido de tu trabajo existió en un punto en el tiempo y que el contenido ha tenido cambio desde esa fecha. Transconductancia Es una expresión del rendimiento de un transistor bipolar o un FET (field effect transistor). En general, la transconductancia se mide por la capacidad de ganancia (amplificación) que el dispositivo es capaz de generar, cuando todos los demás factores permanecen constantes. USB (Universal Serial Bus) Bus externo que soporta velocidades de 12 Mbps. Permite conectar diversos periféricos y sustituye el bus serial y paralelo. USB2 soporta velocidades de 480Mbps. VLSI (Very Large Scale Integration) Término que describe circuitos integrados compuestos de cientos de elementos lógicos o celdas de memoria.