Postmortem Forense TUTORIAL PTBR
-
Upload
sandro-melo -
Category
Documents
-
view
207 -
download
1
Transcript of Postmortem Forense TUTORIAL PTBR
1
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -1
Its specialization in FOSS solutions "Free and Open Source Software"
2
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -2
Aviso
Este material foi desenvolvido como o objetivo de ser um apoio no estudo da disciplina de Segurança de Redes Linux/Unix utilizando ferramentas FOSS (Free and Open Source Software), mas em momento algum é uma referência definitiva, dessa forma as bibliografias indicadas são base para uma formação solida e coesa.
Sendo relevante destacar que o Modelo Software Livre tem como princípio a segurança fundamentada na transparência do código aberto que pode ser auditado e questionado a qualquer momento.
Códigos fruto de pesquisa que na sua maioria são oriundos em
centros de pesquisas de Universidade dos quatro cantos do planeta.
3 3
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -3
Prof. Sandro MeloProf. Sandro [email protected]@4nix.com.br
4 4
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -4
““HAND ONHAND ON PORT MORTEM PORT MORTEM
FORENSE ANALYSISFORENSE ANALYSIS”” (Escovando bits, garimpando bytes (Escovando bits, garimpando bytes em busca de evidências e Artefatos em busca de evidências e Artefatos
em um Sistema GNU-Linux)em um Sistema GNU-Linux)versão Tutorialversão Tutorial
5
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -5
““Conceitos IniciaisConceitos Iniciais””
6
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -6
Conceitos:
Resposta a Incidentes de
Segurança
Computação Forense com
Sotware Livre
7
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -7
Quando o pior já aconteceu o que resta é mitigar. Computação Forense
Prevenir é o melhor remédio.
Resposta a Incidentes
8
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -8
INVESTIGAÇÃO DIGITAL
Procedimento em que se desenvolvem e se testam hipóteses para comprovar se elas suportam ou desmentem os indícios que se materializam no meio digital.
9
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -9
FORENSE DIGITAL
FORENSE DIGITAL
INVESTIGAÇÃO DIGITAL
APARATO LEGAL= +
Vincula ciência e/ou tecnologia de computação à investigação.
Apropriação da INVESTIGAÇÃO DIGITAL para confirmar fatos ou evidências capazes de apoiar decisões judiciais.
10
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -10
COMPUTAÇÃO FORENSE
Ramo relativamente novo da Ciência da Computação no campo da segurança digital, destinada a apoiar julgamentos de crimes.
Regula a investigação digital por meio da metodologia científica.
Cuida da consistência da apuração, visando promover suas evidências à provas legais, passíveis de aceitação pelo júri.
11
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -11
PERÍCIA FORENSE DIGITAL
Perícia: investigação, pesquisa, exame atento; coleta de vestígios, análise de evidências.
Forense: relativo ao foro, tribunal, local onde se processam as ações do poder judiciário.
Digital: método de codificação de informações baseado em números ou dígitos
12
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -12
ASSIMILAÇÃO DO PROCESSO
Ao tomar conhecimento dos procedimentos de uma análise forense, o administrador tende a adotar todo o “ritual” da Perícia Forense para responder a qualquer incidente, mesmo que seu desdobramento, a princípio, não demande a formalização de provas visando a uma ação legal.
13
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -13
ONDE SE APLICA?
Em ocorrências do meio eletrônico, em sua maioria via Internet, para:
Provar fatos;Combater pedofilia;Combater fraudes financeiras;Identificar espionagem industrial; Sustentar atos de demissão ou quebra de contrato;Comprovar violação de políticas da corporação;Comprovar autoria de invasão de privacidade;Ajudar na recuperação dos dados;
14
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -14
“Qualquer indivíduo ou coisa que entra no cenário de um crime, ao sair do mesmo, leva e deixa alguma coisa no local”.
PRINCÍPIO DE LOCARD
15
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -15
LINUX E FOSS
Os Sistemas Operacionais LINUX e FreeBSD são as plataformas mais utilizadas por Peritos Forenses, por:
Suportar vários sistemas de arquivos; Não contaminar as evidências;Criar ambiente para análise dinamica de artefados Proporcionar total controle sobre a investigaçãoDisponibilizar ferramentas FOSS (Free and Open Source Software);
16
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -16
PRINCÍPIOS FORENSES
Registrar tudo Analisar todas as evidências coletadas Relatar tudo o que encontrar Minimizar perda de dados
17
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -17
PRINCÍPIOS FORENSES
Registrar tudo Analisar todas as evidências coletadas Relatar tudo o que encontrar Minimizar perda de dados
18
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -18
PROCESSO DE RESPOSTA A INCIDENTE
Preparação pré-incidente
Detecção Resposta Reconstrução
Implementação de medidas de segurança; estratégias de resolução e recuperação
RelatórioFinal Coleta de
ArtefatosAnálise deArtefatos
Perícia Computacional Forense
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -19
1a Camada - Fisica1a Camada - Fisica
20
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -20
Relação dos Dados Perícias Coletados
LiveAnálise
Post Mortem Análise
NetworkAnálise
Volatilidade vs Tempo de Vida
Nível Volatilidade
Tem
po d
e V
ida
RegistradoresCache
Memória de periféricos
Memória RAM
Tráfegoda Rede
Estado do S.O.
DiscoRígido
Mídias
Análise Post Mortem
Análise In Vivo
NETWORKFORENSE
NETWORK FORENSEnos ativos de Rede
Volatilidade vs Tempo de Vida
Nível Volatilidade
Tem
po d
e V
ida
Registradores Cache
Memória de periféricos
Memória RAM
Tráfego da Rede
Estado do S.O.
Disco Rígido
Mídias
Forense de Rede
Forense In Vivo
ForensePost Mortem
Network ForensicInformações
de atividade de rede
levantadas na Live Forensic
Análise de Logs e correlação.
Coleta da EvidênciasNetwork Forensic Analysis
Análise de arquivos PCAP
(IDS / HoneyPot)
Levantamento de informações
de outros ativos de rede
Recuperação de Artefatos
Encaminhamento dos Artefatos e informações para
Post Mortem Forensic
Post Mortem AnáliseAnálise do
Disco Rígido(Atuando nas 5 camdas)
Análise do Sistema de
Arquivos
Coleta da EvidênciasLive Forensic Analysis
Network Forensic Analysis
Identificação de Potencias Artefatos
Análise de
Artefatos
AnáliseEstática
AnáliseDinâmica
Criação da Timeline
Elaboração doLaudo Pericial
25
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -25
Análise Inicial do SistemaÉ possível realizar vários tipos de testes com o objetivo buscar evidências e artefatos relacionado ao Incidente de Segurança que está sendo Investigado.
Ter o conhecimento do Modus Operandi do invasor auxilia ao Perito Forense Computacional em sua atividade, formas diferentes e furtivas de agir sempre serão um desafio.
26
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -26
Análise Inicial do Sistema
Pesando o Modus Operandi tradicional de invasores com conhecimento técnico não tão arrojados após ganhar acesso, normalmente consiste em ações que motivam a geração de evidências.
27
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -27
Post Mortem – Correlacionamento
Análise de Strings do HD
Análise em5 camadas
CorrelaçãoLive Forensic
CorrelaçãoNet Forensic
28
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -28
Mapa de BytesA geração de um arquivo de strings da imagem como passo inicial pode permitir identificar informações relevantes.
# strings -a imagem.img | tee imagem.img.strings
O uso de Regex será um mecanismo fundamental para o tratamento do arquivo de strings, dessa forma o uso de ferramentas como GREP, EGREP, GLARK
29
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -29
Strings vs Regex
grep -i“tar\.gz$” imagem.string
egrep --regexp=“\.tgz|\.zip|\.bz2|\.rar|\.c” imagem.string
30
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -30
Strings vs Regex
grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" imagem.string
grep -i "\/exploit\/" imagem.string
grep -i "\/exploits\/" imagem.string
grep -i "rootkit\/" imagem.string
grep -i "\/\.\.\ " imagem.string
31
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -31
Strings vs Regex
grep -i "\/bk\/" imagem.string
grep -i "xpl" imagem.string
grep -i "force" imagem.string
grep "\/\.\.\.\/" imagem.string
grep "SSH_CLIENT=" imagem.string
32
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -32
Strings em loteUma forma prática seria a geração de um arquivo com todas a expressões regulares e palavras chaves para automitizar a pesquisa.
# cat imagem.img.strings | grep -i -f arq.txt
# cat imagem.img.strings | egrep -i –color -f arq.txt
# cat imagem.img.strings | grark -N -i -f arq.txt
33
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -33
Informações uteis da Live Forensic
Informações úteis que na maioria das situações já foram coletadas durante a Forense in Vivo (Live Forensic).
# cat /proc/partitions# cat /proc/meminfo# cat /proc/cpuinfo# hdparm -i /dev/hda# hdparm -I /dev/hda
34 34
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -34
““Análise Análise emem
CamadasCamadas ””(Análise de informações do Disco (Análise de informações do Disco
e/ou Imagem)e/ou Imagem)
35
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -35
As 5 camadas
Camada Física Disco Rígido (idenficação do Hardware)
Camada deDados
Informações da estrutura de setor de boot, particionamento, tipo sistema de arquivos,
Camada deMetadados
Informações extraída da tabela de INODE
Informações específicas de arquivos e diretórios
Análise da informações de Arquivo (identificação de Artefatos)
Camada do Sistema de Arquivos
Camada dos Arquivos
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -36
1a Camada - Fisica1a Camada - Fisica
““Camada FísicaCamada Física””(Análise de nformações do Disco (Análise de nformações do Disco
e/ou Imagem)e/ou Imagem)
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -37
1a Camada - Fisica1a Camada - Fisica
Camada FísicaCamada Física
Momento onde o Perito deve reunir e documentar informações sobre os dispositivos de armazenamento de dados relacionados, como:Disco rígido (modelo / fabricante / Serial)Mídia removiveis (floppy, Pen, Zip).
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -38
2a Camada - DADOS2a Camada - DADOS
““Camada de Camada de DadosDados””
(Análise de informações do setor (Análise de informações do setor de Boot e de Particionamento)de Boot e de Particionamento)
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -39
2a Camada - DADOS2a Camada - DADOS
Camada de Dados
No momento que é feita a coleta bit a bit dos dispositivos de armazenamento é dado o primeiro passo para esta fase da análise.
Consiste na verificação integridade das imanges geradas, verificando informações de particionamento e estruturas de Sistema de arquivos.
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -40
2a Camada - DADOS2a Camada - DADOS
Ferramentas Úteis disk_stat – informações básicas do discofdisk - informações de particionamentosfdisk - informações de particionamentotestdisk – possibilita além de consultar, recuperar estrutura de particionamento de um disco ou imagemimg_stat - possibilita visualizar informações do tamanho da imagemmmstat – informações básicas de uma imagemmmls – informações da estrutura da imagem
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -41
2a Camada - DADOS2a Camada - DADOS
Ferramentas Úteis
scsiinfo – informações de dispositivos scsidisktype – informações genéricas de um disco rigidofile – possibilita também extrair informações da estrutura do disco rigidoMount e losetup – possibilitam manipulação de imagens de mídias.
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -42
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do FILE
file -s /dev/sda/dev/sda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, stage2 address 0x2000, stage2 segment 0x200; partition 1: ID=0x83, active, starthead 1, startsector 63, 8384512 sectors; partition 2: ID=0x8e, starthead 0, startsector 8385930, 147910455 sectors, code offset 0x48
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -43
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do LSHW#lshwc4ri0c4.locaweb.com.br description: Desktop Computer product: System Product Name vendor: System manufacturer version: System Version serial: System Serial Number width: 32 bits capabilities: smbios-2.3 dmi-2.3 smp-1.4 smp configuration: boot=normal chassis=desktop cpus=2 uuid=18F67DE5-B7FE-D511-A9F8-E16BAE8F0FD3 *-core description: Motherboard product: P5PE-VM vendor: ASUSTeK Computer Inc. physical id: 0 version: Rev 1.00 serial: MB-1234567890
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -44
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do DISK_STAT
disk_stat /dev/sdaMaximum Disk Sector: 156301487Maximum User Sector: 156301487 0 - 0 0 Empty
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -45
2a Camada - DADOS2a Camada - DADOS
Exemplo de Disco SCSI
# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST380013AS Rev: 3.18 Type: Direct-Access ANSI SCSI revision: 05Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: ATA Model: ST380013AS Rev: 3.18 Type: Direct-Access ANSI SCSI revision: 05
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -46
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do SCSIINFOscsiinfo -a /dev/sda Scsiinfo version 1.7(eowmob)
Inquiry command---------------Relative Address 0Wide bus 32 0Wide bus 16 0Synchronous neg. 0.......................................Vendor: ATA Product: ST380211AS Revision level: 3.AA
Serial Number ' 5PS0GVN0'Unable to read Rigid Disk Geometry Page 04hData from Caching Page
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -47
2a Camada - DADOS2a Camada - DADOS
Informações de Particionamento
Em primeiro lugar deve se fazer uma análise de como está a estrutura de partições da imagem que será investigada no que tange as informações de particionamento utilizando o comando fdisk.
# fdisk -lu image.img
# sfdisk -luS image.img
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -48
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do FDISK
fdisk -lu /dev/sda
Disk /dev/sda: 80.0 GB, 80026361856 bytes255 heads, 63 sectors/track, 9729 cylinders, total 156301488 sectorsUnits = sectors of 1 * 512 = 512 bytesDisk identifier: 0xcb0acb0a
Device Boot Start End Blocks Id System/dev/sda1 * 63 8384574 4192256 83 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 8385930 156296384 73955227+ 8e Linux LVM
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -49
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do FDISKfdisk -lu HD_coleta.img read failed: Inappropriate ioctl for deviceYou must set cylinders.You can do this from the extra functions menu.
Disk HD_coleta.img: 0 MB, 0 bytes16 heads, 63 sectors/track, 0 cylinders, total 0 sectorsUnits = sectors of 1 * 512 = 512 bytesDisk identifier: 0x00000000
Device Boot Start End Blocks Id SystemHD_coleta.img1 * 63 72575 36256+ 83 LinuxHD_coleta.img2 72576 2116799 1022112 5 ExtendedPartition 2 has different physical/logical endings: phys=(1023, 15, 63) logical=(2099, 15, 63)HD_coleta.img5 72639 278207 102784+ 83 LinuxHD_coleta.img6 278271 410255 65992+ 82 Linux swap / SolarisHD_coleta.img7 410319 513071 51376+ 83 LinuxHD_coleta.img8 513135 2116799 801832+ 83 Linux
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -50
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do FDISK
fdisk -lu /dev/sda
Disk /dev/sda: 80.0 GB, 80026361856 bytes255 heads, 63 sectors/track, 9729 cylinders, total 156301488 sectorsUnits = sectors of 1 * 512 = 512 bytesDisk identifier: 0xcb0acb0a
Device Boot Start End Blocks Id System/dev/sda1 * 63 8384574 4192256 83 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 8385930 156296384 73955227+ 8e Linux LVM
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -51
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do SFDISK
# sfdisk -luS /dev/sda
Disk /dev/sda: 9729 cylinders, 255 heads, 63 sectors/trackUnits = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System/dev/sda1 * 63 8384574 8384512 83 Linux/dev/sda2 8385930 156296384 147910455 8e Linux LVM/dev/sda3 0 - 0 0 Empty/dev/sda4 0 - 0 0 Empty
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -52
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do MMLS
# mmls /dev/sdaDOS Partition TableOffset Sector: 0Units are in 512-byte sectors
Slot Start End Length Description00: Meta 0000000000 0000000000 0000000001 Primary Table (#0)01: ----- 0000000000 0000000062 0000000063 Unallocated02: 00:00 0000000063 0008384574 0008384512 Linux (0x83)03: ----- 0008384575 0008385929 0000001355 Unallocated04: 00:01 0008385930 0156296384 0147910455 Linux Logical Volume Manager (0x8e)05: ----- 0156296385 0156301487 0000005103 Unallocated
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -53
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do MMLSmmls HD_coleta.img DOS Partition TableOffset Sector: 0Units are in 512-byte sectors
Slot Start End Length Description00: Meta 0000000000 0000000000 0000000001 Primary Table (#0)01: ----- 0000000000 0000000062 0000000063 Unallocated02: 00:00 0000000063 0000072575 0000072513 Linux (0x83)03: Meta 0000072576 0002116799 0002044224 DOS Extended (0x05)04: Meta 0000072576 0000072576 0000000001 Extended Table (#1)05: ----- 0000072576 0000072638 0000000063 Unallocated06: 01:00 0000072639 0000278207 0000205569 Linux (0x83)07: 01:01 0000278208 0000410255 0000132048 DOS Extended (0x05)08: Meta 0000278208 0000278208 0000000001 Extended Table (#2)09: 02:00 0000278271 0000410255 0000131985 Linux Swap / Solaris x86 (0x82)10: 02:01 0000410256 0000513071 0000102816 DOS Extended (0x05)11: Meta 0000410256 0000410256 0000000001 Extended Table (#3)12: 03:00 0000410319 0000513071 0000102753 Linux (0x83)13: 03:01 0000513072 0002116799 0001603728 DOS Extended (0x05)14: Meta 0000513072 0000513072 0000000001 Extended Table (#4)15: 04:00 0000513135 0002116799 0001603665 Linux (0x83)16: ----- 0002116800 0002748977 0000632178 Unallocated
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -54
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do MMLS
# mmls /dev/sdaDOS Partition TableOffset Sector: 0Units are in 512-byte sectors
Slot Start End Length Description00: Meta 0000000000 0000000000 0000000001 Primary Table (#0)01: ----- 0000000000 0000000062 0000000063 Unallocated02: 00:00 0000000063 0008384574 0008384512 Linux (0x83)03: ----- 0008384575 0008385929 0000001355 Unallocated04: 00:01 0008385930 0156296384 0147910455 Linux Logical Volume Manager (0x8e)05: ----- 0156296385 0156301487 0000005103 Unallocated
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -55
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do DISKTYPE# disktype /dev/sda
--- /dev/sdaBlock device, size 74.53 GiB (80026361856 bytes)GRUB boot loader, compat version 3.2, boot drive 0xffDOS/MBR partition mapPartition 1: 3.998 GiB (4292870144 bytes, 8384512 sectors from 63, bootable) Type 0x83 (Linux) Ext3 file system UUID 0A40FE81-CD61-452B-91F5-0FDA1F2EAB50 (DCE, v4) Volume size 3.998 GiB (4292870144 bytes, 1048064 blocks of 4 KiB)Partition 2: 70.53 GiB (75730152960 bytes, 147910455 sectors from 8385930) Type 0x8E (Linux LVM) Linux LVM2 volume, version 001 LABELONE label at sector 1 PV UUID 0BV3m3-qoZM-Zgrb-gw38-Mdbr-QcMX-x32Q6U Volume size 70.53 GiB (75730152960 bytes) Meta-data version 1
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -56
2a Camada - DADOS2a Camada - DADOS
Exemplo de Uso do FILE
file -s /dev/sda/dev/sda: x86 boot sector; GRand Unified Bootloader, stage1 version 0x3, stage2 address 0x2000, stage2 segment 0x200; partition 1: ID=0x83, active, starthead 1, startsector 63, 8384512 sectors; partition 2: ID=0x8e, starthead 0, startsector 8385930, 147910455 sectors, code offset 0x48
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -573a Camada – SISTEMA DE ARQUIVOS3a Camada – SISTEMA DE ARQUIVOS
““Camada de Camada de Sistema de Sistema de ArquivosArquivos””
(Análise de nformações a (Análise de nformações a estrutura de arquivos utilizada)estrutura de arquivos utilizada)
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -583a Camada – SISTEMA DE ARQUIVOS3a Camada – SISTEMA DE ARQUIVOS
Ferramentas para Sistema de Arquivo
fsstat – informações estatíticas de como está organizada a partiçãojcat - informações de um sistema de arquivo journalingjls - lista informações da estrutura do journaling.
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -593a Camada – SISTEMA DE ARQUIVOS3a Camada – SISTEMA DE ARQUIVOS
Exemplo de Uso do FSSTAT
# fsstat imagem.img FILE SYSTEM INFORMATION--------------------------------------------File System Type: Ext3Volume Name: /Volume ID: ef3c387a7bc4ac9fdb1140dcec080daeLast Written at: Wed Mar 28 11:37:26 2007Last Checked at: Tue Mar 27 05:53:49 2007Last Mounted at: Wed Mar 28 11:37:26 2007Unmounted properlyLast mounted on: Source OS: LinuxDynamic StructureCompat Features: Journal, InCompat Features: Filetype, Needs Recovery, Read Only Compat Features: Sparse Super,
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -603a Camada – SISTEMA DE ARQUIVOS3a Camada – SISTEMA DE ARQUIVOS
Exemplo de Uso do JCAT
# jcat -f ext tambaquicorp.img 3001= .?? ..?? km3xsadan.sh>sadan.sh.1?
-----
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -613a Camada – SISTEMA DE ARQUIVOS3a Camada – SISTEMA DE ARQUIVOS
Exemplo de Uso do JLS
# jls -f ext tambaquicorp.img | tail -n 104086:Allocated FS Block 1640134087:Allocated FS Block 1639574088:Allocated FS Block 1639624089:Allocated FS Block 1054090:Allocated FS Block 1311154091:Allocated FS Block 1638604092:Allocated FS Block 655724093:Allocated FS Block 655764094:Allocated FS Block 655844095:Allocated FS Block 65589
dqcd
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -62
4a Camada - METADADOS4a Camada - METADADOS
““Camada de Camada de MetadadosMetadados””
(Análise de nformações extraídas (Análise de nformações extraídas da Tabela de Inodeda Tabela de Inode
Metadados do Sistema de Metadados do Sistema de Arquivos)Arquivos)
dqcdProf. Sandro Melo – [email protected] -- www.4nix.com.br -63
4a Camada - METADADOS4a Camada - METADADOS
Camada Metadados
Um vez que tenhamos acesso ao sistema de arquivos, inicia a busca por informações de arquivos já acessados ou mesmo inseridos no sistema. Buscando evidências relacionadas ao incidente.
Tratar informações de metadados é uma ação importante para buscar estas informações
dqcdProf. Sandro Melo – [email protected] -- www.4nix.com.br -64
4a Camada - METADADOS4a Camada - METADADOS
Ferramentas para Metadados
ils – informações gerais de Inode.icat - permite a cópia de arquivos a partir de endereçamento de Inode.istat - possibilita mostrar informações estruturais de Inode.ifind – busca informações de estruturas de Inodemactime – permite gerar timeline a partir da informações de Metadados (inode).
dqcdProf. Sandro Melo – [email protected] -- www.4nix.com.br -65
4a Camada - METADADOS4a Camada - METADADOS
Metadados e Dados
dstat – Mostra informações estáticas de bloco de dados.dls - Permite listar informações de áreas alocadas, não alocadas e slackspace.dcat – Lista informações de blocos de dados.dcalc– trata informações de área não alocadas.
dqcdProf. Sandro Melo – [email protected] -- www.4nix.com.br -66
4a Camada - METADADOS4a Camada - METADADOS
Timeline – Linha do tempo do Imagem
Realizar uma análise dos horários dos arquivos:
MAC time (Modified, Accessed, Created/changed)Quando o sistema operacional foi instaladoQuando a maioria das atualizações foram realizadasQuando o sistema foi utilizado pela última vezIncluir qualquer outro detalhe que possa estar relacionado com a utilização do sistema
dqcdProf. Sandro Melo – [email protected] -- www.4nix.com.br -67
4a Camada - METADADOS4a Camada - METADADOS
Gerando Timeline com SleuthkitCriando uma linha do tempo da imagem
# fls -alrpm / imagem.img | tee body
# mactime -b body
Criando uma timeline de um período definido
# fls -alrpm / imagem.img | mactime -z GMT-3 01/01/2000 01/01/2009 | tee timeline.txt
dqcdProf. Sandro Melo – [email protected] -- www.4nix.com.br -68
4a Camada - METADADOS4a Camada - METADADOS
Gerando Timeline com SleuthkitCriando uma linha do tempo da imagem montada
# mount imagem /media/imagem -o loop,noexec,nodev,noatime,ro
# fls -alrpm /media/imagem /dev/loop0 | mactime -z GMT-3 01/01/1970 09/08/2007 | tee timeline.txt
dqcdProf. Sandro Melo – [email protected] -- www.4nix.com.br -69
4a Camada - METADADOS4a Camada - METADADOS
Gerando Timeline com Sleuthkit
Criando uma linha do tempo da imagem de um intervalo de tempo definido:
# fls -alrpm imagem.img | mactime -z GMT-3 01/01/2006 09/08/2007 | tee timeline.txt
dqcdProf. Sandro Melo – [email protected] -- www.4nix.com.br -70
4a Camada - METADADOS4a Camada - METADADOS
Pesquisando Metadados
Exemplificando a análise, a imagem em busca de informações sobre as áreas alocadas e na sequência a criação um arquivo de strings:
# dls -a -f ext imagem.img > imagem.img.dls
# strings -a imagem.img.dls > imagem.img.dls.alocadas.strings
# less imagem.img.dls.alocadas.strings
dqcdProf. Sandro Melo – [email protected] -- www.4nix.com.br -71
4a Camada - METADADOS4a Camada - METADADOS
Pesquisando MetadadosExemplificando a análise, a imagem em busca de informações sobre as áreas “não” alocadas e na sequência a criação um arquivo de strings:
# dls -A -f ext imagem.img > imagem.img.dls
# strings -a imagem.img.dls > imagem.img.dls.naoalocadas.strings
# less imagem.img.dls.naoalocadas.strings
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -72
““Camada de Camada de ArquivosArquivos””
(Análise de nformações dos (Análise de nformações dos arquivos em busca de arquivos em busca de
identificação de potenciais identificação de potenciais artefatos)artefatos)
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -73
Ferramentas para Perícia na Camada de Arquivos
fls – possibilita consultar informações de arquivos e diretórios em uma imagem.ffind - possibilita consultar informações de arquivos e diretórios em uma imagem a partir de endereço de Inode.soter – possibilita ordenar arquivos de acordo do tipo.
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -74
““Montagem de ImagemMontagem de Imagem””
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -75
Montando a Imagem
É recomendável que a análise da imagem forense do disco rígido seja um processo executado com cautela, iniciando com a preparação do acesso a mídia denominado “montagem”. A montagem da imagem de uma partição para fins de análise deve ser efetuada de forma que o sistema de arquivos seja para somente leitura, não tenha suporte a arquivos de dispositivos e também não tenha suporte a executável
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -76
Montando a Imagem de uma unica partição
# mount /pericia/imagem.img /img/ -t ext3 -o loop,ro,noatime,nodev,noexec
# mount | tail -1
/pericia/imagem.img on /img/ type ext3 (rw,noexec,nodev,loop=/dev/loop1)
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -77
Montando a Imagem de um disco com multiplas partições
Mas para análise de uma imagem de todo um disco rígido é necessário a utilização do comando losetup:
# losetup /dev/loop0 /imagem_hd.img
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -78
Montando um partição a partir de uma Imagem
Considero o cenario, onde deseja-se montar a 2 partição listada, considerando que o setor inicial da partição é 73. Dessa forma é demandado que este valro seja multiplicado por 512 para calcular o valor de offset.
Expr 73 \* 51
O que resulta como valor de offset 37376
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -79
Montando um partição a partir de uma Imagem de todo um Disco
Mas para análise de uma imagem de todo um disco rígido é necessário a utilização do comando losetup:# sfdisk -luS HD_coleta.img
read failed: Inappropriate ioctl for deviceDisk HD_coleta.img: cannot get geometryDisk HD_coleta.img: 171 cylinders, 255 heads, 63 sectors/trackWarning: extended partition does not start at a cylinder boundary.DOS and Linux will interpret the contents differently.Warning: The partition table looks like it was made for C/H/S=*/16/63 (instead of 171/255/63).For this listing I'll assume that geometry.Units = sectors of 512 bytes, counting from 0
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -80
Montando um partição a partir de uma Imagem
Device Boot Start End #sectors Id SystemHD.img1 * 63 72575 72513 83 LinuxHD.img2 72576 2116799 2044224 5 ExtendedHD.img3 0 - 0 0 EmptyHD.img4 0 - 0 0 EmptyHD.img5 72639 278207 205569 83 LinuxHD.img6 278271 410255 131985 82 Linux swap / SolarisHD.img7 410319 513071 102753 83 LinuxHD.img8 513135 2116799 1603665 83 Linux
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -81
Montando um partição a partir de uma Imagem
# losetup -a
# expr 410319 \* 512
210083328
# losetup -o 210083328 /dev/loop2 HD_coleta.img
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -82
Montando um partição a partir de uma Imagem
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 41294860 4924120 34273056 13% /
/dev/mapper/vg_ichegeki-LV_home
146166336 7445736 131295784 6% /home
tmpfs 1026832 1020 1025812 1% /dev/shm
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -83
Montando um partição a partir de uma Imagem
# losetup -a
/dev/loop2: [fd01]:131073 (/home/c4/DIGITAL_FORENSIC/forensic_duplic*), offset 210083328
# mount -t ext2 /dev/loop2 /media/loop0p2 -o loop
# cd /media/loop0p2
# ls
arpwatch cache db ftp lib local lock log lost+found mail nis opt preserve run spool tmp www yp
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -84
Montando a Imagem
Mas para análise de uma imagem de todo um disco rígido é necessário a utilização do comando losetup:
# losetup /dev/loop0 /imagem_hd.img
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -85
O uso do comando sorter
Outra forma de recuperar arquivos seria o foremost, que faz de forma automática uma análise completa no Sistema de Arquivo.
# losetup /dev/loop0 imagem.imgsorter -f ext -l /dev/loop0
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -86
Relacionando Arquivos por TIPO
Uma ação importante é levantar a lista de todos os arquivos que existem na mídia analisada, tipificando-os quanto ao formato. Para essa tarefa o comando SORTER é a ferramenta recomendada
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -87
Relacionando Arquivos por TIPO
Uma ação importante é levantar a lista de todos os arquivos que existem na mídia analisada, tipificando-os quanto ao formato. Para essa tarefa o comando SORTER é a ferramenta recomendada
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -88
Busca de artefatos com FIND
Buscar informações sobre arquivos com direitos especiais de SUID e SGID que podem ser usados em malware com backdoors:
# find /img/ -type f \(-perm -04000 -o -perm -02000 \) -exec ls -lg {} \;
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -89
Busca de artefatos com FIND
Buscar por arquivos e diretórios que tenham nome utilizando espaço em branco:
# find /img/ -name "*[ ]*" ;
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -90
Busca de artefatos com FIND
Identificar arquivos sem dono ou grupo definido, que poderão ser arquivos instalados no sistema de forma arbitrária:
# find /img/ -type f \(-nouser -o -nogroup \) -exec ls -ldg {} \;
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -91
Busca de artefatos com FIND
Buscar por arquivos e diretórios ocultos, ou seja, que iniciam com “.”, que em sistema Like Unix caractiza um arquivo ou diretórios como oculto. Recurso muito utilizado para buscar esconder informações e ferramentas utilizadas por um invasor:
# find /img/ -type f \( -name '.??*' -o -name '.[^.]' \) -exec ls -lg {} \;
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -92
Busca de artefatos com FIND
Muitos invasores buscam esconder informações em diretórios do sistema destinados para dados específicos e que não são constamente acessados, um exemplo disto são diretórios como /dev e /lib:
# find /img/dev/ -not -type c -not -type b ls -l
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -93
Busca de artefatos com FIND
Identificar arquivos que estejam com seu tempo de acesso ou metadados modificados após um determinado arquivo, é outro tipo de busca que deve ser realizada, pois pode possibilitar a identificação de outros potenciais artefatos:
# find /img/ -anewer /img/etc/shadow ls -lha
# find /img/ -cnewer /img/etc/shadow ls -lha
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -94
Busca de artefatos com FIND
Identificar arquivos que estejam com seu tempo de acesso dentro de uma determinada janela de tempo também é um tipo de pesquisa útil para identificação de artefatos, neste caso é interessante pesquisa por atime e mtime:
# find /img/ -atime 3 ls -lha
# find /img/ -ctime 3 ls -lha
# find /img/ -mtime 3 ls -lha
# find /img/ -mtime 3 -or -atime 3 ls -lha
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -95
Busca de artefatos com FIND
Identificar arquivos que estejam com seu tempo de acesso após um determinado arquivo, é outro tipo de busca que deve ser realizada, pois pode possibilitar a identificação de outros potenciais artefatos:
# find /img/ -anewer /img/etc/shadow ls -lha
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -96
Gerando Strings da Imagem
Gerandor um arquivo de strings da imagem
# strings -a imagem.img | tee imagem.img.strings
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -97
Buscando MalwareUtilizar ferramentas que buscam por arquivos que identifique a instalação de rootkits no sistema. uma ferramenta interessante para esta tarefa utilizar ferramentas com chkrootkit e rkhunter para identificar sinais de
comprometimento da máquina
# chkrootkit -r /img/
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -98
Buscando Malware
Buscando informações sobre Malware com rkhunter:
# rkhunter –check –sk --rwo --rootdir img/ --createlogfile rkhunter_forensic.log
Utilize o comando find na imagem montada para identificar informações interessantes que podem ter sido criadas pelo invasor
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -99
Buscando Malware
Buscando informações sobre Malware com Clamav:
# clamascan -i -r -d /resultado img/
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -100
““ Evidências Evidências nos Slackspacesnos Slackspaces””
buscando provas buscando provas nas sobrasnas sobras
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -101
Periciando SlackspaceA recuperação de Slackspace é simples e na prática já ocorre quando o Perito extrai todas as strings da imagem.
Mas é recomendável que seja feita uma extração exclusiva, lembrando que uma evidência computacional pode ser tão pequena e ao mesmo tempo tão significativa como os 4 bytes de um endereçamento IP.
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -102
Periciando Slackspace
Organizando informação dos Slackspaces.
# dls -s imagem.img | slackspace.dls
# strings -a slackspace > slackspace.dls.strings
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -103
““Perícia em áreas Perícia em áreas Não AlocadasNão Alocadas””
rescuperando arquivos rescuperando arquivos que possam ser artefatosque possam ser artefatos
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -104
RecuperaçãoA recuperação de arquivos é uma atividade necessária em praticamente toda Post Mortem, todavia é uma tarefa que demanda ferramental destinado para mesma.
Felizmente não são poucas as opções para um Perito quando se trata de ferramentas livres
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -105
Ferramentas Úteis
magicrescue – em conjunto com DLS permite a recuperação de arquivosforemost - recuperação de arquivos a partir de a assinaturas.ddrescue - recuperação de arquivos a partir de uma imagem.
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -106
RecuperaçãoTentando recuperar um arquivo a partir de uma imagem:
a) identifique os endereços (inodes)
# fls -t ext imagem.img > lista.imagem.txt
# cat lista.imagem.txt
b) recuperando usando icat indicado o INODE
# icat imagem.img 4157 > arquivo.ppt
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -107
Recuperação com ForemostOutra forma de recuperar arquivos seria o foremost, que faz de forma automática uma análise completa no Sistema de Arquivo.
# foremost -c foremost.conf -i imagem.img -o /recovery -T
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -108
Recuperação com ForemostOutra forma de recuperar arquivos seria o foremost, que faz de forma automática uma análise completa no Sistema de Arquivo.
# foremost -c foremost.conf -i imagem.img -o /recovery -T
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -109
Recuperação com ForemostOutra forma de recuperar arquivos seria o foremost, que faz de forma automática uma análise completa no Sistema de Arquivo.
# foremost -c foremost.conf -i imagem.img -o /recovery -T
5a Camada - ARQUIVOS5a Camada - ARQUIVOS
Prof. Sandro Melo – [email protected] -- www.4nix.com.br -110
Recuperação com ForemostOutra forma de recuperar arquivos seria o foremost, que faz de forma automática uma análise completa no Sistema de Arquivo.
# foremost -c foremost.conf -i imagem.img -o /recovery -T