Upload
clayton-santos
View
214
Download
0
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
Análise forense
Sessão de aprendizagem 2
Ambiente e ferramentas de
análise forense
Sumário
Pré-requisitos
Hardware
Sistema operacional
Live-CD
Preservação de informações voláteis
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.
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.
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.
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
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
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.
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
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.
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.
Hardware forenseHardware forense
EstaEstaçções e servidores para computaões e servidores para computaçção forenseão forense
Hardware forenseHardware forense
Duplicadores de HDs e equipamentos para bloqueio equipamentos para bloqueio de escrita em mde escrita em míídias digitaisdias digitais
Hardware forenseHardware forense
Wireless Wi-Fi Celulares
Pacote forense
Helix
The Coroner's Toolkit
Flag-Knoppix
SMART Linux
Comerciais
FTK Forensic Toolkit
EnCase
Pacote forense
Helix
Pacote forense
FTK Forensic Toolkit
Pacote forense
EnCase Forensics
Pacote forense
NetWitness
Programas específicos
Software para reconhecimento visual de imagens
Pesquise... Recupere... Classifique... Rotule... Filtre
Programas específicos
Esteganografia
Programas específicos
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.
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.
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����
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�
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
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)
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
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.
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
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
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
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
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)
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.
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
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
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
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
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
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�
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