Forense Computacional Tecnicas Ferramentas
Transcript of 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
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
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.
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.
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.
v
“Ciencia sem consciencia e a ruına da alma”
(Cesar Lattes)
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
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
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
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
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
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
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
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
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.
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
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
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
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,
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
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
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.
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
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.
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-
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.
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.
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].
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,
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
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
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].
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.
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-
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.
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
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
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
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
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.
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
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.
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-
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.
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).
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.
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.
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.
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
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”,
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.
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:
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
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;
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
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
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.
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.
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
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
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).
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.
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”.
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).
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,
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.
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].
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,
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
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-
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.
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.
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.
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].
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.
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
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
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
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
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.
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.
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.
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
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);
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
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
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
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-
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
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
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.
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
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.
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.
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.
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.
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
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
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
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
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
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;
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
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
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
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
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
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 ( ) {
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 {
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
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 ;
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)." ) ;
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;
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 }
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
INDICE REMISSIVO 115
forca bruta, 44, 90
NTFS, 67
objetivos, 43
obstaculos a forense, 43
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
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