117
UNIVERSIDADE FEDERAL DE GOI ´ AS - UFG CAMPUS CATAL ˜ AO CURSO DE CI ˆ ENCIA DA COMPUTAC ¸ ˜ AO Forense Computacional: T´ ecnicas e Ferramentas Autor: Marcos Luiz de Paula Bueno Orientador: Prof. Ms. Ivan da Silva Sendin Catal˜ ao - 2007

Forense Computacional Tecnicas Ferramentas

Embed Size (px)

Citation preview

Page 1: Forense Computacional Tecnicas Ferramentas

UNIVERSIDADE FEDERAL DE GOIAS - UFGCAMPUS CATALAO

CURSO DE CIENCIA DA COMPUTACAO

Forense Computacional: Tecnicas e Ferramentas

Autor: Marcos Luiz de Paula Bueno

Orientador: Prof. Ms. Ivan da Silva Sendin

Catalao - 2007

Page 2: Forense Computacional Tecnicas Ferramentas

i

Marcos Luiz de Paula Bueno

Forense Computacional: Tecnicas e Ferramentas

Monografia apresentada ao Curso de

Ciencia da Computacao da Universidade

Federal de Goias - Campus Catalao como

requisito parcial para obtencao do tıtulo de

Bacharel em Ciencia da Computacao.

Area de Concentracao: Seguranca da Informacao

Orientador: Prof. Ms. Ivan da Silva Sendin

Catalao - 2007

Page 3: Forense Computacional Tecnicas Ferramentas

ii

Marcos Luiz de Paula Bueno

Forense Computacional: Tecnicas e Ferramentas

Monografia apresentada e aprovada em 26 de junho de 2007, pela Banca Examinadora:

Prof. Ivan da Silva Sendin, Ms. - Presidente da Banca

Prof. Roberto Mendes Finzi Neto, Dr.

Prof. Marcio Antonio Duarte, Ms.

Page 4: Forense Computacional Tecnicas Ferramentas

iii

Agradecimentos

A Deus por uma existencia repleta de oportunidades e de pessoas maravilhosas ao meu

redor.

Aos meus pais, Marcos e Celina, por todo o amor, compreensao e apoio dados desde o

inıcio, em especial durante a realizacao deste trabalho.

Ao meu irmao, Matheus, pelo companheirismo, amizade e auxılio nos momentos finais.

Ao meu orientador, Ivan Sendin, pela orientacao prestada e pela sugestao do tema.

Ao meu pai, que por diversas vezes me auxiliou como co-orientador informal.

Aos meus companheiros de banda, Ayres e Matheus, pela amizade e bons momentos que

passamos.

Aos colegas, professores e funcionarios da UFG, em especial aos responsaveis pela biblio-

teca por sua prestatividade.

Page 5: Forense Computacional Tecnicas Ferramentas

iv

A minha famılia, em especial

aos meus pais, Marcos e Celina, e aos

meus queridos tios Joao e Lucia, que em

vida foram exemplos de pessoas humanas.

Page 6: Forense Computacional Tecnicas Ferramentas

v

“Ciencia sem consciencia e a ruına da alma”

(Cesar Lattes)

Page 7: Forense Computacional Tecnicas Ferramentas

Resumo

Bueno, M. L. de P., Forense Computacional: Tecnicas e Ferramentas, Departamento de

Ciencia da Computacao, Campus Catalao, UFG, Catalao, Brasil, 2007, 116f.

A popularizacao do computador e da Internet tem sido vista por indivıduos mal intencio-

nados como mais um meio de realizar um crime. Ao mesmo tempo em que a Internet trouxe

benefıcios, talvez hoje indispensaveis a nossa sociedade, os recursos que as tecnologias que

a envolvem sao um caminho relativamente facil e atraente para criminosos. Diante disso, foi

preciso criar uma nova area cientıfica que pudesse ser incorporada as ciencias da investigacao,

o que culminou na criacao da forense computacional. A crescente demanda de perıcias

executadas em meio computacional e consequencia direta da crescente quantidade de acoes

ilegais que vem sendo executadas no mundo digital. Como em qualquer investigacao forense,

os vestıgios deixados na cena de um crime podem provar algo, seja inocencia ou culpa, e

na forense computacional nao e diferente. O intuito e auxiliar cientificamente um processo

criminal em busca do esclarecimento e justa resolucao de um crime. Neste trabalho, a forense

computacional e apresentada, e algumas de suas aplicacoes sao descritas, como a recuperacao

de dados em varios aspectos, analise de artefatos de Web e extracao de evidencias ocultas, alem

de discussoes a respeito do modus operandis de praticas periciais em computador. Sao mostra-

das algumas situacoes praticas de perıcias, exemplificadas por ferramentas e procedimentos,

incluindo, ao final, o desenvolvimento de um prototipo para recuperar dados na area de swap.

Palavras-Chave: perıcia forense computacional, recuperacao de dados, seguranca da

informacao, swap.

vi

Page 8: Forense Computacional Tecnicas Ferramentas

Abstract

Bueno, M. L. de P., Forense Computacional: Tecnicas e Ferramentas, Department of Compu-

ter Science, Campus Catalao, UFG, Catalao, Brazil, 2007, 116f.

The common use of computers and the Internet brings ilegal actions by criminals who

saw these resources as another way to commit a crime. Parallel to the benefits the Internet

brings to the world, maybe indispensable today, the technologies that were developed can be

an easy and attractive way to criminals. Therefore, it was necessary to create a new academic

field of research that could be incorporated into forensic science, culminating in the creation

of computer forensics. The growing demands for forensics on computers is a direct effect of

the increasing amount of ilegal actions committed in the digital world. As with any forensic

investigation, where footprints left in a crime scene can prove something, wheter guilty or

innocence, in computer forensics it is not different. The aim is to provide scientific knowledge

in a criminal process to elucidate and fairly solve a crime. In this work, computer forensics

is presented with a few of its applications, like data recover in various schemes, Web artifacts

analysis and extraction of hidden evidence, in addition to some discussion about the forensic

modus operandis in computing. Practical situations of forensics are showed, with examples for

tools and procedures, including the development of a prototype to recover data in swap space.

Keywords: computer forensics, data recover, information security, swap space.

vii

Page 9: Forense Computacional Tecnicas Ferramentas

Sumario

Resumo vi

Abstract vii

Lista de Figuras xi

Lista de Tabelas xii

1 Introducao 131.1 Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

1.2 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.3 Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 Crimes de Computador 152.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 Protecao da Informacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

2.3 Ataques e Vulnerabilidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.4 A Necessidade de Novas Leis . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.5 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3 Forense Computacional 223.1 Ciencia Forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

3.2 Forense Computacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

3.2.1 Analise post-mortem . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

3.2.2 Live analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.3 Evidencias Digitais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

3.3.1 Aquisicao de Evidencias . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.3.2 Autenticacao de Evidencias . . . . . . . . . . . . . . . . . . . . . . . 32

3.3.3 Analise de Evidencias . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.3.4 Documentacao e Apresentacao de Resultados . . . . . . . . . . . . . . 34

3.4 Padronizacao e Entidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

3.5 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

viii

Page 10: Forense Computacional Tecnicas Ferramentas

ix

4 Privacidade e Contramedidas 404.1 Privacidade da Informacao em Analise . . . . . . . . . . . . . . . . . . . . . . 40

4.2 Antiforense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.2.1 Exclusao Segura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2.2 Criptografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.2.3 Esteganografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

4.3 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5 Forense na Web 485.1 Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.2 Historico e Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.2.1 Localizacao no Disco . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.2.2 Internet Explorer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.2.3 Mozilla Firefox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

5.2.4 Metodo GET em Consultas da Web . . . . . . . . . . . . . . . . . . . 57

5.3 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

6 Forense em Sistemas de Arquivos 586.1 Nıveis de Abstracao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

6.2 Conceitos de Recuperacao de Dados . . . . . . . . . . . . . . . . . . . . . . . 59

6.3 Sistemas de Arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

6.3.1 FAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

6.3.2 NTFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

6.4 Busca por Evidencias Ocultas . . . . . . . . . . . . . . . . . . . . . . . . . . 69

6.5 Forense em CD-ROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

6.5.1 Acesso a Multiplas Sessoes . . . . . . . . . . . . . . . . . . . . . . . 72

6.5.2 Recuperacao de Dados em CD-RW . . . . . . . . . . . . . . . . . . . 72

6.6 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

7 Forense no Espaco de Swap 757.1 Investigando a Memoria Principal . . . . . . . . . . . . . . . . . . . . . . . . 75

7.2 O Espaco de Swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7.3 Analise do Espaco de Swap . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

7.3.1 Particao de Swap do Linux . . . . . . . . . . . . . . . . . . . . . . . . 78

7.3.2 Arquivo de Swap do Windows (Pagefile) . . . . . . . . . . . . . . . . 78

7.4 Prototipo Desenvolvido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

7.4.1 Extracao de Imagens JPEG . . . . . . . . . . . . . . . . . . . . . . . . 81

7.4.2 Extracao de URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

7.4.3 Experimentos Realizados . . . . . . . . . . . . . . . . . . . . . . . . . 84

Page 11: Forense Computacional Tecnicas Ferramentas

x

7.5 Antiforense no Espaco de Swap . . . . . . . . . . . . . . . . . . . . . . . . . 87

7.6 Conclusoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

8 Conclusoes 898.1 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

Referencias Bibliograficas 90

Glossario 95

A Ferramentas Usadas em Perıcia Forense Computacional 98A.1 Uso geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

A.1.1 WinHex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

A.1.2 EnCase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

A.1.3 Forensic Toolkit (FTK) . . . . . . . . . . . . . . . . . . . . . . . . . . 99

A.2 Rede . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

A.2.1 tcpdump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

A.2.2 snort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

A.3 Forense na Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

A.3.1 Cookie monster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

A.3.2 Extensoes do Mozilla Firefox . . . . . . . . . . . . . . . . . . . . . . 100

A.3.3 Pasco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

A.3.4 Web Historian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

A.3.5 Cache View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

A.4 Disco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

A.4.1 dd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

A.4.2 List Alternate Data Streams (LADS) . . . . . . . . . . . . . . . . . . . 102

A.4.3 IsoBuster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

A.4.4 The Coroner’s Toolkit (TCT) . . . . . . . . . . . . . . . . . . . . . . . 103

B Codigo Fonte do Prototipo Desenvolvido 104B.1 Classe Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

B.2 Classe ArquivoSwap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

B.3 Classe ArquivoSaida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

B.4 Classe BuscadorNumeroMagico . . . . . . . . . . . . . . . . . . . . . . . . . 109

B.5 Classe ExtratorURL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

B.6 Classe ExtratorJPEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

Indice Remissivo 114

Page 12: Forense Computacional Tecnicas Ferramentas

Lista de Figuras

2.1 Fatores principais de crimes e perdas (adaptado de [Icove et al., 1995]) . . . . . 18

3.1 Comparacao entre operacoes de copia bit-a-bit e copia comum de dados (adap-

tado de [Casey, 2004]). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

3.2 Processo de autenticacao entre fonte e copia de dados . . . . . . . . . . . . . . 33

3.3 Modelo de padronizacao (adaptado de [dos Reis, 2003]) . . . . . . . . . . . . . 37

