Sunteți pe pagina 1din 115

Its specialization in FOSS solutions

"Free and Open Source Software"


1

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


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.

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


Prof. Sandro Melo
sandro@4nix.com.br

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


“HAND ON
PORT MORTEM
FORENSE ANALYSIS”
(Escovando bits, garimpando bytes
em busca de evidências e Artefatos
em um Sistema GNU-Linux)
versão Tutorial

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


“Conceitos Iniciais”

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


o s :
eit
o nc s d e
C ci d e n t e
a In a
st a a n ç m
p o g u r c o
e s S e s e
R re n
F o e
ç ã o iv r
t a L
p u a re
m tw
Co S o

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


Prevenir é o
melhor remédio.
Resposta a Incidentes

Quando o pior já aconteceu


o que resta é mitigar.
Computação Forense

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


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.

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


FORENSE DIGITAL

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.

FORENSE INVESTIGAÇ APARATO


DIGITAL = ÃO DIGITAL + LEGAL

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


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.

10

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


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

11

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


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.

12

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


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;

13

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


PRINCÍPIO DE LOCARD

“Qualquer indivíduo ou coisa que entra no cenário


de um crime, ao sair do mesmo, leva e deixa
alguma coisa no local”.

14

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


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ção
Disponibilizar ferramentas FOSS
(Free and Open Source Software);

15

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


PRINCÍPIOS FORENSES

Registrar tudo
Analisar todas as evidências coletadas
Relatar tudo o que encontrar
Minimizar perda de dados

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


Attack Sophistication vs.
Intruder Technical Knowledge
Cross site scripting

“stealth” / advanced
Tools
High scanning techniques

packet spoofing denial of service


sniffers distributed
attack tools
Intruder sweepers www attacks
Knowledge
automated probes/scans
GUI
back doors
disabling audits network mgmt. diagnostics
hijacking
burglaries sessions
Attack exploiting known vulnerabilities
Sophistication
password cracking
self-replicating code
password guessing
Attackers
Low
1980 1985 1990 1995 2000
© 2001 by Carnegie Mellon University Intelligence - page 8

18

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


19

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


PROCESSO DE RESPOSTA A INCIDENTE

Implementação de medidas de segurança;


estratégias de resolução e recuperação

Preparação Detecção Resposta Reconstrução


pré-incidente

Relatório Perícia Computacional Forense


Final Coleta de Análise de
Artefatos Artefatos

20

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


1a Camada - Fisica

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


Relação dos Dados Perícias
Coletados

Post Mortem Análise

Live Network
Análise Análise

22

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


Volatilidade vs Tempo de Vida
Mídias
NETWORK FORENSE
Disco nos ativos de Rede
Rígido Análise Post Mortem
Estado Análise In Vivo
Tempo de Vida

do S.O.
Memória NETWORK
RAM
FORENSE
Tráfego
da Rede
Memória de
periféricos
Registradores
Cache

Nível Volatilidade
Volatilidade vs Tempo de Vida

Forense
Tempo de Vida

Post Mortem
Mídias

Disco Rígido Forense


Estado do S.O. de Rede

Memória RAM

Tráfego da Rede
Forense
In Vivo Memória de periféricos

Registradores Cache

Nível Volatilidade
Network Forensic
Levantamento de
Informações informações
de atividade de de outros ativos
rede de rede
Coleta da Evidências levantadas na
Network Forensic Analysis Live Forensic

Análise de Logs
e correlação.

Encaminhamento dos
Artefatos e informações para
Post Mortem Forensic
Análise de
arquivos PCAP
(IDS / HoneyPot)

Recuperação de
Artefatos
Post Mortem Análise
Análise do Criação da
Disco Rígido Timeline
Coleta da Evidências (Atuando nas
Live Forensic Analysis 5 camdas)
Network Forensic Analysis
Análise do
Sistema de
Arquivos

Elaboração do Análise
de Identificação de
Laudo Pericial
Artefatos Potencias
Artefatos
Análise Análise
Estática Dinâmica
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.

27

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


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.

28

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


Post Mortem – Correlacionamento

Correlação Correlação
Live Forensic Net Forensic

Análise em Análise de
5 camadas Strings do HD

29

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


Mapa de Bytes
A 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

30

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


Strings vs Regex

grep -i“tar\.gz$” imagem.string

egrep --regexp=“\.tgz|\.zip|\.bz2|\.rar|\.c”
imagem.string

31

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


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

32

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


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

33

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


Strings em lote
Uma 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

34

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


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

35

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


“Análise
em
Camadas ”
(Análise de informações do Disco
e/ou Imagem)
36

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


