Sie sind auf Seite 1von 21

title: Clase 4

Author: Einar Lanfranco, Damian Rubio


description: Tratamiento y resultados desde la Evidencia Digital usando software libre
keywords: Forensia
css: forensia.css

data-rotate: 270
class: destacado

Recordando:
La semana pasada vimos:

• Etapas del proceso forense:

• 1- Recolección/Adquisición
• 2- Examinación.
• 3- Análisis.
• 4- Reporte.
• Valoración de la evidencia
• Duplicadores por hard y soft offline

Imágenes en vivo
• Los anteriores son mecanismos para utilizados para obtener información de discos que están fuera
de línea, es decir que no están formando parte de ningún equipo que este funcional.
• Pero apagar y/o desconectar los equipos fuentes no siempre es posible, ya sea por razones
técnicas o del negocio.
• El tema de obtener las imágenes en vivo es que no siempre se puede preveer el escenario que el
investigador se encuentra al llegar, pero debe estar preparado para todo.

Motivos del negocio


• Servidores en producción: si no es una medida judicial será muy complicado convencer al dueño
de un servidor productivo que permita apagarlo.
• Incidentes grandes: apagar decenas o cientos de máquinas y generar las imágenes en forma
offline puede llevar mucho tiempo y requerir muchísimo trabajo
• Distribución y remoto: En el mundo de hoy las compañías están distribuidas en muchas ciudades,
países y continentes. En estos casos el que responda debe ser capaz de hacer un una evaluación
remota.
• Encipttación: El sistema está encriptado y no tenemos acceso a la key para desencriptar.
Razones técnicas
• RAID

• Dependiendo de la configuración a veces luego se torna irreconstruible en el laboratorio


• El que es por hardware es el peor
• Cifrado

• No todas las suites de cifrado son soportadas por las herramientas de forensia
• Si apagamos un disco y se cierre el volumen cifrado, tal vez nunca recuperemos la clave
para acceder a la información y el brute forcing puede ser muys costoso o incluso
imposible
• Ver incidente FBI - Apple
• La nube

• A veces sencillamente no se puede acceder a apagar el hardware, supongase un storage


comprado en otro país.

Vivo versus mortem


• Es importante señalar que en una adquisición en vivo no es posible evitar cambios en el sistema.
• Conectar un USB, conectarse por red, inicio de sesión o la ejecución de alguna herramienta
modifican archivos de logs, registros, mac, etc.
• Por lo tanto se deben tener en cuenta estos cambios y documentar debidamente.

Live en Windows

• Hay varias herramientas, el investigador tiene que probar y encontrar la que mejor le ajuste.
• Entre las más renombradas:

• dd para Windows
• FTK imager

dd para Windows
• Es un port para Windows de la herramienta de Linux que vimos
• Se puede correr modificando el parmetro if con if=\.PhysicalDrive0 para copiar el primer disco del
equipo
• A diferencia de dd será dd.exe el ejecutable a invocar
• Nota: Tiene que ejecutarse como administrador
FTK imager
• Aplicación desarrollada por la compañía AccesData, pero de uso gratuito.
• Viene con GUI para el usuario
• Puede generar imágenes a dispositivos externos o a shares de la red.
• Se integra con writeblocker
• Tiene una variedad de salidas: en crudo/raw (como dd), Encase o AFF.
• Link: FTK

Imágenes inteligentes:

• Hay un conjunto de técnicas que agregan inteligencia al proceso.

• Compressed storage: consiste en comprimir la imagen que se guarda, reduciendo


tiempos de transferencia
• Deduplication: se aplica deduplicación sobre los datos cuando se guardan en la imagen,
esto es no escribir más de una vez el mismo bloque si se repite, sino que se escribe una
vez y luego en donde se repita se referencia.
• Selective imaging: consiste en no copiar toda la información, sino solo lo que se
considera necesario.
• Decryption while imaging: los datos encriptados son lo peor que podemos encontrar
para comprimirlos, como alternativa se busca desencriptar para luego comprimir y recién
allí volver a encriptar.

Imágenes forenses de memoria