4.1 Esteganografia - (A) Imagem original. (B) Imagem com texto escondido (adap-

tado de [Westphal, 2003]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.1 Recebimento e envio de cookies entre servidor e cliente . . . . . . . . . . . . . 49

5.2 Excerto de um relatorio gerado pelo Web Historian no formato de planilha

eletronica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

6.1 Nıveis de abstracao do hardware a programas aplicativos (adaptado de

[Carrier, 2003]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

6.2 Conversao de dados entre camadas de abstracao (adaptado de [Carrier, 2003]) . 59

6.3 Estrutura de disco com duas particoes FAT (adaptado de [Casey, 2004]) . . . . 60

6.4 Espaco subaproveitado em um arquivo (file slack) . . . . . . . . . . . . . . . . 62

6.5 A estrutura do sistema FAT (adaptado de [Carrier, 2005]) . . . . . . . . . . . . 62

6.6 Trecho de um tabela FAT [Bunting and Wei, 2006] . . . . . . . . . . . . . . . 63

6.7 A estrutura de um registro da MFT com seus pares de (cabecalho de atributo,

valor) (adaptado de [Carrier, 2005]) . . . . . . . . . . . . . . . . . . . . . . . 67

7.1 Troca de processos entre a memoria principal e o espaco de swap

[Silberschatz et al., 2001] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

7.2 Trecho inicial de uma imagem JPEG/JFIF com alguns segmentos selecionados 82

7.3 Exemplar de figura extraıda pelo prototipo . . . . . . . . . . . . . . . . . . . . 87

7.4 Exemplar de figura extraıda pelo prototipo . . . . . . . . . . . . . . . . . . . . 87

xi

Page 13: Forense Computacional Tecnicas Ferramentas

Lista de Tabelas

3.1 Tipos de evidencias digitais comumente encontradas em diversas situacoes . . . 30

3.2 Registro simplificado da cadeia de custodia de uma evidencia digital (disco

rıgido ou HDD) (adaptado de [Solomon et al., 2004]) . . . . . . . . . . . . . . 36

5.1 Campos que podem estar presentes no cabecalho de um cookie (adaptado de

[Jones, 2005]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

5.2 Localizacao de artefatos do Internet Explorer . . . . . . . . . . . . . . . . . . 52

5.3 Estrutura de cache do Mozilla Firefox (adaptado de [Jones and Belani, 2005]) . 56

6.1 Tabela de arquivos-mestre do NTFS [Tanenbaum, 2003b] . . . . . . . . . . . . 67

7.1 Alguns segmentos que compoe uma imagem JPEG . . . . . . . . . . . . . . . 81

xii

Page 14: Forense Computacional Tecnicas Ferramentas

Capıtulo 1

Introducao

1.1 Contexto

A popularizacao do computador e da Internet passou a ser vista por indivıduos mal inten-

cionados como mais um meio de realizar um crime. Ao mesmo tempo em que a Internet trouxe

benefıcios, talvez hoje indispensaveis a nossa sociedade, os recursos que as tecnologias que

a envolvem sao um caminho relativamente facil e atraente para criminosos. Diante disso, foi

preciso criar uma nova area cientıfica que pudesse ser incorporada as ciencias da investigacao,

o que culminou na criacao da forense computacional.

Esse ramo recente do conhecimento vem ganhando cada vez mais atencoes e contribuicoes

da pesquisa academica, especialmente da Ciencia da Computacao. A crescente demanda de

perıcias executadas em meio computacional e consequencia direta da crescente quantidade de

acoes ilegais que vem sendo executadas no mundo digital. Um ou mais indivıduos podem

conceber um crime que dependa parcialmente ou totalmente da utilizacao de um computador,

especialmente quando o objetivo da acao e atacar algum sistema computacional.

Torna-se, entao, crucial o desenvolvimento e aplicacao de tecnicas de extracao, recuperacao

e analise de vestıgios deixados em crimes digitais. Como em qualquer investigacao forense,

os vestıgios de um crime podem provar algo, seja inocencia ou culpa. Na forense computa-

cional nao e diferente; o intuito e auxiliar cientificamente um processo criminal em busca do

esclarecimento e justa resolucao de um crime.

Um criminoso com pouco conhecimento tecnico pode pensar que formatando um disco

rıgido estara eliminado definitivamente dados que poderiam compromete-lo. Ja um criminoso

com habilidades avancadas pode usar diversas tecnicas para eliminar vestıgios de sua presenca

em um sistema invadido. Em ambos os casos, a perıcia deve estabelecer procedimentos para

realizar a coleta de evidencias. Para tal, deve ser analisado quais componentes do sistema com-

prometido devem receber maior enfoque. Claro que para recuperar com sucesso provas de um

ataque realizado com habilidade, possivelmente sera necessaria uma investigacao igualmente

13

Page 15: Forense Computacional Tecnicas Ferramentas

Objetivos 14

habilidosa. O ponto e que as evidencias existem; pode ser difıcil realizar a sua coleta, mas elas

existem.

No decorrer deste trabalho serao mostradas algumas situacoes praticas de perıcia, exempli-

ficadas por ferramentas e procedimentos. Nao houve a intencao de esgotar nenhum dos temas

apresentados nos capıtulos, mesmo porque a investigacao de algum caso pode requerer a criacao

de ferramentas e tecnicas novas para trata-lo com a maior eficiencia possıvel.

1.2 Objetivos

Apresentar metodologias e ferramentas que envolvem a perıcia forense computacional em

alguns de seus ramos de atuacao, como forense de artefatos de navegadores de Internet, fo-

rense no sistema de arquivos e forense em CD-ROM. Ao final, e implementado um prototipo

que realiza a recuperacao de dados (imagens JPEG e URLs) no espaco de swap, objetivando

compreender, na pratica, como ocorrem os processos de recuperacao de dados, dando enfase a

essa tarefa em tal area do sistema. E objetivo deste texto mostrar, tambem, aspectos desejaveis

da conduta pericial e barreiras impostas por atacantes, o que inclui questoes relacionadas a

privacidade dos dados em analise e tecnicas antiforenses.

1.3 Estrutura do Trabalho

Este trabalho esta dividido em oito capıtulos. O Capıtulo 2 traca um breve panorama de

crimes digitais, a importancia da protecao da informacao, alguns tipos de ataques e numeros

referentes a perdas financeiras. O Capıtulo 3 caracteriza a forense computacional em alguns de

seus aspectos, incluindo tipos de analise, caracterizacao e exemplificacao de evidencias digi-

tais, alem de uma discussao sobre padronizacao na perıcia forense. No Capıtulo 4, sao discu-

tidas questoes ligadas a polıticas de privacidade que devem ser levadas em conta durante uma

investigacao forense, e sao apresentadas algumas contramedidas usadas por atacantes para in-

viabilizar ou dificultar uma perıcia forense. O Capıtulo 5 faz uma investigacao a respeito de

artefatos de navegadores de Internet, como cookies, historico e cache, mostrando, dentre ou-

tros, onde esses itens podem ser encontrados e como essa informacao pode ser extraıda com

eficiencia. No Capıtulo 6, sao discutidos alguns dos muitos aspectos que devem ser levados

em conta durante a recuperacao de dados, busca por informacao oculta e analise de CD-ROM.

No Capıtulo, 7 e apresentado o prototipo desenvolvido, sao exibidos resultados experimentais,

e exemplos de investigacao na memoria principal e na area de swap. Por fim, no Capıtulo 8

sao apresentadas as conclusoes deste trabalho e sugestoes para trabalhos futuros. Adicional-

mente, uma listagem de ferramentas usadas em perıcia forense computacional e o codigo fonte

do prototipo desenvolvido podem ser encontrados nos Apendices A e B, respectivamente.

Page 16: Forense Computacional Tecnicas Ferramentas

Capıtulo 2

Crimes de Computador

O presente Capıtulo aborda a relacao entre evolucao e dependencia da informatica no mundo

em que vivemos, e o surgimento de uma vasta quantidade de crimes praticados por meio de um

computador. Alguns numeros relativos a perdas financeiras provocadas pelo crime digital sao

apresentados, aspectos de leis informaticas, vulnerabilidades exploradas pelos atacantes e uma

discussao a respeito da importancia dos dados em um sistema computacional. Esses itens sao a

motivacao central para o surgimento da forense computacional, o tema deste trabalho.

2.1 Introducao

Desde o surgimento de computadores digitais, ha mais de meio seculo, o quesito seguranca

tem sempre tomado um importante papel. Com o aparecimento da Internet (e suas predeces-

soras) nos anos 70 [Tanenbaum, 2003a], a seguranca tornou-se gradativamente um aspecto de

relativa importancia, por motivo do expressivo aumento da comunicacao com outros sistemas

computacionais, o que viabilizou redes computacionais de todo o porte.

A partir do momento em que computadores passaram a ser usados nao apenas por uma mi-

noria seleta, geralmente aqueles envolvidos no proprio desenvolvimento da computacao, como

centros de pesquisa e universidades, passando a ser utilizados por grande e crescente numero

de pessoas no mundo, indivıduos mal intencionados passaram a ver computadores como ferra-

menta ou alvo de acoes ilegais.

O estudo de crimes de computador (cybercrimes) torna-se cada dia mais necessario devido

as crescentes proporcoes que vem tomando na sociedade atual. Junto a esse aumento do numero

de crimes digitais praticados, vem o aumento do poder de destruicao que esses crimes provocam

em organizacoes de toda sorte, causando prejuızos financeiros e sociais como um todo.

Agencias de seguranca (Polıcias, FBI, delegacias especializadas) nao medem esforcos no

combate a esses tipos de crimes, o que exige alta qualificacao tecnica e moderno treinamento de

pessoal envolvido nessas acoes. Exige, ainda, a atualizacao da legislacao vigente, para que os

15

Page 17: Forense Computacional Tecnicas Ferramentas

Protecao da Informacao 16

cybercrimes sejam reconhecidos expliciamente em leis especıficas. Dessa forma, esses crimes

podem ser prevenidos e combatidos com mais eficiencia, e suas penas determinadas.

Adentrando ao universo mais especıfico dos crimes de computador, e possıvel realizar uma

distincao basica entre duas modalidades de crimes digitais:

Computador como alvo - e o cenario onde um computador e, de fato, o alvo de um ataque

cometido, buscando comprometer ou destruir dados de um sistema. Isso pode figurar-se

por meio de roubo de numeros de cartao de credito, adulteracao de dados de instituicoes

governamentais, acesso nao autorizado, dentre outros.

Computador como repositorio - como segundo cenario, tem-se um computador que nao

e visto como alvo de um ataque, mas sim como repositorio dados ilegais, o que pode

incluir softwares ilegais, informacoes roubadas, documentos de planejamento de grupos

terroristas, imagens de pedofilia etc.

A investigacao legal feita no meio computacional e executada pela forense computacional,

uma subarea da ciencia forense. Brevemente descrita, a forense computacional diz respeito a

tecnicas de coleta e analise de dados computacionais, envolvendo fases como identificacao,

preservacao, extracao, documentacao e interpretacao desses dados a fim de determinar po-

tenciais evidencias digitais [Solomon et al., 2004]. Analogamente a evidencias de uma cena

tradicional de crime, qualquer informacao computacional considerada importante coletada na

“cena”digital - vestıgios - pode tornar-se uma evidencia digital. Portanto, evidencias digitais

sao quaisquer indıcios deixados por um criminoso ou atacante em um computador.

2.2 Protecao da Informacao

Um importante ponto a considerar no estudo de crimes de computador e a visao que a socie-

dade tem a respeito dos criminosos ciberneticos. De fato, o que ocorre e que a sociedade nao ve

os criminosos do meio digital da mesma forma como outros criminosos (os “comuns”) sao vis-

tos. Muitas vezes hackers sao idolatrados pela sua astucia e habilidade em romper, por exemplo,

a seguranca governamental ou de instituicoes financeiras, causando-lhes danos. As pessoas es-

quecem que sao delitos como outros quaisquer; a diferenca esta apenas na forma como tal delito

foi consumado [Stephenson, 2000]. Quando pegos, os criminosos ciberneticos frequentemente

recebem penas brandas, quando nao ficam sem punicao. Isso ocorre por diversos fatores como,

por exemplo, criminosos menores de idade nao costumarem ser levados a serio.

A protecao da informacao e o objetivo primordial de areas relacionadas a seguranca da

informacao na computacao. Proteger dados computacionais significa assegura-los de destruicao

e comprometimento. O alvo dos ataques proferidos sao os dados armazenados, processados e

transmitidos por um sistema computacional, e nao a “constituicao fısica”do sistema em si; o

Page 18: Forense Computacional Tecnicas Ferramentas

Ataques e Vulnerabilidades 17

computador e apenas o meio [Stephenson, 2000]. Salvo raras excessoes, vırus de computador

sao criados para destruir dados, e nao os componentes fısicos do sistema que os armazenam.

Segundo [Stephenson, 2000], menos de 1% dos autores de delitos digitais sao pegos, pro-

cessados e condenados. Um fator contribuinte para esse baixo ındice foi o surgimento dos

chamados “intrusos pagos”(denominacao do mesmo autor) - profissionais do crime especializa-

dos, contratados para executar delitos a servico de terceiros. E possıvel ate mesmo estabelecer

uma comparacao aos conhecidos hitmen - homens contratados a servico do crime, presentes na

ficcao e na realidade. Ou seja, a visao que se tinha ate poucos anos de que os invasores eram,

em sua maioria, adolescentes desocupados que ficavam madrugadas a fio tentando quebrar a

seguranca de um sistema mudou.

Outro ponto que se deve ter consciencia e que as ferramentas “de hackers”, livremente en-

contradas para download na Internet, geralmente nao sao as ferramentas usadas pelos hackers

para causar todo o estrago que e noticiado. As ferramentas (toolkits) realmente poderosas sao

mantidas restritas aos hackers que as desenvolvem e usam, deixando iniciantes mal intencio-

nados com a ilusao de que irao conseguir realizar os feitios dos hackers com as ferramentas

facilmente encontradas na Internet. Essa precaucao vale, tambem, para os investigadores, pois

devem ter em mente que nao basta conhecer esses kits de ferramentas para prever todas as acoes

de criminosos ciberneticos.

2.3 Ataques e Vulnerabilidades

Organizacoes publicas e privadas sao, constantemente, alvo de ataques de todo tipo, onde

criminosos buscam praticar atos ilıcitos sobre sistemas computacionais. Um levantamento re-

alizado por [Icove et al., 1995] indica que, informalmente, contabiliza-se que as perdas finan-

ceiras devido a, principalmente, roubos e perdas, atingem a faixa de bilhoes de dolares. Por

outro lado, nesse mesmo levantamento, foi mostrado que esses ataques sao praticados nao ape-

nas por pessoas de fora da organizacao, mas tambem pelos proprios funcionarios da empresa,

como ilustra a Figura 2.1. Muitas vezes empregados demitidos promovem ataques aos sistemas

computacionais da empresa onde trabalhava como forma de vinganca, por exemplo.

Como foi mencionado, o alvo central de ataques sao os dados armazenados em um sistema.

No entanto, ha outros pontos vulneraveis que devem ser mencionados em um contexto de crime

digital. Por exemplo, vulnerabilidades de hardware e software podem incluir atos ilıcitos como

roubo e destruicao de itens de hardware (mıdias de armazenamento, placas de vıdeo etc.), e

roubo de software proprietario. Geralmente esses tipos de crimes (“ataques”) nao sao enquadra-

dos, juridicamente, em uma legislacao especıfica sobre crimes de computador, caso exista (isso

porque nem todos paıses a possuem). Esses crimes sao enquadrados na violacao da integridade

do patrimonio, pois o autor do crime nao fez o uso direto da tecnologia da informacao nem da

Page 19: Forense Computacional Tecnicas Ferramentas

Ataques e Vulnerabilidades 18

Figura 2.1: Fatores principais de crimes e perdas (adaptado de [Icove et al., 1995])

comunicacao computacional para praticar o ato ilıcito [da Silva Rodrigues and Caricatti, 2004].

Apesar disso, sao as vulnerabilidades nos dados que indicam o tipo de preocupacao prin-

cipal, especialmente atualmente, devido ao nıvel de digitalizacao de informacoes presenciado.

Uma vez que hardware e software podem, na maioria das vezes, serem substituıdos, isso nao

ocorre com dados, que refletem toda a producao particular de um dado sistema. Em virtude

disso, o ataque aos dados de um sistema representa elevado risco, que muitas das vezes envolve

informacoes sigilosas (e.g., segredos de negocio, informacoes secretas de agencias governa-

mentais etc.) e quantias de dinheiro elevadas.

Com o uso crescente e dependencia da Internet por um numero consideravel de pessoas,

ataques a distancia tornaram-se uma opcao atraente para criminosos explorarem brechas de

seguranca em sistemas remotos, permitindo-lhes realizar atos como invasoes, adulteracao, copia

nao-autorizada e corrupcao de dados. Sendo a rede em que se encontra conectado um ou mais

sistemas residenciais ou empresariais o alvo constante de ameacas remotas, devem ser estabe-

lecidas polıticas de seguranca e eventuais times de resposta a incidentes de seguranca (espe-

cialmente em contextos organizacionais) para estabelecer um nıvel adequado de seguranca da

informacao.

No contexto de crimes digitais, o uso de computadores para realizar atividades ilegais sem,

no entanto, referir-se a violacao de um sistema ou partes dele, e denominada por alguns au-

tores de automacao criminal. Este termo diz respeito a circulacao e processamento de dados

ilegais em sistemas computacionais como, por exemplo, pedofilia, troca de informacoes ile-

gais via correio eletronico, publicacao de informacoes fraudulentas em grupos de notıcias etc.

[Icove et al., 1995]. A automacao criminal geralmente nao se refere a nenhum tipo de ataque

exercido a algum sistema computacional, e sim a automatizacao de tarefas como transmissao

e armazenamento de informacoes ilegais, antes mantidas em meios como papel e fotografias

comuns.

Os ataques praticados via Internet atualmente sao tao numerosos, que passaram a figurar,

Page 20: Forense Computacional Tecnicas Ferramentas

A Necessidade de Novas Leis 19

dentre outros prejuızos, uma ameaca grave ao proprio comercio (neste caso, eletronico) de uma

nacao, visto que, atualmente, ha uma grande depedencia de servicos fornecidos pela Internet

(e.g., WWW, e-mail etc.). Nao se trata de ataques esporadicos a um ou outro sistema ou usuario,

nem tampouco vandalismo, mas sim de uma forma de crime organizado [Rodrigues, 2006].

Nesse contexto, o alvo principal dos criminosos e obter dados pessoais e confidenciais como

cartoes de credito e senhas de contas bancarias, utilizando de variadas formas (ataques) para tal.

Um dos servicos de Internet provido por instituicoes financeiras mais visados pelos atacan-

tes e o Internet Banking. A cada dia, criminosos desenvolvem novos mecanismos para que o

processo de obtencao de dados pessoais de usuarios seja feito sem que a vıtima suspeite de

que esta sendo roubada. [Lau and Sanchez, 2006] apresenta uma descricao breve de algumas

tecnicas utilizadas para esses fins e por qual meio se dao:

Ataque de scam - usa o correio eletronico.

Ataque de phishing - usa paginas falsas da web.

Ataque de pharming - explora vulnerabilidades no DNS.

Ataques de scam, phishing e pharming geralmente utilizam marcas e nomes forjados de

organizacoes bem conhecidas do publico geral (e.g., sites de comercio eletronico, receita

federal, instituicoes financeiras etc.), a fim de evitar que o usuario visado nao suspeite da

“isca”utilizada, ou seja, do meio utilizado para praticar o crime, seja uma mensagem de email

ou uma pagina da web fraudulenta.

Para aumentar a prevencao e combate aos crimes de computador, os diversos ataques promo-

vidos no meio digital exigem a criacao de leis especıficas para tratar do assunto. Nao obstante,

algumas leis ja existentes podem ser adaptadas ao delito digital, tomando por base a similari-

dade entre o crime digital e algum crime ja anteriormente descrito [Carpanez, 2006]. Porem,

a criacao de leis especıficas aumenta a eficiencia das punicoes, determinando, agora explicita-

mente, como atos ilıcitos sao descritos e suas devidas punicoes.

2.4 A Necessidade de Novas Leis

Com o surgimento de uma imensa variedade de crimes de computador, surge, tambem,

a necessidade de atualizacao da legislacao vigente, tanto no Brasil como no exterior. Paıses

europeus e os Estados Unidos da America ja possuem diversos mecanismos legais para tratar,

juridicamente, do tema (em [Icove et al., 1995], e possıvel encontrar o texto completo de leis,

nos Estados Unidos, a respeito de crimes de computador).

Quando se trata das leis concernentes a crimes digitais, deve-se ter em mente tres possibi-

lidades: a criacao de novas leis, alteracao de leis ja existentes e, por fim, a aplicacao de leis

Page 21: Forense Computacional Tecnicas Ferramentas

Conclusoes 20

ja existentes nos delitos digitais. No Brasil, ocorre principalmente a aplicacao de leis ja exis-

tentes (por similaridade, por exemplo), o que nao deixa a maioria dos criminosos sem a devida

punicao [Carpanez, 2006].

A aprovacao de Projetos de Lei sobre crimes digitais1 e modificacao de leis vigentes2 visa

aumentar o escopo e, consequentemente, a eficiencia da legislacao em crimes informaticos.

Para [de Almeida, 2006], p.1, “Uma vez tal projeto de lei seja aprovado em carater final, nao

mais persistira a falta de tipos penais especıficos para o enquadramento de condutas delituosas

(o que tem inibido, por exemplo, a repressao da difusao de vırus), bem como deixara de haver

margem para duvidas sobre o cabimento (especialmente em relacao a invasoes e a phishing) da

aplicacao de tipos tradicionais como o furto e o estelionato”.

Ha uma preocupacao consideravel, por parte dos sites de comercio eletronico, em relacao

a seguranca dos seus clientes que acabam por nao comprar o produto ou preferir uma loja tra-

dicional (offline). Segundo [InfoGuerra, 2004], p.2, “a acao dos piratas ciberneticos prejudica

o crescimento do comercio eletronico no Paıs em decorrencia da inseguranca do cidadao em

realizar transacoes comerciais pela Internet. Crimes de sabotagem, falsidade e fraude especi-

ficamente ligados ao ambiente informatico, ainda nao sao previstos na legislacao vigente (...),

foram incluıdos no PL [projeto de lei]”.

Por mais que Projetos de Lei e emendas sejam propostos, a casa de leis no Brasil, isto e, o

Senado e a Camara Federal, estao em descompasso com numero crescente de delitos digitais.

Uma questao que dificulta a aprovacao de Projetos de Lei e a falta de conhecimento tecnico

que as vezes ocorre quando tais projetos sao redigidos, o que acaba levando a um impasse entre

meio polıtico e academico, gerando mais demora na aprovacao de tais leis.

2.5 Conclusoes

Neste capıtulo, foram descritas brevemente algumas constatacoes e descricoes de crimes

digitais, os quais atingiram numero consideravel na sociedade atual, requerendo solucoes

para preveni-los e combate-los. Tambem foram exibidos e comentados alguns aspectos dessa

questao, como: contextualizacao dos crimes digitais, seguranca da informacao, mudancas na

legislacao, treinamento e qualificacao de pessoal nas empresas e nas agencias de combate ao

crime, dentre outros.

Alguns dos ataques descritos mostraram apenas uma faixa da enorme variedade encontrada

no mundo computacional. Isso se aplica especialmente no atual cenario mundial, onde a Internet

e um veıculo razoavelmente popular de envio e recebimento de informacoes entre pessoas e

organizacoes, sendo utilizada como meio de ataques de todo tipo. O objetivo e atestar que o

1Exemplos: Projeto de Lei da Camara no 89, de 2003, Projetos de Lei do Senado no 137, de 2000 e

no 76, de 2000 [Comissao de Educacao, 2006]2Exemplo: Estatuto da Crianca e do Adolescente

Page 22: Forense Computacional Tecnicas Ferramentas

Conclusoes 21

criminoso procura pelas mais diversas maneiras de conseguir seu ataque, seja por meio de uma

rede de computadores, como a Internet, ou nao.

Nao obstante, no meio digital, ataques sejam quais forem deixam evidencias digitas, que

podem ser coletadas pelo investigador para avaliar o fato ocorrido. No proximo capıtulo, serao

examinados conceitos e processos a respeito de evidencias digitais e de forense computacional

mais a fundo, que e a ciencia utilizada para realizar a investigacao de casos envolvendo artefatos

computacionais.

Page 23: Forense Computacional Tecnicas Ferramentas

Capıtulo 3

Forense Computacional

No presente Capıtulo, sao apresentadas algumas caracterısticas pertinentes a forense com-

putacional, mostrando sua relacao com a ciencia forense. A seguir, e feita uma descricao de

diversas caracterısticas e procedimentos envolvendo evidencias digitais durante um processo de

analise forense. Por fim, algumas entidades empenhadas na padronizacao forense e na resposta

a incidentes, no Brasil e no exterior, sao apresentadas de maneira breve.

3.1 Ciencia Forense

Desde tempos remotos, as principais ferramentas usadas na investigacao forense foram a

observacao e interpretacao de evidencias fısicas presentes na cena do crime. Foi a partir da

segunda metade do seculo XIX que a ciencia foi primeiramente empregada para auxiliar o

avanco de investigacoes legais [Eckert, 1997]. Com o emprego da ciencia na resolucao de

crimes, foi possıvel as autoridades legais estabelecer maior validade nos resultados de uma

investigacao forense.

Em decorrencia disso, foram necessarias diversas mudancas na estrutura dos orgaos poli-

ciais. Foram criados departamentos empenhados no processamento de materiais coletados em

cenas de crimes. No entanto, nesse primeiro momento era necessario que a analise dessas

evidencias fosse feita por departamentos academicos, como Farmacologia e Quımica.

Outra mudanca na organizacao policial foi a forma como os indivıduos suspeitos de um

crime eram identificados. A princıpio, a identificacao era realizada visualmente por ofici-

ais da lei que tinham um bom “conhecimento”de criminosos e suas gangues que agiam na

regiao. A partir do momento em que o crescimento populacional intensificou-se, e paralela-

mente o aumento do numero de crimes ocorria, surgiu a necessidade de adotar outros metodos

de identificacao.

Inicialmente, foi usado o metodo de identificacao de Bertillon, que consistia em realizar

medicoes antropologicas com auxılio de documentacao fotografica [Eckert, 1997]. No entanto,

esse metodo foi substituıdo pelas impressoes digitais, um metodo de identificacao bem mais

22

Page 24: Forense Computacional Tecnicas Ferramentas

Forense Computacional 23

preciso. O uso de impressoes digitais para fins de identificacao requereu maior responsabilidade

no tratamento de evidencias fısicas deixadas na cena do crime.

A ciencia forense e um vasto campo do conhecimento que emprega diversas areas para ana-

lisar vestıgios de um crime, como a Medicina, Engenharia, Psicologia, Biologia, Computacao

etc. Um outro ramo bastante solicitado e a verificacao da autenticidade de documentos em ca-

sos onde ha suspeita de documentos forjados. As perıcias procuram detectar diversos tipos de

fraudes, em documentos como papeis do governo, formularios, cheques, dinheiro e cartoes de

credito. Para isso, e necessario examinar letra de mao, papel, impressao, ou qualquer forma de

escrita ou impressao que possa ter sido usada no caso.

3.2 Forense Computacional

A forense computacional e a disciplina da Criminalıstica empenhada no estudo de vestıgios

extraıdos de computadores digitais, a fim de resolver de forma justa um crime de computador.

Segundo [de Geus et al., 2001], ela e a ciencia que estuda a aquisicao, preservacao, recuperacao

e analise de dados que estao em formato eletronico e armazenados em algum tipo de mıdia

computacional. Sendo a forense computacional uma subarea da Ciencia Forense, ela busca

dar suporte e expandir as praticas periciais forenses no contexto da apuracao de um crime de

computador.

E comum haver duas situacoes para designar o objetivo de um exame forense: resolver um

crime digital ou um incidente de seguranca1 [dos Reis and de Geus, 2002]. Na resolucao de um

crime digital, a forense busca ater-se a questoes legais quanto as evidencias, procurando por

provas que possam ser utilizadas em um processo criminal. Ja um incidente de seguranca ge-

ralmente esta relacionado a contextos organizacionais, onde o objetivo principal de uma analise

forense e entender o incidente ocorrido, buscando suas causas, a fim de evitar que o fato venha

a ocorrer novamente.

Mas onde entra a necessidade atual tao forte para a forense computacional? Com

a popularizacao da Internet que vem ocorrendo, tornando-se um verdadeiro veıculo de

comunicacao em massa ha pelo menos uma decada, a digitalizacao de artefatos do mundo

tornou-se massiva, tambem. Isso significa que, atualmente, a vasta maioria de documentos e

armazenada em meio eletronico [Vacca, 2002]. Assim, e possıvel tirar duas conclusoes: pri-

meira, a investigacao legal migrou em parte para o meio digital, e segunda, sabendo-se que

forense computacional necessita e faz uso de documentos no decorrer de suas praticas, e ne-

cessario que o manuseio de documentos em uma investigacao criminal seja adequado e o mais

completo possıvel.

1Em lıngua inglesa, e comum empregar os termos law enforcement e corporate investigations para

referenciar esses dois pontos de vista de uma analise forense.

Page 25: Forense Computacional Tecnicas Ferramentas

Forense Computacional 24

Assim como a perıcia forense tradicional tem como material de trabalho as evidencias

fısicas (arcada dentaria, fios de cabelo etc.), a perıcia forense computacional trabalha com

evidencias tambem, porem denominadas no seu contexto de evidencias digitais. Entretanto, as

evidencias digitais requerem um tratamento especial, uma vez apresentam maiores dificuldades

de manipulacao. Pela sua propria natureza, dados sao, em termos gerais, muito volateis, faceis

de serem modificados e apagados, o que requer maior cuidado na preservacao de evidencias

[Vacca, 2002]. Por outro lado, evidencias digitais sao faceis de seres duplicadas com exatidao

[dos Reis, 2003].

Por conseguinte, a validade de evidencias digitais apresentadas num caso judicial pode ser

contestada devido a, por exemplo, processamento inadequado ou adulteracao de evidencias.

Mesmo tomando os cuidados nas variadas tarefas executadas num trabalho de perıcia, como

busca e preservacao de evidencias, determinar a relacao entre dados e seu autor muitas vezes

pode ser difıcil ou enganosa, pois nao e uma tarefa trivial. E preciso, portanto, que exista

uma documentacao adequada de acoes tomadas, o que pode ser feito estabelecendo cadeias de

custodia.

Alem de ser capaz de extrair e manusear evidencias digitais, a forense emprega metodos de

analise, logica e o que for necessario a interpretacao dos vestıgios coletados. E nesse ponto que

ocorre uma maior conexao entre ciencia e lei, visto que se procura reconstruir uma provavel

sequencia de fatos que levaram ao cometimento do crime.

Um exemplo classico e o uso da recuperacao de arquivos apagados propositadamente para

esconder informacoes da polıcia. Por meio de conhecimentos da estrutura de dispositivos de ar-

mazenamento e do modelo de sistema de arquivos em uso, e possıvel usar tecnicas e ferramentas

para recuperar dados. No entanto, nesse caso a forense computacional nao se limita apenas a

recuperar dados apagados; ela vai muito alem disso, interpretando as informacoes que foram

recem descobertas (recuperadas), correlacionando-as as pessoas envolvidas na investigacao em

questao.

De modo analogo a outros ramos da Ciencia Forense, na forense computacional tambem

sao empregadas uma variedade de ferramentas para auxiliar o trabalho de perıcia. Por isso,

o uso e selecao de ferramentas deve ser feito com prudencia, para que um trabalho preciso

possa ser feito. No entanto, o investigador deve ter consciencia da possibilidade de as ferra-

mentas produzirem erros, especialmente se sao ferramentas comerciais fechadas, cuja estrutura

e implementacao geralmente nao estao disponıveis para estudo e averiguacao.

Por essas razoes, e interessante que as ferramentas sejam vistas como um elemento de

automatizacao de tarefas. O investigador deve conhecer o maior nıvel de detalhes possıvel dos

procedimentos realizados por suas ferramentas. Deve ser capaz, tambem, de eventualmente re-

alizar as mesmas tarefas realizadas por elas, so que manualmente, devido a situacoes peculiares

nao suportadas pelas ferramentas, por exemplo.

Um diferencial da forense computacional em relacao as outras disciplinas forenses e a ne-

Page 26: Forense Computacional Tecnicas Ferramentas

Forense Computacional 25

cessidade, por parte do corpo investigativo, de ter conhecimentos profundos de hardware e

software de computador. Isso evita invalidar acidentalmente, ou ate mesmo destruir, evidencias

digitais, buscando protege-las para analises futuras [Solomon et al., 2004]. Desse modo, a fo-

rense computacional deve procurar aplicar tecnicas de praticamente qualquer ramo da Ciencia

da Computacao (Redes de Computadores, Sistemas Operacionais, Seguranca e Auditoria de

Sistemas etc.) para toda diversidade de investigacao cientıfica computacional. Isso inclui o

desenvolvimento de novos conhecimentos e tecnologias quando necessario, o que pode ocorrer

em casos complexos e desafiadores.

Tradicionalmente, a maneira como e realizada uma analise forense e sua relacao com o

sistema investigado e classificada em duas formas: analise post-mortem, onde sao coletados

dados com o sistema nativo desligado, ou live analysis, na qual a coleta de dados e feita com o

sistema nativo ligado. Em um processo de investigacao forense pode ser necessario o emprego

dessas duas formas de analise, o que depende do caso.

Em um primeiro momento, pode-se efetuar a coleta de dados volateis com o sistema ligado

(live analysis) para, em seguida, desliga-lo e replicar as mıdias de armazenamento ou partes

especıficas dos dados para analise futura (analise post-mortem). Por fim, todo esse material

coletado pode ser examinado em um sistema seguro usado pela investigacao forense.

3.2.1 Analise post-mortem

E tambem conhecida por dead analysis e analise offline, e diz respeito a analise forense

executada quando o sistema investigado, onde estao as evidencias, esta desligado. Uma analise

post-mortem geralmente e referida por alguns autores na literatura forense por analise forense

tradicional, visto que era o processo mais empregado para realizar uma investigacao computa-

cional em uma epoca onde a Internet nao era popular como hoje em dia. No entanto, atualmente

a coleta de evidencias com o sistema vıtima ligado (live analysis) passou a ser bastante empre-

gada, levando esse termo ao desuso.

Em geral, o primeiro passo tomado e realizar replicas2 das partes relevantes do sistema para

investigacao. Geralmente sao feitas duas ou mais imagens, deixando uma delas preservada

assim como o original. Essa copia “primaria”e criada para que nao seja necessario acessar

a todo momento o material original para obter novas copias (caso necessario), visando maior

seguranca. Por meio da copia primaria, novas copias podem, entao, ser feitas.

A tıtulo de ilustracao, considere o seguinte exemplo de analise post-mortem: um suspeito

teria supostamente excluıdo arquivos que o comprometeriam e desligou o computador. O pri-

meiro procedimento e documentar todo o material que sera analisado, tomando o cuidado de

nao destruir ou modificar os dados (evidencias) contidos nas mıdias. Informacoes como ge-

2Em forense computacional, uma replica de uma parte ou de toda a mıdia em analise e comumente

denominada de imagem ou mirror copy.

Page 27: Forense Computacional Tecnicas Ferramentas

Forense Computacional 26

ometria do disco rıgido, versao da BIOS, e outras que forem julgadas pertinentes podem ser

documentas em um primeiro relatorio, a fim de descrever a fonte de evidencias. A seguir, deve-

se instalar a mıdia de armazenamento em um sistema seguro para fins de replica dos dados que

interessam a investigacao (neste caso, para efetuar a recuperacao de dados). Replica e original

sao autenticados para manter a integridade da prova.

Finalmente, o perito podera processar a replica de disco obtida, extraindo, recuperando, ana-

lisando etc. informacoes em seu sistema operacional na estacao forense, utilizando as ferramen-

tas e tecnicas que lhe permitam executar a tarefa com maior sucesso possıvel. Um ponto impor-

tante e que o investigador deve evitar ligar o sistema comprometido nesse primeiro momento,

pois os dados do sistema podem ser sobrescritos com essa operacao, destruindo evidencias que

poderiam ser facilmente coletadas.

3.2.2 Live analysis

Tambem conhecida por analise online, nesse metodo de analise a busca e manipulacao de

evidencias sao realizadas com o sistema nativo em execucao. Essa modalidade de exame forense

apresenta inerentes dificuldades, como a dificuldade em nao alterar o estado do sistema durante

a coleta de informacoes e a alteracao das proprias evidencias.

Apesar das dificuldades, a live analysis e o metodo requerido em algumas situacoes de

perıcia digital. Isto porque o desligamento do sistema nativo eliminaria grande parte de

evidencias volateis. Por exemplo, ao analisar um ataque de rede, muitas vezes e util ana-

lisar as conexoes de rede atuais, capturar o trafego que passa pela maquina invadida, e co-

piar os arquivos de log enquanto o intruso nao os eliminou. Alem dessas, ha tambem outras

informacoes volateis que podem ser capturadas em uma live analysis [Bunting and Wei, 2006,

de Souza Oliveira, 2002, dos Reis and de Geus, 2002]:

Estado de processos - e importante verificar quais processos estao em execucao no sistema

vıtima, observando quais sao do sistema e quais nao o sao, para uma filtragem basica.

O conhecimento de funcoes de alguns processos do sistema e importante, pois podem

mostrar atividades suspeitas, como consulta de logs e mudanca de polıticas de seguranca.

E mais, podem haver processos executando atividades ilegais ou processos prontos para

eliminar evidencias assim que constatada a presenca do investigador, por exemplo.

Conexoes de rede - o uso de ferramentas para captura e analise de trafego de rede (e.g.,

tcpdump no Linux) pode mostrar trafego suspeito, como enderecos IP falsos, mensagens

ICMP falsas etc. a medida em que o trafego e recebido. Outra abordagem e capturar

trafego primeiramente e analisa-lo depois usando, por exemplo, sistemas de deteccao de

intrusos como o snort, que coletam trafego de rede por meio de regras estabelecidas.

Page 28: Forense Computacional Tecnicas Ferramentas

Evidencias Digitais 27

Registro do Windows - sendo o registro do Windows um grande banco de dados de

configuracoes de softwares instalados e do sistema operacional, e possıvel que sejam

encontrados rastros de softwares maliciosos usados durante um ataque. Mesmo estando

desinstalados, e comum haver resquıcios de informacoes desses programas, como, por

exemplo, preferencias pessoais.

Outro caso seria a copia do conteudo da memoria principal de um sistema comprometido

ligado. Um problema imediato que surge e a questao da volatilidade desse dispositivo. A leitura

da memoria para fins forenses possivelmente teria de ser feita em um ambiente controlado

de hardware para evitar exclusao acidental do seu conteudo. Esse procedimento e necessario

pois a simples instalacao da memoria para uso normal em um sistema operacional como Linux

ou Windows ja iria armazenar novas informacoes nela, possivelmente sobrescrevendo outras

anteriores que poderiam ser uteis para uma investigacao.

Para evitar maiores problemas durante uma live analysis, algumas tecnicas especiais sao

requeridas, como execucao diferenciada e cautelosa de ferramentas de coleta de dados. Para

evitar contaminar as proprias ferramentas forenses com bibliotecas dinamicas do sistemas in-

fectadas pelo intruso, as ferramentas devem evitar o uso dessas bibliotecas. Isso requer que

sejam compiladas estaticamente.

Essa polıtica de seguranca tambem evita carregar outras eventuais bibliotecas dinamicas

do sistema caso fosse necessario usa-las, visto que nao estariam carregadas na memoria. Evi-

tando carrega-las, diminui-se o efeito das acoes de coleta de evidencias resultando em menos

disturbios no sistema comprometido.

3.3 Evidencias Digitais

Nenhum crime e cometido sem deixar vestıgios; qualquer acao que um criminoso tenha

realizado no sistema comprometido deixa algum vestıgio. Existe um princıpio largamente utili-

zado na Ciencia Forense, conhecido como Princıpio da Troca de Locard3, que pode ser aplicado

aqui: quando duas coisas entram em contato no local do crime, ha uma troca de materiais entre

eles [Eckert, 1997]. Ou seja, o criminoso sempre deixa algo seu no local do crime e leva algo

consigo quando deixa o local.

Adaptando esse princıpio ao mundo computacional, quando um criminoso estabelece con-

tato com o sistema invadido, seja copiando ou adulterando dados, as acoes executadas por ele

deixam rastros no sistema vıtima. Embora dados computacionais tendam a ser bastante volateis,

isso nao quer dizer que os rastros deixados por um criminoso com avancadas habilidades nao

3Esse princıpio foi estabelecido por Edmond Locard, um cientista frances que viveu nos seculos XIX

e XX. Locard e considerado um dos primeiros, senao o primeiro, criminalistas devido aos seus estudos

realizados em Ciencia Forense [Eckert, 1997].

Page 29: Forense Computacional Tecnicas Ferramentas

Evidencias Digitais 28

existam; essas evidencias podem ser razoavelmente difıceis de serem coletados, mas elas exis-

tem [dos Reis, 2003]. A coleta depende da habilidade do investigador no caso em particular.

Um conceito de evidencia digital que vem de encontro as necessidades e aplicacao da fo-

rense computacional e dada por [da Motta Pires, 2003], p. 102: “evidencia digital e qualquer

informacao de valor probatorio que e armazenada ou transmitida de forma digital”. Assim,

quaisquer vestıgios na forma de dados computacionais deixado por um criminoso, podendo

figurar como indıcios para sustentar ou descartar hipoteses investigativas, sao considerados

evidencias digitais.

A evidencia digital tem um papel central na forense computacional, pois a ela sao referidos

processos, padroes e ferramentas em uma perıcia. Ha diversos processos que constituem o uni-

verso de tarefas que podem ser executados em relacao as evidencias digitais, como: preservacao,

identificacao, aquisicao, documentacao, analise, correlacao, apresentacao etc. As evidencias di-

gitais, apos serem adequadamente coletadas e analisadas, podem ser apresentadas em favor do

esclarecimento da investigacao em curso de um crime. Elas tambem sao a peca chave na criacao

de possıveis cenarios viaveis que expliquem logicamente como a sequencia de fatos do crime

teria ocorrido.

Para realizar essas etapas de processamento de evidencias digitais, metodos e ferramentas de

investigacao forense tiveram de ser criados e expandidos, devido ao proprio surgimento recente

da forense computacional. Assim como evidencias de um crime qualquer (impressoes digitais,

por exemplo) devem ser tratadas de forma padronizada e coerente com a lei, o mesmo aplica-se

as evidencias digitais.

Logo, os metodos e ferramentas usados tem de estar disponıveis a comunidade cien-

tıfica e legal. Os resultados de perıcias realizadas tem de ser passıveis de reproducao

[Farmer and Venema, 2004], tanto para a resolucao de um crime quanto na apuracao de um

incidente de seguranca. A capacidade de ser reproduzıvel adiciona um nıvel de confiabilidade

necessario aos resultados de uma analise forense. Esse e, em verdade, um objetivo central da

padronizacao da pratica forense.

Outra consequencia de esforcos em estabelecer padroes para a forense e a necessidade de

proteger as evidencias, durante e apos sua coleta. Fatores como documentacao inadequada,

uso de ferramentas suspeitas e praticas nao confiaveis podem gerar duvidas nos avaliadores,

que podem ser juızes, um juri ou simplesmente os diretores e responsaveis pela seguranca em

uma organizacao qualquer. Todos esses itens que geram duvida a respeito da confiabilidade

do processo como um todo tem grande chance de anular o valor das provas [de Freitas, 2006],

mesmo que a analise tenha sido honesta.

Em Computacao e outras tecnologias emergentes, ha um fator resultante da sua propria

natureza inovadora: custo. Assim como o custo para adquirir resultados de DNA de vestıgios

difıceis de serem extraıdos e manuseados pode ser elevado, o custo para obter evidencias digitais

tambem o pode. O alto custo para coletar evidencias digitais e devido a inumeros fatores,

Page 30: Forense Computacional Tecnicas Ferramentas

Evidencias Digitais 29

como: os processos requeridos sao exaustivos, o sistema afetado pode nao estar disponıvel para

analise por longo perıodo de tempo, e, apesar dessas dificuldades, a analise posterior dos dados

coletados tem de ser feita [Vacca, 2002].

Nao obstante a coleta de evidencias digitais apresentar alto custo, negligenciar os resulta-

dos que a perıcia digital nos fornece apresenta um custo muito maior no futuro. Recuperar-se

de sucessivas falhas e muito mais caro, especialmente em organizacoes de grande porte que

manipulam grandes volumes de dados sensıveis.

Diante disso, [Vacca, 2002] propoe duas razoes principais para a coleta de evidencias:

Responsabilidade - procura estabelecer provas da culpa do criminoso, responsavel pe-

los danos provocados a uma ou mais vıtimas, com base na apresentacao adequada de

evidencias que provem a acao criminosa.

Prevencao futura - deve-se procurar entender os detalhes a respeito do ataque realizado -

como se procedeu, o que foi preciso para realiza-lo etc. -, como uma maneira pedagogica

de aprender a evitar que o mesmo incidente ocorra novamente.

Por fim, nao basta obter tais conclusoes e resultados e mante-los entre pequenos grupos de

pessoas ou para si proprio; e preciso compartilhar com a comunidade as informacoes e resul-

tados obtidos apos o exame forense, para que outros possam beneficiar-se e evitar os mesmos

ataques.

Evidencias podem ser encontradas em praticamente qualquer lugar em um sistema compro-

metido, dependendo de que ataque foi realizado. Na Tabela 3.1 ha alguns exemplos de ataques

e possıveis evidencias que podem ser coletadas para um exame forense.

A seguir, encontra-se uma descricao mais detalhada a respeito dos procedimentos que fo-

ram mencionados em relacao as evidencias digitais (identificacao, extracao, analise etc.). No

entanto, algumas dessas etapas serao agrupadas em um grupo maior, conforme descrito por

[da Motta Pires, 2003], p. 103–104, como “os tres A da Forense Computacional”: adquirir,

autenticar e analisar evidencias.

3.3.1 Aquisicao de Evidencias

“Adquirir as evidencias sem alterar ou contaminar os dados originais”. A aquisicao de

evidencias digitais requer primeiramente identifica-las, isto e, saber distinguir entre dados re-

levantes a investigacao (vestıgios) e dados que nao o sao. Para isso, e preciso saber o que sao

esses vestıgios, como sao armazenados e onde estao localizados [Vacca, 2002].

Por exemplo, para localizar vestıgios de navegacao na Web, e preciso saber o que se deve

procurar - cache e historico do navegador; como esses itens sao armazenados - requer compre-

ender a sua estrutura; e, finalmente, onde estao localizados - geralmente um ou mais diretorios

Page 31: Forense Computacional Tecnicas Ferramentas

Evidencias Digitais 30

Evento Evidencias

Web site pichado arquivos de logs armazenados no servidor;

paginas pichadas.

Suspeita de crime de pedo-

filia

Imagens e paginas de hipertexto armazena-

das em cache de navegador e em pastas pes-

soais.

Apreensao de computadores

usados em atividades ilıcitas

(terrorismo, fraudes etc.)

Arquivos recuperados (textos, imagens etc.)

que foram excluıdos intencionalmente para

eliminar rastros de atividades.

Intrusao via rede Trafego de rede suspeito destinado a

maquina vıtima, capturado e analisado por

ferramentas de seguranca de rede (ethereal,

snort etc.); arquivos de log gerados pelo sis-

tema operacional da maquina vıtima.

Tabela 3.1: Tipos de evidencias digitais comumente encontradas em diversas situacoes

com localizacao especıfica para cada navegador. Se o processo de identificacao de evidencias

nao for realizado tendo em mente esses tres itens, tempo e outros recursos, como dinheiro, po-

derao serao perdidos. Por isso, nao basta apenas ter boas ferramentas; e necessario saber onde

procurar pelas evidencias.

No entanto, pode ser necessario observar o comportamento do sistema, a fim de detec-

tar possıveis acoes ilegais que podem estar acontecendo. Um fato interessante e que, em

um sistema qualquer, geralmente sao acessados mais ou menos os mesmos arquivos, consi-

derando um dado intervalo de tempo [Farmer and Venema, 2004]. Uma pesquisa conduzida

por [Farmer and Venema, 2004] contabilizou percentuais de utilizacao global de arquivos de

diversos servidores da Web, e verificou que cerca de 90% dos arquivos nao sao utilizados pelo

perıodo de pelo menos um mes ou mais. Dessa forma, como o sistema executa, na maioria das

vezes, os mesmos programas e acessa os mesmo dados, e natural que os rastros deixados por

essas atividades sobreponham-se a si proprios, implicando em tempo menor de permanencia de

eventuais rastros desses itens no sistema.

Por outro lado, os rastros deixados por atividades nao usuais tendem a permanecer no sis-

tema por mais tempo, devido a baixa periodicidade em que essa informacao e acessada ou modi-

ficada, seja pelo sistema ou pelo usuario. Pistas para onde focalizar a investigacao podem surgir

observando essas atividades fora de rotina. Um criminoso precisa apenas de um lugar para es-

conder sua informacao; o investigador deve procurar por ela em muitos [Liu and Brown, 2006].

E nesse sentido que a observacao de atividades estranhas e diferentes pode economizar tempo

Page 32: Forense Computacional Tecnicas Ferramentas

Evidencias Digitais 31

e recursos.

Passada a identificacao e busca por evidencias, o proximo passo e adquiri-las. A extracao

de evidencias da fonte de dados requer cuidados, como, por exemplo, a copia exata dos dados

coletados. Para realizar esse tipo de copia, deve-se usar ferramentas que facam copias bit-a-bit

da mıdia. Uma copia bit-a-bit garante que toda a informacao presente na mıdia sera copiada

para a imagem, incluindo dados como espacos nao alocados, nos quais pode haver resıduos de

arquivos excluıdos, e espacos subaproveitados (slack spaces).

A necessidade de usar ferramentas de imagem bit-a-bit existe, pois nem todos programas

de copia comumente encontrados copiam, por exemplo, a parte referente aos espacos suba-

proveitados, os quais podem conter evidencias importantes. Essas diferencas sao ilustradas na

Figura 3.1. Um exemplo de ferramenta bem documentada e bastante usada no meio forense

para realizar copias bit-a-bit de qualquer porcao de dados e o dd, disponıvel no Linux e em

outros sistemas.

Figura 3.1: Comparacao entre operacoes de copia bit-a-bit e copia comum de dados

(adaptado de [Casey, 2004]).

Durante a extracao de evidencias, considere o seguinte exemplo de intrusao via rede para

ilustrar um aspecto importante: se um intruso conseguiu acesso a um sistema, ele pode ter inse-

rido artefatos para tentar ocultar sua presenca ou destruir eventuais evidencias que permitissem

sua identificacao. Disso decorre o cuidado necessario para a coleta de dados, tanto para as

acoes tomadas pelo investigador quanto para o seu kit de ferramentas, a fim de evitar possıvel

destruicao ou corrupcao de evidencias.

Uma vez identificadas e extraıdas do sistema comprometido, as evidencias digitais devem

ser preservadas para diminuir o quanto possıvel a sua alteracao desde a sua coleta. O ideal

e evitar qualquer alteracao, mas nem sempre isso e possıvel, especialmente quando se coleta

evidencias com o sistema nativo em execucao. Eventuais impossibilidades de coleta-las sem

altera-las devem ser documentadas [Vacca, 2002].

A questao da preservacao de evidencias digitais pode ser comparada a preservacao de

uma cena de crime tradicional. Assim como a regiao na qual ocorreu o crime e isolada para

proteger o local e, por conseguinte, as evidencias fısicas, a preservacao de evidencias digi-

tais deve protege-las de eventuais perigos que possam corrompe-las ou ate mesmo destruı-las

[de Souza Oliveira, 2001].

Page 33: Forense Computacional Tecnicas Ferramentas

Evidencias Digitais 32

3.3.2 Autenticacao de Evidencias

“Autenticar as evidencias coletadas de forma a comprovar que estas sao identicas as ori-

ginais apreendidas”. Na autenticacao de evidencias, devem ser empregados metodos para de-

monstrar basicamente duas propriedades: a atividade de coleta de evidencias nao alterou a fonte

de dados; as evidencias adquiridas sao fieis a fonte de dados. No caso da investigacao forense

no meio computacional, a preocupacao maior reside na primeira propriedade, visto que a se-

gunda, isto e, capacidade de replicar dados com exatidao, e feita com relativa facilidade. Nesse

ponto, entra em questao a importancia da documentacao dos passos tomados e a manutencao

de cadeias de custodia, para que as evidencias sofram menor risco possıvel.

E comum empregar algoritmos de resumo de mensagem, como MD54, para gerar valores

unicos5 associados a uma porcao de dados, conhecidos tambem como hashes criptograficos

[Casey, 2004]. Os valores de resumo sao calculados para a fonte de dados antes e depois do

processo de replica dos dados, a fim de completar a cadeia de acoes que envolvem a extracao

de uma evidencia digital. A Figura 3.2 ilustra o processo de geracao de hashes criptograficos.

Primeiramente, e gerado o valor de hash criptografico MD5 para a fonte de dados antes da

coleta. Feita a coleta de dados, e calculado novamente o valor do MD5 da fonte, checando

se corresponde ao valor calculado antes da coleta ser realizada. Isso garante que a fonte de

dados nao foi alterada. Feito isso, o proximo passo e verificar se o hash criptografico dos dados

extraıdos corresponde ao hash criptografico da fonte de dados.

Esse teste e especialmente interessante quando a fonte de dados esta localizada em outra

maquina, em uma situacao na qual e necessario transmitir os dados via rede, ou quando se faz

extracao de dados de uma mıdia como um CD-ROM, situacao em que e comum a presenca de

codigos de deteccao e correcao de erros. No entanto, quando se trabalha com dados do disco

instalado no proprio sistema forense, a geracao de resumos de mensagem nao tem efeito pratico,

caso contrario o proprio processamento do sistema nao seria confiavel.

Uma questao ja mencionada na live analysis e o problema de ter de trabalhar com o sistema

em execucao para realizar a coleta de evidencias. Nessa modalidade de analise e impossıvel

coletar todas evidencias sem provocar o mınimo de disturbio ao sistema, uma vez que as acoes

do perito interagem diretamente com o estado do sistema analisado. Por exemplo, caso seja

necessario realizar um dump da memoria principal, a simples execucao do programa que copia

o seu conteudo ja causa-lhe alteracoes. Por essa razao, o perito deve ter capacidade de prever as

consequencias de suas acoes no sistema e avaliar o impacto do seu kit de ferramentas utilizado

no caso investigado.

Como foi mencionado, alem da protecao da fonte de dados e da autenticacao de evidencias

4Para calcular valores de MD5 pode-se utilizar, por exemplo, o programa md5sum no Linux.5Embora recentemente tenham sido reportadas colisoes geradas pelo algoritmo MD5, ele sera con-

siderado, neste trabalho, relativamente seguro para geracao de hashes criptograficos distintos para in-

formacoes distintas.

Page 34: Forense Computacional Tecnicas Ferramentas

Evidencias Digitais 33

Figura 3.2: Processo de autenticacao entre fonte e copia de dados

coletadas, e requerido, tambem, a protecao da integridade das evidencias durante todo o pro-

cesso de analise forense. Por isso, alem da geracao de hashes criptograficos, e importante

documentar os processos de autenticacao realizados, indicando quais algoritmos foram utili-

zados (MD5, SHA etc.), qual implementacao, versao etc. Esses documentos irao servir de

apoio quando for necessario mostrar que as evidencias coletadas em um caso nao sofreram

modificacao, acidental ou nao, em uma futura apresentacao dos resultados forenses.

3.3.3 Analise de Evidencias

“Analisar as evidencias recolhidas”. A analise de evidencias digitais ocorre de forma

analoga a analise laboratorial procedida numa perıcia tradicional, onde sao empregados co-

nhecimentos cientıficos de areas diversas, como a Quımica e a Fısica, sobre as amostras de

materiais coletadas, a fim de interpreta-las e chegar a resultados que possam elucidar o caso.

A analise de evidencias procura correlacionar indıcios e pessoas, tentando reconstruir a

sequencia de fatos ocorrida. Isso significa que as evidencias devem ser interpretadas; nao basta

adquiri-las corretamente. Em uma recuperacao de arquivos, por exemplo, o objetivo da forense

nao e apenas recuperar informacao; ela deve tentar estabelecer ligacoes entre dono e dados.

A conexao entre ente e informacao recuperada possivelmente ira permitir obter conclusoes a

respeito dos motivos, como se deu o fato, e tudo aquilo que esta relacionado ao caso. Durante

a analise das evidencias recuperadas, devem ser observados diversos artefatos inerentes a elas,

como marcas de tempo (MAC times), dono (owner), permissoes, atributos etc., relacionando

esses itens aos indivıduos em avaliacao.

Um ponto de interesse a solidez de uma investigacao e que nem sempre essas informacoes

podem ser confiaveis, uma vez que podem ser alteradas deliberadamente pelos suspeitos. Im-

Page 35: Forense Computacional Tecnicas Ferramentas

Evidencias Digitais 34

portante tambem conhecer eventuais falhas e defeitos presentes no projeto e implementacao

de sistemas operacionais e sistemas de arquivos, que provocam alteracoes inesperadas nessas

informacoes. Um exemplo seria aberracoes ocorridas nos MAC times de arquivos no Windows,

quando sao criados e copiados no sistema de arquivos NTFS em determinadas circunstancias

[de Souza Oliveira, 2001]. Em sıntese, deve-se saber ate onde se pode confiar em informacoes

extraıdas.

Existe uma dificuldade inerente a correlacao de evidencias ao autor da acao ilegal. Tendo

como base apenas as evidencias coletadas e analisadas, nem sempre e garantido a relacao direta

entre o suposto autor do crime e o crime cometido. Deve-se ter em mente que, no meio digital,

um criminoso pode usar diversas tecnicas de mascaramento ou disfarce de identidade ao rea-

lizar suas acoes (para uma descricao de tecnicas de disfarce e roubo de identidade, consulte a

referencia [Icove et al., 1995]).

A investigacao deve extrapolar o campo da tecnica, fazendo um levantamento a respeito

das atividades dos supostos autores no perıodo em que houve o crime. Caso haja indıcios de

que houve roubo ou disfarce de identidade, uma boa polıtica e buscar por “impressoes digi-

tais”deixadas pelo criminoso, as quais podem provar como ele teve acesso a senhas, codigos de

acesso etc. que o permitissem passar-se por outra pessoa.

3.3.4 Documentacao e Apresentacao de Resultados

A formalizacao dos resultados da analise de evidencias e feita por meio de relatorios e

laudos, o que pode ser auxiliado por alguns softwares de forense, como EnCase. Algumas

agencias de combate ao crime digital geralmente utilizam documentos padronizados para tal.

Essa padronizacao na documentacao e uma forma a mais de garantir um alto nıvel de com-

prometimento com a seguranca das evidencias digitais, o que e importante na apresentacao de

resultados.

Pode ser necessario apresentar as evidencias perante diversas pessoas tecnicas e nao tecnicas

no tocante a forense. Um cuidado especial deve ser tomado na apresentacao de evidencias para

leigos no assunto (juri, juızes etc.), pois elas devem ser apresentadas de forma compatıvel ao en-

tendimento dessas pessoas, para que possam entender e confiar na prova exibida [Vacca, 2002].

Os indivıduos tecnicamente leigos nao confiarao em tecnicismos que nada ou pouco entendem;

essa estrategia de abuso da tecnica poderia muito bem ser usada para produzir uma falsa prova.

No entanto, se as evidencias forem apresentadas em um formato mais humano e inteligıvel a

eles, o que nao implica distorcer o significado tecnico das evidencias, essas pessoas poderao

entende-las e julgar a apresentacao das evidencias como confiavel.

Page 36: Forense Computacional Tecnicas Ferramentas

Padronizacao e Entidades 35

Cadeia de Custodia

A cadeia de custodia refere-se a documentacao completa de acoes e pessoas envolvidas no

manuseio de evidencias coletadas em um caso. Nesse documento, deve estar registrado quem

encontrou quais evidencias, quem teve acesso a elas, que acoes foram tomadas (bem como

horarios de acesso, que dados foram acessados etc.), quando e como foram transportadas, onde

estao localizadas atualmente etc. [de Freitas, 2004]. E uma polıtica necessaria para garantir, a

quem se esta apresentando as evidencias, que elas nao foram corrompidas ou sabotadas desde

a sua coleta [Vacca, 2002]. A Tabela 3.2 ilustra, de forma simplificada, o registro de acoes

tomadas relativas a uma evidencia apreendida em uma cena de crime.

Todas essas informacoes pertinentes a cadeia de custodia devem ser bem documentadas para

estar em conformidade com a lei e para posterior averiguacao. Quando uma prova e apresen-

tada perante uma corte judicial, serao feitos questionamentos a respeito da sua autenticidade.

Se os elos da cadeia de custodia forem quebrados, essa falha tem grande chance de anular o

valor da prova apresentada, uma vez que serao geradas duvidas a respeito da confiabilidade dos

procedimentos tomados para com as evidencias coletadas.

A cadeia de custodia e um dos itens que usualmente constam de relatorios e documentacoes

forenses, como usados pelo FBI. Essa disciplina imposta aos procedimentos forenses, os quais

relatam precisamente como acoes serao realizadas e por quem, demonstram todo um cuidado

em documentar qualquer tipo de perıcia e ser capaz de prever qualquer tipo de procedimento a

ser realizado [de Souza Oliveira, 2002].

3.4 Padronizacao e Entidades

Assim como os diversos ramos da Ciencia Forense estabelecem padroes e metodologias

para exercerem suas perıcias, a forense computacional nao foge a essa regra. Em uma primeira

abordagem, um processo forense padronizado da credibilidade e confianca a pessoas leigas

no assunto que irao julgar um caso, como juızes e jurados. Por outro lado, a padronizacao

visa permitir que particularidades tecnicas de um caso investigado possam ser compartilhadas

e verificadas pela comunidade cientıfica forense.

Na determinacao de padroes e interessante visualizar a ideia ilustrada na Figura 3.3 como

ponto de partida. Um modelo de padronizacao e constituıdo de aspectos legais e tecnicos. As-

pectos legais sao estabelecidos por meio da criacao de leis relacionadas a conduta pericial e as

suas atribuicoes legais. Ja os aspectos tecnicos dizem respeito aos procedimentos computacio-

nais envolvidos em um exame forense, como tecnicas, algoritmos e ferramentas de aquisicao e

analise de evidencias digitais.

E natural que a definicao de padroes na forense seja restrita; nao seria possıvel aplicar as

mesmas regras a todos os paıses. Fatores como diferentes legislacoes e culturas impossibilitam

Page 37: Forense Computacional Tecnicas Ferramentas

Padronizacao e Entidades 36

Linha Item Data Hora Quem Descricao

1 Drive de disco

rıgido #123456

01/01/2007 10h15 Marcos Apreendeu o HDD no

local, com permissao

dada pelo dono da em-

presa.

2 Drive de disco

rıgido #123456

01/01/2007 10h45 Marcos Transportou o HDD

para local de protecao

de evidencias no es-

critorio principal.

3 Drive de disco

rıgido #123456

02/01/2007 14h00 Marcos Retirou o HDD para

criar copia de analise.

4 Drive de disco

rıgido #123456

02/01/2007 17h00 Marcos Retornou HDD ao

local seguro para

evidencias.

Tabela 3.2: Registro simplificado da cadeia de custodia de uma evidencia digital (disco

rıgido ou HDD) (adaptado de [Solomon et al., 2004])

a criacao de um regulamento global para todo o conjunto de praticas forenses. E viavel e

interessante estipular algumas regras em tarefas especıficas, tais como a coleta de evidencias.

Essas regras costumam ser estabelecidas primeiramente por meio da troca de informacoes entre

agencias legais de seguranca de paıses diversos. Esse debate produz conhecimento cientıfico

com base na troca de experiencias, e pode ser muito util na definicao de padroes especıficos, os

quais podem futuramente ser utilizados em ampla escala ao redor do mundo.

Um entrave ao estabelecimento de padroes na forense e a existencia de uma vasta

quantidade de tipos de hardware, sistemas operacionais, arquiteturas e tipos de mıdia

[de Souza Oliveira, 2002]. Somado ao fato de ser um campo relativamente recente, o estabele-

cimento de padroes, mesmo que em pequenos grupos em alguns paıses, e uma tarefa trabalhosa

e complexa.

Foram criadas algumas entidades, como o IOCE, para permitir troca de informacoes entre

diversos paıses e suas agencias de seguranca, representando esforcos no sentido de estabelecer

normas para a pratica forense no meio computacional. A seguir, ha uma breve descricao dos

objetivos da IOCE e de outras entidades empenhadas nesse objetivo:

IOCE (International Organization on Computer Evidence) 6 - entidade interna-

cional criada em 1995, constituıda por membros de diversas agencias internacionais

de combate ao crime. As atribuicoes da IOCE sao, principalmente, facilitar a troca de

6http://www.ioce.org

Page 38: Forense Computacional Tecnicas Ferramentas

Padronizacao e Entidades 37

Figura 3.3: Modelo de padronizacao (adaptado de [dos Reis, 2003])

informacoes entre essas agencias de seguranca por meio de um forum internacional, onde

sao discutidas questoes relativas a investigacao forense computacional. Tambem organiza

conferencias, formula padroes para coleta de evidencias computacionais, dentre outras

atividades.

SWGDE (Scientific Working Group on Digital Evidence) 7 - entidade norte-

americana criada e mantida por orgaos de seguranca daquele paıs em 1998. A SWGDE

surgiu como uma entidade empenhada na reuniao de esforcos de diversas agencias

legais (FBI, departamentos de polıcia estaduais, orgaos governamentais e agencias

internacionais), a fim de realizar um combate eficiente ao crime digital. Publica

diversos documentos, como papers sobre procedimentos e praticas forenses e casos reais

ocorridos nos EUA.

IACIS (International Association of Computer Investigative Specialists) 8 - e

uma entidade sem fins lucrativos, composta por voluntarios no intuito de treinar pes-

soal em forense computacional. Essas atividades fornecidas pela IACIS sao realizadas

por oficiais e profissionais da lei regionais, nacionais e internacionais, os quais compoe

a entidade. O foco aqui e o ensino e treinamento, provendo, para isso, diversos cursos e

certificacoes na area.

Um elemento que pode vir a auxiliar a padronizacao de perıcias, particularmente nas tarefas

de documentacao, sao os chamados SOPs (Standard Operating Procedures ou Procedimentos

7http://ncfs.org/swgde8http://www.iacis.com

Page 39: Forense Computacional Tecnicas Ferramentas

Padronizacao e Entidades 38

Operacionais Padroes, em portugues). Os SOPs sao documentos que visam proporcionar um

controle de qualidade as perıcias digitais [de Geus et al., 2001], descrevendo detalhadamente

procedimentos realizados durante a perıcia. Um exemplo de SOP seria o procedimento de

replicar um disco rıgido, no qual deve constar itens como: responsavel, data, hora, que materiais

foram manipulados, descricao do procedimento para alcancar os seus objetivos etc. O uso de

SOPs, aliado a cadeias de custodia ıntegras, visa manter um alto grau de qualidade no processo

forense como um todo.

No Brasil, infelizmente nao ha, ainda, entidades empenhadas fortemente nas questoes de

padronizacao como aquelas citadas acima. No entanto, existem algumas entidades que realizam

diversas atividades relacionadas a resposta a incidentes no paıs. Abaixo segue uma descricao

de duas delas:

CERT (Centro de Estudos, Resposta e Tratamento de Incidentes de Seguranca)9 - anteriormente denominado de NBSO/Brazilian CERT, e o grupo de resposta a in-

cidentes responsavel por receber, analisar e responder a incidentes de seguranca em

computadores conectados a Internet brasileira. E mantido pelo CGI (Comite Gestor da

Internet no Brasil).

CAIS (Centro de Atendimento a Incidentes de Seguranca) 10 - criado em 1997,

e o setor pertencente a Rede Nacional de Ensino e Pesquisa (RNP) responsavel pela

deteccao, resolucao e prevencao de incidentes de seguranca ocorridos na rede nacional

cientıfica e academica (ou rede RNP2). Periodicamente, o CAIS levanta dados estatısticos

a respeito de incidentes de seguranca ocorridos nessa rede e realiza um trabalho pro-ativo

de identificacao e erradicacao de maquinas infectadas. Tambem executa atividades como

testes e recomendacoes de ferramentas de seguranca, recomendacoes de polıticas diver-

sas, dentre outras.

Quando acionadas, essas entidades dao suporte a sistemas que sofreram algum tipo de ata-

que, indicando como proceder apos o ataque efetivado. E claro que alem de convocar essas

entidades, devem ser acionadas as agencias legais competentes, como as Polıcias.

Espera-se que as leis de crimes informaticos (como discutido no Capıtulo 2), as quais pro-

vavelmente entrarao em vigor em um futuro proximo, possam incentivar esforcos focados no

estabelecimento de padroes e discussao legal da forense computacional em seus diversos aspec-

tos.9http://www.cert.br

10http://www.cais.rnp.br

Page 40: Forense Computacional Tecnicas Ferramentas

Conclusoes 39

3.5 Conclusoes

Nao ha duvida de que a forense computacional seja um campo do conhecimento necessario

atualmente. Como foi mostrado no Capıtulo 2, a demanda para essa disciplina da criminalıstica

e verificada pelo surgimento de grande numero de crimes praticados por meio de um compu-

tador. Isso requer que sejam definidos procedimentos e ferramentas para a coleta dos vestıgios

em computador ou evidencias digitais. A padronizacao e um aspecto importante que deve ser

levado em conta, especialmente neste conexto, visto que a forense computacional e um ramo

relativamente recente, portanto, ainda ha muito a ser padronizado.

Um problema que deve ser discutido com seriedade e compromisso por parte dos investi-

gadores e a questao da privacidade, a qual sera discutida no proximo capıtulo. E serao apre-

sentadas, tambem, medidas tomadas por atacantes, tambem chamadas de contramedidas ou

procedimentos antiforenses.

Page 41: Forense Computacional Tecnicas Ferramentas

Capıtulo 4

Privacidade e Contramedidas

Neste Capıtulo, sao mostrados aspectos de conduta pericial em relacao a privacidade da

informacao que esta em analise, exibindo casos para exemplificar procedimentos que devem

ser evitados. Algumas contramedidas executadas por atacantes, denominadas comumente de

tecnicas antiforenses, sao apresentadas, as quais usam da exclusao segura (wipping), criptogra-

fia e esteganografia para tentar ocultar ou eliminar vestıgios de informacoes e acoes.

4.1 Privacidade da Informacao em Analise

Durante uma investigacao forense, a privacidade de informacoes de usuarios armazenadas

nos sistemas em analise deve ser uma polıtica a ser cumprida em qualquer fase do processo. A

vistoria de arquivos deve ser cautelosa, a fim de nao acessar indevidamente informacoes sem

autorizacao e violar questoes eticas e legais. Isso e valido especialmente quando e preciso

averiguar e-mails e documentos de texto, os quais podem conter informacoes confidenciais,

situacao que ocorre com frequencia.

Alem de eventualmente anular os resultados da analise forense, o corpo investigativo po-

dera sofrer processo legal por violacao de privacidade. A nao ser em situacoes especiais, onde

for emitido um mandado judicial autorizando o acesso a esses dados, a investigacao nao deve

acessar dados particulares deliberadamente.

Claro que quando se trata de uma investigacao organizacional, possivelmente existem

polıticas que estabelecem nıveis de privacidade dos dados de cada um de seus funcionarios.

Se a organizacao publica polıticas claras a respeito de como e tratada a privacidade em seu

ambiente, os usuarios consentem que eventualmente podem ter seus dados averiguados. No

entanto, se polıticas nao forem definidas, a melhor opcao e conseguir uma autorizacao judicial

para que o acesso aos dados seja legıtimo [Solomon et al., 2004].

Um caso real descrito em [Casey, 2004] ilustra essa questao da violacao de privacidade. Em

1990, a Steve Jackson Games, uma empresa do ramo de livros de ficcao e RPG nos Estados

Unidos, teve diversos materiais apreendidos por agentes federais norte-americanos por suspeita

40

Page 42: Forense Computacional Tecnicas Ferramentas

Antiforense 41

de envolvimento com um grupo de hackers que promoviam ataques aquela epoca. Apos nada

ter sido provado contra a empresa, nao foi possıvel recuperar os materiais que haviam sido

apreendidos, como computadores e livros ainda nao publicados. Em decorrencia disso, a Steve

Jackson Games moveu uma acao contra o Servico Secreto norte-americano. Durante o processo

legal, foi constatado que agentes federais leram e-mails da empresa que nao haviam ainda sido

transferidos para as maquinas da mesma, o que constituiu violacao de diversos Atos de Privaci-

dade presentes naquele paıs. Ao final, a justica determinou que fosse pago em torno de U$ 300

000 a empresa, devido a perdas e outros custos.

Esse caso ilustra que a violacao de privacidade apenas trouxe custos elevados ao Estado e

nao solucionou o crime original, que era capturar hackers que estavam cometendo crimes por

computador aquela epoca.

Portanto, alem de possuir conhecimentos de areas diversas da Computacao para poder che-

gar a resultados que podem resolver um caso, um perito de forense computacional deve possuir

um conhecimento detalhado sobre a legislacao local, regional, nacional e eventualmente in-

ternacional [Solomon et al., 2004], para que possa enquadrar seu trabalho na lei, tornando-o

valido. Um exemplo dessa necessidade surge em crimes que abrangem sistemas distribuıdos

espalhados pelo mundo.

4.2 Antiforense

Se por uma lado a forense computacional procura por vestıgios de acao criminosa ocorrida,

a antiforense faz o oposto; ela diz a respeito a qualquer estrategia de eliminacao de informacao

que possa ser utilizada em um processo de analise forense. As vezes e usado o termo contrame-

didas para referir-se a essas acoes, que podem incluir tambem a ocultacao de vestıgios.

Nesse ponto, e interessante fazer uma distincao importante entre privacidade e contramedi-

das. Um usuario pode fazer o uso de procedimentos que realizam a exclusao segura nas suas

mıdias de armazenamento antes de revende-las. A nao ser que esteja usando sua maquina para

propositos ilegais, a eliminacao segura de dados e um direito civil. Isso lhe permite que as suas

informacoes possam ser apagadas com seguranca, diminuindo a chance de terceiros acessarem

sem autorizacao vestıgios dessa informacao na mıdia.

Ja contramedidas para realizar praticas antiforense dizem respeito a exclusao e ocultacao de

dados que poderiam, por exemplo, comprometer ou identificar um intruso. Outra situacao seria

a ocultacao de dados (geralmente ilegais, mantidos na maquina vıtima para futuro acesso pelo

intruso) em areas de difıcil acesso, para que essa informacao seja encontrada apenas por quem

a escondeu. A obtencao de informacoes escondidas no disco sera descrita com mais detalhes

no Capıtulo 6.

Page 43: Forense Computacional Tecnicas Ferramentas

Antiforense 42

4.2.1 Exclusao Segura

Destruir uma informacao e muito difıcil; apesar de ser dito em capıtulos posteriores que a

recuperacao de dados por meio dos softwares comumente usados (EnCase, GetDataBack etc.)

nao recupera uma informacao sobrescrita por outra mais recente, existem tecnicas especiais

para recuperacao da informacao em laboratorio. Essas tecnicas nao tratam apenas de recuperar

informacoes sobrescritas uma ou mais vezes; elas tratam tambem de situacoes onde a mıdia

sofreu algum tipo de comprometimento fısico, seja acidental ou nao.

Um incendio ocorrido na sala de computacao, um disquete importante que serviu de brin-

quedo a criancas, uma queda de disco rıgido sao alguns exemplos de danos fısicos que podem

ocorrer em mıdias de armazenamento. [Vacca, 2002] apresenta diversos casos em que foram

recuperados dados em situacoes adversas, como:

• Um disco rıgido sofreu uma queda que danificou alguns de componentes eletronicos. Foi

possıvel substituir os componentes e restabelecer o funcionamento normal da mıdia sem

perda de dados.

• Disquetes mastigados por animais domesticos sofreram danos severos na superfıcie do

disco. Foi possıvel recupera-los com dano de apenas 15% do total de setores. Houve

necessidade de criar uma nova tabela de alocacao FAT. Ao final, foi possıvel criar uma

imagem da mıdia e recuperar arquivos.

Para a recuperacao avancada de informacoes como nos problemas listados acima, e ne-

cessario conhecimento tecnico especializado e ambiente proprio, como salas esterilizadas de

recuperacao.

Por outro lado, existe uma preocupacao quanto ao descarte de informacao de forma se-

gura. Empresas de cartoes de credito, bancos, agencias policiais etc. nao querem que seus

discos rıgidos usados sejam descartados e caiam eventualmente em maos de pessoas capazes

de recuperar esses dados. Como mencionado, mesmo estando os discos formatados e possıvel

recupera-los usando tecnicas especiais. Em verdade, existem diversas empresas, tanto no Brasil

como no exterior, que fornecem esse servico.

Para possibilitar a exclusao segura de informacoes, uma forma de baixo custo existente e um

processo denominado wipping de informacoes. O wipping consiste em sobrescrever a porcao de

dados que se quer “limpar”por padroes de bits pre-estabelecidos e randomicos um certo numero

de vezes [Gutmann, 1996]. Cada passagem de um certo numero de operacoes de sobrescrita e

denominada de pass, que e tambem executada diversas vezes. Portanto, ao fim do wipping,

sao feitas dezenas de sobrescritas desses bits nos mesmos lugares, o que torna, a maioria dos

esquemas de recuperacao via software, praticamente impossıvel recuperar esses dados.

Considere o seguinte exemplo: se for necessario excluir de forma segura um documento

confidencial do Microsoft Word, a “limpeza”devera executar diversas passes, cada uma inse-

Page 44: Forense Computacional Tecnicas Ferramentas

Antiforense 43

rindo bits randomicos e pre-estabelecidos no arquivo todo diversas vezes. Ao final, o arquivo

tera sido sobrescrito dezenas de vezes. O mesmo procedimento da-se com qualquer outra mıdia

de armazenamento.

A desvantagem da eliminacao de dados descrita e ser um processo lento, que pode demorar

dias para “limpar”completamente um disco rıgido de 80GB, por exemplo. Mas e preferıvel um

tempo demorado as piores consequencias de violacao e acesso indevido a informacoes confi-

denciais. E e um processo relativamente barato para ser implementado, com excecao do fator

tempo.

A destruicao fısica da mıdia de armazenamento como uma forma de descarte pode apresen-

tar um custo bem mais alto que a eliminacao de dados via software. Essa acao inviabilizaria a

revenda de dispositivos antigos para cobrir parte do custo de sua aquisicao, o que pode ser um

valor consideravel dependendo do porte da organizacao. Nao obstante, pode nao ser possıvel o

descarte fısico, especialmente quando a mıdia e alugada.

Muitas vezes e necessario transportar a mıdia de armazenamento do seu ambiente de funcio-

namento para fora, como, por exemplo, para uma oficina de reparos terceirizada. Para o caso de

a mıdia conter informacoes sigilosas e importantes, o ideal e eliminar com seguranca os dados

da mıdia antes de ela deixar o seu ambiente, visto que nao deve ser descartada a possibilidade de

ocorrerem violacoes de acesso durante o trajeto. Quando a mıdia for retornada ao seu ambiente

normal, o conteudo pode ser restaurado de volta.

Outro ponto em questao a respeito do descarte fısico e que nao e possıvel garantir que,

descartando as mıdias, a informacao nao podera ser recuperada mais. Como foi mencionado,

mesmo que um disco sofra danos fısicos (mergulhado na agua, queimado etc.) e seja jogado no

lixo, e quase sempre possıvel recuperar ao menos alguma parte das informacoes que essa mıdia

armazenava.

Outros exemplos de alteracoes no ambiente de armazenamento que requerem eliminacao

segura de dados [Oltsik and Biggar, 2006]:

Conserto - quando devem ser reparados, dispositivos que armazenam informacoes sensıveis

devem sofrer exclusao segura de dados antes de deixar o seu ambiente nativo para o local

de conserto.

Fim de vida util - dispositivos de armazenamento devem ter seus dados excluıdos de forma

segura no final do ciclo de vida util, para que possam ser usados em outros setores da

organizacao ou revendidos ao mercado;

Terceirizacao - relocacao ou reparticionamento da mıdia de armazenamento quando com-

partilhada. A terceirizacao deve ser feita tendo em mente a eliminacao segura de dados

para que informacoes sensıveis mais antigas nao possam ser recuperadas devido a novas

alocacoes e redistribuicoes de espaco.

Page 45: Forense Computacional Tecnicas Ferramentas

Antiforense 44

4.2.2 Criptografia

A criptografia esta intimamente ligada a seguranca da informacao, especialmente no atual

cenario mundial, onde volumes expressivos de informacoes confidenciais sao trocados diaria-

mente pela Internet. A criptografia prove mecanismos para proteger informacoes por meio da

confidencialidade, integridade, autenticidade e nao-repudio, de modo que apenas o destinatario

correto seja capaz de decifrar e entender uma informacao cifrada.

A criptografia e implementada por um conjunto de algoritmos matematicos empregados

para cifrar dados, de modo que sejam entendıveis apenas pelos destinatarios apropriados. Na

atual conjuntura de comunicacao mundial via Internet, a criptografia torna-se extremamente ne-

cessaria para evitar que intrusos capturem e tenham acesso a informacoes particulares trocadas

entre entes. Se dois entes estao trocando informacoes criptografadas entre si, mesmo que um

intruso consiga acesso a elas, ha um nıvel de seguranca nessa informacao.

Se por um lado a criptografia fornece um nıvel de seguranca as informacoes trocadas entre

entidades por meio da cifragem de dados, ela pode ser usada para cifrar dados comprometedores

para evitar o conhecimento de seu conteudo. Isso representa um grande entrave para a forense,

dada a dificuldade em decifrar o conteudo suspeito.

Um caso verıdico apresentado por [Casey, 2004] mostra como a cifragem de informacoes

ilegais pode dificultar a persecucao criminal de infratores. Agentes legais investigavam cırculos

de pornografia infantil em salas de bate-papo, denominados Orchid Club e Wonderland Club.

Os indivıduos que trocavam dados nessas salas descobriram que estavam sob investigacao, o

que os levou a criptografar as informacoes que trocavam. As maquinas dos indivıduos suspeitos

foram apreendidas e enviadas a outras agencias de seguranca, como o FBI, a fim de auxiliar a

tentativa de decifrar o conteudo suspeito, no entanto, sem sucesso. Como resultado, os avancos

das investigacoes foram consideravelmente impedidos, resultando em uma baixa quantidade de

processos legais bem sucedidos contra os indivıduos infratores dessas salas de conversacao.

Em uma investigacao forense, pode ser necessario vencer barreiras impostas por dados pro-

tegidos por senha ou criptografados. Pode ser necessario acessar o disco de um suspeito de

manter documentos de fraudes, mas as informacoes estao criptografadas. Pode ser necessario

acessar planilhas eletronicas e documentos de texto de maquinas apreendidas de grupos terro-

ristas. Portanto, muitas vezes e preciso vencer essas barreiras para obter provas suficientes da

acao criminosa.

Por fim, e importante ressaltar que a criptografia pode ser aplicada a arquivos ou a um disco

por completo. Nesse ultimo caso, ocorre uma dificuldade ainda maior para a investigacao, visto

que possivelmente nao sera possıvel mensurar o conteudo da mıdia.

Para auxiliar uma investigacao nesse sentido, existem diversas ferramentas1 que anulam a

1A tıtulo de exemplo, algumas ferramentas que podem auxiliar uma investigacao nesse sentido: Pas-

sword Recovery Toolkit e Distributed Network Attack (DNA).

Page 46: Forense Computacional Tecnicas Ferramentas

Antiforense 45

barreira de protecao por senha ou descobrem a senha. Dependendo do esquema de criptogra-

fia usado, pode ser viavel tentar pelo metodo da forca bruta decifrar o conteudo criptografado.

Claro que esse processo pode demorar um tempo consideravel e requerer muitos recursos com-

putacionais. A viabilidade da forca bruta depende do esquema de criptografia usado.

Segundo [Casey, 2004], e possıvel quebrar em 5 dias a seguranca de uma informacao cripto-

grafada com 40 bits, usando um cluster de 100 desktops. Arquivos criptografados (criptografia

de 40 bits) encontrados em um computador de um grupo terrorista foram decifrados pelo Wall

Street Journal. No entanto, se fosse utilizado um esquema criptografico de 128 bits, como o es-

quema geralmente usado pelo Microsoft Windows EFS (Encrypting File System), seria inviavel

aplicar o metodo da forca bruta, visto que seriam necessarios milhoes de anos para testar todas

as combinacoes (sem contar nos recursos computacionais necessarios).

4.2.3 Esteganografia

Diferentemente da criptografia, que busca cifrar o conteudo de uma informacao mascarando

o seu real conteudo, a esteganografia busca ocultar a existencia de uma informacao. Para realizar

tal feito, e usado um objeto para conter essa informacao que se pretende esconder. A ocultacao

e feita de tal modo que apenas o destinatario e remetente devam ser capazes de verificar a sua

existencia e extrai-la do objeto usado [Kessler, 2004].

Nao obstante, e possıvel estabelecer tecnicas de deteccao de informacao oculta em obje-

tos, como analises estatısticas de caracterısticas dos objetos usados para inserir a informacao

oculta [Vacca, 2002]. Por outro lado, o sucesso da esteganografia esta ligado a exploracao das

limitacoes da percepcao humana no campo da visao ou audicao, por exemplo.

E possıvel esconder informacoes dentro de diversos tipos de arquivos, como uma imagem

digital ou um arquivo de som WAVE, da seguinte forma [Vacca, 2002]:

• Inserir a informacao a ser escondida em um arquivo de audio, por meio da alteracao do

bit menos significativo (LSB) de cada amostra de audio. Ao ouvido humano, o arquivo

soa da mesma forma. O tamanho do arquivo nao e alterado.

• Inserir a informacao a ser escondida em uma imagem digital, fazendo a mudanca do LSB

do componente de brilho (brightness) de cada pixel. Em uma imagem de dimensoes

1024x768 podem ser inseridas muitas informacoes dessa forma.

A insercao de bits de informacoes nesses objetos possivelmente nao causara mudanca apa-

rente quando percebidos por seres humanos. No entanto, uma comparacao de componentes

dos pixels da imagem original e da imagem com informacoes ocultas, por exemplo, mostrara

alteracoes provocadas pela alteracao de bits devido a insercao da informacao ocultada.

A Figura 4.1 ilustra como um texto ASCII (“This is a test. This is only a test.”) escondido

em uma imagem praticamente nao provoca alteracoes perceptıveis.

Page 47: Forense Computacional Tecnicas Ferramentas

Conclusoes 46

Figura 4.1: Esteganografia - (A) Imagem original. (B) Imagem com texto escondido

(adaptado de [Westphal, 2003])

A deteccao da estegranografia em objetos e denominada de esteganoanalise e compreende

a analise de padroes de bits e busca por assinaturas de ferramentas que fazem a esteganografia

para tentar uma possıvel recuperacao do dado oculto. A esteganoanalise pode ser auxiliada por

diversas ferramentas, como:

StegAlyzer Artifact Scanner procura por artefatos de aplicacoes esteganograficas pre-

sentes no sistema. Pode buscar no registro do Windows tambem.

StegAlyzer Signature Scanner varre o conteudo do disco suspeito a procura de padroes

hexadecimais ou assinaturas de aplicacoes esteganograficas. Se um padrao for reconhe-

cido, existe a possibilidade de a informacao oculta ser extraıda.

Ambas as ferramentas acima sao desenvolvidas pela SARC. Maiores informacoes estao

disponıveis em http://www.sarc-wv.com.

4.3 Conclusoes

Este Capıtulo colocou em pauta algumas questoes relevantes a privacidade dos dados

passıveis de serem averiguados durante uma investigacao forense. E sempre interessante a

adocao de polıticas explıcitas quanto a privacidade em uma organizacao, e para os peritos e

importante nao violarem o sigilo de informacoes sem autorizacao judicial.

Page 48: Forense Computacional Tecnicas Ferramentas

Conclusoes 47

As tecnicas antiforenses mostram um desenvolvimento rapido no sentido oposto definido

pela forense computacional. Outros exemplos de contramedidas serao mostradas no Capıtulo 6,

principalmente em nıveis de abstracao mais baixos, mostrando lugares onde um investigador

pode conduzir buscas quando houver suspeitas da existencia de informacao escondida.

Page 49: Forense Computacional Tecnicas Ferramentas

Capıtulo 5

Forense na Web

Neste Capıtulo, sao apresentados conceitos e aspectos de alguns itens que merecem des-

taque na chamada Web forensics ou forense na Web, que trata da investigacao de elementos

relacionados a Web, como navegadores de Internet e seus artefatos. Sao apresentadas carac-

terısticas relevantes a forense de itens como cookies, historico e cache, e como funcionam esses

recursos durante o uso de navegadores.

5.1 Cookies

Cookies sao mecanismos utilizados pelos navegadores de Internet com a finalidade de man-

ter secoes HTTP de usuarios no decorrer da conexao cliente-servidor [Kurose and Ross, 2006].

Os cookies sao armazenados em arquivos de texto (codificados) na maquina cliente. Os

RFCs 2965 [Kristol and Montulli, 2000] e 2109 [Kristol and Montulli, 1997] descrevem os

cookies. Apesar de relativamente simples, sao um mecanismo poderoso que se estabe-

lece na maquina cliente da conexao e bastante uteis em determinadas aplicacoes da Web

[Netscape, 1997]. Assim, diversas comodidades sao adquiridas durante a navegacao pela Web,

como [Kurose and Ross, 2006, Netscape, 1997]:

Comercio eletronico - armazenamento da lista de produtos que se deseja comprar numa

loja online (CDs, livros, por exemplo);

Navegacao em geral - as preferencias pessoais determinadas por cada usuario na visita de

um site (estilo, cor, musica de fundo, paginas acessadas etc.), para oferecer-lhe propa-

ganda dirigida ou indicacao de sites especıficos;

Para explicitar o uso de cookies durante a sessao HTTP em vigor, o servidor envia a linha

de cabecalho Set-Cookie: <cabecalho cookie1> ao agente usuario, isto e, ao navegador

de Internet, junto da resposta de requisicao HTTP [Kurose and Ross, 2006]. O cookie e salvo

em um arquivo no disco da maquina cliente, usando um nome especıfico que o identifica dos

48

Page 50: Forense Computacional Tecnicas Ferramentas

Cookies 49

demais. Quando o usuario agente da maquina cliente for acessar novamente o domınio do

qual recebeu o cookie, ele envia, junto ao cabecalho de requisicao HTTP, a linha Cookie:

<cabecalho cookie1> para identificar-se junto ao servidor. Esse envio de linhas de cabecalho

prossegue enquanto houver solicitacoes de dados por um usuario agente para um servidor que

utilize cookies [Netscape, 1997]. A Figura 5.1 ilustra esse processo.

Figura 5.1: Recebimento e envio de cookies entre servidor e cliente

E normal que haja diversos cookies gerados em solicitacoes ao mesmo domınio, especial-

mente quando ha solicitacoes de arquivos ou diretorios diferentes. O conteudo de um cookie e

o seu proprio cabecalho, que pode apresentar diversos campos, como: [Jones, 2005]

Set-Cookie: <NAME>=<CONTENT>; expires=<TIMESTAMP>; path=<PATH>;

domain=<DOMAIN>

Cada campo presente no cabecalho de um cookie desempenha uma funcao para o servidor.

Exemplos podem ser vistos na Tabela 5.1.

Um exemplo de cookie gerado pelo Google e

Set-Cookie:

PREF=ID=d7737e96ae7ef6aa:TM=1178780818:LM=1178780818:S=9NxvKkfiTZLK51ic;

expires=Sun, 17-Jan-2038 17:14:08 GMT;

path=/;

domain=.google.com.br

Interpretando o cabecalho acima verificamos que e um cookie de nome “PREF”, cujo

conteudo e “ID=d7737e96ae7ef6aa:TM=1178780818:LM=1178780818:S=9NxvKkfiTZLK51ic”,

Page 51: Forense Computacional Tecnicas Ferramentas

Cookies 50

Campo Descricao e funcao

NAME Um nome exclusivo que identifica o cookie

CONTENT Cadeia de informacao armazenada pelo servidor para

algum proposito especıfico. Geralmente e cifrada

TIMESTAMP Data e hora para indicar quando o navegador do usuario

ou o servidor deve remover o cookie

PATH Denota o diretorio no web site onde o cookie se aplica

(“/”e geralmente usado e refere-se a todo o site)

DOMAIN Denota o escopo de aplicacao do cookie, isto e, em quais

hosts de um domınio ele se aplica

Tabela 5.1: Campos que podem estar presentes no cabecalho de um cookie (adaptado de

[Jones, 2005])

o qual sera mantido pelo navegador ate Domingo, 17-Jan-2038 17:14:08 GMT, aplicavel em

qualquer host do domınio .google.com.br, e em qualquer diretorio (devido ao “/”definido no

campo path).

Tentar decifrar o campo de conteudo de um cookie pode ser uma atividade forense bas-

tante desafiadora, uma vez que e um complexo quebra-cabeca [Jones, 2005]. A observacao de

sucessivos cookies gerados por um web site pode dar pistas sobre possıveis significados que

informacoes armazenadas nesse campo do cabecalho podem assumir.

Para realizar a visualizacao, edicao e exclusao de cookies pode ser utilizada uma infinidade

de programas, como:

• Cookie monster;

• Extensoes do Mozilla Firefox.

Existem diversas questoes ligadas a violacao de privacidade decorrente do uso de cookies.

Tal fato e atribuıdo ao desconhecimento, por parte do usuario, do real conteudo ou proposito dos

cookies gerados pelos sites da Internet [Bunting and Wei, 2006]. Mesmo usando visualizadores

de cookies como os citados, os campos de conteudo (content, por exemplo) de um cookie, os

quais indicam a parte de dados uteis ao servidor, sao cifrados, o que impede o conhecimento

detalhado da mensagem. Nesse sentido, surgiram inumeros programas para automatizar a ex-

clusao de cookies do sistema de um usuario, a fim de garantir, ao menos em parte, a privacidade

que muitas pessoas dizem estar ameacada pelo uso desse mecanismo.

Page 52: Forense Computacional Tecnicas Ferramentas

Historico e Cache 51

5.2 Historico e Cache

Ao contrario dos cookies, que na maioria das vezes fornecem pouca informacao conclusiva,

os itens de historico e cache possibilitam tirar conclusoes solidas a respeito da navegacao na

Internet realizada na maquina investigada. Esses dois itens foram criados, originalmente, como

um meio de agilizar a navegacao e facilitar consulta a sites recem acessados. Dessa forma,

eles podem ser usados na forense para reconstruir a navegacao de usuarios. O historico de um

navegador de Internet registra a lista de URLs (paginas de hipertexto, figuras etc.) acessados

recentemente pelos usuarios do sistema. O cache diz respeito ao arquivamento de conteudo

acessado, como paginas e imagens, na maquina cliente.

De maneira geral, cada navegador adota uma implementacao diferente para guardar os re-

gistros de historico de um usuario. Por exemplo, no Internet Explorer e definido um arquivo

de ındice denominado index.dat, um para cada dia de navegacao [Bunting and Wei, 2006].

Ja no Mozilla Firefox e definido um unico arquivo (history.dat) o qual armazena todas as

entradas de historico. Claro que para cada usuario estao associados historicos, cache e cookies

armazenados em locais diferentes.

Particularmente, no Windows os arquivos de ındice nao registram apenas paginas e arquivos

da Web acessados via Internet Explorer; quaisquer arquivos abertos dentro da propria maquina

serao registrados no seu respectivo ındice. Por exemplo, arquivos de texto, imagens, MP3

etc. acessados no dia XX serao inseridos no index.dat desse dia, porem usando o termo inicial

“file:///”para indicar que e um arquivo local.

5.2.1 Localizacao no Disco

A localizacao dos itens de historico, cache e cookies no Internet Explorer esta descrita na

Tabela 5.2.

No Firefox, o historico e encontrado na pasta abaixo (pode sofrer pequenas alteracoes de

acordo com a versao do navegador usado):

X:\Documents and Settings\<usuario>\Dados de aplicativos

\Mozilla\Firefox\Profiles\<nome-aleatorio>\history.dat

Em se tratando de reconstruir a atividade de web sites visitados, temos de estudar o com-

portamento do cache e historico. Vamos considerar dois casos: Internet Explorer e Firefox.

5.2.2 Internet Explorer

No Internet Explorer (IE) temos a disposicao, sem fazer uso de nenhuma ferramenta, dois

itens:

Page 53: Forense Computacional Tecnicas Ferramentas

Historico e Cache 52

Item Localizacao

Cache (Temporary In-

ternet Files) X:\Documents and Settings\<usuario>

\Configurac~oes locais\Temporary Internet Files

\Content.IE5

Historico (History)

X:\Documents and Settings\<usuario>

\Configurac~oes locais\Historico

\History.IE5

Cookies

X:\Documents and Settings\<usuario>\Cookies

Tabela 5.2: Localizacao de artefatos do Internet Explorer

Historico - compreende diversos arquivos de ındice. Cada arquivo de ındice e armazenado

no seu respectivo diretorio, nomeado de acordo com a data que representa, por exemplo

MSHist012007032220070323. O arquivo de ındice e um arquivo binario e proprietario

da Microsoft, mas e possıvel visualizar facilmente os seus registros, pois essa informacao

e armazenada textualmente. Outras informacoes nao textuais que estao armazenadas sao,

por exemplo, uma tabela hash para que o navegador seja capaz de montar e exibir o

arquivo de ındice.

Cache - compreende um arquivo de ındice e alguns diretorios (geralmente 4) para armazenar

o conteudo de cache. O arquivo de ındice do cache tem estrutura similar a do arquivo

de ındice do historico, ou seja, possui uma tabela hash e os proprios registros de cada

item de cache, estes ultimos armazenados de forma textual. Nos diretorios do cache estao

presentes os arquivos acessados no IE, como paginas, figuras e folhas de estilo. Assim, e

possıvel fazer uma averiguacao do cache apenas verificando o conteudo desses diretorios,

nao sendo necessario fazer uso do arquivo de ındice.

Ferramentas

Para facilitar o nosso trabalho de busca pelas pastas dentro do cache, podemos usar algumas

ferramentas que nos fornecem listagens de historico e cache do IE, automatizando a tarefa de

verificacao manual de arquivos de ındice e pastas de conteudo. Exemplos de programas que

Page 54: Forense Computacional Tecnicas Ferramentas

Historico e Cache 53

trabalham nisso:

Pasco - trabalha sobre o arquivo de ındice do cache. A saıda e um arquivo de texto contendo

os registros encontrados. O uso principal e no processamento de arquivos de ındice de

cache do IE, mas pode ser usado para processar arquivos de ındice de historico desse

navegador tambem. Abaixo encontra-se um trecho de um arquivo de ındice de cache que

usamos para testar o programa:

History File: index.dat

TYPE URL MODIFIED TIME ACCESS TIME FILENAME DIRECTORY HTTP HEADERS

URL http://mail.google.com/mail/images/corner_br.gif Tue Apr 3 09:16:16 2007 Sat Apr 21

05:29:18 2007 corner_br[2].gif OZVI56BW HTTP/1.1 200 OK

Content-Type: image/gif Content-Length: 46 ~U:marcos

URL http://gfx2.hotmail.com/sbtnbk.gif Wed Aug 3 01:32:34 2005

Mon Jun 11 14:24:41 2007 sbtnbk[1].gif OZVI56BW HTTP/1.1 200 OK

Content-Length: 146 Content-Type: image/gif

ETag: "025fa38cb97c51:7a69" P3P: CP=BUS CUR CONo FIN IVDo ONL

OUR PHY SAMo TELo X-Powered-By: ASP.NET ~U:marcos

REDR http://cpvtext.cpvfeed.com/cpi.jsp?p=110894&aid=20298

&partnerMin=0&ron=on&ronMin=0&url=undefined&context

=entertainmentundefined&cat=entertainment&cpviw=468&cpvih=60

Web Historian - ferramenta que processa arquivos de historico do IE e de outros navegado-

res tambem (Firefox, Opera e Safari). Permite a escolha de diversos formatos de saıda,

como, por exemplo, em uma planilha do Microsoft Excell, o que facilita a visualizacao

dos resultados. Um trecho extraıdo pode ser visto na Figura 5.2.

Forensic Tool Kit (FTK) - possui um navegador “embutido”para tornar imediata a

associacao entre registro do item de cache e o respectivo arquivo de cache no disco.

O FTK e uma ferramenta forense de uso geral, nao se limitando a apenas trabalhar com

itens de navegadores (consulte o Apendice A para maiores informacoes).

Os relatorios gerados pelas ferramentas acima apresentam de forma simples e automatizada

informacoes sobre cada acesso realizado na maquina investigada. O historico e cache do IE

definem diversos campos em seus arquivos de ındice, como:

• URL;

Page 55: Forense Computacional Tecnicas Ferramentas

Historico e Cache 54

Figura 5.2: Excerto de um relatorio gerado pelo Web Historian no formato de planilha

eletronica

• Data de modificacao;

• Data de acesso;

• Tipo (URL ou REDR, isto e, redirecionado);

• Status (existe no disco ou nao);

• Nome do arquivo no disco;

• Cabecalho HTTP (mensagens de status HTTP, Content-type e outros).

Por meio dos relatorios gerados podemos vasculhar o conteudo do cache e historico usando,

por exemplo, uma busca por palavras-chave para checar se foram realizados acessos a sites

especıficos ou arquivos locais suspeitos. O acesso aos itens de cache nao deixa de ser trabalhoso

no entanto, visto que a maioria das ferramentas apenas gera uma listagem de conteudo; o acesso

deve ser feito manualmente, com excecao do FTK, que dispoe de uma especie de navegador

embutido.

5.2.3 Mozilla Firefox

Conforme foi mencionado, o historico do Firefox e armazenado como um arquivo

(history.dat), cuja localizacao foi citada nesta secao. Para processar o seu conteudo, e

Page 56: Forense Computacional Tecnicas Ferramentas

Historico e Cache 55

possıvel utilizar ferramentas como Web Historian, que criara relatorios de visitas. No entanto,

esse procedimento nao fara a associacao do historico ao conteudo do cache armazenado em

disco, que esta localizado em

X:\Documents and Settings\<usuario>\Configurac~oes locais\Dados de

aplicativos\Mozilla\Firefox\Profiles\<nome\_aleatorio>.default\Cache

Um esquema para visualizar o conteudo do cache do Firefox e provido pelo comando

about:cache, digitado no campo de URL do navegador1. Visualizaremos uma pagina con-

tendo informacoes diversas sobre o cache na memoria e no disco, como numero de registros

em cada dispositivo, total reservado para uso e total alocado atualmente. Por exemplo, ao aces-

sar a listagem do cache do disco, temos informacoes pertinentes a cada item de historico:

• URL;

• Tamanho;

• Contador de acessos;

• Data de modificacao;

• Data de expiracao;

• Informacoes de cabecalho HTTP.

Uma questao importante para a investigacao e o campo data de expiracao: se estivermos

interessados em um item, o qual localizamos por meio do comando about:cache, mas cuja

data de expiracao estiver vencida, nao sera possıvel acessar esse item dessa forma. E mais, apos

a tentativa de acesso do item “vencido”, o Firefox ira remover esse item do cache. Portanto,

temos de buscar outra forma de acessar esses itens. Mas antes, vamos descrever como e estrutura

de cache do Firefox.

Estrutura do Cache

O acesso ao cache do Firefox e feito pelo diretorio listado acima. Ha diversos arquivos

nesse diretorio, mas eles formam tres tipos basicos de informacao de cache, como apresenta a

Tabela 5.3.

O arquivo de mapeamento do cache, CACHE MAP , e o principal elemento de cache do Fi-

refox. Nesse arquivo existe um cabecalho e diversos buckets, estes ultimos contendo registros

para os itens de cache. Dessa forma, a localizacao de qualquer item do cache e encontrada

1Fonte: documentacao oficial do Mozilla Firefox, disponıvel em http://br.mozdev.org/firefox/

arquivos-do-cache

Page 57: Forense Computacional Tecnicas Ferramentas

Historico e Cache 56

Quantidade Item Nome no disco

1 Arquivo de mapeamento CACHE MAP

3 Arquivo de bloco CACHE 00N

Varios Arquivo de dados separado Depende do valor de hash

associado

Tabela 5.3: Estrutura de cache do Mozilla Firefox (adaptado de [Jones and Belani, 2005])

nos buckets do arquivo de mapeamento. Para cada registro de item do cache sao definidos al-

guns campos, como numero de hash, localizacao de dados, de meta-informacoes e numero de

requisicoes do item.

Feito o mapeamento de itens do cache, para armazenar o seu conteudo o Firefox adota duas

polıticas [Jones and Belani, 2005]:

Armazenar em arquivo de bloco “encapsula”o item de cache em um dos tres arquivos

de bloco descritos na Tabela 5.3.

Armazenar em arquivo separado quando o arquivo e grande demais para ser armaze-

nado dentro de um arquivo de bloco, ele e armazenado separadamente no diretorio de

cache, com um nome definido pelo seu valor de hash. Uma averiguacao no diretorio de

cache mostra que e comum haver diversos itens de cache gravados como arquivos sepa-

rados.

Ferramenta

Voltando a questao do acesso a itens do cache do Firefox, especialmente itens “vencidos”,

existe uma ferramenta que nos permite acessar e copiar qualquer item de cache:

Cache View ferramenta que permite ao usuario acessar, copiar e mover qualquer item do

cache do Firefox e do IE. O programa exibe diversas informacoes a respeito dos registros,

como datas, nomes em disco e URL.

A vantagem do Cache View sobre o simples uso do comando about:cache e que ele per-

mite que praticamente qualquer item do cache seja acessado, a nao ser que o item nao exista em

cache. Nesse caso, ha o registro para o item, mas ele nao esta disponıvel, possivelmente devido

as limitacoes de espaco destinado ao cache (50 MB, por exemplo), o que obriga o Firefox a

adotar uma substituicao de itens a medida em que for necessario.

Page 58: Forense Computacional Tecnicas Ferramentas

Conclusoes 57

5.2.4 Metodo GET em Consultas da Web

A maneira como dados sao submetidos em formularios pode deixar rastros no historico de

um navegador, provendo uma fonte de informacoes uteis. O campo method de um formulario

indica o seu metodo de processamento: caso seja declarado como GET, as informacoes pre-

sentes nos campos de um formulario de pagina da Web serao enviadas junto a URL do script

a ser processado [Berners-Lee and Conolly, 1995]. Por exemplo, a pesquisa pelo termo “foren-

sics”no site de busca Google gera o URL

http://www.google.com.br/search?hl=pt-BR&q=forensics&btnG=Pesquisa+

Google&meta=

o qual sera armazenado desta forma no historico. Isto so e valido para formularios cujo

metodo de requisicao seja GET. O metodo POST nao gera paginas hipertexto com esse aspecto

na URL do formulario.

5.3 Conclusoes

A reconstrucao do historico de visitas a sites e feita com base no cache, historico e cookies

de navegador, sendo um valioso recurso que pode permitir o esclarecimento de um incidente

de seguranca ou crime de computador. Apesar disso, experimentos realizados com cookies tem

mostrado que e difıcil extrair informacoes conclusivas deles, mas nao e descartada a hipotese.

Em sequencia, as dificuldades que um investigador possivelmente tera de enfrentar estao

ligadas, em um primeiro momento, a habilidade requerida para compreender a estrutura e fun-

cionamento do historico e cache, e ser capaz de extrair essa informacao. Alguns navegado-

res sao desenvolvidos com arquitetura fechada, o que impoe um certo nıvel de dificuldade de

perıcia manual, mas que pode ser auxiliada por ferramentas diversas, como as que citamos neste

capıtulo.

Em um segundo momento, surgem necessidades de estabelecer provas ou indıcios suficien-

tes que provem que um determinado usuario foi ou nao o indivıduo responsavel pelos acessos.

Isso requer investigar pessoas, alem do proprio sistema. Se houver indıcios de que o usuario

dono da conta no sistema comprometido nao for o autor verdadeiro das acoes ilıcitas, uma boa

polıtica e procurar saber de que forma o intruso poderia ter tido acesso as informacoes da conta

de login (explorando vulnerabilidades no sistema, usando de engenharia social etc.).

No proximo capıtulo continuaremos a busca por informacao armazenada no sistema inves-

tigado, especificamente discutindo questoes ligadas a recuperacao de dados em varios nıveis de

abstracao.

Page 59: Forense Computacional Tecnicas Ferramentas

Capıtulo 6

Forense em Sistemas de Arquivos

Neste Capıtulo, sao descritos fundamentos de recuperacao de dados levando em conta as-

pectos da estrutura de sistemas de arquivos e de camadas de abstracao. Sao exibidos alguns

locais onde podem ser encontrados dados ocultos, tanto pelo sistema de arquivos como em um

nıvel de abstracao mais baixo. Por fim, e apresentada uma discussao a respeito da forense em

CD-ROM.

6.1 Nıveis de Abstracao

Os diversos sistemas de arquivos usados atualmente (e.g., FAT, NTFS, ext2) proporcionam

um modelo de armazenamento de informacoes computacionais. Arquivos sao estruturas logicas

criadas pelos sistemas de arquivos com objetivo de facilitar a manipulacao de dados computa-

cionais atraves de nıveis de abstracao mais elevados. Nıveis de abstracao mais elevados signifi-

cam a superposicao de camadas de abstracao para tornar as acoes e percepcoes dos dados mais

parecidos a organizacao dos seres humanos.

A Figura 6.1 ilustra como se da esse modelo de abstracao desde a mıdia fısica (sem

abstracao) passando pelo sistema de arquivos chegando a abstracao presente nos programas

aplicativos. Um aspecto importante para a investigacao forense que essa alta abstracao traz

e, de uma certa fora, uma “perda”do real significado da informacao, pois passamos a ver a

informacao com diversas camadas, uma sobreposta a outra. Isso provoca uma “ilusao”referente

aos dados em sua forma mais basica, isto e, em sua forma binaria [Farmer and Venema, 2004].

Eventualmente, durante o processamento realizado para “converter”dados de uma camada

de abstracao a outra camadas podem ser introduzidos erros. Uma ferramenta mal projetada

pode gerar erros devido a, por exemplo, interpretacao incorreta dos dados da camada ante-

rior ou implementacao com erros. O investigador tambem tem de interpretar corretamente as

informacoes fornecidas por ferramentas ou quando esta extraindo dados manualmente. Uma

boa polıtica e, sempre que possıvel, realizar os experimentos com mais de uma ferramenta para

diminuir a probabilidade de erro e tornar as conclusoes mais seguras.

58

Page 60: Forense Computacional Tecnicas Ferramentas

Conceitos de Recuperacao de Dados 59

Figura 6.1: Nıveis de abstracao do hardware a programas aplicativos (adaptado de

[Carrier, 2003])

Segundo [Carrier, 2003], uma camada de abstracao e uma especie de funcao que converte

uma entrada em uma saıda por meio de um conjunto de regras. Esse conjunto de regras define

como as entradas sao convertidas em saıda. A Figura 6.2 ilustra o processo envolvido em cama-

das de abstracao. Tomemos por exemplo a conversao de dados binarios em sua representacao

ASCII. A entrada corresponde ao dados binarios, a saıda corresponde ao texto ASCII gerado.

As regras de conversao determinam como e realizado o mapeamento de um byte em sua corres-

pondente representacao alfanumerica ASCII.

Figura 6.2: Conversao de dados entre camadas de abstracao (adaptado de [Carrier, 2003])

Posteriormente, o texto ASCII, em conjunto com especificacoes da linguagem HTML, pode

ser convertido em um documento hipertexto exibido por um navegador de Internet, gerando

uma nova camada de abstracao. Neste caso, a entrada e o texto ASCII e o conjunto de regras

sao as especificacoes HTML para gerar um documento hipertexto exibido pelo navegador. A

Figura 6.1 mostra as camadas envolvidas na geracao de um documento HTML. Esse exemplo

visa mostrar que a saıda de uma camada pode ser usada como entrada em outra [Carrier, 2003].

6.2 Conceitos de Recuperacao de Dados

A recuperacao de dados computacionais e um dos recursos mais valiosos e explorados em

exames forenses. Durante o uso normal de sistemas operacionais como Windows e Linux,

a delecao de um arquivo nao significa que essa informacao foi eliminada definitivamente; e

Page 61: Forense Computacional Tecnicas Ferramentas

Conceitos de Recuperacao de Dados 60

possıvel recupera-la na maior parte das vezes. Quando um arquivo e deletado, seus dados ainda

permanecem no disco por algum tempo - dependendo de fatores como taxa de criacao de novos

arquivos - e podem ser recuperados.

Para recuperar qualquer informacao deletada podemos usar ferramentas de recuperacao de

dados, disponıveis nos mais variados “sabores”. Nao obstante, e importante conhecer a meto-

dologia envolvida na recuperacao de dados, tanto para saber qual ferramenta usar em cada caso,

quanto para eventualmente realizar uma recuperacao manual no disco em nıveis mais baixos

de abstracao (por exemplo, executando operacoes de raw I/O ou ignorando limitacoes impostas

pelos sistemas de arquivos).

Para entendermos as ideias principais que permitem a recuperacao de informacoes em

mıdias computacionais, e importante fazer uma breve exposicao a respeito de alguns aspec-

tos da estruturacao da informacao nessas mıdias.

Antes de adotar um ou mais sistemas de arquivos em uma mıdia como um disco rıgido,

e necessario estabelecer quais particoes constituirao o disco. As particoes indicam quanto de

espaco do disco sera alocado a cada uma delas no disco. Informacoes sobre cada particao, como

tamanho, sistema de arquivos etc. ficam localizadas na chamada tabela de particoes. A tabela de

particoes esta inserida na area do MBR (Master Boot Record) do disco, o qual esta localizado no

primeiro setor do disco1 [Casey, 2004]. A Figura 6.3 ilustra a distribuicao de espaco e estrutura

em disco de duas particoes formatadas com sistema FAT.

Figura 6.3: Estrutura de disco com duas particoes FAT (adaptado de [Casey, 2004])

Apos a criacao das particoes, e possıvel formata-las com algum sistema de arquivos. A

formatacao define que area sera ocupada pelo sistema de arquivos na particao, criando o con-

ceito de volume. Ainda na Figura 6.3, note que ha o chamado setor de boot, que fica situado no

primeiro setor de um volume [Bunting and Wei, 2006]. Nesse setor, ha diversas informacoes a

respeito do sistema de arquivos, como (tomando por exemplo uma particao FAT) [Casey, 2004]:

• Total de bytes por setor - 512, geralmente;1Para se referir ao primeiro setor do disco, alguns autores adotam a numeracao a partir de 0 (zero),

enquanto outros preferem numerar a partir de 1 (um).

Page 62: Forense Computacional Tecnicas Ferramentas

Conceitos de Recuperacao de Dados 61

• Quantia de setores que compoe um bloco (cluster) - 8K, 16K, 32K etc.;

• Numero de copias da tabela FAT (incluindo a copia primaria);

• Numero de setores por trilha (cilindro);

• Total de setores ocupados por cada tabela FAT.

Note que a copia secundaria da tabela FAT e mantida como copia de seguranca da tabela

principal (tambem denominada de copia primaria), caso esta ultima sofra danos ou corrupcao.

Nesse ponto, cabe fazer uma avaliacao de efeitos da estruturacao de dados impostas pelos

sistemas de arquivos. Ao formatar uma particao com um sistema de arquivos, pode ocorrer de

esse sistema de arquivos nao alocar todo o espaco da particao. Quando isso ocorre, surge o

chamado volume slack, que consiste em uma forma de espaco subaproveitado [Casey, 2004].

Por outro lado, o ponto inicial de alocacao de dados em uma particao geralmente inicia-se

no comeco de alguma trilha do disco [Casey, 2004]. Portanto, entre o final de uma particao e o

comeco da seguinte, pode haver espaco livre, denominado de partition slack.

E importante que durante uma analise forense sejam averiguados esses espacos subaprovei-

tados, uma vez que existe a possibilidade de informacoes importantes ao caso em investigacao

serem escondidas nesses locais.

Sob a otica da recuperacao de arquivos, alguns aspectos da estruturacao de dados imple-

mentada pelos sistemas de arquivos permitem algumas consideracoes relevantes. Quando um

arquivo e apagado, sua entrada no sistema de arquivos e atualizada para indicar isso. Dessa

forma, os blocos de dados que antes ocupava sao desalocados e podem ser utilizados por no-

vos arquivos [Casey, 2004]. No entanto, a informacao permanece no disco. Frequentemente, e

possıvel recuperar por completo um arquivo apagado imediatamente apos a sua exclusao. Seus

dados permanecerao no disco enquanto nao forem sobrescritos por novos dados.

Quando arquivos novos sao criados, e comum serem alocados blocos de dados que antes

faziam parte de arquivos apagados. Se durante alocacoes mais recentes nao for necessario

alocar blocos por completo, uma parte de arquivos antigos permanecera no disco, constituindo

o file slack. Essa situacao e ilustrada na Figura 6.4. O file slack e uma outra forma de espaco

subaproveitado e pode ocupar um ou mais setores no disco, dependendo da relacao entre a

quantidade de informacao armazenada no bloco que contem esse espaco e o tamanho de bloco

definido para a particao.

Page 63: Forense Computacional Tecnicas Ferramentas

Sistemas de Arquivos 62

Figura 6.4: Espaco subaproveitado em um arquivo (file slack)

6.3 Sistemas de Arquivos

6.3.1 FAT

O sistema de arquivos File Allocation Table (FAT) existe em tres versoes: FAT12, FAT16 e

FAT32. A numeracao diz respeito ao tamanho das entradas na tabela FAT. No sistema FAT12

cada bloco de dados e identificado por uma entrada de 12 bits na tabela FAT, no FAT16 sao

usados 16 bits, e, por fim, no FAT32 cada entrada e identificada por 28 bits (4 dos 32 sao

reservados) [Bunting and Wei, 2006].

FAT12 e usado principalmente em disquetes. Em seguida surgiu FAT16, que permite no

maximo 216 = 65 536 blocos enderecaveis, o que foi logo uma limitacao para a crescente capa-

cidade dos discos rıgidos2. E assim surgiu a FAT32, capaz de enderecar um numero muito maior

de blocos, permitindo menor desperdıcio de espaco, pois foi possıvel usar blocos de dados de

tamanho menor.

Uma particao formatada com sistema FAT possui tres areas diferenciaveis, ilustradas na

Figura 6.5. A seguir, uma breve descricao dessas areas [Bunting and Wei, 2006]:

Figura 6.5: A estrutura do sistema FAT (adaptado de [Carrier, 2005])

Area reservada - corresponde ao setor de boot (ou volume boot sector) e pode ocupar 1 ou

mais setores, dependendo da versao do sistema FAT.

Tabela FAT - descreve quais blocos de dados estao em uso, e, se estiverem, qual e o proximo

bloco no encadeamento.2Para se ter uma ideia, um disco de 2GB formatado com FAT16 exigia blocos de tamanho 32KB para

poder enderecar o maximo numero de clusters, o que representava um desperdıcio em sistemas onde havia

muitos arquivos de tamanho relativamente “pequeno”.

Page 64: Forense Computacional Tecnicas Ferramentas

Sistemas de Arquivos 63

Area de dados - armazena blocos de dados de arquivos e entradas de diretorios

Para localizar uma informacao, o sistema FAT usa de diretorios e da tabela FAT. O diretorio

raiz tem localizacao fixa estabelecida no setor de boot da particao que o contem, a fim de que

o sistema operacional seja capaz de encontra-lo [Casey, 2004]. Dessa forma, e possıvel acessar

qualquer arquivo situado no diretorio raiz ou em outro subdiretorio encontrando o seu respectivo

bloco inicial. Um subdiretorio e um tipo especial de arquivo que contem informacoes a respeito

do seu conteudo, como: nomes, data e hora, tamanho, bloco inicial etc. a respeito de seus

arquivos.

Na tabela FAT cada bloco da area de dados e identificado por uma unica entrada. Se o valor

de uma entrada for maior que zero, entao o bloco a que ela faz referencia esta alocado a algum

arquivo. Se o valor for zero, o bloco esta disponıvel para ser novas alocacoes. Dessa forma,

quando um arquivo ou diretorio e apagado, as entradas dos blocos que utilizava sao marcadas

como zero [Bunting and Wei, 2006]. A Figura 6.6 corresponde a um trecho de uma tabela FAT.

Figura 6.6: Trecho de um tabela FAT [Bunting and Wei, 2006]

Quando uma entrada possui valor maior que zero, esse valor indica a proxima entrada a ser

lida no encadeamento de blocos de um dado arquivo ou diretorio [Casey, 2004]. Assim, a leitura

de um arquivo ou diretorio na FAT busca o endereco do seu bloco inicial na tabela FAT e le o

bloco de dados no disco. Terminada a leitura do bloco inicial, e verificado na entrada na tabela

FAT se ha mais blocos a serem lidos. Se a entrada do bloco lido estiver marcada com EOF, o

arquivo nao tem mais blocos a serem lidos, e a leitura encerra nesse ponto. Caso contrario, a

entrada do bloco inicial indicara o endereco do proximo bloco a ser lido. O processo continua

ate que seja lida uma entrada de bloco contendo EOF, que sera o ultimo bloco do arquivo,

encerrando a leitura.

Ha basicamente duas fontes de dados quando pensamos na recuperacao de arquivos em um

sistema FAT: espaco nao alocado e espaco subaproveitado (slack space).

Page 65: Forense Computacional Tecnicas Ferramentas

Sistemas de Arquivos 64

Recuperacao de Dados em Espaco nao Alocado

Para recuperar arquivos apagados, devemos procurar nomes de arquivos cujo primeiro ca-

ractere seja a letra grega sigma (0xE5), que e o caractere usado pelo sistema FAT para indicar

que um arquivo foi excluıdo. Encontrado o arquivo que queremos recuperar, substituımos o

sigma por outro caractere (geralmente e usado o caractere “sublinha”( ) para tal).

Na entrada de diretorio do arquivo excluıdo ha algumas informacoes importantes, como a

localizacao do bloco inicial e tamanho do arquivo [Casey, 2004]. Assim, sabendo o tamanho do

arquivo, a localizacao do seu bloco inicial e o tamanho de bloco definido na particao FAT (8K,

16K etc.), e possıvel determinar quantos blocos o arquivo ocupava. Por exemplo, suponha que

o arquivo excluıdo comecava no bloco 150 e tinha tamanho de 40 960 bytes. A particao que o

continha foi formatada com blocos de tamanho 8K (8 192 bytes), dessa forma para armazenar

o arquivo foram necessarios 40 960/8 192 = 5 blocos.

Sabendo quantos blocos o arquivo ocupava, podemos reconecta-los a partir do bloco inicial.

Se algum dos blocos na sequencia nao tiver sua entrada marcada com 0 na tabela FAT, significa

que o bloco foi alocado a um arquivo novo [Bunting and Wei, 2006]. Por conseguinte, sera

inserida informacao nao relacionada ao arquivo que estamos tentando recuperar.

Esse e o processo geralmente usado pelas ferramentas de recuperacao de arquivos. Esse

esquema de recuperacao presume que os blocos ocupavam posicoes consecutivas no disco, o

que nem sempre ocorre. Se o arquivo estiver fragmentado, o arquivo tem de ser recuperado

manualmente, tentando determinar quais blocos faziam parte do encadeamento original. Esse e

um processo trabalhoso e que requer estabelecer criterios para tentar determinar de que forma

blocos desalocados poderiam estar relacionados ao arquivo que queremos recuperar. Uma busca

por classes de caracterısticas relacionadas ao tipo de dados do arquivo pode auxiliar, como

eventuais segmentos de cabecalho espalhados pelo arquivo.

Quando um diretorio e excluıdo, consequentemente os arquivos que estavam contidos nele

tambem o sao, e os blocos de disco que estavam atribuıdos a ele e aos seus arquivos sao marca-

dos como disponıveis. Se o bloco de disco antes alocado ao diretorio for usado, serao perdidas

as entradas dos arquivos antes contidos nesse diretorio [Casey, 2004]. Por outro lado, caso os

blocos de dados dos arquivos nao estiverem sido alocados, e possıvel recuperar essa informacao.

No entanto, nao dispomos das entradas de diretorio desses arquivos, o que impossibilita saber o

bloco inicial de cada um e outras informacoes como data e hora.

Nesse caso, para reconstruir os arquivos e necessario “molda-los”novamente, isto e, ten-

tar encontrar seu bloco de disco inicial para restabelecer sua cadeia de blocos de forma ma-

nual. Esse processo e denominado de file carving, e basicamente consiste em buscar por carac-

terısticas peculiares (numero magico, rodape, e.g.) de tipos de dados que queremos recuperar

no disco.

Por exemplo, se queremos recuperar uma imagem JPEG que pertencia ao diretorio excluıdo,

Page 66: Forense Computacional Tecnicas Ferramentas

Sistemas de Arquivos 65

podemos buscar pelo numero magico do JPEG, que e 0xFFD8FF3. Encontrando o bloco inicial,

basta fazer como na leitura de um arquivo ate encontrar EOF. Dessa forma o arquivo pode

ser extraıdo para alguma mıdia no sistema forense, a fim de evitar criar uma nova entrada de

diretorio para o arquivo na mıdia em analise (o que poderia sobrescrever eventuais evidencias).

Nessa situacao, foi suposto que os blocos alocados pelos arquivos estavam intactos, isto e,

ainda nao haviam sido alocados a novos arquivos. No entanto, e importante saber que durante

a moldagem de espaco nao alocado nem sempre serao encontrados cabecalhos intactos. Parte

do espaco antes ocupado por arquivos pode ter sido alocada a outros arquivo no disco. Diante

disso, o cabecalho pode ficar fragmentado ou ser completamente perdido.

Para tentar recuperar (e reconhecer) os pedacos de informacao contida em blocos do arquivo

antigo que ainda nao foram alocados e necessario procurar por informacoes caracterısticas de

tipos de dados em fragmentos do espaco nao alocado, como data e hora de documentos Word,

frames de arquivos MP3 etc. [Carvey, 2004]. Essa tecnica de extracao de dados em sua forma

crua (raw data) sera estudada com mais detalhes no Capıtulo 7, referente ao prototipo de analise

na swap que desenvolvemos neste trabalho.

Recuperacao de Dados em Espaco Subaproveitado

Nos espacos subaproveitados podem ser recuperados fragmentos de dados excluıdos, mas

raramente e possıvel reconstruı-los em arquivos completos [Casey, 2004]. No entanto, se um

arquivo pequeno sobrescreveu um arquivo grande, e possıvel recuperar grande parte do arquivo

anterior. Informacao textual, como, por exemplo, fragmentos de arquivos de texto ASCII e

de documentos HTML, e mais facil de ser recuperada, visto que e mais reconhecıvel ao ser

humano.

O mesmo esquema de file carving pode ser aplicado aqui: como possivelmente o numero

magico, cabecalho etc. estarao fragmentados ou perdidos, deve ser conduzida uma pesquisa

para tentar recuperar trechos de informacao com base em caracterısticas comuns aos tipos de

arquivos procurados.

6.3.2 NTFS

O sistema de arquivos New Technologies File System (NTFS) foi desenvolvido pela Mi-

crosoft para substituir os antigos sistemas FAT, e originalmente para ser usado como sis-

tema de arquivos nativo do Windows NT (sendo utilizado tambem no Windows 2000/XP).

O NTFS usa enderecamento em disco de 64 bits, permitindo teoricamente 264 blocos de disco

[Tanenbaum, 2003b]. O NTFS permite que sejam aplicados criterios de seguranca individual,

compressao e criptografia de arquivos.

3Esse e o trecho de numero magico que toda forma de JPEG deve ter. No entanto, na implementacao

JPEG/JFIF uma imagem JPEG pode ser localizada pelo numero magico 0xFFD8FFE0.

Page 67: Forense Computacional Tecnicas Ferramentas

Sistemas de Arquivos 66

No NTFS tudo e arquivo: a porcao de dados que mantem informacao essencial do sistema,

como mapeador de blocos alocados no disco, e implementada em arquivos. No sistema FAT

existe a tabela FAT para manter registro dos blocos de dados alocados; no NTFS isso e feito por

arquivos especiais denominados arquivos de metadados. A unica separacao estabelecida em um

volume NTFS e entre os setores de boot e a area de arquivos [Carrier, 2005].

A tabela mestre de arquivos ou MFT (Master File Table) e o elemento principal de um

volume NTFS, pois contem informacoes a respeito de todos os arquivos e diretorios. A

MFT e uma estrutura de dados que armazena seus registros de forma sequencial e linear

[Tanenbaum, 2003b]. Cada arquivo e diretorio devem ter ao menos uma entrada (registro) na

MFT. O tamanho de qualquer registro na MFT e 1KB4.

Um registro e composto por diversos atributos, usados para identificar caracterısticas de cada

arquivo e diretorio, como nome, marcas de tempo, lista de enderecos de blocos que ocupam no

disco etc. Cada atributo e composto pelo par (cabecalho do atributo, valor do atributo). A

estrutura de um registro e ilustrada na Figura 6.7.

O primeiro atributo de um registro e o seu cabecalho. A seguir, vem os diversos atributos que

um arquivo pode ter (nem todos sao obrigatorios). Internamente a um registro, alguns exemplos

de atributos sao $STANDARD INFORMATION, $FILE NAME e $DATA. Observando ainda

a Figura 6.7, podemos notar que e possıvel que no fim de um registro haja espaco livre, para o

caso de as informacoes de atributos nao preencherem toda a capacidade de um registro (1 KB).

Como o tamanho de um registro na MFT e de 1KB, pode ocorrer de nao ser possıvel arma-

zenar um atributo grande nesse registro. Nesse caso, e inserido um ponteiro e o valor do atributo

e armazenado em outro lugar do disco [Tanenbaum, 2003b]. Atributos armazenados foram do

seu registro originario (chamado tambem de registro-base) sao denominados de atributos nao

residentes.

Por outro lado, se um atributo puder ser armazenado no registro a que pertence, ele e cha-

mado de atributo residente. Arquivos pequenos podem ser armazenados dentro da sua entrada

na MFT devido a essa caracterıstica. Ja arquivos grandes precisam de ser armazenados em blo-

cos do disco, sendo localizados por meio de ponteiros definidos no atributo de dados ($DATA)

do arquivo. Importante observar que arquivos de metadados tambem possuem atributos e dados

da mesma forma que arquivos comuns.

Os 16 primeiros registros na MFT sao reservados pelo sistema para armazenar os arquivos de

metadados, que sao registros para propositos de gerenciamento do volume NTFS. A Tabela 6.1

exibe o nome dos registros e uma breve descricao de cada.

Notemos que na Tabela 6.1, que os registros de 0 a 15 iniciam com “$”para indicar que

representa um arquivo de metadados. Alem disso, o primeiro registro (registro 0) corresponde a

entrada da propria MFT, que indica onde no disco esta localizada a MFT, isto e, em quais blocos

4O tamanho de uma entrada na MFT na verdade e definido no setor de boot, no entanto a Microsoft

implementa registros de 1KB em todas as versoes [Carrier, 2005].

Page 68: Forense Computacional Tecnicas Ferramentas

Sistemas de Arquivos 67

Figura 6.7: A estrutura de um registro da MFT com seus pares de (cabecalho de atributo,

valor) (adaptado de [Carrier, 2005])

(1 KB)

. . . . . .

16 Primeiro arquivo de usuario

15 (Reservado para uso futuro)

14 (Reservado para uso futuro)

13 (Reservado para uso futuro)

12 (Reservado para uso futuro)

11 $Extend Extensoes

10 $Upcase Tabela de conversao maiusculas

9 $Secure Descritores de seguranca para todos os arquivos

8 $BadClus Lista de blocos clusters defeituosos

7 $Boot Carregador do boot

6 $Bitmap Mapa de bits dos blocos usados

5 $ Diretorio-raiz

4 $AttrDef Definicoes de atributos

3 $Volume Arquivo de volume

2 $LogFile Arquivo de registro de eventos para recuperacao

1 $MftMirr Copia espelho da MFT

0 $Mft Tabela de arquivos-mestre

Tabela 6.1: Tabela de arquivos-mestre do NTFS [Tanenbaum, 2003b]

(clusters). A localizacao desse registro ($Mft) e mantida no setor de boot (que fica localizado

sempre no primeiro setor do volume NTFS), para que o sistema operacional possa encontra-lo

e, assim, determinar o layout da MFT [Carrier, 2005].

Como tudo em NTFS e um arquivo, a MFT tambem o sera. Ela nao precisa estar locali-

zada necessariamente em uma trilha predefinida (e.g., primeira trilha). Portanto, ela pode ser

armazenada em outro local do disco caso a sua localizacao normal esteja corrompida. A MFT

poderia estar localizada, digamos, nos intervalos de blocos de 40–45 e 52–54. Assim como

no sistema FAT, setores de disco sao agrupados em unidades maiores denominadas clusters,

Page 69: Forense Computacional Tecnicas Ferramentas

Sistemas de Arquivos 68

podendo variar de 512 bytes a 64 KB [Tanenbaum, 2003b].

A seguir, descreveremos alguns pontos que podem ser analisados forensicamente, pois sao

bons candidatos a fornecerem evidencias.

Alternate Data Streams

Todo arquivo e diretorio no NTFS e constituıdo de varios atributos. Cada atributo corres-

ponde a um fluxo de dados, podendo ser curto (nome do arquivo, sua ID unica etc.), ou longo,

como atributo de dados ($DATA). Quando existe apenas 1 fluxo de dados no atributo $DATA,

esse fluxo nao recebe nenhum nome. Podem existir 2 ou mais fluxos referenciados no atributo

$DATA, denominados de alternate data streams (ADS) [Tanenbaum, 2003b].

Porem, esses fluxos alternativos devem receber nomes a fim de diferencia-los entre si e do

fluxo primario. Por exemplo, suponha que exista um arquivo chamado “fig”e esse arquivo pos-

sua um outro fluxo de dados denominado “stream1”. Dessa forma, o fluxo primario e acessado

simplesmente abrindo o arquivo da forma usual, uma vez que esse fluxo nao possui nome. Para

acessar o fluxo “stream1”, e preciso chama-lo pela notacao “fig:stream1”.

Os fluxos foram criados originalmente para diversos fins, como permitir a compatibilidade

entre servidores NTFS e clientes Macintosh. Outra situacao onde fluxos alternativos sao usados

e em processadores de texto, que podem manter uma versao temporaria para usar durante a

edicao, e uma final para quando o usuario terminar a edicao. Nesse caso, a versao temporaria

corresponderia ao fluxo com nome, enquanto que a versao final corresponderia ao fluxo sem

nome. O tamanho maximo de um fluxo e 264 bytes [Tanenbaum, 2003b].

Os ADS sao potenciais locais de ocultacao de evidencias. E possıvel esconder qualquer

tipo de informacao em fluxos alternativos, desde programas executaveis a arquivos de texto. Ha

diversas ferramentas para realizar a procura por ADS, os quais podem estar associados tanto a

arquivos como diretorios. Exemplos de ferramentas de linhas de comando para detectar ADS:

• List Alternate Data Streams (LADS)

• Streams

Uma observacao importante cabe fazer quanto as ADS de arquivos copiados de um volume

NTFS para um volume formatado com outro sistema de arquivos. Se o sistema de arquivos des-

tinatario nao suportar multiplos fluxos, como acontece no sistema FAT, os ADS serao perdidos

[Berghel and Brajkovska, 2004].

Aspectos do Sistema de Criptografia do NTFS

Como mencionamos, existe um recurso nativo de criptografia do conteudo de arquivos ou

diretorios de um volume ntfs. Primeiramente, e gerada uma chave aleatoria de 128 bits usada

Page 70: Forense Computacional Tecnicas Ferramentas

Busca por Evidencias Ocultas 69

pelo algoritmo de criptografia simetrica (algoritmo DESX) [Carrier, 2005]. Todos os blocos de

dados do arquivo sao cifrados com a mesma chave [Tanenbaum, 2003b]. Em seguida, a propria

chave e criptografada (por chave publica) e armazenada no disco.

Para decifrar um arquivo, e buscado a sua chave aleatoria de 128 bits no disco. E preciso

decifrar a chave: para isso o usuario deve fornecer a sua chave privada gerada no processo de

criptografia [Tanenbaum, 2003b]. Em seguida, a chave e usada para decifrar os blocos de dados

do arquivo.

Segundo [Carrier, 2005] existe uma falha no projeto do NTFS devido a geracao de um ar-

quivo temporario no disco (“efs0.tmp”) com o conteudo (nao criptografado) do arquivo que esta

sendo criptografado. Apos o sistema operacional terminar de criptografar o arquivo original, o

arquivo temporario e apagado, mas nao sofre wipping (exclusao com seguranca). Portanto, se

o registro na MFT desse arquivo ainda nao tiver sido sobrescrito (uma vez que esse espaco

tornou-se disponıvel para ser realocado), e possıvel recupera-lo. O arquivo de swap tambem

pode conter copias nao criptografadas dos dados.

6.4 Busca por Evidencias Ocultas

Dados podem estar ocultos no disco sob diversas formas. Uma forma primaria e alterar o

atributo de um arquivo para “oculto”(“hidden”). Uma segunda maneira simples e alterar a ex-

tensao do arquivo no Windows, tentando ocultar o seu tipo verdadeiro de dados, com objetivo

de desviar a atencao. A primeira vista, essa acao pode ter algum efeito no Windows, visto que

esse sistema associa o programa responsavel pela abertura de arquivos com base na extensao

deste, deixando a verificacao entre tipo de arquivo e arquivo aberto a cargo do programa cha-

mado pelo Windows. Essa acao, no entanto, nao teria efeito em sistemas Unix, visto que nesses

sistemas e verificado o cabecalho do arquivo para determinar o seu tipo de dados.

Apesar dessa forma de associacao entre arquivo e programa estabelecida pelo Windows,

existem diversas ferramentas (e.g., EnCase) que fazem a leitura do cabecalho de um arquivo

para verificar se a extensao corresponde ao conteudo encontrado. Isso elimina o problema.

Tendo algum conhecimento sobre cabecalhos de arquivos - numero magico, por exemplo, e

possıvel, tambem, verificar em qualquer editor hexadecimal se a correspondencia esta correta.

Por outro lado, e importante ter conhecimento de outra forma de ocultacao de informacao

que pode ocorrer. Um indivıduo pode, alem de modificar a extensao de um arquivo, deliberada-

mente alterar bytes do seu cabecalho. O reconhecimento do arquivo original ja seria uma tarefa

mais complexa, dependendo de como o cabecalho foi alterado. Nesse caso, um conhecimento

apurado de cada parte constituinte do cabecalho de um determinado tipo de dado (imagem

JPEG, por exemplo) e uma analise estatıstica do cabecalho podem ajudar o reconhecimento

manual de tipos de dados mascarados por essa tecnica. Dependendo do nıvel de alteracao rea-

Page 71: Forense Computacional Tecnicas Ferramentas

Busca por Evidencias Ocultas 70

lizado no cabecalho, pode ser necessario reconstruı-lo manualmente [Carvey, 2004].

Essas formas de ocultar informacoes descritas presumem que existem um ou mais arqui-

vos alocados no disco, com entradas de diretorio etc. No entanto, e importante salientar que

informacoes podem estar escondidas em areas nao usuais ou de difıcil acesso do disco. Um

exemplo tıpico e armazenar informacoes nos slack spaces. Nesse caso, a informacao esta dis-

ponıvel, mas deve ser extraıda com maior cuidado, podendo ser auxiliada por ferramentas de

disco (e.g., The Coroner’s Toolkit - TCT).

Ha uma diversidade de locais onde pode ser encontrada informacao escondida, o que de-

pende do sistema de arquivos em uso e da propria estrutura fısica do disco. Abaixo citamos al-

guns locais onde devem ser conduzidas pesquisas por informacao oculta [Huebner et al., 2006,

Casey, 2004, dos Reis and de Geus, 2002]:

Setores defeituosos (bad blocks) marcados no disco - um indivıduo pode ter mar-

cado setores normais como setores defeituosos, alterando informacoes na chamada trilha

de manutencao do disco, que corresponde a primeira trilha no disco [Casey, 2004]. Essa

trilha e usada para manter informacoes a respeito do disco, como sua geometria e seto-

res defeituosos atuais no disco. Uma extracao desses setores marcados como defeituosos

pode revelar evidencias ocultas, as quais nao sao acessıveis pelo sistema de arquivos.

Espaco de swap - o espaco de swap e uma area alocada no disco quando a memoria precisa

de mais espaco do que sua capacidade permite, copiando processos nao usados no mo-

mento para o disco, e liberando espaco na memoria principal para processos que precisam

executar no momento. Alem de ser uma fonte valiosa de possıveis evidencias digitais, o

espaco de swap pode ser utilizado, tambem, para a ocultacao proposital de informacoes.

O exame forense do espaco de swap sera feito com detalhes no Capıtulo 7.

Blocos (clusters) em excesso alocados a um arquivo - e possıvel que um usuario

aumente a quantidade de blocos alocada a um arquivo, alterando seu registro na MFT

do sistema de arquivos NTFS. Se arquivo necessita de 5 clusters, por exemplo, e, no en-

tanto, estao alocados a ele mais clusters, e possıvel que os clusters em excesso contenham

informacoes escondidas.

Slack space - os espacos subaproveitados tambem podem conter dados ocultos deliberada-

mente, seja no volume slack, partition slack ou no file slack. A ocultacao de dados nos

file slacks e, no entanto, uma pratica nao muito interessante para quem oculta os dados,

uma vez que o crescimento de um arquivo potencialmente ira sobrescreve-los.

Clusters nao alocados - e possıvel que dados estejam escondidos em espacos nao-

alocados no disco. No entanto, essa tecnica e bastante ineficaz e provavelmente nao

sera utilizada, uma vez que a probabilidade de esses dados escondidos sejam sobrescritos

e muito alta.

Page 72: Forense Computacional Tecnicas Ferramentas

Forense em CD-ROM 71

Blocos defeituosos (bad clusters) marcados no NTFS - alem da possibilidade de

marcar setores normais como defeituosos pela trilha de manutencao do disco, e possıvel

marcar setores perfeitos como sendo defeituosos na MFT de um volume NTFS. Dessa

forma, e possıvel que esses setores contenham evidencias escondidas deliberadamente.

Alternate data streams no NTFS - esse recurso, descrito anteriomente neste Capıtulo,

permite “embutir”um arquivo em outro, sem alterar seu tamanho. Portanto, e um meca-

nismo atraente para um atacante ocultar dados.

Recuperar dados ocultos nao e uma tarefa facil, no entanto. E preciso saber onde procurar;

pistas podem aparecer observando se ha anomalias nas areas descrita acima. Um exemplo e

quando o sistema operacional detecta blocos defeituosos (bad blocks) antes do disco rıgido

[Huebner et al., 2006]. Um segundo problema e quanto a dificuldade de reorganizar os blocos

de dados ocultos que foram recuperados. Se os dados estiverem espalhados pelo disco de forma

“aleatoria”e sem cabecalho, a recuperacao e reorganizacao dessa informacao torna-se muito

difıcil, senao impossıvel.

6.5 Forense em CD-ROM

A investigacao em CD-ROM (abreviado como CD) e uma tarefa forense importante atual-

mente, dada a popularizacao desse tipo de mıdia. Desde o seu surgimento na decada de 1980,

inicialmente como um disco para armazenamento de audio [Crowley, 2007], o custo de mıdia e

de aparelhos de gravacao caseiros tem se tornado cada vez menor, resultando no uso em massa

de CDs (e mais recentemente dos discos de DVDs tambem). Dadas as facilidades de mobili-

dade da mıdia e diversos formatos possıveis de utilizacao (audio, dados, photo-cd etc.), o seu

custo-benefıcio e bastante interessante.

Inicialmente, foram propostos alguns sistemas de arquivos para serem adotados em CDs,

como Rock Ridge [Crowley, 2007]. Esses sistemas foram aprimorados culminando na criacao

do ISO-9660, um sistema de arquivos limitado a poucos aninhamentos de diretorios e nomes

de arquivos no formato 8.3. Alguns anos depois, a Microsoft desenvolveu uma extensao para

esse sistema de arquivos, denominada Joliet[Microsoft, 1995], que permitiu diversos avancos

em relacao ao ISO-9660, como nomes de arquivos e aninhamento de diretorios longos. As

sucessivas criacoes de padroes ISO e similares resultaram em dois mecanismos importantes:

discos multisessao e a definicao de discos regravaveis (CD-RW), os quais descrevemos nesta

secao.

Page 73: Forense Computacional Tecnicas Ferramentas

Forense em CD-ROM 72

6.5.1 Acesso a Multiplas Sessoes

Um ponto importante na analise forense de CDs e a analise forense de CDs que possuem

multiplas sessoes gravadas (multissession disc). E importante ser capaz de acessar todas as

sessoes gravadas no disco para ter acesso completo aos dados gravados no CD, pois podem

haver sessoes que nao foram referenciadas na hierarquia de diretorio da sessao mais recente

[Microsoft, 1995]. Um exemplo: em um disco que contenha tres sessoes, 1, 2 e 3, pode ocorrer

de a sessao 3 (a mais recente) nao referenciar a sessao 1, mas referenciar a sessao 2. Uma

listagem de conteudo iria mostrar apenas o conteudo das sessoes 2 e 3, dando a falsa impressao

que o conteudo da sessao 1 nao se encontra disponıvel mais.

Para acessarmos o conteudo de todas as sessoes do disco, podemos usar o software IsoBuster

ou comandos no linux para montar a sessao que desejarmos.

Para uma analise forense, existe um fato interessante que ocorre em alguns esquemas de

gravacao multisessao quando um arquivo de mesmo nome e gravado em sessoes subsequen-

tes. Geralmente os softwares de gravacao adotam a polıtica de manter apenas a versao mais

recente na hierarquia de diretorio atual - a que corresponde a ultima sessao. Se realizarmos

uma listagem “normal”do conteudo do CD, iremos ter acesso apenas a ultima versao gravada

do arquivo. No entanto, as versoes anteriores do arquivo, pertencentes a sessoes mais antigas,

ainda permanecem no CD.

Essas versoes podem ser de grande valia para a investigacao forense, pois figuram uma fonte

de evidencias difıcil de ser eliminada e por vezes desconhecida pelo autor da informacao da sua

existencia. O carater permanente dessas potenciais evidencias deve-se a propria caracterıstica de

disco ROM (excetuando-se os discos regravaveis, e claro), a nao ser que a mıdia seja danificada

fisicamente (arranhada, quebrada etc.).Essas versoes anteriores de arquivos podem ser obtidas

da mesma forma descrita acima para acessar sessoes em CDs.

6.5.2 Recuperacao de Dados em CD-RW

A recuperacao de dados em CDs regravaveis e um processo mais complexo que a

recuperacao em outros tipos de mıdias, como HDs e disquetes. Isso porque se um disco

regravavel nao contiver ao menos uma sessao gravada, o leitor de CD nao lera nenhuma

informacao do disco, devido a programacao do firmware [Crowley, 2007]. Mesmo que o disco

tenha sido formatado no modo rapido (quick erase), nao e possıvel ler a informacao que ficou

desde a formatacao (pelo menos na maioria dos leitores).

Claro que quando e usada a formatacao completa (full erase), os dados do disco sao de

fato apagados, isto e, toda a regiao de dados e sobrescrita. Alguns softwares de gravacao de

CDs (e.g., Ahead Nero) inclusive alertam sobre a necessidade de usar formatacao completa

para proteger informacoes confidenciais, o que mostra alguma possibilidade na recuperacao de

discos formatados no modo rapido.

Page 74: Forense Computacional Tecnicas Ferramentas

Forense em CD-ROM 73

Para uma investigacao forense, pode ser necessario realizar a recuperacao de um disco re-

gravavel. Um possıvel esquema de recuperacao tem de levar em conta alguns aspectos para

atingir tal objetivo:

Acesso aos dados - primeiramente e necessario que sejamos capazes de acessar os dados na

mıdia. Uma maneira para realizar isso e criando uma sessao que contenha ao menos 1

arquivo. Esse arquivo deve ocupar todo o restante do espaco disponıvel da mıdia; se a

mıdia tiver capacidade de 700 MB, o arquivo devera ocupar um pouco menos que isso

(alguns megabytes sao usados para definir as regioes de delimitacao - lead-in e lead-out) a

fim de aumentar a eficiencia do processo de recuperacao. Lembremos que o leitor apenas

lera os dados de sessoes, portanto, ele nao lera dados que estao alem da ultima sessao

(neste caso, a primeira e unica).

Arquivo “fictıcio” - nao podemos gravar os dados desse arquivo grande no disco, caso

contrario estarıamos sobrescrevendo os dados que queremos recuperar. Deve haver uma

entrada de diretorio para ele na qual deve ser alocado todo o espaco disponıvel (com

excecao das regioes de delimitacao do disco), mas sem inserir dados do arquivo propria-

mente dito na area de dados do disco. Dessa forma, criamos uma sessao que engloba toda

a area de dados do disco, o que nos permite acessar os dados que residem da formatacao

realizada.

Extracao de dados - apos gravar o disco com esse formato, podemos extrair seus dados

para comecar a recuperar arquivos antigos. E preciso fazer uma imagem do disco (via

dd, por exemplo) ou usar alguma ferramenta para extrair os blocos de dados do CD-RW5,

como o IsoBuster. Dessa forma, temos uma copia de praticamente todos os dados que

haviam antes da formatacao (possivelmente de outras formatacoes rapidas tambem).

Moldagem de arquivos - um problema que surge e que nao temos a listagem dos arqui-

vos que estamos tentando recuperar (a formatacao somada a criacao da nossa sessao para

recuperacao insere uma nova listagem de arquivos), portanto temos que moldar os arqui-

vos (file carving) a partir dos blocos de dados que extraımos. De modo similar ao file

carving que descrevemos na recuperacao de dados no sistema FAT e na area de swap

(Capıtulo 7), ele pode ser usado para moldar arquivos do CD-RW com base em suas

caracterısticas, como numero magico, cabecalho, rodape etc.

Claro que o uso de uma ferramenta que automatize essas tarefas seria benefico para o in-

vestigador. Sao muitos os detalhes necessarios para gravar essa sessao especificada, o que iria

5Em um CD-ROM, os blocos de dados sao de tamanho fixo 2 KB, porem alguns bytes a mais sao

definidos em cada bloco, destinados, por exemplo, a deteccao e correcao de erros, o que torna o bloco um

pouco maior que 2 KB [Tanenbaum, 2003b].

Page 75: Forense Computacional Tecnicas Ferramentas

Conclusoes 74

requer tempo e preparo do investigador. Portanto, uma ferramenta seria importante para permi-

tir um processo mais agil a um nıvel de abstracao mais elevado. No entanto, ao que parece essa

e uma tarefa pouco explorada ate o momento, o que requer o projeto de uma ferramenta desse

tipo para auxiliar a recuperacao de discos regravaveis.

6.6 Conclusoes

Vimos neste capıtulo que, na recuperacao de arquivos, quanto mais blocos tiverem sido

sobrescritos, totalmente ou parcialmente, por novas alocacoes em disco, menos eficiente e mais

difıcil sera a recuperacao. Portanto, podemos afirmar que a eficiencia diz respeito ao quanto de

informacao original podemos recuperar. Ja o grau de dificuldade e expresso, por exemplo, pela

perda do cabecalho (header, numero magico etc.) do arquivo e pela fragmentacao do arquivo

no disco, isto e, o quao fragmentado no disco esta o arquivo.

A perda, parcial ou completa, do cabecalho de um arquivo apresenta um nıvel de dificuldade

a mais para recuperar uma evidencia digital, pois muitas informacoes essenciais a respeito do

arquivo estao no seu cabecalho. Em uma imagem JPEG, por exemplo, a perda de partes do

cabecalho pode implicar a incorreta ou incapacidade de exibicao da figura pelos programas

decodificadores, visto que e uma informacao fundamental para os calculos de descompressao.

Ja um arquivo de texto ASCII ou um documento Microsoft Word parcial pode ser bem mais

facil de ser entendido, pois tem mais elementos identificaveis aos seres humanos, mesmo que

parcialmente.

A analise de ocultacao de dados mostraram diversos locais onde poderia ser escondida uma

evidencia. Possivelmente, alguns locais sao preferıveis a outros devido a “seguranca”que podem

proporcionar ao dado oculto, isto e, quao difıcil sera para que terceiros apaguem (um usuario

da maquina vıtima que formate o disco, por exemplo) ou recuperem (um investigador forense,

por exemplo) essa informacao com eficiencia.

De um modo geral, a recuperacao de dados, tanto em sistema de arquivos como em areas

usadas para ocultar dados ou em CDs, pode terminar em uma busca por classes de caracterısticas

relativas ao tipo de arquivo que queremos recuperar. Diante disso, apresentamos no proximo

capıtulo um prototipo desenvolvido para realizar a recuperacao de dados na area de swap de um

sistema operacional.

Page 76: Forense Computacional Tecnicas Ferramentas

Capıtulo 7

Forense no Espaco de Swap

Neste Capıtulo, sao apresentados alguns topicos sobre analise forense na memoria principal

e na area (ou espaco) de swap. E feita uma descricao de como funciona a troca de processos

entre a memoria e a area de swap, alem de descrever algumas possıveis informacoes de inte-

resse a forense que podem ser encontradas na swap. Por fim, e apresentado um prototipo para

automatizar a busca e extracao de conteudo (imagens JPEG e URLS) na swap e locais afins.

7.1 Investigando a Memoria Principal

Diante do grande fluxo de informacoes (processos, dados, drivers de dispositivos etc.) arma-

zenadas na memoria principal em um curto intervalo de tempo, surgem dificuldades inerentes a

obtencao de dados armazenados nesse dispositivo. Nao obstante, e uma area importante para a

analise forense, pois pode conter diversas informacoes, como senhas, textos em claro de men-

sagens cifradas etc. [de Souza Oliveira, 2002].

Um importante ponto a considerar na busca por informacoes nesse dispositivo e o seu

alto carater de volatilidade. Segundo [Farmer and Venema, 2004], o “tempo de vida”das

informacoes armazenadas na memoria e da ordem de nanossegundos. Por si so, a captura

de informacoes ja apresenta um desafio ao investigador, uma vez que as evidencias tem de

ser capturadas rapidamente. Tem de ser levado em conta, tambem, que a filtragem dos

dados presentes na memoria e trabalhosa e nem sempre os dados podem estar completos

[de Souza Oliveira, 2002].

Uma segunda questao crucial para a analise forense, ja exposta no Capıtulo 3, diz res-

peito a alteracao da memoria durante a execucao de algum procedimento para acessa-la e

copia-la. Caso seja utilizado o programa dd para copiar, no Linux, o conteudo da memoria,

a simples execucao desse programa ja altera a memoria. Isso porque o programa requer

espaco na memoria para ser executado. A investigacao do conteudo da memoria sem causar-

lhe disturbios e uma tarefa bastante complexa e requer conhecimento altamente especializado

[dos Reis, 2003].

75

Page 77: Forense Computacional Tecnicas Ferramentas

Investigando a Memoria Principal 76

A memoria principal dos PCs e implementada via dispositivos eletronicos volateis, ou seja,

teoricamente so mantem a informacao enquanto houver alimentacao de energia eletrica. Dada

essa caracterıstica, o procedimento usual e coletar dados da memoria com o sistema nativo

ligado, ou seja, trata-se de uma live analysis. E possıvel copiar a memoria principal do Linux

no proprio sistema operacional da seguinte forma:

# dd if=/dev/mem of=/memdump bs=512

Algumas analises podem ser feitas na evidencia coletada acima. Um exemplo simples e

pratico e fazer buscas por expressoes regulares usando os comandos grep e strings, conforme

abaixo:

1. O primeiro exemplo usa o comando strings para, primeiramente, filtrar cadeias de pelo

menos 7 caracteres imprimıveis usando o arquivo de dump da memoria criado anterior-

mente. Foi escolhido tamanho 7 para casar mais facilmente com ´http://’. O resultado

de strings e usado como entrada no comando egrep, que buscara pela expressao re-

gular ‘http://[!-˜]*’, que corresponde aos caracteres que podem ocorrer em uma URL

[Berners-Lee, 1994]. A saıda e armazenada em um arquivo de texto, resultado.

# strings -a --bytes=7 /memdump | egrep

‘http://[!-~]*’ > resultado.txt

2. Ja no segundo exemplo sao retornadas cadeias com pelo menos 3 caracteres. Em seguida,

essas cadeias sao usadas como entrada na pesquisa envolvendo uma maior diversidade de

URLs, que incluem, alem do protocolo HTTP, os protocolos FTP, HTTP seguro e servidor

de news. Tambem foi incluso pesquisar por caminhos de arquivos do disco que foram

abertos, localizados como file:///. Por fim, nesse exemplo foi escolhido visualizar na

tela as URLs a medida em que sao encontradas (pelo comando more).

# strings -a --bytes=3 /memdump | egrep

‘(http|https|ftp|news|file)://[!-~]*’

| more

3. No terceiro exemplo, foi usado o xxd para visualizar, na tela, todas as cadeias de texto

com pelo menos 4 caracteres. Essa visualizacao pode ser interessante para observar os

valores hexadecimais ou binarios das cadeias retornadas.

# strings -a /memdump | xxd | more

Page 78: Forense Computacional Tecnicas Ferramentas

O Espaco de Swap 77

7.2 O Espaco de Swap

O espaco de swap esta intrinsecamente relacionado ao esquema de memoria virtual ado-

tado por muitos sistemas operacionais. Deve-se lembrar que o espaco de swap e criado

quando a memoria principal precisa executar mais processos do que a sua capacidade pos-

sibilita [Silberschatz et al., 2001]. Esse espaco e alocado no armazenamento auxiliar (disco

rıgido, por exemplo), adotando a polıtica de armazenar os processos que nao estao em execucao

no momento, liberando espaco na memoria principal para aqueles que estao em execucao

[Scheetz, 2001].

Como todo processo tem de estar na memoria para ser executado, torna-se, entao, necessario

copiar os processos da swap para a memoria quando eles precisam voltar a execucao. Essa

operacao e denominada de swap in. A situacao inversa ocorre quando um processo e copiado

da memoria para a area de swap, operacao denominada de swap out. A Figura 7.1 ilustra essas

operacoes.

Figura 7.1: Troca de processos entre a memoria principal e o espaco de swap

[Silberschatz et al., 2001]

Em geral, o armazenamento de swap e implementado de duas maneiras: via arquivo ou via

particao. A primeira forma cria um arquivo (localizado no proprio sistema de arquivos nativo

- NTFS, por exemplo), no qual processos sao armazenados. Na segunda forma, os proces-

sos sao armazenados em uma particao destinada unicamente a esse fim. Como exemplo de

implementacao via arquivo, ha o Microsoft Windows; ja a implementacao via particao e utili-

zada pelo Linux (embora possa ser configurado para utilizar arquivo de swap, tambem, mas nao

e a configuracao padrao).

No espaco de swap podem ser encontrados dados dos mais variados tipos, como: senhas que

nao chegaram a ser armazenadas no disco rıgido, arquivos confidenciais (completos e parciais),

rascunhos nao salvos etc. [Caloyannides, 2004]. Tambem podem ser encontradas nessa area:

dados de processos e do kernel do sistema, buffers de impressora, assim como dados ocultados

deliberadamente [dos Reis, 2003]. Portanto, analisar a area de swap e uma tarefa importante na

Page 79: Forense Computacional Tecnicas Ferramentas

Analise do Espaco de Swap 78

busca de dados - possıveis evidencias - que provavelmente nunca seriam encontrados em outra

area do disco.

7.3 Analise do Espaco de Swap

7.3.1 Particao de Swap do Linux

Como foi dito, no Linux a opcao mais comum e implementar o espaco de swap como uma

particao especıfica para tal fim. Mas pode ser usado arquivo de swap (semelhante ao modo feito

no Windows), no lugar da particao. No entanto, para se ter um uso mais eficiente da swap no

Linux, e recomendado o uso da armazenagem da Swap em particao em lugar de um arquivo

[Scheetz, 2001].

Para copiar o conteudo da particao de swap no linux, e possıvel utilizar o comando dd da

seguinte forma:

# dd if=/dev/hdaX of=/swap/swaplinux bs=1024 count=131070

que copiara o conteudo da particao de swap, localizada em /dev/hdaX (“hdaX”e o numero

fictıcio de dispositivo neste exemplo) para o arquivo “/swap/swaplinux”. Observe que estamos

instruindo o dd a copiar 131070 blocos de 1024 bytes cada, resultando em 128MB, que e o

tamanho da particao de swap (esse valor depende do tamanho da particao de swap configurada

no sistema).

E interessante parar nesse momento para fazer algumas consideracoes importantes com

relacao ao procedimento de captura do conteudo da swap no Linux descrito acima. O pro-

cedimento e executado com o sistema nativo (Linux) ligado. Quando e chamada a execucao do

programa dd, ele tem de ser armazenado na memoria principal para ser executado, assim como

outro processo qualquer. Acontece que podem ocorrer operacoes de swap in e swap out entre o

armazenamento auxiliar e a memoria principal, para que o processo dd possa executar.

Conclusao: talvez nao seja possıvel copiar a swap sem causar o mınimo de alteracao a ela.

Mas isso nao quer dizer que a analise sera em vao, pois deve-se ter em mente que este e um

caso de live analysis. Deve-se procurar minimizar os efeitos da coleta de evidencias no sistema

em funcionamento, causando o menor disturbio possıvel.

7.3.2 Arquivo de Swap do Windows (Pagefile)

Para analisar o arquivo de swap do Windows 2000/XP no Linux, pode-se proceder da se-

guinte forma (seguindo os “tres A da Forense Computacional”descritos no Capıtulo 3):

Aquisicao e Autenticacao Primeiramente, deve-se montar a particao (FAT ou NTFS) onde

reside o arquivo de swap do Windows em modo somente leitura. No exemplo abaixo, foi

Page 80: Forense Computacional Tecnicas Ferramentas

Analise do Espaco de Swap 79

considerada uma instalacao do Windows usando o sistema de arquivos NTFS alcancavel

no Linux pelo dispositivo “/dev/hda1”(apenas a tıtulo de exemplo):

# mount -t ntfs -r /dev/hda1 /mnt/hd/C

Assim, se a particao do Windows for montada em /mnt/hd/C, o arquivo de swap devera

estar localizado em “/mnt/hd/C/pagefile.sys”. O proximo passo e calcular o seu MD5:

# md5sum -b /mnt/hd/C/pagefile.sys > /swap/md5fonte_antes

Para adquirir efetivamente o arquivo de swap, e preciso fazer uma copia bit-a-bit do seu

conteudo para um arquivo imagem no Linux. Isso pode ser feito via comando dd:

# dd if=/mnt/hd/C/pagefile.sys of=/swap/pagefile.sys bs=512

Verificando se a fonte permanece inalterada:

# md5sum -b /mnt/hd/C/pagefile.sys > /swap/md5fonte_depois

Nesse ponto, e necessario verificar se os arquivos md5fonte antes e md5fonte depois

apresentam os mesmos valores de hash criptografico:

# cat /swap/md5fonte_antes

f3db4f45f5adcfc61a562123b7fb214b * /mnt/hd/C/pagefile.sys

# cat /swap/md5fonte_depois

f3db4f45f5adcfc61a562123b7fb214b * /mnt/hd/C/pagefile.sys

Terminada a fase de aquisicao da evidencia, e preciso gerar o MD5 para a copia e com-

parar com o valor gerado para a fonte de dados:

# md5sum -b /swap/pagefile.sys > /swap/md5copia

# cat /swap/md5copia

f3db4f45f5adcfc61a562123b7fb214b * /swap/pagefile.sys

Fica verificado, assim, que a integridade da fonte de dados foi mantida e a replica e

autentica, visto que o resultado das tres execucoes do comando cat acima foi o mesmo.

Analise - A seguir, sao descritos alguns exemplos de como pode ser feita a analise da

evidencia usando comandos comuns do Linux.

Page 81: Forense Computacional Tecnicas Ferramentas

Prototipo Desenvolvido 80

1. Pesquisar um padrao de caracteres, usando o comando grep. A saıda sera armaze-

nada em um arquivo denominado resultgrep. Veja:

# grep -a http:// /swap/pagefile.sys > /swap/resultgrep

Neste caso, foi pesquisado, na copia da swap, pela existencia da cadeia “http://”.

Abrindo o arquivo resultgrep num editor de texto e possıvel visualizar diversas

informacoes textuais e nao-textuais (uma vez que foi usada a opcao -a). Dentre as

informacoes textuais, pode-se destacar alguns itens encontrados que mostram, pelo

menos em parte, rastros de atividades do usuario no sistema, como:

• URLs e codigos de status de requisicoes (401, 200 etc.) de paginas da Web;

• Codigo-fonte de paginas da Web;

• Codigo-fonte de scripts (e.g., Java scripts);

• Cookies;

• Requisicoes de senha e nome de usuario;

• Nomes e trechos de imagens GIF, JPEG etc.

2. No exemplo abaixo, foi usado o comando strings para salvar o resultado da busca

por qualquer cadeia de caracteres (com pelo menos 4 caracteres de texto) no arquivo

de texto resultstrings:

# strings /swap/pagefile.sys > resultstrings

A analise do conteudo de cadeias de caracteres fornecidas por strings e bastante

trabalhosa, o que pode ser melhorado com o emprego de metodos de busca e analise,

como a busca por determinada string relacionada ao contexto de investigacao (por

exemplo, crimes de pedofilia).

Os arquivos gerados nos dois exemplos acima poderao ter dezenas de megabytes de ta-

manho, especialmente se o espaco de swap for da ordem de centenas de megabytes.

7.4 Prototipo Desenvolvido

Neste trabalho, foi desenvolvido um prototipo que automatiza algumas tarefas de uma

analise forense. Nessa primeira fase de implementacao, foram desenvolvidas duas funcoes

principais:

• Extracao de imagens JPEG;

• Extracao de URLs.

Page 82: Forense Computacional Tecnicas Ferramentas

Prototipo Desenvolvido 81

7.4.1 Extracao de Imagens JPEG

Para realizar a extracao de imagens JPEG presentes na area de swap, foi considerado o

conceito de file carving [Roussev et al., 2007]: extrair dados sem dispor de sua estrutura no

sistema de arquivos, como entrada de diretorio. A busca e realizada por meio de classes de

caracterısticas relativas a tipos de arquivos (figuras, arquivos de audio, documentos do Micro-

soft Word, arquivos executaveis etc.). Essas classes de caracterısticas dizem respeito a diversas

informacoes que podem ser usadas para identificar tipos de dados; neste caso, foram utiliza-

das informacoes de cabecalho, numeros magicos, identificadores de segmentos e rodape para

permitir a identificacao dos dados que se quer recuperar.

O esquema de paginacao adotado pelos sistemas operacionais faz com que os processos

(e os dados que esse processo manipula) trocados entre memoria e disco nao precisem estar

localizados sequencialmente na area de swap [Tanenbaum, 2003b]. Portanto, dependendo da

area de swap analisada, e muito provavel que serao extraıdas imagens parciais, distorcidas ou

sem visualizacao (veja logo abaixo a explicacao).

Estrutura da Imagem JPEG

Neste trabalho, foi considerado o padrao JPEG/JFIF (File Interchange Format), que e uma

implementacao do formato JPEG bastante usada atualmente. Em uma imagem JPEG/JFIF exis-

tem diversos segmentos (tambem chamados de marcadores) que definem seu cabecalho, como

mostrado na Tabela 7.1 [Hamilton, 1992]:

Segmento Valor de identificacao(hexadecimal)

Numero magico

JPEG/JFIF

0xFFD8FFE0

Identificador JFIF 0x4A464946

Inıcio do quadro 0 0xFFC0

Tabela de Huffman 0xFFC4

Inıcio da varredura 0xFFDA

Fim da imagem 0xFFD9

Tabela 7.1: Alguns segmentos que compoe uma imagem JPEG

Os valores da Tabela 7.1 mostram apenas os valores iniciais de cada segmento, ou seja, apos

esses valores aparecem, de fato, as informacoes pertinentes a cada segmento. Apos o termino

do segmento de inıcio de varredura (0xFFDA), comeca a area de dados da imagem, e e partir daı

que os visualizadores graficos comecam a decodificacao e exibicao dos pixels que constituem

a imagem. Quando e encontrado o segmento de fim da imagem (0xFFD9), a decodificacao

termina.

Page 83: Forense Computacional Tecnicas Ferramentas

Prototipo Desenvolvido 82

Alem dos segmentos descritos na Tabela 7.1, ha, ainda, outros segmentos como segmento

de comentarios (opcional), miniatura (thumbnail), tambem opcional, e de tabela de quantizacao

(obrigatorio). A Figura 7.2 ilustra os segmentos da Tabela 7.1 (com excecao do segmento de

fim da imagem) em uma imagem JPEG/JFIF comum. Os segmentos marcados sao, na ordem:

numero magico JPEG/JFIF; identificador JFIF; inıcio do quadro 0; tabela de Huffman;inıcio da varredura.

Figura 7.2: Trecho inicial de uma imagem JPEG/JFIF com alguns segmentos selecionados

Verificacoes Experimentais

Para a forense, interessa extrair essas imagens, por isso e necessario entender o cabecalho,

visto que a ausencia de alguns segmentos fundamentais possivelmente provocara falha na

decodificacao da imagem. Por exemplo, se for retirado propositadamente o segmento de inıcio

da varredura (0xFFDA) ou o segmento de inıcio do quadro 0 (0xFFC0), a imagem nao po-

dera ser exibida. Essa foi uma situacao que ocorreu diversas vezes nas imagens extraıdas pelo

prototipo.

Uma possıvel solucao simples e acrescentar manualmente os segmentos que estiverem fal-

tando, mas essa solucao tem algumas limitacoes:

• Uma imagem sempre comeca imediatamente apos o termino do segmento de inıcio de

varredura [Hamilton, 1992]. Portanto, mesmo que seja inserido esse segmento manual-

mente, o comeco da imagem nao estara logo a seguir, provocando novamente um erro de

Page 84: Forense Computacional Tecnicas Ferramentas

Prototipo Desenvolvido 83

decodificacao. Na verdade, esse segmento e a area de pixels da imagem estao localizados

em outro ponto da swap (desconhecido a princıpio), ou seja, em outra pagina.

• O “enxerto”de um segmento de inıcio do quadro 0 provoca distorcoes consideraveis

quando a imagem e decodificada. Isso porque esse segmento e usado para armazenar

as dimensoes da imagem (altura e largura), e quando as dimensoes estao erradas, os pi-

xels da imagem podem ficar consideravelmente “baguncados”.

Um outro problema verificado ocorre quando a imagem apresenta todos os seus segmentos

de cabecalho e o inıcio da area de dados correto, mas em algum ponto da imagem e inserido

lixo, ou seja, outra pagina da swap, provocando erro de decodificacao da imagem antes que

a imagem atinja o segmento de fim de imagem (0xFFD9). Alguns testes foram realizados e

foi verificado que a insercao manual do segmento de fim de imagem logo antes da insercao

de lixo faz com que a imagem possa ser decodificada, contornando esse problema. Claro que

provavelmente sera exibida apenas uma parte da imagem, visto que ela esta fragmentada na

swap.

Implementacao

O prototipo busca exaustivamente, byte a byte, pelo numero magico JPEG/JFIF

(0xFFD8FFE0). Ele armazena todas ocorrencias desse numero magico e depois extrai todos

os arquivos. Foi adotado neste trabalho uma implementacao em Java que faz dumps de imagens

JPEG de tamanho 256 KB (de facil alteracao no codigo fonte). Esse tamanho e razoavelmente

suficiente para a grande maioria das imagens que foram testadas, ate mesmo de outras fontes de

dados (veja logo abaixo).

Uma opcao de implementacao futura para agilizar o processo de busca e realizar a busca

por blocos, isto e, definir tamanho de bloco (512 KB, por exemplo) e buscar o numero magico

apenas no inıcio do bloco. Caso o numero magico nao seja identificado no comeco do bloco, a

busca passa para o proximo bloco. Essa abordagem e muito mais rapida, porem os resultados

serao menos eficientes, visto que estarıamos ignorando qualquer imagem que comece logo apos

o inıcio do bloco que a contem, ou antes do inıcio do bloco seguinte.

Cada arquivo extraıdo recebeu um nome no formato img_rec_<string>.jpg, onde

string e uma cadeia numerica gerada pelo programa, unica para cada imagem extraıda.

Escopo

A funcao de extracao de imagens JPEG do prototipo pode ser usada em outras fontes de

dados alem da swap, como:

• Arquivo de hibernacao do Windows (hiberfil.sys);

Page 85: Forense Computacional Tecnicas Ferramentas

Prototipo Desenvolvido 84

• Documentos do Microsoft Word;

• Arquivos de apresentacoes do Microsoft PowerPoint.

Foram realizados testes e foi possıvel extrair imagens armazenadas nos tipos de arquivos

citados acima. E mais, a extracao de imagens dos programas Microsoft acima foi bastante efici-

ente, visto que nesses arquivos a imagem e armazenada contiguamente. Em verdade, a extracao

viabilizada pelo prototipo pode dar-se em qualquer fonte que seja possıvel a identificacao, via

cabecalho, de imagens JPEG.

7.4.2 Extracao de URLs

Foi verificado que a swap apresenta diversas URLs armazenadas, o que pode configurar uma

fonte interessante de informacao. No prototipo, foi implementada a busca de URLs por meio

de classes em Java para expressoes regulares. A expressao regular usada foi:

(http|https|ftp|news|file)://[!-~&&[^<\">]]*

Com isso, foram buscados diversos tipos de enderecos:

• HTTP

• HTTPS

• FTP

• NEWS

• FILE (notacao de navegadores para indicar arquivos locais da maquina)

Os resultados sao armazenados em um arquivo de texto nomeado swap_urls.txt, uma

URL por linha.

7.4.3 Experimentos Realizados

Execucao do Programa

Os diversos testes do prototipo foram realizados em um computador equipado com proces-

sador Athlon-64 2800+ com 512 MB de memoria RAM. A fonte de dados foi um trecho de area

de swap (200 MB) do Windows XP, extraıdo no Linux por meio da sequencia de comandos

descrita no comeco deste Capıtulo. A execucao do programa pode ser observada abaixo:

C:\PrototipoSwap\dist>java -jar PrototipoSwap.jar

Ferramenta forense de extrac~ao de imagens JPEG e URLs da area de swap

e afins. Armazena as URLs encontradas em um arquivo de texto

Page 86: Forense Computacional Tecnicas Ferramentas

Prototipo Desenvolvido 85

’swap_urls.txt’ e as imagens encontradas usando nomes variaveis no diretorio

destino especificado.

SINTAXE: PrototipoSwap.jar [OPCOES] [ORIGEM] [DESTINO]

Opcoes

-i extrai imagens JPEG

-u extrai URLs

Origem

Caminho absoluto do arquivo de swap

Destino

Diretorio (pre-existente) para armazenar itens extraidos

Exemplos de uso:

PrototipoSwap.jar -u c:\swapcopy\swap.dd c:\swapcopy\ext_url

PrototipoSwap.jar -i c:\swapcopy\swap.dd c:\swapcopy\ext_jpeg

PrototipoSwap.jar -iu c:\swapcopy\swap.dd c:\swapcopy\extracao

C:\PrototipoSwap\dist> java -jar PrototipoSwap.jar-iu

c:\swapwin\swap.dd c:\swapwin\result

3903 URL(s) extraida(s).

28 imagem(ns) extraida(s).

Tempo de processamento foi de 3min16s.

Saıda do Programa

O programa gravou os seguintes arquivos no diretorio destino (c:\swapwin\resul):

C:\swapwin\result>dir

O volume na unidade C n~ao tem nome.

O numero de serie do volume e 44E9-1D64

Pasta de C:\swapwin\result

13/06/2007 07:24 <DIR> .

13/06/2007 07:24 <DIR> ..

13/06/2007 05:07 524.288 img_rec_122394704.jpg

Page 87: Forense Computacional Tecnicas Ferramentas

Prototipo Desenvolvido 86

13/06/2007 05:07 524.288 img_rec_126819489.jpg

13/06/2007 05:07 524.288 img_rec_126819919.jpg

13/06/2007 05:07 524.288 img_rec_126820756.jpg

13/06/2007 05:07 524.288 img_rec_126821186.jpg

13/06/2007 05:07 524.288 img_rec_126838231.jpg

13/06/2007 05:07 524.288 img_rec_126838661.jpg

13/06/2007 05:07 524.288 img_rec_152634684.jpg

13/06/2007 05:07 524.288 img_rec_169684024.jpg

13/06/2007 05:07 524.288 img_rec_169689096.jpg

13/06/2007 05:07 524.288 img_rec_169697168.jpg

13/06/2007 05:07 524.288 img_rec_169709248.jpg

13/06/2007 05:07 524.288 img_rec_178074936.jpg

13/06/2007 05:08 524.288 img_rec_178761740.jpg

13/06/2007 05:08 524.288 img_rec_180715359.jpg

13/06/2007 05:08 524.288 img_rec_189319952.jpg

13/06/2007 05:08 524.288 img_rec_196595701.jpg

13/06/2007 05:08 524.288 img_rec_197001205.jpg

13/06/2007 05:08 524.288 img_rec_197382021.jpg

13/06/2007 05:08 524.288 img_rec_198340485.jpg

13/06/2007 05:08 524.288 img_rec_199358816.jpg

13/06/2007 05:07 524.288 img_rec_48656124.jpg

13/06/2007 05:07 524.288 img_rec_57613979.jpg

13/06/2007 05:07 524.288 img_rec_87146736.jpg

13/06/2007 05:07 524.288 img_rec_88166408.jpg

13/06/2007 05:07 524.288 img_rec_90595301.jpg

13/06/2007 05:07 524.288 img_rec_90678584.jpg

13/06/2007 05:07 524.288 img_rec_91189488.jpg

13/06/2007 05:05 231.658 swap_urls.txt

29 arquivo(s) 14.911.722 bytes

2 pasta(s) 741.470.208 bytes disponıveis

Nas Figuras 7.3 e 7.4 seguem dois exemplares de imagens extraıdas da area de swap.

Abaixo encontra-se um trecho do arquivo swap_urls.txt:

http://www.casabrasil.gov.br

http://www.w3.org/2000/09/xmldsig#

http://schemas.xmlsoap.org/soap/envelope/

http://imagine-msn.com/hotmail/tab/default.aspx?locale=en-us

Page 88: Forense Computacional Tecnicas Ferramentas

Antiforense no Espaco de Swap 87

Figura 7.3: Exemplar de figura extraıda pelo prototipo

Figura 7.4: Exemplar de figura extraıda pelo prototipo

http://schemas.xmlsoap.org/soap/envelope/

https://www.netlock.net/docs

http://www.usertrust.com1604

http://www.usertrust.com1604

http://

http://zone.msn.com/messengertab/?loc=en-us

http://www.entrust.net/CRL/net1.crl0+

http://www.casabrasil.gov.br

http://bmm.imgag.com/bmm/xml/menuitem_us_em_5.xml

http://rad.msn.com/ADSAdClient31.dll?GetAd?PG=IMUSCI

7.5 Antiforense no Espaco de Swap

Deve-se ter em mente que, apesar da caracterıstica do espaco de swap permitir o armazena-

mento de dados (e posterior coleta pelo investigador) eventualmente importantes numa analise

forense, tambem existe o outro lado da analise, a antiforense ja comentada no Capıtulo 4. No

caso da analise do espaco de swap, pode-se entender a antiforense como a tentativa de eliminar

informacoes dessa area, o que pode ser feito de diversas formas.

E possıvel que um indivıduo altere certas configuracoes no registro do Windows para

que as paginas do arquivo de swap sejam sobrescritas com zeros ao desligar o sistema

[Caloyannides, 2004]. Essa medida de seguranca fornecida pelo Windows 2000/XP nao apaga

todas as paginas da swap no entanto, uma vez que algumas ainda estarao em uso pelo sistema.

Em termos de ferramentas, existem diversos programas que fazem a exclusao segura (wip-

Page 89: Forense Computacional Tecnicas Ferramentas

Conclusoes 88

ping), do arquivo de swap no Windows [Caloyannides, 2004]. Exemplos:

• PGP for DOS1

• BCWipe2.

O BCWipe apresenta uma funcao que permite cifrar a swap durante o uso do Windows.

Permite que o usuario escolha diversos algoritmos de cifragem e preencher areas que nao estao

em uso atualmente com dados randomicos. Assim como a criptografia discutida anteriormente,

a cifragem da swap apresenta obstaculos a investigacao forense, apesar de ser um recurso de

seguranca legıtimo para um usuario comum.

7.6 Conclusoes

Neste capıtulo, foi apresentado um prototipo que realiza recuperacao de dados na area de

swap. Primeiramente foi necessario apresentar uma breve discussao sobre a coleta de dados na

memoria principal e em que contexto e criado o espaco de swap nas atividades de rotina de um

sistema operacional. Alem dessa caracterizacao, foram exemplificados processos de obtencao

do espaco de swap do Windows e do Linux, ambos por meio da ferramenta dd no Linux.

O prototipo e suas caracterısticas foram, entao, apresentados,e de que forma ele lida com

imagens JPEG, o que requereu uma descricao da estrutura de imagens JPEG. Uma limitacao

percebida foi a extracao parcial que e feita pelo prototipo, mas deve-se levar em conta que e

uma primeira versao, e que as imagens extraıdas, apesar disso, nao deixam de ser uma fonte de

valiosa informacao forense.

Um aspecto importante sao as contramedidas que podem ser tomadas por atacantes ou ate

mesmo usuarios sem intencoes criminosas que realizam o wipping ou cifragem da swap, apre-

sentando uma barreira por vezes intransponıvel a forense.

Existem diversas melhorias que podem ser realizadas no prototipo que serao mencionadas

no Capıtulo 8, podendo servir de base para uma ferramenta mais abrangente de perıcia forense

na area de swap em trabalhos futuros.

1PGP for DOS pode ser encontrado em: http://www.pgpi.org/products/pgp/versions/freeware/

dos/2BCWipe pode ser encontrado em: http://www.jetico.com

Page 90: Forense Computacional Tecnicas Ferramentas

Capıtulo 8

Conclusoes

Na atual conjuntura mundial esta claro que o papel da investigacao forense e fundamental

para permitir uma sociedade mais justa e cientificamente capaz de tratar de crimes realizados

por meio de um computador. Esse ramo da criminalıstica e recente e, por isso, cresce expres-

sivamente, tanto em uso como em evolucao como ciencia. Por outro lado, sofre da falta de

padroes, especialmente quando comparado a outros ramos ja consagrados da ciencia forense,

como a Psicologia Forense ou a Medicina Forense, os quais sao praticados a muito mais tempo.

Para realizar perıcias forenses computacionais com eficiencia e necessario conhecer e es-

tabelecer procedimentos confiaveis, bem como documenta-los e auxilia-los com ferramentas

seguras. Uma questao fundamental e que os resultados tem de ser confiaveis e devem seguir

uma cadeia rigorosa de procedimentos, a fim de que possam servir como prova em um caso

criminal. Alem disso, as provas coletadas tem de estar a disposicao para novos esclarecimentos

ou perıcias, assim como ocorre em todas as areas das ciencias do crime.

Neste trabalho, foram feitas pesquisas em diversas fontes de informacao em um computador,

como navegadores de Internet, sistemas de arquivos, CD-ROM e area de swap. Foram apresen-

tados diversos aspectos dessas fontes, tendo em mente quais evidencias podem ser extraıdas e

de que forma. O prototipo desenvolvido fez uma implementacao inicial de uma ferramenta de

analise forense na swap, com o objetivo de estabelecer de que forma metodos de recuperacao

de dados podem ser aplicados nessa situacao. Foram mostradas as dificuldades desse processo,

como, por exemplo, a fragmentacao existente no espaco de swap. Isso requereu, tambem, o es-

tudo detalhado da estrutura de imagens JPEG a fim de compreender os resultados obtidos pelo

prototipo.

O que podemos atestar durante o desenvolvimento deste texto e que a forense computacional

requer estudo aprofundado de hardware e software, pois e necessario entender as suas estruturas

para poder coletar evidencias e analisa-las da melhor forma possıvel. E preciso saber medir

o impacto do investigador no sistema em analise, especialmente quando e necessario coletar

evidencias durante sua execucao. E isso nem sempre e facil, dada a velocidade gigantesca em

que as informacoes sao processadas em um computador.

89

Page 91: Forense Computacional Tecnicas Ferramentas

Trabalhos Futuros 90

8.1 Trabalhos Futuros

Devido ao escopo e limitacoes deste trabalho, o prototipo desenvolvido implementou apenas

uma versao inicial de um programa de recuperacao de dados na swap. Dessa forma, sugestoes

que podem ser interessantes para desenvolvimentos futuros nesse sentido sao:

• Melhorar a eficiencia do programa, seja por meio da adocao de linguagens de

programacao mais rapidas ou pelo uso de estruturas de programacao mais eficientes na

entrada e saıda;

• Desenvolver uma interface grafica;

• Lidar melhor com a fragmentacao presente na area de swap;

• Implementar a extracao de outros tipos de informacao, como outros tipos de imagens

(BMP, GIF, PNG etc.), arquivos MP3, bytecodes Java, codigos fonte de linguagens de

programacao, documentos do Microsoft Word etc.

Esperamos que este trabalho sirva de incentivo para futuras pesquisas sobre a tecnicas e

ferramentas de forense computacional, especialmente na recuperacao de dados na area de swap.

Page 92: Forense Computacional Tecnicas Ferramentas

Referencias Bibliograficas

[Anonimo, 2001] Anonimo (2001). Seguranca Maxima. Campus, Rio de Janeiro, terceira

edition.

[Berghel and Brajkovska, 2004] Berghel, H. and Brajkovska, N. (2004). Wading into alternate

data streams. In Communications of the ACM, volume 47, pages 21–27, New York, USA.

ACM Press.

[Berners-Lee, 1994] Berners-Lee, T. (1994). Universal resource identifiers in www.

World Wide Web Consortium. Disponıvel em http://www.w3.org/Addressing/URL/

Overview.html.

[Berners-Lee and Conolly, 1995] Berners-Lee, T. and Conolly, D. (1995). Hypertext markup

language – 2.0 (RFC 1866). RFC Editor. Disponıvel em ftp://ftp.rfc-editor.org/

in-notes/rfc1866.txt.

[Bunting and Wei, 2006] Bunting, S. and Wei, W. (2006). The Official EnCE: Encase Certified

Examiner. Wiley Publishing, Indianapolis, USA, primeira edition.

[Caloyannides, 2004] Caloyannides, M. A. (2004). Privacy Protection and Computer Foren-

sics. Artech House, Norwood, USA, segunda edition.

[Carpanez, 2006] Carpanez, J. (07/01/2006). Legislacao tradicional “julga” crimes de in-

formatica. Folha Online. Disponıvel em http://www1.folha.uol.com.br/folha/

informatica/ult124u19453.shtml. Acessado em abril de 2007.

[Carrier, 2003] Carrier, B. D. (2003). Defining digital forensic examination and analysis tools

using abstraction layers. International Journey of Digital Evidence, 1. Disponıvel em http:

//www.ijde.org.

[Carrier, 2005] Carrier, B. D. (2005). File System Forensic Analysis. Addison Wesley Profes-

sional, Boston, USA, primeira edition.

[Carvey, 2004] Carvey, H. (2004). Windows Forensics and Incident Response. Addison Wesley,

Boston, USA, primeira edition.

91

Page 93: Forense Computacional Tecnicas Ferramentas

REFERENCIAS BIBLIOGRAFICAS 92

[Casey, 2004] Casey, E. (2004). Digital Evidence and Computer Crime: Forensic Science,

Computers, and the Internet. Academic Press (Elsevier), San Diego, USA, segunda edition.

[Comissao de Educacao, 2006] Comissao de Educacao (2006). Parecer sobre projeto de lei

da camara no 89, de 2003, e projetos de lei do senado no 137, de 2000, e no 76, de 2000.

Modulo Security Magazine. Disponıvel em http://www.modulo.com.br/pdf/PLS-76_

2000.pdf. Acessado em marco de 2007.

[Crowley, 2007] Crowley, P. (2007). CD and DVD Forensics. Syngress Publishing, Rockland,

USA, primeira edition.

[da Motta Pires, 2003] da Motta Pires, P. S. (2003). Forense computacional: uma proposta de

ensino. V Simposio de Seguranca em Informatica. Disponıvel em http://www.dca.ufrn.

br/~pmotta/ensino-forense.pdf.

[da Silva Rodrigues and Caricatti, 2004] da Silva Rodrigues, J. and Caricatti, A. M. (2004).

Criminalıstica computacional - alguns procedimentos legais. VI Simposio de Seguranca

em Informatica. Disponıvel em http://linorg.cirp.usp.br/SSI/SSI2004/Artigos/

Art010_ssi04.pdf.

[de Almeida, 2006] de Almeida, G. M. (29/06/2006). Lei dos crimes de informatica mais perto

de ser votada. Modulo Security Magazine. Disponıvel em http://www.afrac.com.br/

si/site/1623. Acessado em abril de 2007.

[de Andrade Martins, 2001] de Andrade Martins, G. (2001). Manual para Elaboracao de Tra-

balhos Academicos. Editora Atlas, Sao Paulo, primeira edition.

[de Freitas, 2004] de Freitas, A. R. (2004). Terminologia pericial. In de Freitas, A. R.,

editor, Evidencia Digital Magazine, volume 4, pages 6–6. Disponıvel em http://

www.guiatecnico.com.br/EvidenciaDigital/principal.asp. Acessado em marco de

2007.

[de Freitas, 2006] de Freitas, A. R. (2006). Perıcia Forense Aplicada a Informatica - Ambiente

Microsoft. Brasport, Rio de Janeiro, primeira edition.

[de Geus et al., 2001] de Geus, P. L., Guimaraes, C. C., de Souza Oliveira, F., and dos Reis,

M. A. (2001). Forense computacional: Aspectos legais e padronizacao. I Workshop em

Seguranca de Sistemas Computacionais. Disponıvel em http://www.las.ic.unicamp.

br/paulo/papers/2001-WSeg-flavio.oliveira-marcelo.reis-forense.pdf.

[de Paula Bueno, 2007] de Paula Bueno, M. L. (2007). Um prototipo de perıcia forense digital

na area de swap. In 4o Semana da informatica, Catalao–GO. Centro de Ensino Superior de

Catalao.

Page 94: Forense Computacional Tecnicas Ferramentas

REFERENCIAS BIBLIOGRAFICAS 93

[de Paula Bueno and da Silva Sendin, 2006] de Paula Bueno, M. L. and da Silva Sendin, I.

(2006). Analise de ferramentas de forense computacional. In Bueno, M., editor, Revista

CEPPG, number 15, pages 119–134, Catalao–GO. Centro de Ensino Superior de Catalao.

[de Souza Oliveira, 2001] de Souza Oliveira, F. (2001). Metodologias de analise fo-

rense para ambientes baseados em NTFS. III Simposio de Seguranca em Informatica.

Disponıvel em http://www.las.ic.unicamp.br/paulo/papers/2001-SSI-flavio.

oliveira-forense.ntfs.pdf.

[de Souza Oliveira, 2002] de Souza Oliveira, F. (2002). Resposta a incidentes e analise

forense para redes baseadas em windows 2000. Master’s thesis, Universidade Esta-

dual de Campinas. Disponıvel em http://www.las.ic.unicamp.br/paulo/teses/

20021121-MSc-Flavio.Oliveira-Resposta.a.incidentes.e.analise.forense.

para.redes.baseadas.em.Windows.2000.pdf.

[dos Reis, 2003] dos Reis, M. A. (2003). Forense computacional e sua aplicacao em

seguranca imunologica. Master’s thesis, Universidade Estadual de Campinas. Dis-

ponıvel em http://www.las.ic.unicamp.br/paulo/teses/20030226-MSc-Marcelo.

Abdalla.dos.Reis-Forense.computacional.e.sua.aplicacao.em.seguranca.

imunologica.pdf.

[dos Reis and de Geus, 2002] dos Reis, M. A. and de Geus, P. L. (2002). Analise

forense de intrusoes em sistemas computacionais: Tecnicas, procedimentos e fer-

ramentas. Technical report, Universidade Estadual de Campinas. Disponıvel

em http://www.las.ic.unicamp.br/paulo/papers/2002-Pericia-marcelo.

reis-forense.tecnicas.procedimentos.pdf.

[Eckert, 1997] Eckert, W. G. (1997). Introduction to Forensic Sciences, chapter Introduction to

the Forensic Sciences, pages 11–20. CRC Press, New York, USA, primeira edition.

[Farmer and Venema, 2004] Farmer, D. and Venema, W. (2004). Forensic Discovery. Addison

Wesley Professional, Boston, USA, primeira edition.

[Gutmann, 1996] Gutmann, P. (1996). Secure deletion of data from magnetic and solid-state

memory. In Sixth USENIX Security Symposium, Focusing on Applications of Cryptography,

pages 77–90. USENIX. Disponıvel em http://www.usenix.org/publications/

library/proceedings/sec96/full_papers/gutmann/index.html.

[Hamilton, 1992] Hamilton, E. (1992). JPEG File Interchange Format. Disponıvel em http:

//www.w3.org/Graphics/JPEG/jfif3.pdf. Acessado em maio de 2007.

[Huebner et al., 2006] Huebner, E., Bem, D., and Wee, C. K. (2006). Data hiding in the NTFS

file system. Digital Investigation, 3(4):211–226.

Page 95: Forense Computacional Tecnicas Ferramentas

REFERENCIAS BIBLIOGRAFICAS 94

[Icove et al., 1995] Icove, D., Seger, K., and VonStorch, W. (1995). Computer Crime: A Cri-

mefighter’s Handbook. O’Reilly and Associates, Sebastopol, USA, primeira edition.

[InfoGuerra, 2004] InfoGuerra (2004). Novo projeto de lei tipifica crimes no paıs. In de Freitas,

A. R., editor, Evidencia Digital Magazine, volume 3, page 1. Disponıvel em http://www.

guiatecnico.com.br/EvidenciaDigital/principal.asp. Acessado em abril de 2007.

[Jones and Belani, 2005] Jones, K. J. and Belani, R. (2005). Web browser forensics. Security

Focus. Disponıvel em http://www.securityfocus.com/infocus/1827 e http://www.

securityfocus.com/infocus/1832. Acessado em maio de 2007.

[Jones, 2005] Jones, R. (2005). Internet Forensics. O´Reilly, Sebastopol, USA, primeira edi-

tion.

[Kessler, 2004] Kessler, G. C. (2004). An overview of steganography for the computer foren-

sics examiner. In DiZinno, J. A., editor, Forensic Science Communications, volume 6. Dis-

ponıvel em http://www.fbi.gov/hq/lab/fsc/backissu/july2004/index.htm. Aces-

sado em marco de 2007.

[Kristol and Montulli, 1997] Kristol, D. and Montulli, L. (1997). Http state management

mechanism (RFC 2109). RFC Editor. Disponıvel em ftp://ftp.rfc-editor.org/

in-notes/rfc2109.txt.

[Kristol and Montulli, 2000] Kristol, D. and Montulli, L. (2000). Http state management

mechanism (RFC 2965). RFC Editor. Disponıvel em ftp://ftp.rfc-editor.org/

in-notes/rfc2965.txt.

[Kurose and Ross, 2006] Kurose, J. F. and Ross, K. W. (2006). Redes de computadores e a

Internet: uma abordagem top-down. Pearson Addison Wesley, Sao Paulo, terceira edition.

[Lau and Sanchez, 2006] Lau, M. and Sanchez, P. L. P. (2006). Tecnicas utilizadas para

efetivacao e contencao das fraudes sobre internet banking no brasil e no mundo. Perito

Criminal. Disponıvel em http://www.peritocriminal.com/artigos/fraudesi.htm.

Acessado em abril de 2007.

[Liu and Brown, 2006] Liu, V. and Brown, F. (2006). Bleeding-edge anti-forensics. In Infosec

World - Conference & Expo. Disponıvel em http://www.metasploit.com/projects/

antiforensics. Acessado em abril de 2007.

[Microsoft, 1995] Microsoft (1995). Joliet specification. Microsoft. Disponıvel em http:

//littlesvr.ca/isomaster/resources/JolietSpecification.html. Acessado em

maio de 2007.

Page 96: Forense Computacional Tecnicas Ferramentas

REFERENCIAS BIBLIOGRAFICAS 95

[Microsoft, 2005] Microsoft (2005). Descricao de cookies. Microsoft Corporation. Disponıvel

em http://support.microsoft.com/kb/260971/pt. Acessado em fevereiro de 2007.

[Netscape, 1997] Netscape (1997). Persistent client state http cookies. Netscape. Disponıvel

em http://wp.netscape.com/newsref/std/cookie_spec.html. Acessado em maio de

2007.

[Oltsik and Biggar, 2006] Oltsik, J. and Biggar, H. (2006). Seguranca centrada nas informacoes

e eliminacao de dados. Enterprise Strategy Group. Disponıvel em http://brazil.emc.

com/analyst/pdf/ESG_WP_EMC_Security_Jul_06.pdf.

[Rodrigues, 2006] Rodrigues, G. (21/03/2006). Lucro faz cibercrime se estabelecer mun-

dialmente. InfoGuerra. Disponıvel em http://www.infoguerra.com.br/infonews/

viewnews.cgi?newsid1142964693,29218,. Acessado em abril de 2007.

[Roussev et al., 2007] Roussev, V., III, G. G. R., and Marziale, L. (2007). In-place file carving.

Research Advances in Digital Forensics, III:1–13. Disponıvel em http://www.cs.uno.

edu/~golden/Stuff/ifip2007-final.pdf.

[Scheetz, 2001] Scheetz, D. (2001). Dwarf’s guide to Debian GNU/Linux. Debian Project.

Disponıvel em http://people.debian.org/~psg/ddg/dwarfs-debian-guide.html.

Acessado em maio de 2007.

[Silberschatz et al., 2001] Silberschatz, A., Galvin, P., and Gagne, G. (2001). Sistemas Opera-

cionais: Conceitos e Aplicacoes. Elsevier - Campus, Rio de Janeiro, primeira edition.

[Solomon et al., 2004] Solomon, M. G., Barrett, D., and Broom, N. (2004). Computer forensics

(JumpStart). Sybex, Indianapolis, USA, primeira edition.

[Stephenson, 2000] Stephenson, P. (2000). Investigating computer-related crime: handbook

for corporate investigations. CRC Press, New York, USA, primeira edition.

[Tanenbaum, 2003a] Tanenbaum, A. S. (2003a). Redes de Computadores. Elsevier, Rio de

Janeiro, quarta edition.

[Tanenbaum, 2003b] Tanenbaum, A. S. (2003b). Sistemas operacionais modernos. Prentice

Hall, Sao Paulo, segunda edition.

[Vacca, 2002] Vacca, J. R. (2002). Computer forensics: computer crime scene investigation.

Charles River Media, Hingham, USA, primeira edition.

[Westphal, 2003] Westphal, K. (2003). Steganography revealed. SecurityFocus. Disponıvel

em http://www.securityfocus.com/infocus/1684. Acessado em junho de 2007.

Page 97: Forense Computacional Tecnicas Ferramentas

Glossario

Bruta forca teste exaustivo de senhas, isto e, aplicacao de todas as combinacoes possıveis

de senhas ate que a senha correta seja encontrada ou o processo de busca encerre. Esse

termo geralmente e empregado no chamado ataque de bruta forca para descobrir senhas

de arquivos de login de um sistema operacional, por exemplo.

Canal oculto (covert channel) metodo de transmissao camuflada de informacao inse-

rida em um objeto, como uma imagem ou um arquivo de audio. Canais ocultos sao

empregados principalmente na Esteganografia.

Criminalıstica estudo e esclarecimento de casos criminais, averiguando o fato delituoso e

suas circunstancias por meio de tarefas como colheita de vestıgios e realizacao de perıcias.

Deteccao de intrusao uso de hardware e software na monitoracao de trafego de rede em

busca de padroes de atividades que possam indicar possıveis tentativas de intrusao.

Engenharia social diz respeito a maneiras de obtencao de informacoes importantes ou si-

gilosas de empresas por meio da exploracao da natureza humana. As vulnerabilidades

do fator humano sao, frequentemente, o elo mais fraco de sistemas de seguranca. A

obtencao de informacoes privilegiadas com uso da engenharia social pode ser feita por

diversos modos como, por exemplo, usando identificacoes falsas ou adquirindo confianca

de funcionarios.

Honeypot recurso computacional vulneravel propositadamente para atrair intrusos, a fim de

rastrear e estudar suas acoes e uso de recursos do sistema.

Marcas de tempo (Timestamp) atributos pertences a arquivos e diretorios, como datas

e horas de criacao, acesso, modificacao (estes tres sao conhecidos como MAC times), e

exclusao, este ultimo presente em apenas alguns sistemas de arquivos, como o usado pelo

Linux. As marcas de tempo sao fundamentais na reconstrucao temporal dos eventos em

uma investigacao forense.

MD5 (Message Digest 5 ) Algoritmo de resumo de mensagem usado para checar a inte-

gridade de um conjunto de dados. E usado para verificar se de dados transmitidos entre

96

Page 98: Forense Computacional Tecnicas Ferramentas

duas entidades (um par cliente-servidor, por exemplo) nao foram corrompidos durante a

transmissao. Outra utilidade do MD5 e verificar se a extracao de dados de uma mıdia,

como HD ou CD-ROM, nao adulterou a fonte de dados (caso exista essa possibilidade) e

os dados extraıdos sao autenticos em relacao a essa fonte. A especificacao do MD5 pode

ser encontrada no RFC 1321.

Metadados (meta-arquivos) em sistemas de arquivos dizem respeito a arquivos especiais

que descrevem o conteudo de uma particao de disco, como mapeamento de blocos usados,

rastreamento de setores defeituosos, arquivos de log do volume, dentre outros.

Resposta a incidentes conjunto de medidas tomadas por uma equipe treinada e preparada

(time de resposta) para reconhecer e resolver qualquer incidente de seguranca em uma

organizacao, seja durante ou apos a sua ocorrencia.

RFC (Request For Comments) documentos que representam padroes em vigor na In-

ternet, desenvolvidos por diversos pesquisadores e entidades. O IETF (Internet Enginee-

ring Task Force) e a entidade responsavel por aceitar submissoes de novos RFCs, inclu-

sive propondo alguns desses padroes tambem. Documentos RFCs estao espalhados em

diversos servidores na Internet, como o RFC Editor http://www.rfc-editor.org/.

Tamanho fısico de arquivo quantidade de espaco ocupada pelo arquivo ou diretorio no

disco. Devido a estruturacao dos sistemas de arquivos, em um dado momento um bloco

de disco pode ser alocado a apenas um unico arquivo. Dessa forma, o tamanho fısico de

um arquivo e sempre um ou mais blocos de disco. Por exemplo, se um arquivo tem 1,5

KB e os blocos em disco sao de tamanho 4 KB, entao o tamanho logico do arquivo e 1,5

KB, enquanto que o tamanho fısico e 4 KB. Na contabilidade de espaco alocado o que

conta e o espaco fısico.

Tamanho logico de arquivo quantidade exata de espaco requerida por uma informacao

computacional. Geralmente os sistemas operacionais registram o tamanho logico e o

tamanho fısico, os quais quase sempre apresentam valores diferentes.

97

Page 99: Forense Computacional Tecnicas Ferramentas

Apendice A

Ferramentas Usadas em Perıcia

Forense Computacional

Neste Apendice apresentamos uma listagem das ferramentas que descrevemos durante este

trabalho e algumas outras auxiliares. Separamos por categorias onde foram aplicadas para faci-

litar a procura pela ferramenta de interesse.

A.1 Uso geral

A.1.1 WinHex

Descricao editor hexadecimal completo, incluindo calculo de resumo de mensagem uti-

lizando diversos algoritmos disponıveis, interpretador de dados em diversos formatos,

busca por expressoes regulares (similar ao grep do Linux), dentre outras funcoes. Apre-

senta diversas funcoes interessantes a investigacao forense, como:

• interface especial para forense, incluindo criacao de modelos de relatorios, criacao

de imagens de disco, analise de ADS do NTFS, catalogacao de arquivos etc.;

• possibilidade de acessar a memoria principal com o sistema ligado, permitindo que

dados sejam copiados de la;

• file carver disponıvel para recuperar uma gama consideravel de tipos de dados,

sendo possıvel definir alguns criterios de pesquisa de cabecalhos dos arquivos que

se requer buscar;

Desenvolvedor X-Ways Software Technology AG

Licenca proprietario

Site http://www.x-ways.net

98

Page 100: Forense Computacional Tecnicas Ferramentas

Rede 99

A.1.2 EnCase

Descricao suıte de aplicativos forenses bastante variada. Auxilia na geracao de relatorios

e laudos forenses, calcula hashes criptograficos, extrai espacos subaproveitados (slack

spaces), recupera dados excluıdos, permite analise da lixeira, registro e outros artefatos

do Windows, dentre muitas outras funcoes.

Desenvolvedor Guidance Software

Licenca proprietario

Site http://www.guidancesoftware.com

A.1.3 Forensic Toolkit (FTK)

Descricao ferramenta forense de uso geral com interface grafica, dispondo de diversos re-

cursos como busca avancada, capacidade de trabalhar com diversos formatos de arquivos,

analise de arquivos ZIP, analise de e-mails e registro do Windows. Dispoe de uma especie

de navegador embutido para visualizar conteudo de cache de navegadores. Classifica e

filtra o conteudo do cache para auxiliar a analise. Desvantagem do FTK e que o proces-

samento de arquivos de ındice (index.dat) nao permite a geracao de relatorios (Excell

ou texto puro, por exemplo) e a saıda e complexa para leitura.

Desenvolvedor AccessData

Licenca proprietario

Site http://www.accessdata.com

A.2 Rede

A.2.1 tcpdump

Descricao ferramenta de linha de comando para capturar trafego de rede de protocolos di-

versos, como TCP/IP. A ferramenta permite que os dados sejam exibidos a medida em

que sao capturados, isto e, em tempo real, ou armazenados em um arquivo para analise

posterior. Os dump files gerados pelo tcpdump podem ser analisados por outros progra-

mas mais adequados a visualizacao de datagramas, como o ethereal e tcptrace. Ha

uma versao do tcpdump portada para Windows denominada WinDump. Ferramentas que

executam tarefas de captura de trafego de rede sao denominadas comumente de sniffers.

Desenvolvedor LBL

Page 101: Forense Computacional Tecnicas Ferramentas

Forense na Web 100

Licenca open source (BSD)

Site http://www.tcpdump.org

A.2.2 snort

Descricao e uma ferramenta que atua como packet sniffer e sistema de deteccao de intrusao

(Intrusion Detection System - IDS). O snort faz uso de regras para analisar conteudo

transmitido pelas interfaces de rede, permitindo detectar e eliminar diversos tipos de ata-

ques.

Desenvolvedor Sourcefire

Licenca open source (GNU)

Site http://www.snort.org

A.3 Forense na Web

A.3.1 Cookie monster

Descricao permite ao usuario visualizar, excluir, marcar e salvar cookies armazenados em

seu sistema. O programa apresenta os cookies classificando-os de acordo com o navega-

dor no qual foram gerados. Mostra os atributos internos de um cookie, como name, value,

expiration, e seus valores, alem da localizacao do cookie no disco e o site que o gerou.

Desenvolvedor AMPSoft

Licenca freeware

Site http://www.ampsoft.net

A.3.2 Extensoes do Mozilla Firefox

Descricao sao diversas as extensoes, como, por exemplo, Edit Cookies (visualiza o conteudo

e permite editar o conteudo de cookies), allcokies (copia todos os cookies para um arquivo

de texto), CookieSafe (permite ao usuario determinar a permissao, negacao ou permissao

temporaria de cookies), dentre outras.

Site https://addons.mozilla.org

Page 102: Forense Computacional Tecnicas Ferramentas

Forense na Web 101

A.3.3 Pasco

Descricao ferramenta de linha de comando para geracao de relatorio de cache do IE. Pasco

recebe como entrada o arquivo de ındice de cache (index.dat) e exibe na tela ou arma-

zena em um arquivo de texto os registros encontrados. Ha tambem algumas opcoes para

o formato do resultado gerado.

Desenvolvedor Foundstone

Licenca open source

Site http://www.foundstone.com

A.3.4 Web Historian

Descricao ferramenta com interface grafica que realiza o processamento de arquivos de

historico de navegadores diversos, como IE, Firefox, Opera e Safari. O Web Historian

permite ao usuario duas opcoes de execucao: especificar o arquivo de ındice do historico

ou especificar o diretorio onde se encontram. Essa segunda opcao e util para proces-

sar diversos arquivos simultaneos e inserir os resultados em um so arquivo de saıda. A

ferramenta apresenta diversos formatos de saıda, como planilhas do Microsoft Excell e

paginas HTML.

Desenvolvedor Mandiant

Licenca freeware

Site http://www.mandiant.com

A.3.5 Cache View

Descricao ferramenta com interface grafica que mostra ao usuario o conteudo de cache do

Mozilla Firefox, IE, Opera e Netscape. Permite ao usuario fornecer o caminho do cache

a ser exibido ou buscar automaticamente pelo cache (valido apenas para o IE), resultando

numa listagem dos itens encontrados e diversas informacoes relativos a eles, como por

exemplo:

• nome - permite identificar se o item esta armazenado em um arquivo de bloco ou

separadamente. No caso do IE, mostra em qual dos diretorios de cache esta arma-

zenado o item;

• tamanho;

• tipo de arquivo;

Page 103: Forense Computacional Tecnicas Ferramentas

Disco 102

• datas - download, modificacao e expiracao;

• URL;

Oferece ao usuario diversas acoes sobre os itens listados, como copia-los para o disco,

deleta-los e acessar a URL original.

Desenvolvedor Tim Johnson

Licenca proprietario

Site Disponıvel em http://www.progsoc.org/~timj/cv/

A.4 Disco

A.4.1 dd

Descricao ferramenta para copiar e converter dados de qualquer mıdia, com diversas opcoes

uteis, como especificacao de tamanho de bloco e bloco de inıcio de copia. E um utilitario

amplamente usado na forense, especialmente por permitir a geracao de imagens de disco

fieis por meio da copia bit-a-bit dos dados (tambem conhecida por bitstream copy).

Desenvolvedor Free Software Foundation

Licenca GNU

Site http://www.gnu.org

A.4.2 List Alternate Data Streams (LADS)

Descricao ferramenta de linha de comando que lista todas as alternate data streams (ADS)

encontradas no diretorio especificado. Lista tanto ADS pertencentes ao diretorio quanto

as pertencentes aos arquivos do diretorio. A listagem mostra, tambem, o tamanho dos

fluxos.

Desenvolvedor Frank Heyne

Licenca freeware

Site http://www.heysoft.de/Frames/f_sw_la_en.htm

Page 104: Forense Computacional Tecnicas Ferramentas

Disco 103

A.4.3 IsoBuster

Descricao ferramenta grafica que tem por funcao principal acessar discos de CD e DVD,

e imagens de dados de formatos diversos (ISO, Nero, BIN etc.), possibilitando diversas

acoes como leitura de sessoes, verificacao de erros de leitura da mıdia e recuperacao de

dados; o IsoBuster e na verdade um pacote de pequenos aplicativos embutidos. E possıvel

tambem realizar tarefas de baixo nıvel, como extracao de dados de CD/DVD em diver-

sos modos (user mode, raw mode etc.), possibilitando um gama de opcoes interessantes.

Dispoe de um visualizador de setor (sector view), similar a um editor hexadecimal.

Desenvolvedor Smart Projects

Licenca proprietario

Site http://www.isobuster.com

A.4.4 The Coroner’s Toolkit (TCT)

Descricao conjunto de ferramentas de perıcia designado para uso em analises post-mortem

em sistemas Unix. Compreende alguns itens com as seguintes funcionalidades:

grave-robber coleta informacoes gerais sobre componentes do sistema, como proces-

sos, atributos de arquivos, e arquivos e diretorios excluıdos. Alguns arquivos gera-

dos pelo grave-robber sao usados como entrada em outras ferramentas do TCT,

como o mactime.

ils, mactime e outros utilitarios de uso geral e para verificar alteracoes realizadas

nos MAC times de arquivos e diretorios.

unrm, lazarus recuperam arquivos excluıdos;

findkey recupera chaves criptograficas de processo em execucao ou de arquivos.

Desenvolvedor Dan Farmer e Wietse Venema

Licenca open source

Site http://www.porcupine.org/forensics/tct.html

Page 105: Forense Computacional Tecnicas Ferramentas

Apendice B

Codigo Fonte do Prototipo

Desenvolvido

Neste Apendice incluımos o codigo fonte do prototipo que foi desenvolvido neste trabalho.

Brevemente descrito, e um file carver bem simples que busca por imagens JPEG e URLs em

um arquivo de swap. Em verdade, o programa pode trabalhar com qualquer fonte de dados onde

possam haver arquivos de imagens JPEG, como documentos do Microsoft Word e apresentacoes

do Microsoft PowerPoint, situacoes que testamos e conseguimos extrair imagens com sucesso.

Essa primeira versao do prototipo foi implementada na linguagem Java e empacotada em um

JAR (Java arquive) para automatizar a execucao por linha de comando. A sintaxe da chamada

do prototipo e:

java -jar PrototipoSwap.jar [OPCOES] [ORIGEM] [DESTINO]

Qualquer chamada diferente da acima resultara na exibicao de um pequeno menu de ajuda

que descreve como o programa pode ser chamado corretamente.

B.1 Classe Main

Listagem B.1: Implementacao da classe Main (executora)

package f o r e n s i c s . swap ;

import j a v a . i o . ∗ ;

p u b l i c c l a s s Main {5

p u b l i c s t a t i c vo id main ( S t r i n g [ ] a r g ) {S t r i n g [ ] param= a r g ;

/∗ Menu de a juda do programa ∗ /

104

Page 106: Forense Computacional Tecnicas Ferramentas

Classe Main 105

10 i f ( ! ( param . l e n g t h ==3) | | ! ( param [ 0 ] . e q u a l s ( "-i" ) | | param [ 0 ] .

e q u a l s ( "-u" ) | | param [ 0 ] . e q u a l s ( "-ui" ) | | param [ 0 ] . e q u a l s ( "-iu" )

) ) {System . o u t . p r i n t l n ( "Ferramenta forense de extracao de imagens

JPEG e URLs da area de swap e afins. Armazena as URLs

encontradas em um arquivo de texto ’swap_urls.txt’ e as

imagens encontradas usando nomes variaveis no diretorio

destino especificado." ) ;

System . o u t . p r i n t l n ( "\nSINTAXE: PrototipoSwap.jar [OPCOES] [

ORIGEM] [DESTINO]" ) ;

System . o u t . p r i n t l n ( "\n\tOpcoes" ) ;

System . o u t . p r i n t l n ( "\t\t-i extrai imagens JPEG" ) ;

15 System . o u t . p r i n t l n ( "\t\t-u extrai URLs" ) ;

System . o u t . p r i n t l n ( "\tOrigem" ) ;

System . o u t . p r i n t l n ( "\t\tCaminho absoluto do arquivo de swap" ) ;

System . o u t . p r i n t l n ( "\tDestino" ) ;

System . o u t . p r i n t l n ( "\t\tDiretorio (pre-existente) para

armazenar itens extraidos" ) ;

20 System . o u t . p r i n t l n ( "\nExemplos de uso:" ) ;

System . o u t . p r i n t l n ( "\tPrototipoSwap.jar -u c:\\swapcopy\\swap.

dd c:\\swapcopy\\ext_url" ) ;

System . o u t . p r i n t l n ( "\tPrototipoSwap.jar -i c:\\swapcopy\\swap.

dd c:\\swapcopy\\ext_jpeg" ) ;

System . o u t . p r i n t l n ( "\tPrototipoSwap.jar -iu c:\\swapcopy\\swap.

dd c:\\swapcopy\\extracao" ) ;

}25 e l s e {

ArquivoSwap a r q = new ArquivoSwap ( param [ 1 ] ) ;

i f ( param [ 0 ] . e q u a l s ( "-i" ) ) { / / e x t r a i r imagens apenas

E x t r a t o r J P E G e = new E x t r a t o r J P E G ( ) ;

e . e x t r a i J P E G ( arq , param [ 2 ] ) ;

30 }e l s e i f ( param [ 0 ] . e q u a l s ( "-u" ) ) { / / e x t r a i r apenas URLs

Extra torURL e x t = new Extra torURL ( ) ;

e x t . ex t ra iURL ( arq , param [ 2 ] ) ;

}35 e l s e { / / e x t r a i r URLs e imagens

Extra torURL e x t = new Extra torURL ( ) ;

e x t . ex t ra iURL ( arq , param [ 2 ] ) ;

E x t r a t o r J P E G e = new E x t r a t o r J P E G ( ) ;

e . e x t r a i J P E G ( arq , param [ 2 ] ) ;

40 } / / e l s e

} / / e l s e

} / / metodo

} / / c l a s s e

Page 107: Forense Computacional Tecnicas Ferramentas

Classe ArquivoSwap 106

B.2 Classe ArquivoSwap

Listagem B.2: Implementacao da classe ArquivoSwap

package f o r e n s i c s . swap ;

import j a v a . i o . ∗ ;

p u b l i c c l a s s ArquivoSwap {5

p r i v a t e F i l e swap ;

p r i v a t e I n p u t S t r e a m i n B u f f e r = n u l l ;

p r i v a t e B u f f e r e d R e a d e r r e a d e r = n u l l ;

10 p u b l i c ArquivoSwap ( S t r i n g a r q u i v o ) {swap = new F i l e ( a r q u i v o ) ;

/∗ j a d e i x a a s t r e am b u f f e r i z a d a p r o n t a para uso com o a r q u i v o

passado

∗no argumento ∗ /

15 t r y {i n B u f f e r = new B u f f e r e d I n p u t S t r e a m ( new F i l e I n p u t S t r e a m ( a r q u i v o

) ) ;

/∗ para c l a s s e de Exp . Reg . ∗ /

r e a d e r = new B u f f e r e d R e a d e r ( new F i l e R e a d e r ( a r q u i v o ) ) ;

20 }ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}

}

p u b l i c boolean r e a d e r E s t a P r o n t o ( ) {25 t r y {

re turn r e a d e r . r e a d y ( ) ;

}ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}

30 re turn f a l s e ; / / e r r o

}

p u b l i c i n t leSwap ( ) {35 t r y {

re turn ( i n B u f f e r . r e a d ( ) ) ;

}ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}

40 re turn (−2) ; / / e r r o

Page 108: Forense Computacional Tecnicas Ferramentas

Classe ArquivoSwap 107

}

p u b l i c vo id m a r c a P o s i c a o ( i n t pos ) {t r y {

45 i n B u f f e r . mark ( pos ) ;

i n B u f f e r . r e s e t ( ) ;

}ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}

}50

p u b l i c vo id r e t o r n a P o s i c a o ( ) {t r y {

i n B u f f e r . r e s e t ( ) ;

}55 ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}

}

p u b l i c vo id f e c h a S t r e a m ( ) {t r y {

60 i f ( i n B u f f e r != n u l l )

i n B u f f e r . c l o s e ( ) ;

}ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}

}65

p u b l i c vo id f e c h a R e a d e r ( ) {t r y {

r e a d e r . c l o s e ( ) ;

}70 ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}

}

p u b l i c S t r i n g l e L i n h a ( ) {t r y {

75 re turn r e a d e r . r e a d L i n e ( ) ;

}ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}re turn ( "-1" ) ; / / e r r o

}80

p u b l i c vo id se tSwap ( F i l e a r q ) {swap = a r q ;

}

85 p u b l i c F i l e getSwap ( ) {

Page 109: Forense Computacional Tecnicas Ferramentas

Classe ArquivoSaida 108

re turn swap ;

}

p u b l i c long b y t e s D i s p o n i v e i s ( ) {90 t r y {

re turn i n B u f f e r . a v a i l a b l e ( ) ;

}ca tch ( IOExcep t ion e ) {

;

95 }re turn (−1) ;

}

p u b l i c I n p u t S t r e a m g e t B u f f e r E n t r a d a ( ) {100 re turn i n B u f f e r ;

}}

