43
Análise forense Sessão de aprendizagem 2 Ambiente e ferramentas de análise forense

02-ferramentas[1]

Embed Size (px)

DESCRIPTION

Análise forense Sessão de aprendizagem 2 Ambiente e ferramentas de análise forense Pré-requisitos Hardware Sistema operacional Live-CD Preservação de informações voláteis Sumário A primeira ação do investigador écoletar evidências no local onde ocorreu a invasão. Após isso, entra em cena a análise de mídias. O investigador precisaráanalisar dezenas de gigabytes de dados, e por isso deve contar com um ambiente propício, com ferramentas que facilitem seu trabalho. Pré-requisitos Pré-requisitos

Citation preview

Page 1: 02-ferramentas[1]

Análise forense

Sessão de aprendizagem 2

Ambiente e ferramentas de

análise forense

Page 2: 02-ferramentas[1]

Sumário

Pré-requisitos

Hardware

Sistema operacional

Live-CD

Preservação de informações voláteis

Page 3: 02-ferramentas[1]

Pré-requisitos

A primeira ação do investigador é coletar evidências no local onde ocorreu a invasão.

Após isso, entra em cena a análise de mídias.

O investigador precisará analisar dezenas de gigabytes de dados, e por isso deve contar com um ambiente propício, com ferramentas que facilitem seu trabalho.

Page 4: 02-ferramentas[1]

Pré-requisitos

O objetivo da análise de mídias é coletar evidências que comprovem ou refutem a invasão.

As evidências originais devem ser preservadas, por isso a análise deve ser feita em cópias das mídias.

O analista deve evitar comprometer as evidências, e garantir que todos os resultados possam ser reproduzidos, o que envolve a criação e manipulação de dezenas de gigabytes de dados.

Além disso, o sistema invadido não é confiável, portanto o investigador precisa dispor de um ambiente confiável e controlado para realizar a investigação.

Page 5: 02-ferramentas[1]

Hardware

Quanto mais memória RAM e mais processamento houver, melhor.

O espaço livre em disco deve ser generoso, algumas vezes podendo analisar centenas de gigabytes.

O sistema deve ter baias para conectar os discos de evidências.

Um notebook é imprescindível quando não for possível remover o disco de evidência.

Além disso, o investigador deve dispor de equipamentos de rede diversos.

Page 6: 02-ferramentas[1]

Sistema operacional

Entre os pontos que devem ser levados em consideração na hora de escolher o sistema operacional, podemos citar os seguintes:

Familiaridade do investigador com o sistema

operacional

Disponibilidade de ferramentas

Capacidade do sistema operacional de reconhecer

diversos tipos de mídias ou sistemas de arquivos

diferentes

Mecanismos de segurança disponíveis no sistema

operacional

Page 7: 02-ferramentas[1]

Sistema operacional

Durante o curso, usaremos o Linux, por causa de algumas características deste sistema:

Não é necessário adquirir licenças para uso

Existe uma gama completa de ferramentas de análise forense de uso

livre

Capacidade de acessar qualquer tipo de sistema de arquivos ou

partições a partir de configuração no kernel

Capacidade de acessar diversos tipos de dispositivos (USB, discos

etc)

Firewall embutido no kernel e possibilidade de utilizar diversas

modificações no kernel para aumentar a segurança da máquina

Disponibilidade de diversas distribuições prontas para análise

forense, facilitando o trabalho de reunir diferentes ferramentas

Page 8: 02-ferramentas[1]

Sistema operacional

Apesar disso, existem limitações na utilização do sistema Linux.

Se for necessário analisar algum executável para Windows, precisaremos de uma maneira de emular o Windows. A melhor opção é utilizar o VMWare ou outro sistema de emulação, como o Wine.

Apesar da escolha pelo Linux, existem ótimas ferramentas de análise forense para Windows, tal como o software EnCase.

Page 9: 02-ferramentas[1]