As 5 camadas
Análise da informações de
Arquivos Arquivo (identificação de
Artefatos)

Informações extraída da
Metadado tabela de INODE

Sistema Informações específicas


de Arquivos de arquivos e diretórios

Informações da estrutura de
Dados setor de boot, particionamento,
tipo sistema de arquivos,

Disco Rígido (idenficação do


Fisica
Hardware)

37

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


“Camada Física”
(Análise de nformações do Disco
e/ou Imagem)

1a Camada - Fisica

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


Camada 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).

1a Camada - Fisica

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


“Camada de
Dados”
(Análise de informações do setor
de Boot e de Particionamento)

2a Camada - DADOS

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


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.

2a Camada - DADOS

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


Ferramentas Úteis
disk_stat – informações básicas do disco
fdisk - informações de particionamento
sfdisk - informações de particionamento
testdisk – possibilita além de consultar, recuperar
estrutura de particionamento de um disco ou imagem
img_stat - possibilita visualizar informações do
tamanho da imagem
mmstat – informações básicas de uma imagem
mmls – informações da estrutura da imagem

2a Camada - DADOS

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


Ferramentas Úteis

scsiinfo – informações de dispositivos scsi


disktype – informações genéricas de um disco rigido
file – possibilita também extrair informações da
estrutura do disco rigido
Mount e losetup – possibilitam manipulação de imagens
de mídias.

2a Camada - DADOS

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


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

2a Camada - DADOS

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


#lshw Exemplo de Uso do LSHW
c4ri0c4.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
2a Camada - DADOS

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


Exemplo de Uso do DISK_STAT

disk_stat /dev/sda
Maximum Disk Sector: 156301487
Maximum User Sector: 156301487
0 - 0 0 Empty

2a Camada - DADOS

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


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: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: ST380013AS Rev: 3.18
Type: Direct-Access ANSI SCSI revision: 05

2a Camada - DADOS

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


Exemplo de Uso do SCSIINFO
scsiinfo -a /dev/sda
Scsiinfo version 1.7(eowmob)

Inquiry command
---------------
Relative Address 0
Wide bus 32 0
Wide bus 16 0
Synchronous neg. 0
...................
....................
Vendor: ATA
Product: ST380211AS
Revision level: 3.AA

Serial Number ' 5PS0GVN0'


Unable to read Rigid Disk Geometry Page 04h
Data from Caching Page

2a Camada - DADOS

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


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


2a Camada - DADOS

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


Exemplo de Uso do FDISK

fdisk -lu /dev/sda

Disk /dev/sda: 80.0 GB, 80026361856 bytes


255 heads, 63 sectors/track, 9729 cylinders, total 156301488 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0xcb0acb0a

Device Boot Start End Blocks Id System


/dev/sda1 * 63 8384574 4192256 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 8385930 156296384 73955227+ 8e Linux LVM

2a Camada - DADOS

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


Exemplo de Uso do FDISK
fdisk -lu HD_coleta.img
read failed: Inappropriate ioctl for device
You must set cylinders.
You can do this from the extra functions menu.

Disk HD_coleta.img: 0 MB, 0 bytes


16 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System


HD_coleta.img1 * 63 72575 36256+ 83 Linux
HD_coleta.img2 72576 2116799 1022112 5 Extended
Partition 2 has different physical/logical endings:
phys=(1023, 15, 63) logical=(2099, 15, 63)
HD_coleta.img5 72639 278207 102784+ 83 Linux
HD_coleta.img6 278271 410255 65992+ 82 Linux swap / Solaris
HD_coleta.img7 410319 513071 51376+ 83 Linux
HD_coleta.img8 513135 2116799 801832+ 83 Linux

2a Camada - DADOS

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


Exemplo de Uso do FDISK

fdisk -lu /dev/sda

Disk /dev/sda: 80.0 GB, 80026361856 bytes


255 heads, 63 sectors/track, 9729 cylinders, total 156301488 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0xcb0acb0a

Device Boot Start End Blocks Id System


/dev/sda1 * 63 8384574 4192256 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 8385930 156296384 73955227+ 8e Linux LVM

2a Camada - DADOS

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


Exemplo de Uso do SFDISK

# sfdisk -luS /dev/sda

Disk /dev/sda: 9729 cylinders, 255 heads, 63 sectors/track


Units = 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

2a Camada - DADOS

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


Exemplo de Uso do MMLS

# mmls /dev/sda
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

Slot Start End Length Description


00: Meta 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000000 0000000062 0000000063 Unallocated
02: 00:00 0000000063 0008384574 0008384512 Linux (0x83)
03: ----- 0008384575 0008385929 0000001355 Unallocated
04: 00:01 0008385930 0156296384 0147910455 Linux Logical Volume
Manager (0x8e)
05: ----- 0156296385 0156301487 0000005103 Unallocated