B.3 Classe ArquivoSaida

Listagem B.3: Implementacao da classe ArquivoSaida

package f o r e n s i c s . swap ;

import j a v a . i o . ∗ ;

p u b l i c c l a s s A r q u i v o S a i d a {5

p r i v a t e F i l e o u t ;

p r i v a t e Outpu tS t r eam o u t B u f f e r = n u l l ;

p r i v a t e P r i n t W r i t e r pw = n u l l ;

10 p u b l i c A r q u i v o S a i d a ( S t r i n g s a i d a ) {o u t = new F i l e ( s a i d a ) ;

t r y {o u t . c r e a t e N e w F i l e ( ) ;

o u t B u f f e r = new B u f f e r e d O u t p u t S t r e a m ( new F i l e O u t p u t S t r e a m ( o u t

) ) ;

15 pw = new P r i n t W r i t e r ( o u t B u f f e r ) ;

}ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}

}

20 p u b l i c vo id esc reveNoArqu ivo ( i n t v a l o r ) {t r y {

Page 110: Forense Computacional Tecnicas Ferramentas

Classe BuscadorNumeroMagico 109

o u t B u f f e r . w r i t e ( v a l o r ) ;

}ca tch ( IOExcep t ion e ) {

25 System . o u t . p r i n t l n ( e . ge tMessage ( ) ) ;

}}