• Cuando se recolectan datos de un equipo comprometido hay que considerar apuntar a la
información más volátil primero. Es decir que que la información que tiene mayores chances de
perderse o dañarse por motivos normales del funcionamiento sin intervención del investigador es a
la que debería apuntarse
• Con esa premisa diríamos que los registros de la CPU serían los de mayor prioridad, aunque en la
práctica esto no suele ser recolectado
• Lo que sí suele ocurrir es que se recolecte la memoria y es mejor hacerlo lo antes posible, antes de
que algún proceso la cambie.
• IMPORTANTE: los procesos de recolección de este tipo que se hacen contra el equipo vivo pueden
ocasionar eventualmente que se caiga el sistema objetivo.

Recolectando memoria
• No sólo el dump completo de la memoria
• Es interesante recolectar:

• Fecha y hora del sistema operativo


• Lista de procesos en ejecución
• Lista drivers y módulos cargados
• Lista de los módulos cargados por cada proceso
• Lista de sockets abiertos y conexiones de red activas por proceso
• Configuración de la red
• Lista de archivos y registros validados por proceso
• Lista de usuarios autenticados

Note

• Fecha y hora del sistema operativo para luego compararlo con el real
• Lista de procesos en ejecución: sirve para identificar luego los procesos no autorizados o
maliciosos que pudieran estar ejecutándose en el sistema
• Lista drivers y módulos cargados: sirve para identificar luego los procesos no autorizados o
maliciosos que pudieran haberse cargado como un driver o módulo por un proceso no válido
• Lista de los módulos cargados por cada proceso: sirve para identificar luego los procesos no
autorizados o maliciosos que pudieran haberse cargado como un driver o módulo por un
proceso valido
• Lista de sockets abiertos y conexiones de red activas por proceso: para saber si hay
conexiones o sockets no autorizados
• Configuración de la red: para entender comportamientos erroneos y para identificar el rol que
juega el equipo en la red
• Lista de archivos y registros validados por proceso: para saber con que esta conectado un
arvhivo malicioso
• Lista de usuarios autenticados: para saber si hay alguna autenticacion no autorizada en el
sistema

Ejemplo de procedimiento
• Inicialmente se toman notas y fotografías del estado del equipo como se mencionó
• Hay que autenticarse en la consola usando un usuario con privilegios de administrador que serán
necesarios para ejecutar algunos comandos.
• Una vez autenticado hay que verificar que no haya un proceso destructivo obvio
• Utilizando un toolkit de herramientas "limpias" preparadas de manera que realizen la menor cantidad
de llamadas a las librerías del sistema posibles, por ejemplo un CD.
• Ejecutar una consola limpia desde el toolkit
• Cambiar los paths por defecto para que las llamadas entre librerías se hagan al CD
Ejemplo de procedimiento 2
• Insertar un medio (por ejemplo un USB) donde se va a "dumpear la memoria"
• Tomar la hora del sistema y compararla con una fuente confiable anotando cualquier diferencia.
• Ejecutar el script que:

• Ejecute el comando que colecte la memoria y escriba el dump en el USB


• Ejecutar una serie de pasos que recolecten información importante, incluyendo lo descrito
en "Recolectando memoria"
• Crear el hash de comprobacion de cada salida
• Cerrar el soft limpio, ejectar los medios y documentar fecha y hora de fin

Memoria en Linux

• En Linux una de las mejores herramientas para adquirir la memoria es LiME


• Linux Memory Extractor - https://github.com/504ensicsLabs/LiME/archive/master.zip
• Funciona como un LKM (Loadable Kernel Module)
• Es poco intrusiva
• Funciona en Linux y en Android

Lime: Bajando y compilando


#Bajando el source del soft
root@kali:~# wget https://github.com/504ensicsLabs/LiME/archive/master.zip
“master.zip” guardado [21008]

# Descomprimiendo
root@kali:~#unzip master.zip

#En Kali vamos a necesitar instalar los headers


root@kali:~# apt-get install linux-headers-$(uname -r)

Lime: Bajando y compilando


# Compilando root@kali:~# cd LiME-master/src root@kali:~/LiME-master/src# make mv lime.ko
lime-4.0.0-kali1-amd64.ko
#Lo copiamos al pendrive root@kali:~/LiME-master/src# cp lime-4.0.0-kali1-amd64.ko /usb/lime.ko
Recolentando
#Verifico cuanta memoria tiene la máquina
root@kali:~# free -m
total used free shared buffers cached
Mem: 3957 3824 132 3 9 2687