2a Camada - DADOS

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


mmls HD_coleta.img Exemplo de Uso do MMLS
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

Slot Start End Length Description


00: Meta 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000000 0000000062 0000000063 Unallocated
02: 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 Unallocated
06: 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

2a Camada - DADOS

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


Exemplo de Uso do MMLS

# mmls /dev/sda
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

Slot Start End Length Description


00: Meta 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000000 0000000062 0000000063 Unallocated
02: 00:00 0000000063 0008384574 0008384512 Linux (0x83)
03: ----- 0008384575 0008385929 0000001355 Unallocated
04: 00:01 0008385930 0156296384 0147910455 Linux Logical Volume
Manager (0x8e)
05: ----- 0156296385 0156301487 0000005103 Unallocated

2a Camada - DADOS

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


Exemplo de Uso do DISKTYPE
# disktype /dev/sda

--- /dev/sda
Block device, size 74.53 GiB (80026361856 bytes)
GRUB boot loader, compat version 3.2, boot drive 0xff
DOS/MBR partition map
Partition 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

2a Camada - DADOS

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


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

2a Camada - DADOS

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


“Camada de
Sistema de
Arquivos”
(Análise de nformações a
estrutura de arquivos utilizada)

3a Camada – SISTEMA DE ARQUIVOS


Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -59
Ferramentas para Sistema de Arquivo

fsstat – informações estatíticas de como está


organizada a partição
jcat - informações de um sistema de arquivo
journaling
jls - lista informações da estrutura do journaling.

3a Camada – SISTEMA DE ARQUIVOS


Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -60
Exemplo de Uso do FSSTAT

# fsstat imagem.img
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: Ext3
Volume Name: /
Volume ID: ef3c387a7bc4ac9fdb1140dcec080dae
Last Written at: Wed Mar 28 11:37:26 2007
Last Checked at: Tue Mar 27 05:53:49 2007
Last Mounted at: Wed Mar 28 11:37:26 2007
Unmounted properly
Last mounted on:
Source OS: Linux
Dynamic Structure
Compat Features: Journal,
InCompat Features: Filetype, Needs Recovery,
Read Only Compat Features: Sparse Super,

3a Camada – SISTEMA DE ARQUIVOS


Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -61
Exemplo de Uso do JCAT

# jcat -f ext tambaquicorp.img 3001


=
.??
..??
km3xsadan.sh>
sadan.sh.1?
-----

3a Camada – SISTEMA DE ARQUIVOS


Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -62
Exemplo de Uso do JLS
# jls -f ext tambaquicorp.img | tail -n 10
4086:Allocated FS Block 164013
4087:Allocated FS Block 163957
4088:Allocated FS Block 163962
4089:Allocated FS Block 105
4090:Allocated FS Block 131115
4091:Allocated FS Block 163860
4092:Allocated FS Block 65572
4093:Allocated FS Block 65576
4094:Allocated FS Block 65584
4095:Allocated FS Block 65589

3a Camada – SISTEMA DE ARQUIVOS


Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -63
“Camada de
Metadados”
(Análise de nformações extraídas
da Tabela de Inode
Metadados do Sistema de
Arquivos)

4a Camada - METADADOS
dqcd
Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -64
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

4a Camada - METADADOS
dqcd
Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -65
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
Inode
mactime – permite gerar timeline a partir da
informações de Metadados (inode).
4a Camada - METADADOS
dqcd
Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -66
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.

4a Camada - METADADOS
dqcd
Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -67
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 instalado
Quando a maioria das atualizações foram realizadas
Quando o sistema foi utilizado pela última vez
Incluir qualquer outro detalhe que possa estar
relacionado com a utilização do sistema

4a Camada - METADADOS
dqcd
Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -68
Gerando Timeline com Sleuthkit
Criando 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

4a Camada - METADADOS
dqcd
Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -69
Gerando Timeline com Sleuthkit
Criando 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

4a Camada - METADADOS
dqcd
Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -70
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

4a Camada - METADADOS
dqcd
Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -71
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

4a Camada - METADADOS
dqcd
Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -72
Pesquisando Metadados
Exemplificando 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

4a Camada - METADADOS
dqcd
Prof. Sandro Melo – sandro@4nix.com.br -- www.4nix.com.br -73
“Camada de
Arquivos”
(Análise de nformações dos
arquivos em busca de
identificação de potenciais
artefatos)

5a Camada - ARQUIVOS

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


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 - ARQUIVOS

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


“Montagem de Imagem”