p u b l i c vo id f l u s h E s c r i t a ( ) {30 pw . f l u s h ( ) ;

}

p u b l i c vo id impr imeLinha ( S t r i n g s a i d a ) {pw . p r i n t l n ( s a i d a ) ;

35 }

p u b l i c vo id f e c h a S t r e a m ( ) {t r y {

i f ( o u t B u f f e r != n u l l )

40 o u t B u f f e r . c l o s e ( ) ;

}ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}

}

45 }

B.4 Classe BuscadorNumeroMagico

Listagem B.4: Implementacao da classe BuscadorNumeroMagico

package f o r e n s i c s . swap ;

import j a v a . i o . ∗ ;

p u b l i c c l a s s BuscadorNumeroMagico {5

p r i v a t e i n t [ ] numeroMagico ;

p u b l i c BuscadorNumeroMagico ( i n t [ ] nm) {numeroMagico = nm ;

10 }

p u b l i c vo id setNumeroMagico ( i n t [ ] nm) {numeroMagico = nm ;

}15

Page 111: Forense Computacional Tecnicas Ferramentas

Classe BuscadorNumeroMagico 110

p u b l i c i n t [ ] getNumeroMagico ( ) {re turn numeroMagico ;

}

20 p u b l i c long buscaNumeroMagico ( ArquivoSwap swap ) {/∗” o n d e e n c o n t r o u ” tem de s e r −1 no INICIO . O v a l o r z e r o nao deve

s e r usado

p o i s e l e pode s e r a t r i b u i d o a v a r i a v e l caso e x i s t a a p r i m e i r a

o c o r r e n c i a

do n .m. , i s t o eh , nm [ 0 ] c a s a r com a p r i m e i r a p o s i c a o do a r q u i v o

de swap

p o s i c a o ( z e r o ) ∗ /

25 long o n d e e n c o n t r o u = −1;

i n t b y t e L i d o ;

/∗ v a r i a v e l para contagem de c o r r e s p o n d e n c i a s e n t r e NM e a swap a

p a r t i r

∗do p r i m e i r o casamento ∗ /

i n t j =1 ;

30

whi le ( t rue ) {b y t e L i d o = swap . leSwap ( ) ;

i f ( b y t e L i d o == −1) {re turn (−1) ;

35 }e l s e i f ( b y t e L i d o == numeroMagico [ 0 ] ) { / / e n c o n t r o u p r i m e i r a

o c o r r e n c i a !

swap . m a r c a P o s i c a o ( numeroMagico . l e n g t h ) ;

o n d e e n c o n t r o u = swap . getSwap ( ) . l e n g t h ( ) − swap .

b y t e s D i s p o n i v e i s ( ) − 1 ;

40 /∗ l a c o para v e r i f i c a r se as prox imas o c o r r e n c i a s do numero

magico batem

com os prox imos b y t e s l i d o s da swap ∗ /

whi le ( j<numeroMagico . l e n g t h && numeroMagico [ j ] == swap .

leSwap ( ) ) {j ++;

}45 /∗ nao chegou a e n c o n t r a r o n .m. c o m p l e t o e s s e t e s t e i f e

∗ n e c e s s a r i o para nao p e r m i t i r que a soma de NM i n c o m p l e t o s

∗ i n c r e m e n t e a v a r i a v e l j a t e que e l a a t i n j a o comprimento

de

∗nm . l e n g t h , o que c a u s a r i a uma f a l s a o c o r r e n c i a de n .m.

∗ r e t o r n a d a logo aba i x o no ’ i f ’ ∗ /

50 i f ( j<numeroMagico . l e n g t h ) {j =1 ;

Page 112: Forense Computacional Tecnicas Ferramentas

Classe ExtratorURL 111

swap . r e t o r n a P o s i c a o ( ) ;

}

55 /∗ e n c o n t r o u n .m. c o m p l e t o ∗ /

e l s e i f ( j == numeroMagico . l e n g t h ) {re turn o n d e e n c o n t r o u ;

}} / / i f

60 } / / w h i l e

} / / metodo

}

