Postmortem Forense TUTORIAL PTBR

Preview:

Citation preview

1

Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -1

Its specialization in FOSS solutions "Free and Open Source Software"

2

Prof. Sandro Melo – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- www.4nix.com.br -3

Prof. Sandro MeloProf. Sandro Melosandro@4nix.com.brsandro@4nix.com.br

4 4

Prof. Sandro Melo – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- www.4nix.com.br -5

““Conceitos IniciaisConceitos Iniciais””

6

Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -6

Conceitos:

Resposta a Incidentes de

Segurança

Computação Forense com

Sotware Livre

7

Prof. Sandro Melo – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- www.4nix.com.br -19

1a Camada - Fisica1a Camada - Fisica

20

Prof. Sandro Melo – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- www.4nix.com.br -74

““Montagem de ImagemMontagem de Imagem””

5a Camada - ARQUIVOS5a Camada - ARQUIVOS

Prof. Sandro Melo – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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 – sandro@4nix.com.br -- 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