5a Camada - ARQUIVOS

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


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 - ARQUIVOS

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


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 - ARQUIVOS

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


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 - ARQUIVOS

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


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 - ARQUIVOS

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


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 device


Disk HD_coleta.img: cannot get geometry
Disk HD_coleta.img: 171 cylinders, 255 heads, 63
sectors/track
Warning: 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 - ARQUIVOS

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


Montando um partição a partir de uma
Imagem

Device Boot Start End #sectors Id System


HD.img1 * 63 72575 72513 83 Linux
HD.img2 72576 2116799 2044224 5 Extended
HD.img3 0 - 0 0 Empty
HD.img4 0 - 0 0 Empty
HD.img5 72639 278207 205569 83 Linux
HD.img6 278271 410255 131985 82 Linux
swap / Solaris
HD.img7 410319 513071 102753 83 Linux
HD.img8 513135 2116799 1603665 83 Linux

5a Camada - ARQUIVOS

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


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 - ARQUIVOS

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


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 - ARQUIVOS

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


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 - ARQUIVOS

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


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 - ARQUIVOS

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


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.img


sorter -f ext -l /dev/loop0

5a 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 - ARQUIVOS

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


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 - ARQUIVOS

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


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 - ARQUIVOS

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


Busca de artefatos com FIND

Buscar por arquivos e diretórios que tenham


nome utilizando espaço em branco:

# find /img/ -name "*[ ]*" ;

5a Camada - ARQUIVOS

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


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 - ARQUIVOS

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


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 - ARQUIVOS

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


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 - 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 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 - 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 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 - ARQUIVOS

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


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 - ARQUIVOS

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


Gerando Strings da Imagem

Gerandor um arquivo de strings da imagem

# strings -a imagem.img | tee imagem.img.strings

5a Camada - ARQUIVOS

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


Buscando Malware
Utilizar 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 - ARQUIVOS

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


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 - ARQUIVOS

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


Buscando Malware

Buscando informações sobre Malware com


Clamav:
# clamascan -i -r -d /resultado img/

5a Camada - ARQUIVOS

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


“ Evidências
nos Slackspaces”
buscando provas
nas sobras

5a Camada - ARQUIVOS

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


Periciando Slackspace
A 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 - ARQUIVOS

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


Periciando Slackspace

Organizando informação dos Slackspaces.

# dls -s imagem.img | slackspace.dls

# strings -a slackspace > slackspace.dls.strings

5a Camada - ARQUIVOS

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


“Perícia em áreas
Não Alocadas”
rescuperando arquivos
que possam ser artefatos

5a Camada - ARQUIVOS

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


Recuperação
A 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 - ARQUIVOS

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


Ferramentas Úteis

magicrescue – em conjunto com DLS permite a


recuperação de arquivos
foremost - recuperação de arquivos a partir de a
assinaturas.
ddrescue - recuperação de arquivos a partir de
uma imagem.

5a Camada - ARQUIVOS

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


Recuperação
Tentando 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 - ARQUIVOS

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


Recuperação com Foremost
Outra 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 - ARQUIVOS

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


Recuperação com Foremost
Outra 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 - ARQUIVOS

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


Recuperação com Foremost
Outra 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 - ARQUIVOS

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


Recuperação com Foremost
Outra 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 - ARQUIVOS

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


Conclusion

Existem muitas ferrametnas FOSS


interessantes para realizar um Post Mortem
Forensic, sendo muitas delas também
ferramentas automatizadas, tendo o ponto de
vista das 5 camadas, que permite a um Perito
realizar um processo detalhado e também que
possibilitam realizar testes específicos em um
processo Hand On.

113

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


Camada Camada de
Camada de Dados Meta Dados:
Identificacão de
Fisica Idenfificacão de Levantamento
Camada de Artefatos,
Informacões Informacões De informacoes
Sistema de Recuperacão de
da Mídia sobre a Das tabelas
Arquivos: Arquivos
e imagem, Estrutura de Alocacao
E dentificacão Analise
para fins Particionamento de arquivos,
Documentais E ID dos tipos Do Sistema de Hash
Informacoes,
e validacão de Arquivos Identificacao
De Particões TimeLine
da cadeia Utilizados Malware
da Midia Informacões das
de Custódia
Areas naoA
Alococadas
Resumo – Processo em 5 Camadas
Inicio Camada de
Cópia bit by bit Camada Física Dados
Informações das
das mídias Mídias
(cadeia de custória)

Strings Extracts Camada de


Sistema de
& arquivos
Analysis with Regex

Análise de Camada de
Artefatos metadados

File
Carving Camada de
Relatório arquivos

S-ar putea să vă placă și