B.5 Classe ExtratorURL

Listagem B.5: Implementacao da classe ExtratorURL

package f o r e n s i c s . swap ;

import j a v a . u t i l . r e g e x . ∗ ;

import j a v a . i o . ∗ ;

5 p u b l i c c l a s s Extra torURL {p r i v a t e S t r i n g r e g e x = n u l l ;

p u b l i c Extra torURL ( ) {r e g e x ="(http|https|ftp|news|file)://[!-~&&[^<\">]]*" ;

10 }

p u b l i c vo id ex t ra iURL ( ArquivoSwap swap , S t r i n g d e s t i n o ) {S t r i n g i n p u t = n u l l ;

long c o n t =0 ; /∗ c o n t a d o r de l i n h a s ∗ /

15 /∗ d e t e r m i n a n d o onde s e r a c r i a d o o a r q u i v o d e s t i n o ∗ /

A r q u i v o S a i d a o u t = new A r q u i v o S a i d a ( d e s t i n o +swap . getSwap ( ) .

s e p a r a t o r +"swap_urls.txt" ) ;

P a t t e r n p r eg e x = P a t t e r n . compi l e ( r e g e x ) ;

Matcher m = p re g ex . ma tche r ( "" ) ;

20

whi le ( t rue ) {i f ( ! swap . r e a d e r E s t a P r o n t o ( ) ) { /∗ nao ha mais l i n h a s para l e r ∗ /

swap . f e c h a R e a d e r ( ) ;

o u t . f l u s h E s c r i t a ( ) ;

25 o u t . f e c h a S t r e a m ( ) ;

System . o u t . p r i n t l n ( "\t"+ c o n t +" URL(s) extraida(s)." ) ;

Page 113: Forense Computacional Tecnicas Ferramentas

Classe ExtratorJPEG 112

break ;

}e l s e {

30 i n p u t = swap . l e L i n h a ( ) ;

m = pr eg ex . ma tche r ( i n p u t ) ;

i f (m. f i n d ( ) ) {o u t . impr imeLinha (m. group ( ) ) ; /∗ e s c r e v e a URL no a r q u i v o

d e s t i n o ∗ /

c o n t ++;

35 }} / / e l s e

} / / w h i l e

} / / metodo

} / / c l a s s e