Live CD

Importante manter as ferramentas atualizadas

Existem diversos CDs inicializáveis com sistemas Linux:

Não precisam ser instalados

Normalmente não modificam o sistema instalado

Podem ser utilizados em um sistema ligado ou como

dispositivo de boot em um sistema desligado

São atualizados pelos responsáveis

Contêm uma ampla gama de ferramentas

Page 10: 02-ferramentas[1]

Live CD

Helix é uma distribuição específica para análise forense

Contém ferramentas para análise e resposta a incidentes em ambientes Linux, e um pacote de ferramentas para análise em sistemas Windows que ainda estejam ligados.

Pode ser utilizado como um CD de boot em sistemas desligados, ou montado em um sistema ligado para servir como fonte de ferramentas para uma resposta inicial ao incidente.

Utilizado por diversas instituições e grupos de análise forense e de resposta a incidentes.

Page 11: 02-ferramentas[1]

Live CD

Além do Live CD, em nosso curso utilizaremos o VMWare, ambiente virtual que simula um computador real, permitindo a execução de praticamente qualquer sistema operacional.

Utilizaremos uma imagem do CD do Helix associada ao CD-ROM da máquina virtual.

Configurações da máquina virtual:

256 MB de RAM

Disco rígido de 8 GB, para armazenar dados dos exercícios e servir

como exemplo

Imagem do Helix associada ao CD-ROM

Placa de rede host-only (só se conecta ao computador local)

Com o VMWare, podemos reverter o estado da máquina virtual para estados anteriores, evitando assim a perda de dados proveniente de comandos errados.

Page 12: 02-ferramentas[1]

Hardware forenseHardware forense

EstaEstaçções e servidores para computaões e servidores para computaçção forenseão forense

Page 13: 02-ferramentas[1]

Hardware forenseHardware forense

Duplicadores de HDs e equipamentos para bloqueio equipamentos para bloqueio de escrita em mde escrita em míídias digitaisdias digitais

Page 14: 02-ferramentas[1]

Hardware forenseHardware forense

Wireless Wi-Fi Celulares

Page 15: 02-ferramentas[1]

Pacote forense

Helix

The Coroner's Toolkit

Flag-Knoppix

SMART Linux

Comerciais

FTK Forensic Toolkit

EnCase

Page 16: 02-ferramentas[1]

Pacote forense

Helix

Page 17: 02-ferramentas[1]

Pacote forense

FTK Forensic Toolkit

Page 18: 02-ferramentas[1]

Pacote forense

EnCase Forensics

Page 19: 02-ferramentas[1]

Pacote forense

NetWitness

Page 20: 02-ferramentas[1]

Programas específicos

Software para reconhecimento visual de imagens

Pesquise... Recupere... Classifique... Rotule... Filtre

Page 21: 02-ferramentas[1]

Programas específicos

Esteganografia

Page 22: 02-ferramentas[1]

Programas específicos

Page 23: 02-ferramentas[1]

Preparação da investigação

No atendimento inicial a um incidente, o investigador deve:

Coletar o máximo possível de evidências

Comprovar o incidente

Conter possíveis ataques originados no sistema

comprometido

Como fazer tudo isso, minimizando a perda de dados?

Nesta hora, a utilização de um checklist pode ajudar, principalmente se o sistema ainda estiver ligado.

A resposta precisa ser rápida e precisa.

Page 24: 02-ferramentas[1]

Preparação da investigação

Primeira ação: preparar as ferramentas e dispositivos para a coleta das evidências.

Coletar primeiro as informações mais voláteis:

Memória RAM, informações de rede, processos em

execução, cópia do disco rígido, logs, históricos;

Possuir equipamentos de armazenagem e de rede para comunicação com o sistema suspeito.

Durante o curso, vamos utilizar o Live CD do Helix em um sistema virtual, como por exemplo no atendimento a incidentes em sistemas ligados.