#Y ahora si hago el dump levantando el kernel


root@kali:~#insmod /usb/lime.ko "path=/usb/mem_kali.bin format=lime"

#Comprobando lo generado
root@kali:~# ls -lah /usb/mem_kali.bin
-rw-r--r-- 1 root root 4,0G ago 16 15:31 /usb/mem_kali.bin

Memoria en Windows

• Hay varias herramientas, algunas tienen limitaciones, por ejemplo por el tamaño de la memoria o
por el sistema operativo que se está corriendo.
• En la mayoría de los casos las licencias no son completamente libres sino que son freeware con
licencias pagas para la versión Pro.
• Ejemplos:

• DumpIt (http://www.moonsols.com/wp-content/uploads/downloads/2011/07/DumpIt.zip)
• Memorize https://www.fireeye.com/services/freeware/memoryze.html
• Belkasoft Live RAM Capturer http://belkasoft.com/
• WinPmem de Rekall Forensic Framework - http://www.rekall-forensic.com/
• FTK Imager

Belkasoft Live RAM Capturer

• Es una herramienta pequeña y poderosa para Windows XP, Windows 7, Windows 8, Windows
2003, Windows 2008, y otros.
• Hay versiones de 32 y 64 bits libres para bajar desde http://belkasoft.com/en/ram/download.asp
DumpIt
• Presenta menos opciones, para utilizar de línea de comando
• Sirve para generar physical memory dump de máquinas Windows.
• Funciona en x86 (32-bits) y en x64 (64-bits).
• Aunque funciona mejor hasta 4G.
• El dump se generará en el mismo directorio donde esta el ejecutable

Memorize
• Es instalable, pero se puede generar el portable tanto para 32 y 64bits: msiexec /a
MemoryzeSetup.msi /qb TARGETDIR=e:
• Es una herramienta más completa, tiene más funciones que sólo adquirir la imagen, viene
con una serie de bat ya creados:

• MemoryDD.bat genera una imagen raw de la memoria


• ProcessDD.bat una imagen del espacio de proceso
• DriverDD.bat una imagen de un driver
• Process.bat para enumerar todo de un proceso incluyendo handles, virtual memory,
network ports y strings.
• HookDetection.bat para buscar hooks contra el sistema operativo
• DriverSearch.bat busca drivers.
• DriverWalkList.bat para enumerar todos los modulos y drivers en una lista enlazada.

Memorize
• Nota: Recordar que requiere ser ejecutado como administrador

Rekall
• Rekall es un framework de Análisis de memoria.
• Contiene herramientas que cubren todo el ciclo, desde la adquisición hasta la extracción de
artefactos y el análisis.
• Es software libre
• Puede tomar imágenes por lo menos de:

• Microsoft Windows XP, 7, 8 and 8.1


• Linux Kernels 2.6.24 to 3.10.
• OSX 10.7-10.10.x.
• En lo que respecta a esta unidad la utilidad a analizar sería WinPmem que viene incluída dentro de
las tools
• Ver http://www.rekall-forensic.com/
WinPmem

FTK Imager
• DEMO con una virtual en Windows y el soft!

Virtual Machine Imaging


• Hay muchos tipos de sistemas de virtualización, como ser xen, qemu o vmware.
• Si la imagen que queremos tomar es de una de estas vms hay 2 tipos de métodos que suelen
utilizarse:

• El método común es pausar/suspender/parar la vm y llevarse el archivo que utiliza la vm


para la imagen de la memoria.
• Para evitar tener que apagar la VM suele ocurrir que dependiendo del sistema haya una
utilidad para dumpear la memoria en vivo, por ejemplo Qemu tiene pmemsave y Xen xm
dump-core .

Demo Virtualbox
• Capturando:

• vboxmanage debugvm "forensia" dumpvmcore --filename /tmp/test.elf


• Chequeando:

• objdump -h /tmp/test.elf
• Extrayendo la parte que nos interesa:

• size=0x30000000;off=0x2528; head -c $(($size+$off)) /tmp/test.elf|tail -c +$(($off+1)) >


/tmp/test.raw

Demo Virtualbox

Recolectando datos de red


• Tcpdump:

• La mas conocida, captura, filtra y analiza trafico de red.


• Depende del poder de la CPU al capturar paquetes, por lo que un trafico intenso puede
sobrecargar la CPU y se perderán paquetes, que se irán al cielo de los paquetes.

Recolectando datos de red


• Wireshark:
• Gráfica y fácil de usar
• Tiene varias utilidades para filtrar, desencriptar (siempre que se tenga las claves, no es
mágica) y analizar tráfico de red.
• También es útil para cualquier análisis de red.
• Además, hay algunos comandos útiles que son distribuidos en conjunto con Wireshark.

Recolectando datos de red

• Tshark: version CLI de Wireshark

Recolectando datos de red


• Dumpcap:

• Dedicada a capturar paquetes


• Optimizada para una buena performance

Veamos un ejemplo de un pcap con un IRC dentro

Más allá de las computadoras


• Hay muchos dispositivos electrónicos que pueden tener un montón de evidencia que colabore a la
investigación.
• Excepto en casos de emergencia estos dispositivos no deberían operarse y no se debería acceder
de manera directa a la información que contienen
• Si se acceden estos dispositivos todas las acciones que se lleven adelante deben quedar
documentados.
• La información que contienen puede perderse o corromperse si no se trata adecuadamente

Muchos dispositivos
• Hay infinidad de dispositivos como los mencionados en la Unidad anterior, los nuevos que
van apareciendo día a día y muchos que van dejando de usarse, por ejemplo:

• Audio recorders.
• GPS accessories.
• Answering machines.
• Computer chips.
• Pagers.
• Cordless landline telephones.
• Copy machines.
• Cellular telephones.
• Hard drive duplicators.
• Facsimile (fax) machines.

Y Más

• Printers.
• Multifunction machines (printer, scanner, copier, and fax).
• Wireless access points.
• Laptop power supplies and accessories.
• Smart cards.
• Videocassette recorders (VCRs).
• Scanners.
• Telephone caller ID units.
• Personal Computer Memory Card International Association (PCMCIA) cards.
• PDAs.

Precauciones a tener en cuenta

• Este tipo de dispositivos muchas veces requieren ser manipulados por especialistas ya que cada
uno de ellos tiene sus particularidades
• Cuando se colectan estos equipos es importante rescatar también todos los cables y fuentes de
alimentación, y en general todos los cables, adaptadores y manuales que se encuentren.

Otras formas de evidencia


• No todo lo que servirá en la pericia se encuentra en las computadoras y/o periféricos.
• Es importante buscar material relacionado, como ser: pedazos de papel con passwords, notas
manuales, impresiones, manuales hardware y/o software, calendarios, literatura, en general
cualquier cosa que pueda servir a posterior.
• Toda esa evidencia también debe ser resguardada según las normas que apliquen.

class: destacado

Verificación de la evidencia
• Una vez realizada la copia debemos verificar que el origen y el destino sean idénticos.
• Para ello utilizaremos una función de resumen o hash
• Este comprobación nos garantiza integridad de los datos
Según wikipedia: "Una función hash H es una función computable mediante un algoritmo, que tiene como
entrada un conjunto de elementos, que suelen ser cadenas, y los convierte (mapea) en un rango de
salida finito, normalmente cadenas de longitud fija."

Funciones de Resumen

Tipos de Hash
• Las funciones más comunes en forensia son:
• MD5
• SHA1
• Se recomienda además de estas comenzar a utilizar algunas más fuertes, ya que estas dos se
consideran débiles actualmente

• SHA256 o MD6 son opciones


• Adicionalmente se recomienda firmar el resumen con la clave privada del investigador para evitar
que la misma sea sustituida

Verificación - MD5
$ md5sum Lihuen-Lxde-2016.iso
f893fa5f454ad3bda5066c647fd49556 Lihuen-Lxde-2016.iso

Verificación - SHA1
$ sha1sum Lihuen-Lxde-2016.iso
bfc6dd67bfb110edb2205cbd9407ed0e953278f1 Lihuen-Lxde-2016.iso

Sobre el análisis de la evidencia


• Priorizar cual analizar primero, tener en cuenta factores como:

• Estabilidad del medio a ser analizado


• Lugar donde se encontró
• Determinar como documentarla, por ejemplo, con fotos o notas
• Evaluar las alteraciones que pueda sufrir la evidencia, como por ejemplo interferencia
electromagnética
• Asegurarse de que la evidencia siga en buenas condiciones cuando llegue al laboratorio, luego de
haber sido empaquetada, transportada y/o almacenada
• En el caso de que el objetivo del estudio necesite alimentación eléctrica constante asegurarse que
no la pierda.

Donde realizar el análisis


• Si bien es preferible realizar el análisis directamente en un laboratorio con un ambiente controlado y
dedicado, a veces se presentan circunstancias que requieren que el análisis sea onsite.
• En dichas circunstancias es ideal intentar controlar el ambiente, teniendo en cuenta:

• El tiempo necesario para recuperar la evidencia.


• La logística y el personal necesario a involucrar, sobre todo si son tareas de mucho tiempo
• El impacto del análisis para el negocio
• La posibilidad de utilizar equipos y recursos en el lugar.
• El entrenamiento y la experiencia de los investigadores para llevar adelante el examen
onsite. La presión del entorno puede llegar a afectar el desempeño del analista.

Otras consideraciones:
• En tareas forenses donde lo que se está haciendo es una forensia no por cuestiones legales,
sino por interés del dueño o responsable de los recursos hay que tener en cuenta el impacto en
el negocio para realizar algún apagado del equipo, a veces simplemente no es una opción.
• Es recomendable antes de comenzar las tareas que el cliente este informado sobre las
necesidades y se libere por escrito de responsabilidad al investigador en el
contrato/acuerdo.

• Recordar GRR.

Privacidad de los datos


• Como las imágenes de los discos van a ser tratados, copiados y manipulados en el laboratorio
forense es necesario establecer un contrato/ convenio de confidencialidad que garantice a
ambas partes el permiso de acceso y la protección de la confidencialidad de los mismos.
• En Argentina existe desde el año 2000 legislación sobre de protección de datos personales, la
Ley 25.326, se puede acceder desde INFOLEG

Algunas definiciones:
• ARTICULO 2

• Datos personales: Información de cualquier tipo referida a personas físicas o de


existencia ideal determinadas o determinables.
• Datos sensibles: Datos personales que revelan origen racial y étnico, opiniones políticas,
convicciones religiosas, filosóficas o morales, afiliación sindical e información referente a la
salud o a la vida sexual.
• ARTICULO 10. — (Deber de confidencialidad).

• El responsable y las personas que intervengan en cualquier fase del tratamiento de datos
personales están obligados al secreto profesional respecto de los mismos. Tal obligación
subsistirá aun después de finalizada su relación con el titular del archivo de datos.
• El obligado podrá ser relevado del deber de secreto por resolución judicial y cuando
medien razones fundadas relativas a la seguridad pública, la defensa nacional o la salud
pública.

Retomando - Con Software Offline


• Una de las formas más comunes para hacer esto es utilizando Live CDS
• Hay algunas distribuciones de software que vienen con una serie de herramientas forenses y tienen
especial cuidado en no montar ningún disco al momento de bootear.
• Muchas de ellas son software libre y otras no
• Los resultados de las imágenes suelen escribirse el alguna unidad de disco (generalmente externa)
o se copia vía la red

El software de clonado
• De entre las herramientas libres disponibles las que se suelen usar son:

• Para chequear info del origen: fdisk


• Para clonar: dd y dcfldd
• Para comprobar: md5sum, sha1sum, sha256sum, etc
• Para copiar por la red: nc

Ejemplos de clonación:
• LOCAL:

• Si el disco destino es local podría hacerlo con la utilidad dd:


• Se conecta un disco duro con la misma capacidad o mayor que el disco que queremos
clonar y se ejecutará dicho comando.
• Suponga el disco original sata en la bahía 1 y el sata destino en la bahia 2. Esto podría
comprobarse con fdisk

$fdisk -l
$dd if=/dev/sda of=/dev/sdb conv=sync,notrunc,noerror bs=4K

Sobre dd
• Tiene varias opciones, entre las más comunes:
• --if= input file, el disco/particion origen
• --of= output file, adonde lo vamos a escribir
• --bs= tamaño del bloque
• --count= cuantos bloques (opcional)
• --conv=noerror,sync (opciones)

• noerror => no detener el proceso si se encuentra un error en el disco origen


• sync => si hay un error, llenar el resto del bloque con 0.

A saber:
• Sobre el tamaño del bloque:

• Usar uno más grande es más eficiente, pero si se usa uno demasiado grande, por ejemplo
de 1MB y hay un error en el primer sector del bloque entonces al estar combinado con la
opción de sync (que llena todo de ceros) perderemos 1MB que no servirá luego, por eso
se recomienda usar el menor posible.
• Aunque en Linux si vamos bajo los 4KB de tamaño de bloque podemos tener problemas
de performance. Puede llegar a ser 10 veces mas lento usar el tamaño por defecto de 512
byte que usar bloques de 4KB.

A saber (2):
• Sin noerror and sync, casi que no tenemos una imagen forense.
• Contras:

• dd no produce hash
• dd no nos dice que esta haciendo, no es demasiado comunicativa.
Más info: http://www.forensicswiki.org/wiki/Dd

Ejemplos de clonación:
• REMOTA enviando la imagen del disco vía red:

• Otro escenario es en el caso de que no se pueda conectar localmente en el equipo


afectado un nuevo disco
• En este caso podría enviarse la información vía la red y realizar de esa firma la clonación.
• Para hacerlo debe montar una arquitectura cliente-servidor y utilizar algún protocolo de
transferencia por ejemplo usando nc, donde el origen de la transferencia es el equipo
comprometido y el destino es el equipo donde está el disco limpio, en ambos extremos
utilizaremos dd
¿El cómo?
• Para eso arrancamos el sistema comprometido con un LIVECD y después ejecutando las siguientes
instrucciones.

dd if=/dev/sda | nc 192.168.1.10 9999

• Lo que hacemos con esa instrucción es duplicar el disco sata en la primer bahía y enviar el
resultado a la dirección 192.168.1.10 al puerto tcp 9999
• En el servidor de destino deberemos recibir información en el puerto 9999 y mapearlo a un archivo
local, para ello usamos:

nc –l –p 9999 > /mnt/sda1.dd

Otra opciones: dd vs dcfldd vs dc3dd


• Proveen la misma funcionalidad básica
• Aunque dcfldd y dc3dd tienen extras que permiten por ejemplo calcular el hash direcamente.
Opciones:

• --hash= función de hash a utilizar


• --hashlog= lugar donde queremos escribir el hash
• Pueden separar el archivo de salida en trozos

• Otra cosa adicional interesante es que proveen una barra de progreso que nos
permite "matar" la ansiedad, con dd no sabemos si está avanzando o no.

La diferencia entre dcfldd y dc3dd:

• La escencial es que el primero es un fork de dd y el segundo un patch, es decir que si algo se


mejorá en dd el dc3dd lo heredará, en cambio en dcfldd lo van a tener que desarrollar. Se
conocen problemas de dcfldd por basarse en un dd antiguo que indican que no es
recomendable para usar en discos que tengan fallas
• Dcfldd es utilizable vía CygWin.
Ver el reporte del NIST sobre herramientas que incluye muchas otras opciones tanto de pago como
libres.
Algunas opciones de dc3dd
• dc3dd --help
• if= dispositivo o archivo de entrada
• of= dispositivo o archivo de salida
• ofsz=1000M ofs=lalala.raw.000 el resultado se va a separar en archivos de 1000M lalala.raw.001,
lalala.raw.002....
• hash=sha512 hash=sha1 se generaran los dos hashes
• ssz=4K tamaño del sector
• verb=on
• El relleno con 000 cuando hay un error es por defecto

Firmando y comprobando la firma


• sha512sum disco.dd >> suma.log
• sha1sum disco.dd >> suma.log

Contenido de suma.log

Firma sin cifra

Contenido de suma.log.asc
Comprobar la firma

Das könnte Ihnen auch gefallen