B.6 Classe ExtratorJPEG

Listagem B.6: Implementacao da classe ExtratorJPEG

package f o r e n s i c s . swap ;

import j a v a . i o . ∗ ;

import j a v a . u t i l . Random ;

5

p u b l i c c l a s s E x t r a t o r J P E G {p r i v a t e i n t [ ] magico= {0xFF , 0 xD8 , 0 xFF , 0 xE0 } ;

p r i v a t e i n t [ ] t r a i l e r = {0xFF , 0 xD9 } ;

p r i v a t e i n t dumpSize = 1024∗256; / / 256KB

10

p u b l i c E x t r a t o r J P E G ( ) {}

p u b l i c vo id e x t r a i J P E G ( ArquivoSwap swap , S t r i n g d e s t i n o ) {15 c o p i a I m a g e n s ( swap , d e s t i n o , l o c a l i z a T o d a s O c o r r e n c i a s ( swap ) ) ;

}

p u b l i c long [ ] l o c a l i z a T o d a s O c o r r e n c i a s ( ArquivoSwap swap ) {BuscadorNumeroMagico b = new BuscadorNumeroMagico ( magico ) ;

20 i n t q u a n t =0 ; /∗ q u a n t i d a d e de NM e n c o n t r a d o s ∗ /

long [ ] pos=new long [ 5 0 0 0 ] ; /∗ guarda 5000 p o s i c o e s dos NM

e n c o n t r a d o s ∗ /

f o r ( i n t i =0 ; i<pos . l e n g t h ; i ++) /∗ l impando a r r a y de p o s i c o e s ∗ /

pos [ i ] = −1;

Page 114: Forense Computacional Tecnicas Ferramentas

Classe ExtratorJPEG 113

25 pos [ q u a n t ]= b . buscaNumeroMagico ( swap ) ;

whi le ( pos [ q u a n t ] != −1 ) {q u a n t ++;

pos [ q u a n t ]= b . buscaNumeroMagico ( swap ) ;

}30

re turn pos ;

}

p u b l i c vo id c o p i a I m a g e n s ( ArquivoSwap swap , S t r i n g d e s t i n o , long [ ] pos )

{35 t r y {

RandomAccessFi le r a f = new RandomAccessFi le ( swap . getSwap ( ) ,"r"

) ;

f o r ( i n t i =0 ; i<pos . l e n g t h ; i ++) {i f ( pos [ i ] == −1) { /∗ f i m ∗ /

40 System . o u t . p r i n t l n ( "\t"+ i +" imagem(ns) extraida(s)." ) ;

break ;

}e l s e {

A r q u i v o S a i d a o u t = new A r q u i v o S a i d a ( d e s t i n o +swap .

getSwap ( ) . s e p a r a t o r +"img_rec_"+pos [ i ]+".jpg" ) ;

45 r a f . s eek ( pos [ i ] ) ; /∗ p o s i c i o n a o c a b e c o t e de l e i t u r a no

comeco do NM∗ /

f o r ( i n t j =0 ; j<dumpSize ; j ++)

o u t . e sc reveNoArqu ivo ( r a f . r e a d ( ) ) ;

o u t . f e c h a S t r e a m ( ) ;

} / / e l s e

50 } / / f o r

} / / t r y

ca tch ( IOExcep t ion e ) {System . o u t . p r i n t l n ( "erro de I/O" ) ;}}

55 }