Page 25: 02-ferramentas[1]

Preparação do ambiente

Inicialmente, preparemos o ambiente que vamos utilizar durante o atendimento ao incidente:

# fdisk –l����

Disk /dev/sda: 8589 MB, 8589934592 bytes

255 heads, 63 sectors/track, 1044 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/sda1 1 32 257008+ 82 Linuxswap

/dev/sda2 33 64 257040 83 Linux

/dev/sda3 65 1044 7871850 5 Extended

/dev/sda5 65 1044 7871818+ 83 Linux

# mkdir /data����

# mount /dev/sda5 /data����

Page 26: 02-ferramentas[1]

Preparação do ambiente

A memória RAM é a informação mais volátil que existe no sistema.

No Helix, temos uma ferramenta chamada memdump, que faz uma cópia da memória RAM, que podemos redirecionar para um arquivo em disco:

# memdump > /data/phys_memory.img�

Além disso, podemos redirecionar para uma conexão de rede, e coletar remotamente o arquivo em nossa estação forense:

Na estação forense:

# nc -l -p 4000 > /data/phys_memory.img�

Na máquina suspeita:

# memdump | nc 127.0.0.1 4000�

Page 27: 02-ferramentas[1]

Preparação do ambiente

Passos importantes durante o atendimento a um incidente: Manter um registro preciso de todas as ações executadas, registrando

todos os comandos executados, com os respectivos tempos de

execução.

Descobrir se as informações de tempo disponíveis em suas evidências

são coerentes. O timezone de logs e da máquina é um dado muito importante.

Por isso, após recuperar a memória da máquina, é importante descobrir essas informações:# date����

Sun Jan 6 01:34:46 MST 2008

# uptime����

01:35:16 up 7:55, 5 users, load average: 0.13, 0.26, 0.18

Page 28: 02-ferramentas[1]

Coletando informações dos processos

# lsof –l�

Lista todos os arquivos abertos.

Use os comandos more ou less ou redirecione a saída através

do netcat

# lsof -i�

Lista todos os arquivos de rede abertos, para descobrir os

programas que estão mantendo conexões abertas.

Tem a mesma função do comando netstat –nap.

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

Xorg 2252 root 1u IPv4 9383 TCP *:x11 (LISTEN)

sshd 2792 root 3u IPv4 10359 TCP *:ssh (LISTEN)

pump 2870 root 0u IPv4 10612 TCP *:bootpc (LISTEN)

sshd 2872 root 3u IPv4 10647 TCP 192.168.47.129:ssh-

>192.168.47.1:4944 (ESTABLISHED)

Page 29: 02-ferramentas[1]

Coletando informações dos processos

Utilização de LSOF em conjunto com o comando grep:

# lsof -l | grep LISTEN����

Xorg 2252 0 1u IPv4 9383 TCP *:x11 (LISTEN)

sshd 2792 0 3u IPv4 10359 TCP *:ssh (LISTEN)

pump 2870 0 0u IPv4 10612 TCP *:bootpc (LISTEN)

Este comando mostra todos os processos que mantêm um socket Unix aberto:

# lsof -U����

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

udevd 517 root 3u unix 0xce957e00 4060 socket

dbus-daem 1485 messagebus 3u unix 0xce957c80 7524

/var/run/dbus/system_bus_socket

dbus-daem 1485 messagebus 5u unix 0xce957b00 7526 socket

Page 30: 02-ferramentas[1]

Coletando informações dos processos

Recuperação de informações sobre processos através do diretório /proc:# ls /proc/2877�

attr auxv cmdline cwd environ exe fd maps

mem mounts mountstats oom_adj oom_score root

seccomp smaps stat statm status task wchan

Para cada processo existem diversas informações disponíveis.

Alguns destes arquivos contêm dados importantes sobre o processo em execução.

Page 31: 02-ferramentas[1]

Coletando informações dos processos

Conteúdo de alguns arquivos:

