410 likes | 584 Views
Forénsica Digital. Francisco Pecorella fpecor@cantv.net. Algunas cosas que aprenderemos…. ¿Qué es computación forense? ¿Qué es considerado evidencia? ¿Cuáles son los cuatro (4) principios forenses para el éxito? ¿Qué es el análisis de medios? ¿Cuál es el orden de volatilidad?. Respuestas….
E N D
Forénsica Digital Francisco Pecorella fpecor@cantv.net
Algunas cosas que aprenderemos… • ¿Qué es computación forense? • ¿Qué es considerado evidencia? • ¿Cuáles son los cuatro (4) principios forenses para el éxito? • ¿Qué es el análisis de medios? • ¿Cuál es el orden de volatilidad?
Respuestas… • Computación forense es la captura, preservación, análisis y preservación de evidencia computacional. • Evidencia es “algo” que intenta probar o desaprobar un hecho.
Más respuestas… • Los cuatro principios forenses para el éxito: • Minimizar la pérdida de los datos • Almacenar y guardar todo • Analizar todos los datos recolectados • Reportar los hallazgos • El análisis de los medios es la investigación estática de la evidencia del sistema que fue recolectada.
Más respuestas… • El orden de volatilidad de la evidencia es el orden en el cual la evidencia es más susceptible al cambio: • Memoria • Swap Space o page file • Estados de la red y conexiones • Procesos corriendo • Discos duros • Discos removibles
¿Qué es computación forense? • 3 componentes principales • Captura de la evidencia • Preservación de la evidencia • Investigación y análisis de la evidencia • Reporte de resultados
Terminología • Evidencia • Mejor evidencia • Cadena de custodia • Imágenes • Lista de palabras sucias • Análisis de los medios
Cuatro principio para el éxito • Minimizar la pérdida de los datos • Minimizar, _no_ erradicar • Almacenar y grabar todo • No utilizar video cámara • Analizar todos los datos recolectados • Algo muy pequeño podría esclarecer un hecho • Reportar los hallazgos • Una de las fases más importantes
Metodología forense • Es necesario ser consistente, es una metodología cíclica • Esta es una: • Verificación • Descripción del sistema • Recolección de la evidencia • Creación y análisis del timeline • Análisis específico del OS • Recuperación de datos • Búsqueda de cadenas • Reporte
Metodología forense (en profundidad) Verificación Descripción del sistema Recolección de la evidencia Creación y análisis del timeline
Metodología forense (en profundidad) Análisis específico del SO Recuperación de los datos Búsqueda de cadenas Reporte
Respuesta al incidente • Investigador vs equipo de respuesta • Evitar la parálisis • La verificación puede ser la parte más difícil del trabajo: • También puede ser la más facil (i.e. Defacement Web) • Primera acción: preservar la escena • 2 escenarios, sistema vivo o muerto!
Verificación • Es necesario obtener información • Logs o Registros de Eventos (Firewalls, IDS’, Antivirus, entrevistas, etc.) • Correlacionar, Correlacionar, Correlacionar, • 3 situaciones posibles • Verificación sin tocar el sistema • Verificación con mínimo impacto al sistema • Verificación con análisis completo de un sistema vivo
Acciones de primera línea • ¿Qué hacer cuando se está frente a un sistema vinculado con un incidente? • Verificar el incidente • Obtener la evidencia • Encontrar pistas • ¿Apagar el sistema, o dejarlo encendido? • Tener un plan premeditado • Documentación y algunos scripts
Orden de volatilidad de la evidencia • Orden en el cual la evidencia es más susceptible a cambios (de más volátil a menos volátil) • Memoria (RAM) • Swap space/page file • Información de la red (estados, conexiones, etc.) • Procesos corriendo • Discos duros • Discos removibles (ZIP, floppy, USB drive)
Network Forensics • Intercepción de comunicaciones • Básicamente, no debemos interceptar las comunicaciones de otros • Mucho menos publicar las intercepciones ilegales • Esto aplica a comunicaciones orales y electrónicas • Excepciones • Sistema de acceso público • Intercepciones autorizadas por la corte • Consentimiento de una o ambas partes
Sniffers • Aplicaciones legales • Magic Lantern • Carnivore • Públicos (gratuitos) • Tcpdump • Snort • Ethereal • Comerciales • EtherPeek • Observer • Iris
Wiretap • Consideraciones para hacer Wiretapping • Necesidad de más evidencia • El crimen no ha sido cometido aún • Necesidad de encontrar una fuente, o un sujeto • Pre-condiciones para un wiretapping exitoso • La escena del (potencial) crimen no debe ser distorsionada
Beneficios Wiretap • Determinar si más computadores en la red están afectados • Trazar al sujeto • Direcciones IP (La mayoría de los hackers tienen una o más) • Algunas veces es necesario ver qué está haciendo un sistema que fue comprometido • Utilizar el servidor para atacar a otros • Robo de información
Ethereal • Ethereal es uno de las mejores aplicaciones sniffer/analyzer disponibles en la actualidad: • Gratuito • Muestra y analiza el contenido completo de capturas de paquetes hechas con tcpdump • Posibilidad de seguir específicas sesiones TCP utilizando la opción de Follow TCP Stream • Acepta filtros para reducir y manipular datos capturados • Trabaja bajo ambiente Windows y Linux
Filtros Ethereal • Los filtros en Ethereal son muy utilizados, a continuación algunos ejemplos: • Mostrar solo tráfico Web • (tcp.port eq 80) • Mostrar tráfico de y hacia una determinada IP • (ip.addr eq 10.1.1.1) • Mostrar tráfico no web de o hacia una determinada IP • (ip.addre eq 10.1.1.1) and (tcp.port ne 80)
Herramientas forenses fundamentales • Respuesta a incidentes • netstat, lsof, ps • Recolección de evidencias • dd, netcat y tcpdump • Proveer integridad • md5sum y sha1sum
netcat • Propósito forense • Conectar o conectarse a cualquier puerto TCP/IP • Puede enviar o recibir • Uso forense • Listen • #nc –l –p 31337 > hdd.img • Send • dd if=/dev/hdd | nc myhostname –p 31337
Verificación forense • Notar los hechos iniciales • Recolectar la evidencia más volátil primero • Examinar archivos y directorios • Evidencia en logs • Directorios y archivos no estándares • Generar un timeline
Verificación inicial en Linux • Comandos del sistema • who/finger • uptime • uname –a • date • fdisk –l • Logs del sistema • /var/log/*
Sistema de archivos • Anomalías de la distribución • /bin, /sbin, /dev, etc. • Anomalías del sistema • /usr/local/bin, /usr/local/etc, etc. • Entradas nuevas o modificadas en /etc/passwd • Archivos o directorios comenzando con ‘.’ • Logs del sistema • Nuevos y archivos recientemente modificados
Equipo de respuesta • Insertar el kit de respuesta contenido en el CD-ROM y montar el dispositivo • #mount /mnt/cdrom • #cd /mnt/cdrom/response_kit/linux_x86_static • #ls • Aquí se encuentran los binarios más comunes estáticamente compilados para respuesta de incidentes y recolección de evidencia
Buscando rootkits • lsof y netstat pueden mostrar la mayoría de la actividad • Listar los archivos abiertos y las conexiones de red • # /mnt/cdrom/response_kit/linux_x86_static/lsof –ni • Listar las conexiones de red y sockets abiertos • /mnt/cdrom/response_kit/linux_x86_static/netstat -nap
pcat • Guarda un proceso corriendo a un archivo • Incluido en TCT • Obtenemos el identificador del proceso usando • ps /netstat / lsof • Hacemos búsquedas de strings en el proceso
Otros archivos clave • Archivos alojados en /var/log (incluso modificados, pueden inducir a cuándo fueron modificados) • Archivos .bash_history • #find / -name “.bash_history”
Creando un timeline • mac_daddy.pl fue diseñado para generar timelines durante la respuesta a incidentes • Envía las salidas a std-out • Configuramos un servidor • #nc –l –p 31337 > /images/unixforensics • Generamos y enviamos la mac info • #cd mnt/cdrom/response_kit/linux_x86_static/ • #perl mac_daddy.pl /| ./nc 192.168.2.1 31337
memdump • La memoria es la más volátil de todas las evidencias. En ella podemos encontrar piezas de: • Sistema operativo • Procesos corriendo (y recientemente corriendo) • Archivos (inclusive eliminados) • #cd mnt/cdrom/response_kit/linux_x86_static/ • ./memdump
Chequeo de integridad • Las firmas hash proveen integridad de la evidencia • Pueden revelar cambios en la evidencia • md5 ha sido el estándar • #md5sum /dev/sda1 • #md5sum /dev/hda2 • #md5sum /etc/passwd • md5deep recursivamente calcula md5sum • #md5deep –r / | ./nc 192.168.1.2 31337
Recolección de evidencias en Linux • Los datos deben ser estériles • Crear hashes del sistema original • Hacer imágenes del sistema • Crear hashes de las imágenes • Analizar las imágenes
dd y ddclfdd • Una de las más importantes herramientas en forensics • Copia cada bit de una entrada a la salida • Puede copiar una porción de un archivo o imagen • Uso general: dd if=<input> of=<output> • #./dd if=/dev/hda1 of=/images/forensics/image.img • ddclfdd es un dd modificado • Puede mostrar progreso • Puede calcular un hash cuando los datos son recolectados • #./ddclfdd if=/dev/sda of=/dev/hdb hashwindow=0 hashlog=sda.md5
Extrayendo particiones de imágenes físicas • mmls puede extraer información de particiones de una imagen o dispositivo • Debe especificarse –t <type> de la partición • #mmls –t dos /images/forensics/sda.img • Utilizamos dd para extraer la partición de la imagen física • #./dd if=/images/forensics/sda.img of=sda1.img bs=512 skip=63 count=1028097
Montando las imágenes • El comando mount es muy empleado para montar imágenes para su análisis • Utilizar –o loop para imágenes y debemos asegurarnos de preservar la data (ro) • #./mount –o ro, loop,nodev,noatime,noexec /images/forensics/vmware.img /mnt/hack/image
Análisis de evidencias • Helix • Colección de herramientas comunes open source • Buena detección de hardware con kudzu • Basado en Knoppix • Análisis en vivo o post-mortem • Operaciones seguras por defecto • Disponible en: http://www.e-fense.com/helix