Page 115: Forense Computacional Tecnicas Ferramentas

Indice Remissivo

Area de swap, 76

Alternate Data Streams, 67

deteccao de, 67

tamanho maximo, 67

File carving, 80

Honeypot, 90

Live analysis, 26

autenticacao de evidencias, 32

captura de trafego de rede, 26

compilacao estatica de ferramentas, 27

estado de processos, 26

registro do Windows, 26

Pagefile, 77

Wipping

desvantagens do processo de, 42

Gutmann, 41

slack space, 64

timestamp, 90

Analise post-mortem, 25

Analise de evidencias, 33

espaco de swap, 78

roubo de identidade, 33

Antiforense, 40

Aquisicao de evidencias, 30

espaco de swap, 77

Arquivo

tamanho fısico, 91

tamanho logico, 91

Artefatos de intrusao

eliminacao de, 40

Ataques

pharming, 19

phishing, 19

scam, 19

Autenticacao de evidencias, 31

espaco de swap, 77

MD5, 90

Automacao criminal, 18

Cabecalho JPEG, 80

reconstrucao, 81

Cache de navegador, 51

Cadeia de custodia, 34

exemplo de, 35

CD-ROM

historico, 70

multisessao, 70

recuperacao de sessoes, 71

CD-RW

investigacao forense, 71