O arquivo abaixo é na verdade um link para o diretório

corrente do processo:

# ls -l /proc/2877/cwd�

lrwxrwxrwx 1 root root 0 Jan 5 18:50 /proc/2877/cwd -> /data

O arquivo abaixo contém a linha de comando utilizada para

iniciar o processo, servindo para identificar processos

estranhos:# cat /proc/2877/cmdline�

-bash

Page 32: 02-ferramentas[1]

Coletando informações dos processos

O arquivo abaixo contém as variáveis de ambiente utilizadas no momento da execução do programa.

# cat /proc/2877/environ�

USER=rootLOGNAME=rootHOME=/rootPATH=/sbin:/bin:/u

sr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/

usr/X11R6/binMAIL=/var/mail/rootSHELL=/bin/bashSS

H_CLIENT=192.168.47.1 4944

22SSH_CONNECTION=192.168.47.1 4944 192.168.47.129

22SSH_TTY=/dev/pts/2TERM=vt100

Page 33: 02-ferramentas[1]

Coletando informações dos processos

Este arquivo mostra informações de status do processo:# cat /proc/2877/status�

Name: bash

State: S (sleeping)

SleepAVG: 98%

Tgid: 2877

Pid: 2877

PPid: 2872

TracerPid: 0

Uid: 0 0 0 0

Gid: 0 0 0 0

Page 34: 02-ferramentas[1]

Coletando informações dos processos

É possível recuperar processos através do /proc. Exemplo:

# ps ax | grep sshd�

2792 ? Ss 0:00 /usr/sbin/sshd

2872 ? Ss 0:07 sshd: root@pts/2,pts/3

# cat /proc/2792/exe > /data/proc_2792_sshd.dat�

# sha1sum /data/proc_2792_sshd.dat /usr/sbin/sshd�

415b2c34037fad7d2cf54a55e35a3892bf03ebd6

/data/proc_2792_sshd.dat

415b2c34037fad7d2cf54a55e35a3892bf03ebd6

/usr/sbin/sshd

Page 35: 02-ferramentas[1]

Preservação do disco

Após a coleta de informações mais voláteis, é preciso salvar as evidências menos voláteis

A coleta deste tipo de evidência é importante, pois seráatravés dos dados armazenados nos discos que poderemos identificar processos executados pelo hacker, como instalação de ferramentas e modificação de arquivos

Há diversas metodologias e ferramentas disponíveis para coletar uma cópia dos discos:

Equipamentos específicos para cópia de discos

Ferramentas para cópia disco a disco

Criação de uma “imagem de disco bit a bit” (mais comum)

Page 36: 02-ferramentas[1]

Preservação do disco

Neste curso vamos utilizar o formato DD, por ser mais difundido e mais facilmente manipulado dentro de um ambiente Linux.

Para coletar uma imagem de um dispositivo de disco, utilizaremos a ferramenta dd (daí o nome do formato DD).

Ferramenta disponível por padrão em qualquer sistema

Linux, permite que se realizem cópias “bit a bit” entre

dispositivos, ou então entre dispositivos e arquivos e

vice-versa.

Page 37: 02-ferramentas[1]

Preservação do disco

Antes de copiar as evidências, é necessário garantir que nosso dispositivo de armazenagem está limpo.

Para isso, zerar o conteúdo do disco (antes de gravar qualquer evidência) com o seguinte comando:

# dd if=/dev/zero of=/dev/<dispositivo> bs=512 conv=noerror����

dd: writing `/dev/<dispositivo>': No space left on device

514018+0 records in

514017+0 records out

263176704 bytes (263 MB) copied, 4.17215 seconds, 63.1

MB/s

Page 38: 02-ferramentas[1]

Preservação do disco

Passos para copiar uma partição de um disco para um arquivo de imagem:# dd if=/dev/sda1 of=/data/dev_sda1_swap.img bs=512 conv=noerror����

514017+0 records in

514017+0 records out

263176704 bytes (263 MB) copied, 36.8564 seconds, 7.1 MB/s

# dd if=/dev/sda2 of=/data/dev_sda2.img_root.img bs=512 conv=noerror����

514080+0 records in

514080+0 records out

263208960 bytes (263 MB) copied, 36.4338 seconds, 7.2 MB/s

Page 39: 02-ferramentas[1]

Outras formas de preservação do disco

Uma ferramenta do pacote forense Sleuth Kit pode ser útil para identificar a estrutura do disco ou imagem:

# /usr/local/sleuthkit-2.09/bin/mmls /dev/sda����

DOS Partition Table

Offset Sector: 0

Units are in 512-byte sectors

Slot Start End Length Description

00: ----- 0000000000 0000000000 0000000001 Primary Table (#0)

01: ----- 0000000001 0000000062 0000000062 Unallocated

02: 00:00 0000000063 0000514079 0000514017 Linux Swap (0x82)

03: 00:01 0000514080 0001028159 0000514080 Linux (0x83)

04: 00:02 0001028160 0016771859 0015743700 DOS Extended (0x05)

05: ----- 0001028160 0001028160 0000000001 Extended Table (#1)

06: ----- 0001028161 0001028222 0000000062 Unallocated

07: 01:00 0001028223 0016771859 0015743637 Linux (0x83)

08: ----- 0016771860 0016777215 0000005356 Unallocated

Page 40: 02-ferramentas[1]

Outras formas de preservação do disco

Com estas informações é possível extrair as partições individuais da imagem do disco completo:

# dd if=/dev/sda of=/data/dev_sda1_swap_raw.img bs=512����

count=514017 skip=63

514017+0 records in

514017+0 records out

263176704 bytes (263 MB) copied, 12.2563 seconds, 21.5 MB/s

# sha1sum dev_sda1_swap.img dev_sda1_swap_raw.img����

6a9f2bf4fb171512abb49c68b6ca4fc98b224e7e dev_sda1_swap.img

6a9f2bf4fb171512abb49c68b6ca4fc98b224e7e dev_sda1_swap_raw.img

Page 41: 02-ferramentas[1]

Outras formas de preservação do disco

Versão melhorada do DD, com capacidade de gerar um hash automaticamente:

# dcfldd if=/dev/sda2 of=/data/dev_sda2_root.img bs=512 conv=noerror����

hash=sha1 hashlog=dev_sda2_root.sha1 hashwindow=100M split=50M

103936 blocks (50Mb) written.

150528 blocks (73Mb) written.

514048 blocks (251Mb) written.

514080+0 records in

514080+0 records out

# cat dev_sda2_root.sha1����

0 - 104857600: efffdd6f8ecae38aea95cd1862775e3489150a97

104857600 - 209715200: f93beb718b2beac9f10dbe80b7250207d46dbda1

209715200 - 263208960: e694b7c0f6140be5ca6c5167d07d99140b91678e

Total (sha1): 641a91271d0ed17a995a01d48b70591d599213da

Page 42: 02-ferramentas[1]

Outras formas de preservação do disco

Adepto é uma interface gráfica para utilizar o dcfldd e outras ferramentas de coleta.

Contém muitas opções para geração, armazenagem e

verificação da imagem, além de manter um registro de todas as

operações realizadas.# /usr/local/bin/adepto.sh�

Page 43: 02-ferramentas[1]

Conclusões

Disponibilizar em sua estação forense o máximo possível de espaço, processamento e memória.

Usar sistema operacional flexível e confiável.

Possuir ferramentas prontas e atualizadas no atendimento inicial a um incidente.

Evitar comprometer evidências, coletando primeiro as informações mais voláteis:

Memória RAM, informações de rede, processos em

execução, cópia do disco rígido, logs, históricos.

Estudar as ferramentas disponíveis no Live-CD