recuperacao de dados apagados em, 71

Ciencia Forense, 22

autenticidade de documentos, 23

impressoes digitais, 23

metodo de Bertillon, 22

Princıpio de Locard, 27

Comercio eletronico, 18

Cookies, 47

cabecalho, 48

Exemplos, 48

Crime digital, 23

Criminalıstica, 23, 90

Criptografia

114

Page 116: Forense Computacional Tecnicas Ferramentas

INDICE REMISSIVO 115

forca bruta, 44, 90

NTFS, 67

objetivos, 43

obstaculos a forense, 43

e-mail

privacidade, 39

Espaco de swap, 76

antiforense, 86

evidencias digitais, 76

no Linux, 77

no Windows, 77

operacoes de troca, 76

Espaco subaproveitado, 64

file slack, 60

partition slack, 60

volume slack, 60

Esteganografia

canal oculto, 90

definicao, 44

deteccao, 44

tecnicas, 44

Evidencia digital

custo de coleta, 28

definicao, 27

espaco de swap, 79

exemplos, 29

na swap, 76

validacao, 24

Evidencias fısicas, 23

Exclusao segura

destruicao de informacao, 41

destruicao fısica da mıdia, 42

recuperacao avancada, 41

transporte de mıdias, 42

usos, 42

Extracao de evidencias

espaco de swap, 77

FAT, 61

exclusao de arquivos, 62

recuperacao de dados, 62, 64

tabela FAT, 62

Ferramentas

Cache de navegador, 51

Historico de navegador, 52

Ferramentas de aquisicao

dd, 30

Ferramentas de perıcia, 24

Forense Computacional

definicao, 23

Forense na memoria principal, 27

GET (metodo), 55

Historico de navegador, 49

localizacao, 50

Windows, 50

Identificacao de evidencias, 30

Incidente de seguranca, 23

Internet Banking, 19

Internet Explorer, 50, 51

JPEG, 79

cabecalho, 80

decodificacao, 80

estrutura, 80

Legislacao, 19

MD5

espaco de swap, 78

Memoria principal

dump de, 75

busca por strings , 75

busca por URLs, 75

investigacao forense, 74

processos na, 76

Meta-arquivos, 91

Page 117: Forense Computacional Tecnicas Ferramentas

INDICE REMISSIVO 116

Metadados, 91

MFT, 65

atributos, 65

registros, 65

tamanho de registro, 65

Mozilla Firefox, 51, 53

estrutura do cache, 54

expiracao de item de cache, 54

NTFS, 64

criptografia, 67

MFT, 65

Padronizacao, 35

entidades, 36

modelo de, 36

SOPs, 37

Paginacao, 80

Particoes, 59

Perıcia forense computacional

procedimentos, 25

replica de dados, 25

Preservacao de evidencias, 31

Privacidade, 39

cookies, 49

violacao de, 39

Projetos de Lei, 20

Prototipo de analise na swap, 79

extracao de JPEG, 80

extracao de URLs, 83

funcionalidades, 79

implementacao, 82

Recuperacao de dados, 24, 58

Registro (Windows), 26

Resposta a incidentes, 91

entidades no Brasil, 37

time de resposta, 91

Resultados de perıcia

apresentacao de, 34

documentacao de, 34

reproducao de, 28

Senhas

ferramentas, 43

Sistema de arquivos, 59, 61, 64

snort, 26, 94

tcpdump, 26, 93

URL, 85

Vulnerabilidades

hardware, 17

software, 17

dados, 18