perícia forense em sistemas operacionais open source
TRANSCRIPT
CENTRO PAULA SOUZA
FATEC OURINHOS
ANÁLISE DE SISTEMAS E TECNOLOGIA DA INFORMAÇÃO
Luan Ambrosio
PERÍCIA FORENSE EM SISTEMAS OPERACIONAIS OPEN SOURCE
OURINHOS (SP)
2012
Luan Ambrosio
PERÍCIA FORENSE EM SISTEMAS OPERACIONAIS OPEN SOURCE
Trabalho de Conclusão de Curso apresentado a
Faculdade de Tecnologia de Ourinhos como
requisito parcial para obtenção do grau de
Tecnólogo em Segurança da Informação.
Orientador: Prof. Me. Fabio Eder Cardoso.
OURINHOS (SP)
2012
Luan Ambrosio
PERÍCIA FORENSE EM SISTEMAS OPERACIONAIS OPEN SOURCE
Trabalho de Graduação - TG apresentado a Faculdade de Tecnologia de Ourinhos
como requisito para a conclusão do Curso de Análise de Sistemas e Tecnologia da
Informação.
Data da aprovação: 15/12/2012
_______________________________________________ (assinatura) - ___________(nota)
Orientador: Prof. Me. Fabio Eder Cardoso – Fatec – Ourinhos
_______________________________________________ (assinatura) - ___________(nota)
Prof. Jean D. H. M. Andreazza – Fatec – Ourinhos
_______________________________________________ (assinatura) - ___________(nota)
Prof. Robson Leite – Fatec – Ourinhos
RESUMO
Esse trabalho tem como objetivo, demonstrar o estudo sobre a perícia forense
computacional em sistemas operacionais open source. A perícia forense é uma área
relativamente nova e que vem se tornando cada dia mais importante devido ao alto
crescimento de crimes eletrônicos durante os anos, sua principal função é investigar crimes
digitais em busca de evidências para serem utilizadas como provas.
A perícia forense basicamente é dividida em quatro procedimentos, as evidências
precisam ser identificadas, preservadas, analisadas e apresentadas. Para que uma evidência se
torne uma prova válida em um caso, regras e procedimentos precisam ser seguidos, pois um
único erro durante uma etapa poderá prejudicar todo o restante do processo. Quando uma
perícia é realizada, todas as fases necessitam ser documentadas, por exemplo, a cadeia de
custódia é um documento que contribui para a validação da prova pericial, nela é registrado o
responsável pela evidência no momento, onde ela se encontra, em caso de transferência da
evidência qual o seu destino, as ferramentas utilizadas em uma determinada análise, os
comandos utilizados, entre outras informações, tudo deve ser registrado mesmo que um erro
tenha sido cometido, a cadeia de custódia precisa ser mantida do inicio ao fim para que se
mantenha a integridade das evidências. A cadeia de custódia é só uma parte da regra, uma
perícia efetiva deve contar com peritos bem treinados, não só tecnicamente, mas
principalmente em boas práticas, por isso, é importante que o perito receba um treinamento de
programas das melhores práticas na perícia forense computacional.
A forense computacional pode ser aplicada a qualquer tipo de sistema operacional,
esse trabalho aborda especificamente a perícia forense em sistemas operacionais open source.
Sistemas operacionais que utilizam o núcleo Linux são grandes portadores de evidências, pois
são sistemas recheados de informações, o que facilita o trabalho dos peritos.
As evidências e ferramentas para perícia forense em sistemas operacionais open
source são diversas, pode-se encontrar evidências digitais investigando os sistemas de
arquivos com ferramentas e comandos nativos do Linux, verificando o MACtime dos arquivos,
usando kit de ferramentas de processamento digital de provas, como, ferramentas para cópia
bitstream, geração de hashes, recuperação de dados apagados, recuperação de dados em
dispositivos voláteis, análise de arquivos de log, análise do tráfego da rede e outras
informações referentes ao sistema que está sendo investigado.
Palavras chave: Perícia Forense, Evidências, Provas, Crimes.
ABSTRACT
This work aims to demonstrate the studies about computer forensics in open source
operating systems. The forensics is a relatively new area and it is becoming increasingly
important because of the high growth of electronic crimes over the years, its main function is
to investigate digital crimes for evidence to be used as proofs.
The forensics is basically divided into four procedures; the evidence must be
identified, preserved, analyzed and presented. For evidence becomes a valid proof in a case,
rules and procedures need to be followed, because a single error during a step could harm the
rest of the process. When a skill is performed, all phases need to be documented, for example,
the chain of custody is a document that contributes for the validation of expert evidence, in it
the responsible is recorded for the evidence at the time, where it is, in case of transference of
the evidence which your destination, the tools used in a given analysis, the commands used,
among other information, everything should be registered even if a mistake has been
committed, the chain of custody must be maintained from beginning to end so that if keep the
integrity of the evidence. The chain of custody is only a part of the rule, an effective skill
must have well-trained experts, not only technically, but mainly in practice, so it is important
that the expert receives a best practices training program in forensic computing.
A computer forensics can be applied to any type of operating system, this work
specifically approach the forensics on open source operating systems. Operating systems that
use the Linux kernel are big holders of evidence; they are replete with information systems,
which facilitate the work of experts.
The evidence and forensic tools to open source operating systems are diverse, you
can find digital evidence investigating file systems with tools and native Linux commands,
checking the MACtime files using toolkit processing digital evidence, as tools for bitstream
copy, hashes generating, deleted data recovery, data recovery in volatile devices, analysis of
log files, network traffic analysis and other information about the system being investigated.
Key Words: Forensics, Evidence, Proofs, Crimes.
LISTA DE ILUSTRAÇÕES
Figura 1: Disco rígido apreendido como evidência .................................................................. 15
Figura 2: Cadeia de custódia – preservação começa antes de os dados serem coletados e
termina na disposição final. ...................................................................................................... 18
Figura 3: Exemplo do documento de uma cadeia de custódia. ................................................ 19
Figura 4: Bloqueador físico de gravação entre as unidades de disco rígido............................. 25
Figura 5: Disco rígido sendo copiado sem proteção................................................................. 25
Figura 6: Um valor de hash é calculado e armazenado para cada dado copiado.. ................... 26
Figura 7: Representação de um diretório e o seu inode associado.. ......................................... 29
Figura 8: Visão geral dos sistemas de arquivos Linux.............................................................. 29
Figura 9: Conteúdo do inode do diretório raiz.. ....................................................................... 30
Figura 10: inode do arquivo /etc/passwd.. ................................................................................ 31
Figura 11: Utilizando o Sleuth Kit e o Autopsy Forensic Browser.. ........................................ 40
Figura 12: Visão geral do programa PTK.. ............................................................................... 41
Figura 13: File Slack Space.. .................................................................................................... 42
Figura 14: Processo de recuperação de arquivos apagados usando o SMART.. ....................... 45
Figura 15: Montando a partição do sistema a ser periciado... .................................................. 56
Figura 16: Criando imagem do disco e arquivos de hash com a ferramenta dcfldd................. 57
Figura 17: Imagem do disco e arquivos de hash gerado.. ........................................................ 57
Figura 18: Formulário de cadeia de custódia preenchido.. ....................................................... 58
Figura 19: Montando a imagem em uma interface de loopback.. ............................................ 58
Figura 20: Exibição da imagem montada em uma interface de loopback.. .............................. 59
Figura 21: Procurando, copiando e gerando hash dos arquivos do tipo imagem.. ................... 59
Figura 22: Exibindo as imagens copiadas.. .............................................................................. 60
Figura 23: Hash e pasta de origem das imagens copiadas.. ..................................................... 60
Figura 24: Procurando, copiando e gerando hash dos arquivos do tipo vídeo.. ....................... 61
Figura 25: Exibindo os vídeos copiados.. ................................................................................. 61
Figura 26: Hash e pasta de origem dos vídeos copiados.. ........................................................ 62
Figura 27: Recuperação de dados utilizando o foremost.. ........................................................ 62
Figura 28: Arquivos jpg recuperados usando o foremost.. ....................................................... 63
Figura 29: Arquivos flv recuperados usando o foremost.. ........................................................ 63
Figura 30: Gerando o MAC Time das evidências.. ................................................................... 64
Figura 31: Arquivo contendo o MAC Time das evidências.. .................................................... 64
Figura 32: Verificando o conteúdo do arquivo xferlog.. .......................................................... 65
Figura 33: Verificando a integridade da imagem do disco.. ..................................................... 65
LISTA DE SIGLAS
ACE Departamento de Computação da Universidade Federal de São Carlos
BIOS Basic Input Output System
CCE Computer Certified Examiner
CD-ROM Compact Disk Read Only Memory
CFCE Computer Forensics Certified Examiner
CPU Central Processing Unit
ENCE EnCase Certified Examiner
EXT2 Extended File System 2
EXT3 Extended File System 3
GCFA GIAC Certified Forensic Analyst
GPS Global Positioning System
IOCE International Organization of Computer Evidence
MD5 Message Digest 5
NTFS New Technology File System
POST Power On Self Test
RAM Random Access Memory
SHA1 Secure Hash Algorithm 1
SWGDE Standard Working Group on Digital Evidence
TCT The Coroner’s Toolkit
TSK The Sleuth Kit
UFS Unix File System
USB Universal Serial Bus
SUMÁRIO
1. INTRODUÇÃO ........................................................................................................ 11
Objetivos. ................................................................................................................... 11
Justificativa. ................................................................................................................ 12
2. CONCEITO DE PERÍCIA FORENSE COMPUTACIONAL ............................ 13
3. PROCEDIMENTOS ................................................................................................ 14
3.1 Identificando as evidências. ....................................................................................... 14
3.2 Preservando as evidências.. ........................................................................................ 14
3.3 Analisando as evidências............................................................................................ 16
3.4 Apresentando a análise.. ............................................................................................. 17
3.5 Cadeia de custódia.. .................................................................................................... 18
4. MELHORES PRÁTICAS NA FORENSE COMPUTACIONAL ....................... 20
4.1 Quem estabelece as melhores práticas. ...................................................................... 20
4.2 Quem deve seguir as melhores práticas.. ................................................................... 20
4.3 Resumo das melhores práticas.. ................................................................................. 21
4.3.1 Dados voláteis e forenses ao vivo.. ............................................................................ 21
4.3.2 Melhores práticas na preservação de provas.. ............................................................ 22
4.3.3 Melhores práticas na aquisição de provas.. ................................................................ 23
4.4 O que acontece em muitos casos ................................................................................ 27
5. EVIDÊNCIAS DIGITAIS ....................................................................................... 28
5.1 Sistemas de arquivos .................................................................................................. 28
5.1.1 MACtimes ................................................................................................................... 32
5.2 Ferramentas de processamento digital de provas ....................................................... 33
5.2.1 The Coroner’s Toolkit e Sleuth Kit............................................................................. 39
5.3 Recuperação de dados ................................................................................................ 41
5.3.1 Ferramentas baseadas em Linux ................................................................................. 42
5.3.2 Data Carving .............................................................................................................. 47
5.3.3 Dump de memória ...................................................................................................... 49
5.4 Arquivos de log .......................................................................................................... 50
5.5 Tráfego de rede ........................................................................................................... 52
5.5.1 Captura e análise do tráfego de rede .......................................................................... 53
6. ESTUDO DE CASO ................................................................................................. 56
7. METODOLOGIA .................................................................................................... 67
8. RESULTADOS ......................................................................................................... 68
9. CONCLUSÕES ........................................................................................................ 69
10. REFERÊNCIAS ....................................................................................................... 70
11
1. INTRODUÇÃO
Problema da pesquisa
A popularização e a revolução computacional como eram de se esperar atingiram
também o mundo dos crimes. As tecnologias dos computadores estão envolvidas cada vez
mais em atividades ilícitas, como invasão de sistemas, disseminação de pornografia infantil,
fraudes, roubos entre outros. Como a perícia forense computacional pode colaborar na
solução de crimes virtuais?
Hipótese
A perícia forense computacional possui procedimentos, programa de melhores
práticas, alguns sistemas operacionais, diversas ferramentas e hardwares específicos que são
capazes de adquirir e analisar dados, cujo objetivo é o de transformar evidências em provas
para a solução de um crime virtual.
Objetivos
O objetivo desse trabalho é apresentar um conteúdo que permita o entendimento
sobre a perícia forense computacional, a fim de compreender como age a perícia
computacional em busca de provas para se chegar à solução de um crime virtual. Pretende-se
demonstrar de forma clara e objetiva os fundamentos teóricos, os procedimentos padrões, as
melhores práticas aplicadas na forense computacional, às evidências digitais mais comuns
encontradas nos sistemas operacionais que utilizam o núcleo do Linux, as ferramentas para
preservação, aquisição, análise e recuperação de evidências que podem ser utilizadas como
provas.
O objetivo específico desse trabalho é descrever como se deve lidar com evidências
encontradas em sistemas operacionais que utilizam o núcleo do Linux, para um maior
entendimento será realizado um estudo de caso que visa identificar, preservar e analisar as
principais evidências de um sistema que estaria envolvido com algum tipo de delito cometido
virtualmente, para a realização será utilizado técnicas e ferramentas específicas para a perícia
forense computacional, aplicadas em um ambiente de teste.
12
Justificativa
Nos dias atuais praticamente tudo em um mundo informatizado funciona a base de
softwares e hardwares, desde celulares até simples eletrodomésticos que possuem um
programa lógico para mostrar as horas.
Com o crescimento desenfreado da tecnologia, veio os criminosos que aproveitam de
todos os tipos de tecnologia para cometer delitos a todas e quaisquer pessoas e empresas. Por
esse motivo, surgiu à área de perícia forense computacional, que apesar de ser um campo de
pesquisa relativamente novo e estar em expansão, ainda é pouco divulgada e é carente de
profissionais e pesquisas na área, principalmente no Brasil.
A perícia forense é um campo muito amplo, são diversas ferramentas e técnicas que
podem ser utilizadas, porém, muitos dos procedimentos e ferramentas são difíceis de serem
aplicados na prática por falta de material explicativo, pois na perícia forense, cada caso requer
uma forma de se analisar e obter evidências.
A perícia forense torna-se a cada dia mais importante na vida das empresas, pessoas
e autoridades, isso devido ao enorme crescimento de crimes cibernéticos que afetam a vida
das pessoas e geram prejuízos incalculáveis para as empresas.
No Brasil conta-se ainda com poucos profissionais e pesquisadores na área, o que
acaba dificultando o estudo e conhecimento para muitas pessoas, já que os materiais, como
livros e artigos em língua portuguesa são poucos, mas a tendência é que a perícia forense se
torne cada vez mais popular, com mais pesquisas e profissionais na área para atuarem no
combate a crimes cibernéticos.
13
2. CONCEITO DE PERÍCIA FORENSE COMPUTACIONAL
A perícia forense também chamada de computação forense, forense computacional,
criminalística computacional, forense digital, investigação eletrônica e perícia eletrônica é a
ciência que estuda a aquisição, preservação, recuperação e análise de dados armazenados em
mídias eletrônicas, com a utilização de conhecimentos computacionais, juntamente com
técnicas de investigações, a fim de se obter evidências (FREITAS, 2006).
O objetivo da perícia forense é a busca e coleta de evidências relacionadas com o
caso investigado, que permitam uma formulação de conclusões acerca da infração. O objetivo
final da perícia forense é composta por duas abordagens. A primeira é a análise em busca de
informações que tenham valores coerentes de acordo com as leis vigentes, e serem utilizadas
no processo criminal. Na segunda análise o exame é realizado dentro de uma corporação, com
o objetivo de determinar a causa do incidente e assegurar que não ocorra novamente, sem que
haja preocupações com as formalidades legais (ESPINDULA, 2009).
Mesmo que não haja intenção de um processo criminal ser instituído, toda
investigação deve considerar por padrão a utilização de protocolos e metodologias que
garantam uma possível aceitação na corte de justiça (KRUSE; HEISER, 2002).
O problema de resolver um mistério computacional nem sempre é fácil, existe a
necessidade de não se observar o sistema como um usuário comum e sim como um detetive
que examina a cena de um crime. Nesse quesito os programadores levam alguma vantagem
neste assunto, pois muita das habilidades necessárias para se procurar um erro em um código
fonte, são também necessárias para uma análise forense, tais como: raciocínio lógico,
entendimento das relações de causa e efeito em sistemas computacionais e talvez a mais
importante, ter uma mente aberta. (FARMER; VENEMA, 2007).
Assim como em uma investigação criminal normal, existem procedimentos segundo
Freitas (2006), que devem ser seguidos pela perícia para que as evidências não sejam
comprometidas, substituídas ou perdidas, caso isso não ocorra, os juízes poderão considerar
as evidências inadmissíveis e os advogados de defesa poderão contestar a legitimidade da
evidência, podendo o processo ser prejudicado.
14
3. PROCEDIMENTOS
Basicamente a forense computacional em sua essência é composta por quatro
processos básicos, as evidências precisam ser identificadas, preservadas, analisadas e
apresentadas. Em uma investigação forense, as tarefas a serem desenvolvidas podem percorrer
todos os elementos básicos acima, ou, somente alguns deles (FREITAS, 2006).
3.1 Identificando as evidências
As evidências em um crime virtual podem ser diversas, tudo depende do tipo de
delito cometido, em um caso de disseminação de pornografia infantil, o perito pode realizar
buscas por imagens armazenadas no computador do suspeito, arquivos temporários do
navegador de Internet e o histórico de sites visitados, já em uma ocorrência de acesso não
autorizado, os arquivos de log podem ser uma evidência muito valiosa. (FREITAS, 2006).
A identificação das provas vai depender da competência do perito e seu
conhecimento sobre o tipo de crime envolvido, juntamente com sua habilidade em programas
de computadores e sistemas operacionais. Segundo Freitas (2006), para serem encontradas
evidências concretas deve-se:
Realizar uma busca por todos os dispositivos eletrônicos que possam conter possíveis
evidências armazenadas;
Buscar por qualquer tipo de informação que possa ser relevante para o caso: telefones,
nomes, documentos, anotações, etc.;
Diferenciar as evidências que possam ser úteis e não úteis para o caso, através de uma
análise ao vivo.
3.2 Preservando as evidências
De acordo com Freitas (2006), a regra essencial durante uma investigação é a de que
o perito em hipótese alguma altere ou destrua as provas. Neste caso, para que as evidências
não tenham sua veracidade contestada é importante que as provas sejam preservadas.
Algumas regras importantes precisam ser seguidas para que as provas não sejam
comprometidas, substituídas ou perdidas durante o transporte ou análise no laboratório. As
seguintes etapas devem ser seguidas:
15
Para as evidências serem analisadas de forma segura, deve-se criar uma imagem do sistema
que será periciado, comumente conhecido como duplicação pericial;
Em caso de necessidade, aplicar a técnica de análise ao vivo, realizando a gravação das
evidências em mídias que permitam o bloqueio contra regravação;
Se necessário realizar uma análise ao vivo, gravar as evidências em mídias que permitam o
bloqueio contra regravação;
As evidências deverão ser colocadas em sacos e etiquetadas, após isso o saco deve ser
lacrado;
A etiqueta deverá conter informações importantes para que não haja nenhum tipo de
fraude, como o número para identificação das evidências, o número do caso, a data e o
horário em que a evidência foi coletada e o nome da pessoa que está levando para custódia;
Os componentes e cabos do computador devem ser etiquetados, assim o perito conseguirá
realizar a montagem de forma correta quando for realizar a perícia;
Para evitar possíveis danos ou dados corrompidos, o disco rígido deve ser colocado em
saco antiestática;
Prevenir-se de possíveis fatores que possam comprometer as provas durante o transporte,
como umidade, líquidos, sujeira, eletricidade e etc.;
Após ter sido transportada, as evidências devem ser colocadas em um local seguro que não
permita ninguém alterar as provas, para posteriormente serem analisadas;
Ser for necessário realizar alguma mudança durante essa etapa, é preciso que seja
documentado e justificado através da cadeia de custódia.
Figura 1: Disco rígido apreendido como evidência
Fonte: World of Forensic Science (2006)
16
3.3 Analisando as evidências
Na etapa de análise, Daniel Larry (2012) e Daniel Lars (2012), descrevem que é o
processo onde se deve localizar e recolher elementos que sirvam de provas a partir de
evidências que foram coletadas durante um caso. Em um caso envolvendo infidelidade
conjugal, a evidência que deve ser localizada pode incluir registros de e-mails e bate-papo
entre o cônjuge e o amante. Já em um caso de fraude, registros financeiros seria o alvo da
análise, bem como a eventual eliminação de registros envolvendo transações financeiras. Em
outro caso como o de pedofilia, o alvo da análise seria a localização de vídeos e imagens.
Cada caso é único, por esse motivo as circunstâncias podem variar amplamente, não só na
evidência pretendida, mas também na abordagem para realizar a análise. Uma parte da análise
é constituída por habilidades individuais, ferramentas utilizadas, bem como a formação do
perito forense, essa parte é a que tem mais impacto no resultado de um exame. Considerando
que as provas eletrônicas podem aparecer em muitas formas e virem de tantos lugares
diferentes e dispositivos, que a formação e a experiência do perito começam a ter um impacto
cada vez maior no sucesso do exame.
A fase de análise é também onde a disparidade passa a se tornar um fator importante
entre as competências e abordagens de um perito de informática e os de um perito forense
computacional. Enquanto um perito de computador pode entender sobre muitos aspectos do
uso do computador e a manipulação de dados, um especialista forense devidamente treinado
vai ser muito competente em recuperação de dados, assim como nas técnicas de análises
adequadas (DANIEL, Larry; DANIEL, Lars, 2012).
Análise de evidências digitais é mais do que somente determinar se algo como um
arquivo existe em um disco rígido, ela também é composta em descobrir o porquê do arquivo
estar no disco rígido e, se possível, quem as colocou lá (DANIEL, Larry; DANIEL, Lars,
2012).
Quando um perito vai analisar um sistema comprometido para Burdach (2010), antes
de realizar qualquer atividade no sistema comprometido é obrigatório criar uma cópia em
papel todo o procedimento de coleta de dados. Este procedimento ajuda a evitar erros durante
a análise de um incidente. Devem-se fazer anotações complementares após cada etapa final,
mesmo que algo tenha dado errado. A documentação é muito importante se a pretensão for de
levar o caso para um tribunal.
17
O próximo passo é registrar os resultados dos comandos executados durante a coleta
de informações. A partir daí o perito liga um host1 de destino para a mesma rede local em que
estará enviando informações a partir do host comprometido. Nessa etapa o perito não está
autorizado a escrever quaisquer resultados no sistema comprometido. Gravando dados
localmente na máquina comprometida o perito pode excluir quaisquer sinais de invasão. Para
o impacto ser menor, é necessário enviar todos os dados digitais a um computador remoto ou
um host de destino, esta é uma das regras mais importantes na análise forense que nem
sempre são fáceis de cumprir (BURDACH, 2010).
Após a análise das evidências estarem concluídas, o perito poderá responder algumas
perguntas segundo (FREITAS, 2006):
Qual era o sistema operacional do computador suspeito?
Qual usuário estava ativo na hora que ocorreu o crime?
Que tipos de arquivos o criminoso utilizou?
Quais as portas de comunicação estavam abertas?
Quais os últimos usuários que efetuaram logon no sistema?
Quantos e quem eram os usuários do sistema operacional, eles pertenciam a algum
grupo?
Que tipos de arquivos foram deletados?
3.4 Apresentando a análise
A apresentação dos resultados do perito para Daniel Larry (2012) e Daniel Lars
(2012) é o passo final no processo de análise forense de provas digitais. Esta etapa inclui não
apenas os resultados escritos ou relatórios, mas também a apresentação dos depoimentos dos
peritos e testemunhas da corte. Não existem regras severas, rápidas ou padrões para relatar o
resultado de um exame, cada órgão ou entidade privada pode ter suas próprias diretrizes
específicas para o relatório, dessa forma, relatórios de exame forense devem ser escritos de
forma clara, precisa e objetiva, explicando o que foi examinado, as ferramentas utilizadas
durante a investigação, os processos utilizados e os resultados da perícia. O relatório deverá
1 Por definição, host é qualquer computador ou máquina conectado a uma rede, que conta com número
de IP e nome definidos, podendo oferecer informações, recursos, serviços e aplicações aos usuários ou
outros nós na rede. Disponível em: http://www.techtudo.com.br/artigos/noticia/2012/02/o-que-e-um-
host.html
18
incluir também os métodos de coletas utilizados, incluindo medidas específicas tomadas para
proteger e preservar a prova original e como a verificação da prova foi realizada. De forma
geral um relatório forense digital deve incluir os seguintes itens:
Formação e experiência do perito;
Ferramentas utilizadas durante a análise;
Os métodos utilizados para verificar os dados;
Processo utilizado para recuperar e extrair os dados;
Os dados reais recuperados para apoiar na decisão final do processo.
3.5 Cadeia de custódia
A cadeia de custódia é um documento que tem como função provar onde as
evidências encontravam-se em certo momento e quem era o responsável por tais durante o
processo de perícia. Ao serem documentadas essas informações, é possível ter certeza que a
integridade das evidências não foram comprometidas (FREITAS, 2006).
Um aspecto fundamental da preservação de dados digitais na descoberta de provas é
iniciar e manter a cadeia de custódia e controle de dados eletrônicos. Um processo de custódia
bem documentado permite que os dados a serem submetidos sirvam como provas em um
tribunal, em um processo judicial ou administrativo (HOLLEY et al., 2011).
Uma cadeia de custódia bem documentada será necessária no processo para
demonstrar que os dados coletados e preservados não mudaram e que as impressões dos dados
são cópias precisas do original (HOLLEY et al., 2011).
Figura 2: Cadeia de custódia – preservação começa antes de os dados serem coletados e termina na
disposição final.
Fonte: Larry Daniel e Lars Daniel (2012, p. 27)
19
Figura 3: Exemplo do documento de uma cadeia de custódia.
Fonte: FREITAS (2006, p. 6)
20
4. MELHORES PRÁTICAS NA FORENSE COMPUTACIONAL
Para uma perícia forense ser eficiente, é necessário que se tenha um programa de
melhores práticas, para que não ocorra algum procedimento errado que possa prejudicar todo
o restante do processo. (DANIEL, Larry; DANIEL, Lars, 2012).
4.1 Quem estabelece as melhores práticas
O Instituto Nacional de Justiça e a Associação de Chefes de Polícia definem padrões
mínimos para o recolhimento e preservação de provas digitais. Essas diretrizes são
desenvolvidas com a participação da aplicação da lei, governo, acadêmicos e profissionais da
indústria. As melhores práticas são propagadas para a indústria através de publicações e
programas de treinamentos forenses digitais. Existem algumas certificações para os
profissionais que atuam na área de perícia forense como o EnCase Certified Examiner
(EnCE), Computer Certified Examiner (CCE), Access Certified Examiner (ACE), Computer
Forensics Certified Examiner (CFCE) e o GIAC Certified Forensic Analyst (GCFA) com o
intuito de reforçar essas práticas, garantindo que a pessoa a ser certificada tenha uma
compreensão dos procedimentos adequados para receber corretamente e preservar provas
eletrônicas (DANIEL, Larry; DANIEL, Lars, 2012).
4.2 Quem deve seguir as melhores práticas
Toda pessoa que se propõe a trabalhar com um computador ou um perito forense
digital deve sempre seguir as melhores práticas estabelecidas na área atuante. Isso é de vital
importância em um campo onde os resultados das ações do perito devem ser usados para
fornecer resultados de prova com base na identificação, preservação e análise de provas. Caso
não siga as melhores práticas o trabalho do perito forense fica aberto ao desafio e a
possibilidade de as evidências coletadas não servirem como provas. O resultado de não aderir
nem o mínimo das melhores práticas, é a dúvida sobre a competência e qualificações do
perito, que por esse motivo, pode prejudicar a totalidade do trabalho. Também é altamente
provável que um perito forense será interrogado sobre as melhores práticas quando for depor
em um tribunal (DANIEL, Larry; DANIEL, Lars, 2012).
21
4.3 Resumo das melhores práticas
As melhores práticas são aplicáveis à coleta e preservação de provas. Estas são as
duas partes críticas para garantir que as provas serão aceitas em um tribunal como sendo
autênticas e uma representação precisa da evidência original. Modificação de provas,
intencionalmente ou acidentalmente, pode ter um efeito devastador sobre todo o processo.
(DANIEL, Larry; DANIEL, Lars, 2012).
Analisando a preservação das provas como a parte essencial da coleta e aquisição de
evidências digitais, pode-se notar que a necessidade de proteger e preservar as provas começa
antes mesmo de os dados serem coletados, copiados ou analisados, e só termina na disposição
final das provas. Seja essa disposição para devolver os itens coletados ao proprietário, a
apreensão definitiva dos itens ou a destruição das provas através de uma ordem de destruição,
a preservação das provas devem permanecer. Na área de forense computacional, a
preservação é a proteção geral das provas, enquanto a aquisição é o ato de fazer cópias
forenses de evidências digitais a partir de discos rígidos, outras mídias físicas ou de
dispositivos voláteis (DANIEL, Larry; DANIEL, Lars, 2012).
4.3.1 Dados voláteis e forenses ao vivo
Algumas evidências só estão presentes no momento em que um computador ou
servidor estão em funcionamento e serão perdidas caso o equipamento seja desligado. Provas
que estão presentes somente quando o computador está em execução são chamadas de
evidências voláteis e devem ser coletadas ao vivo usando métodos forenses. Isto inclui as
evidências que estão na memória RAM (Random Access Memory), tal como um programa que
só está presente na memória RAM do computador (DANIEL, Larry; DANIEL, Lars, 2012).
Muitos tipos de malware, tais como programas de cavalo de tróia, vírus e worms são
projetados para ficarem hospedados na memória RAM, e só aparecem quando o computador
está em execução e desaparecem quando o computador é desligado, em muitos casos, sem
deixar nenhum tipo de vestígio. Há também muitos tipos de evidências voláteis que só estão
disponíveis quando o computador está em execução, incluindo determinados arquivos
temporários, arquivos de log, arquivos de cache e senhas. A memória RAM é apagada quando
um computador é desligado e os dados presentes são perdidos. Este pode ser um passo crítico,
se houver suspeita de que haja algum tipo de criptografia de dados que impeça o disco rígido
ou partes dele de serem visualizados. Em muitos casos, a única maneira de recuperar a senha
22
necessária para remover a criptografia de um disco rígido é coletar a “memória ao vivo” antes
que o computador seja desligado. Além disso, se o computador está sendo executado, a parte
criptografada do armazenamento de dados seria acessível, mas só até o computador ser
desligado, tornando-se essencial que o disco rígido do computador seja copiado enquanto ele
estiver ligado. Existem ferramentas disponíveis para fazer cópias da memória RAM e discos
rígidos em computadores ou servidores que estejam em execução (DANIEL, Larry; DANIEL,
Lars, 2012).
4.3.2 Melhores práticas na preservação de provas
Quando uma prova é coletada segundo Daniel Larry (2012) e Daniel Lars (2012), ela
deve ser preservada em um estado que possa ser usada como defesa em um tribunal.
Preservação é o processo de criação de uma cadeia de custódia, que começa antes da coleta e
termina quando a evidência é liberada para o proprietário ou destruída. Os passos de
preservação incluem:
Identificação: identificar o tipo e a localização de uma prova digital pode ser um desafio. O
perito precisa de um mandado de intimação ou de busca, que é fundamental para coleta de
provas digitais em qualquer local, como, discos rígidos de computadores, telefones
celulares, câmeras digitais, aparelhos de GPS, dispositivos de armazenamento portáteis,
como discos rígidos USB e até mesmo iPods. Este é o primeiro passo que precede as
etapas. Não é aceitável simplesmente coletar tudo quando você chega a um local suspeito,
o que você está indo recolher deve ser previamente identificado, e depois ser solicitado um
mandado de busca, senão, as evidências não servirão como provas durante o processo no
tribunal. Caso ocorra a coleta de itens não identificados previamente, as provas poderão ser
contestadas em uma ação legal. A linguagem durante a identificação deve ser específica e
possuir terminologia correta, usando termos como “CPU” em vez de computador, significa
que você pode recolher apenas a unidade central de processamento de um computador e
não o próprio computador. Utilizando um termo em que você especifica a coleta do disco
rígido, será permitida a remoção e coleta do disco rígido, mas não o computador inteiro.
Somente com o disco rígido você seria capaz de analisar as provas, porém, não seria capaz
de identificar datas relativas aos arquivos por não possuir o computador por completo, isso
acaba se tornando um problema para a investigação;
23
Coleta: A etapa de coleta é crucial, pois este é o primeiro contato real com a evidência.
Não seguir corretamente a etapa de coleta pode levar a destruição ou alteração das provas.
Se alguém tentar coletar dados de um dispositivo e não conhece os métodos adequados,
como operar o computador antes de desliga-lo ou desligar um servidor de negócios críticos
inadequadamente, pode levar a perda de provas críticas que poderiam ser coletadas antes
do encerramento. Coleta pode incluir um ou todos os itens seguintes:
Fotografar a prova no lugar antes da coleta ou duplicação;
Completar o inventário de cada item, incluindo a identificação das informações,
tais como números de série, fabricante e descrições;
Marcar cada item para rastreamento e identificação;
Proteger cada item para evitar operação ilegal;
Ensacar cada item em um recipiente seguro que deve ser selada com fita a prova
de violação, para assegurar que a evidência não seja modificada ou danificada
durante o transporte;
Colocar itens coletados em áreas de armazenamento seguro;
Procedimentos adequados de check-in e check-out, com uma cadeia de custódia
mantida para qualquer acesso ou transporte das provas;
Disposição final das provas, registradas em uma cadeia de custódia para qualquer
evidência que for liberada ou destruída.
4.3.3 Melhores práticas na aquisição de provas
A aquisição de provas segundo Daniel Larry (2012) e Daniel Lars (2012), é a parte
do processo judicial, durante o qual as informações originais são copiadas ou duplicadas. É
fundamental seguir os procedimentos adequados para garantir a integridade das provas. A
parte de aquisição pode ainda ser dividida em duas etapas: a duplicação e a verificação.
Duplicação: Este é um passo que é facilmente executado incorretamente, especialmente se
for feita por alguém que não é treinado corretamente para realizar a duplicação de provas
eletrônicas. O único método aceito para duplicação de provas eletrônicas é que a prova seja
protegida contra qualquer possibilidade de alteração durante o processo de duplicação. Isto
24
requer a utilização de ferramentas e técnicas forenses. Usando métodos não forenses pode-
se levar a modificação da evidência original ou cópias incompletas.
Método forense: O método adequado para duplicação de evidências em um disco
rígido de computador ou outro dispositivo de armazenamento de mídia requer o
uso do bloqueio de gravação do dispositivo de armazenamento original. O
bloqueio contra gravação pode ser conseguido pelo uso de um dispositivo de
hardware físico que é ligado entre o original e a cópia do disco rígido, conforme
figura 4, ou usando uma mídia especial de inicialização que pode iniciar um
computador de forma forense. A melhor opção para fazer uma cópia forense de
um disco rígido é remover o mesmo do computador, conecta-lo a um bloqueador
físico contra gravação, e em seguida, utilizar uma estação de trabalho forense e
softwares forenses para realizar a cópia. No entanto, em alguns casos, a remoção
da unidade de disco rígido não é fácil, especialmente em computadores portáteis.
Quando este for o caso, o método mais adequado é realizar a cópia do disco
usando um software que permita o bloqueio contra gravação. Quando um
computador é ligado pela primeira vez, ele passa por um conjunto de etapas,
começando com um Power On Self Test (POST), seguido pela carga do Basic
Input Output System (BIOS). O BIOS é um software que fica armazenado na placa
principal do computador, ele diz ao computador quais os tipos de discos rígidos
estão presentes, inicializa o teclado e outras portas de entrada e saída, tais como as
portas USB, inicializa a placa de vídeo do computador e, basicamente, prepara os
hardwares do computador para operar antes do sistema operacional ser carregado.
Podem ser efetuadas configurações no BIOS para dizer ao computador onde
procurar o sistema operacional para ser iniciado, como em um disco rígido, a
partir de um disquete, um CD-ROM ou um dispositivo USB. Durante o processo
normal o computador irá carregar o sistema operacional instalado no disco rígido,
mudando as configurações do BIOS é possível impedir o computador de iniciar o
sistema operacional pelo disco rígido e carregar um sistema operacional a partir
de um CD-ROM, disquete ou pelo dispositivo USB. Ao se preparar para realizar
uma cópia do disco rígido, o perito forense carrega um sistema operacional
forense especial a partir de uma mídia de inicialização. Mídias de inicialização
especiais são mídias que contém um sistema operacional que é capaz de inicializar
um computador, mas não permite gravação de dados no disco rígido original,
esses sistemas operacionais forenses são modificados para efetivamente desativar
25
a capacidade de um computador realizar modificações nos arquivos originais
gravados no disco rígido. Uma vez que o computador é iniciado, ou com um
hardware de bloqueio de gravação ou por meio de um sistema operacional
forense, o examinador consegue fazer uma cópia exata da superfície de gravação
do disco rígido inteiro;
Figura 4: Bloqueador físico de gravação entre as unidades de disco rígido.
Fonte: Larry Daniel e Lars Daniel (2012, p. 29)
Método não forense: As pessoas não treinadas pata atuar com métodos forenses
adequados para a duplicação de provas digitais podem iniciar um computador de
forma errada e então realizar cópia de dados no disco rígido. Quando o
computador é iniciado de forma normal, o sistema operacional pode escrever no
disco rígido e acabar realizando alterações nos arquivos de datas, arquivos de log
e outros tipos de arquivos de forma definitiva, ele acaba modificando e destruindo
provas críticas. A figura 5 mostra dois discos rígidos conectados sem qualquer
proteção no disco rígido que contém as evidências originais, esse processo coloca
as provas contidas ali em risco.
Figura 5: Disco rígido sendo copiado sem proteção.
Fonte: Larry Daniel e Lars Daniel (2012, p. 31)
26
Métodos não forenses incluem geralmente, cópias simples de arquivos de um
disco rígido para outro dispositivo de armazenamento ou utilizando um programa
de backup como o Norton Ghost. O Norton Ghost tem a capacidade de fazer uma
cópia completa do disco rígido, porém, geralmente não é aceita como um método
forense, porque cópias fantasmas dificultam a verificação e o uso de valores de
hash. A razão para isso é que o Norton Ghost não possui um método para criação
de um valor de hash da evidência que está sendo copiada durante o processo de
cópia. Além disso, uma cópia não utilizando os métodos forenses fará com que se
consigam apenas os dados armazenados no disco rígido, tais como documentos,
planilhas e histórico da Internet. A cópia não utilizando métodos forenses, não
permitirá a recuperação de arquivos apagados ou análise das áreas do disco rígido,
onde a evidência que não é visível para o usuário ainda pode residir.
Verificação: Este é o passo final no processo de cópia forense. A fim de que a prova seja
admissível, deve haver um método para verificar que a evidência apresentada seja
exatamente a mesma que a original recolhida. A verificação é realizada por meio de um
algoritmo matemático que calcula um número com base no conteúdo da prova. A figura 6
ilustra a unidade e o processo de geração de hashes para os arquivos copiados. Isto é
chamado de criação de um valor de hash e é realizada utilizando o algorítmo Message
Digest 5 (MD5) ou o Secure Hash Algorithm (SHA). O MD5 é o método mais comum
utilizado para verificação na computação forense. Ferramentas forenses de duplicação
criam automaticamente uma verificação de hash para o original e a cópia durante o
processo de duplicação. Se estes valores de hash não coincidirem, surge à dúvida sobre a
autenticidade da prova.
Figura 6: Um valor de hash é calculado e armazenado para cada dado copiado.
Fonte: Larry Daniel e Lars Daniel (2012, p. 32)
27
4.4 O que acontece em muitos casos
Com a propagação de telefones celulares, computadores e outros dispositivos digitais
como evidência potencial em condenações por crimes, os recursos de aplicação da lei se
tornaram cada vez mais aprimorados, o que acaba por se tornar de extrema importância que o
perito seja treinado para seguir as melhores práticas (DANIEL, Larry; DANIEL, Lars, 2012).
O que ocorre em muitos casos, porém, é que agentes acabam por modificar
acidentalmente a evidência por falta de treinamento, ou o departamento responsável não teve
a oportunidade de estabelecer os procedimentos para lidar com evidências digitais (DANIEL,
Larry; DANIEL, Lars, 2012).
Do lado civil, devido à falta de peritos qualificados para contratação, advogados
particulares estão utilizando o pessoal de suporte de tecnologia da informação, em vez de
peritos forenses para coletar a analisar evidências. Os suportes de tecnologia da informação
não estão treinados para seguirem as melhores práticas, consequentemente não seguem
qualquer metodologia para proteger e preservar a evidência original, além de não usarem as
ferramentas adequadas para coleta e preservação das provas. Falta de conhecimento das
melhores práticas anda junto com a não utilização de ferramentas adequadas para a coleta
segura de provas (DANIEL, Larry; DANIEL, Lars, 2012).
28
5. EVIDÊNCIAS DIGITAIS
Evidências digitais para Casey (2000) são quaisquer dados que podem provar que um
crime tenha sido cometido, ou que possa fornecer uma ligação entre um crime e sua vítima ou
um crime e seu autor. A definição proposta pelo Standard Working Group on Digital
Evidence (SWGDE) para evidência digital, é qualquer informação de valor probatório, que é
armazenado ou transmitido em forma digital. Outra definição proposta pela International
Organization of Computer Evidence (IOCE), é qualquer informação armazenada ou
transmitida de forma binária que pode ser utilizada em um tribunal. No entanto, essas
definições focam demais na negligência de provas e dados do que simplesmente em uma
investigação. Além disso, a definição do termo binário é muito vaga, descrevendo apenas uma
das muitas representações comuns de dados informatizados. Uma definição mais ampla
proposta pela Association of Chief Police Officers, é a informação e dados transmitidos ou
armazenados por um computador que possuem algum valor para a investigação. Uma
definição mais geral proposta por Carrier (2006) para evidências eletrônicas: são dados que
suportam ou refutem uma hipótese sobre eventos digitais ou o estado dos dados digitais.
5.1 Sistemas de arquivos
Existem diversos sistemas de arquivos em sistemas operacionais open source,
incluindo Unix File System (UFS), Reiser, Extended File System 2 (EXT2) e Extended File
System 3 (EXT3) que possuem estruturas parecidas. Embora os diretórios desempenhem um
papel em sistemas de arquivos Linux, eles são muito mais simples do que os existentes no
sistema operacional Windows, no Linux eles contém apenas uma lista de nomes de arquivos e
seu número de inode2 associado. Cada arquivo possui uma entrada associada na tabela de
inode, identificado pelo número de inode, que contém todas as informações sobre o arquivo,
além de seu nome. Na figura 7 é possível visualizar o conteúdo de um inode que incluem data
e hora, número de bytes do ficheiro e quais os clusters no disco contêm esses dados (CASEY,
2011).
2 Em sistemas operacionais, um nó-i (inode, ou index node) é uma estrutura de dados constituinte de
um sistema de arquivos que segue a semântica UNIX. O nó-i armazena informações sobre um arquivo,
tais como o dono, permissões e sua localização.
29
Figura 7: Representação de um diretório e o seu inode associado.
Fonte: CASEY (2011, p. 553)
Os sistemas de arquivos Linux quebram cada partição em grupos de blocos, cada um
com o seu próprio inode e blocos de dados. Dividir os dados desta forma evita danos
catastróficos dos arquivos de sistema, porque não há um ponto único de falha. Se a área do
disco que contém um grupo de blocos que está danificado, apenas os dados desse grupo são
afetados, deixando os dados de outros grupos intactos (CASEY, 2011).
Figura 8: Visão geral dos sistemas de arquivos Linux.
Fonte: CASEY (2011, p. 554)
Além de conter dados, cada grupo de blocos possui uma duplicação dos componentes
essenciais dos arquivos de sistema, isto é, o superbloco e o descritor de grupo, para facilitar a
recuperação se a cópia primária for danificada. O superbloco contém informações sobre os
arquivos de sistema, tais como o tamanho do bloco, número de blocos por grupo de bloco, a
última vez que os arquivos de sistema foram montados, última vez que foi escrito e
informações do setor de inode do diretório raiz (CASEY, 2011).
30
Descritores de grupo contêm as informações mais importantes para cada grupo de
bloco, incluindo a localização da tabela de inode. Em todos os grupos de blocos os descritores
são duplicados, em caso de haver danos nos arquivos de sistema. Caso o descritor de grupo
primário de qualquer grupo de blocos for danificado, uma cópia de backup do descritor de
grupo poderá ser usada para reparar o dano. Se a tabela de inode em si está danificada, torna-
se mais difícil reconstruir os arquivos do grupo de blocos (CASEY, 2011).
Resumindo, quando um sistema é comandado para acessar um arquivo como
“/etc/passwd”, ele procura primeiro no superbloco para o setor de inode número 2 para
encontrar o diretório raiz, conforme mostrado na figura 10. O sistema lê o diretório raiz até
encontrar a entrada para o “etc” com seu número de inode associado (inode 0x00038001 =
229377 na figura 10), ele lê os blocos de dados referenciados pelo inode 229377 até encontrar
a entrada para o “passwd”, e acessa o inode associado para identificar os blocos de dados
ocupados pelo arquivo de senha (CASEY, 2011).
Figura 9: Conteúdo do inode do diretório raiz.
Fonte: CASEY (2011, p. 555)
Se um arquivo possui mais dados que podem ser referenciados pelo campo de blocos
diretos em seu inode, blocos indiretos adicionais são utilizados para armazenar informações,
de forma mais clara, os blocos indiretos possuem listas de blocos de dados que contêm os
31
arquivos. Mesmo arquivos maiores podem exigir blocos indiretos adicionais, exceto quando
os blocos indiretos contiverem mais listas (secundárias ou 2x) ou blocos indiretos que
contenham listas dos blocos de dados que contêm o arquivo. Alguns sistemas de arquivos
permitem ainda um terceiro nível de blocos indiretos, conforme figura 11 (CASEY, 2011).
O Linux mantém um selo de data e hora de cada arquivo quando ele é excluído. No
caso da figura 11 o arquivo não foi excluído e o valor definido é um valor padrão. Quando um
arquivo é excluído, o Linux contabiliza seu tempo de exclusão em forma de tempo em vez de
época, é contabilizado o número de segundos desde 1 de Janeiro de 1970, 00:00:00 UTC
(CASEY, 2011).
Figura 10: inode do arquivo /etc/passwd.
Fonte: CASEY (2011, p. 556)
Quando um arquivo é apagado em um sistema Linux, a entrada de arquivo do
diretório fica escondida e as notas do sistema que possuem um inode associado estarão
disponíveis para reutilização. A entrada de arquivos do diretório, o inode e os dados
permanecem no disco até que sejam substituídos. Alguns sistemas como o Solaris, ext3 e
versões mais recentes do ext2 removem o número de inode do diretório, quebrando assim a
ligação entre as entradas de diretórios e inodes, tornado mais difícil à recuperação de arquivos
32
apagados. O sistema HP-UX apaga as entradas de diretórios completamente, tornando os
arquivos ainda mais difíceis de serem recuperados, os sistemas de arquivos mais novos
também quebram a ligação entre o inode e os setores que continham os dados, eliminando
assim todas as referências do sistema de arquivos para os dados (CASEY, 2011).
O sistema de arquivos ext3 Linux é semelhante ao ext2, mas o ext3 tem a capacidade
de executar registros no diário para facilitar a recuperação do sistema de arquivos e reparação
após uma falha de sistema. Assim como ocorre com o New Technology File System (NTFS),
atualmente não há ferramentas disponíveis para interpretar o arquivo de diário em ext3 para
determinar quais alterações foram feitas. Esta é uma fonte potencialmente rica de informações
para a perícia forense computacional que certamente será explorado no futuro (CASEY,
2011).
5.1.1 MACtimes
Na perícia forense computacional, muitas vezes, é mais importante identificar
quando algum evento ocorreu do que saber o que aconteceu. Informações relacionadas ao
tempo são muito relevantes em uma investigação (FARMER E VENEMA, 2007).
MACtimes são campos de metadados que registram a data e hora do último
acontecimento em um determinado arquivo ou diretório no (Windows, Linux ou outros tipos
de sistemas de arquivos, ele é um conjunto de três atributos de tempo, mtime, atime e ctime. O
mtime corresponde à data e hora da última vez que o arquivo ou diretório foi modificado, já o
atime corresponde à data e hora da última vez que o arquivo foi acessado, e o ctime registra
quando um conteúdo sobre um arquivo muda, como o proprietário, grupo, permissões e etc
(FARMER E VENEMA, 2007).
Para visualizar essas datas e horas no Linux basta utilizar o simples comando ls, ou
ainda através da utilização de outros tipos de ferramentas, como por exemplo, o mactime que
está presente no Coroner’s Toolkits (FARMER E VENEMA, 2007).
Os MACtimes são informações valiosas, porém muito frágeis, pois se alteram com
muita facilidade, ferramentas que gerenciam sistemas de arquivos por exemplo alteram o
atributo atime, assim como uma simples leitura de uma pasta ou arquivo também alteram esse
atributo, por isso é importante o perito trabalhar sempre com cópia das evidências originais, e
também desativar as atualizações de atime para que não corra o risco de alterar
acidentalmente os dados (FARMER E VENEMA, 2007).
33
5.2 Ferramentas de processamento digital de provas
Segundo Casey (2011) o Linux possui varias características que o tornam ideal para
aquisição de provas digitais e um sistema de exame forense. O sistema operacional Linux
contém muitos utilitários que são projetados para trabalharem em conjunto, a saída de
informações de uma ferramenta pode ser alimentada facilmente em outra ferramenta. O pipe
(representado por uma barra vertical “|”) permite a saída de um programa para outro criando
uma grande flexibilidade. Por exemplo, após um disco passar por uma sanitização, a
combinação de comandos a seguir pode ser usado para verificar se todos os setores estão
preenchidos com zeros:
dd if=/dev/hda | xxd | grep –v "0000 0000 0000 0000 0000 0000 0000 0000"
Este comando procura por algo que não é zero e deve retornar nada, desde que o
disco tenha sido limpo corretamente. O Linux suporta muitos tipos de sistemas de arquivos e
pode ser usado para examinar a mídia de um sistema UNIX, Windows, Macintosh e outros
sistemas. O Linux permite também acesso a dispositivos, tornando mais fácil a aquisição de
dados em mídias danificadas e burlar a proteção contra cópia em determinados cartões de
memória (CASEY, 2011).
Antes de realizar uma cópia de um fluxo de bits do disco, pode ser necessário
realizar uma busca por palavras chave para determinar se existem evidências digitais
importantes no sistema. Isto é útil quando é necessário procurar por itens específicos em um
grande número de sistemas. O modo mais eficiente para pesquisa em muitos computadores é
inicia-los usando um disco de inicialização de aquisição de evidência e executar um utilitário
de pesquisa no disco no prompt do Linux. O comando grep fornece a capacidade de busca de
palavras chave. Uma vez que um sistema com provas úteis tenha sido identificado, uma cópia
bitstream3 completa pode ser feita (CASEY, 2011).
O principal elemento para adquirir provas digitais usando o Linux é o comando dd. O
exemplo mais simples é usando o dd para realizar uma cópia bitstream de um disco rígido:
“dd if=/dev/hda of=copiadodiscorigido.dd”. O comando dd conta com muitas opções,
permitindo ao usuário especificar o tamanho do bloco de unidade das provas e salvar
segmentos de uma cópia bitstream em vários arquivos, em casos que é preciso gravar os
dados em discos compactos. A saída do dd pode ser salva em um arquivo, conforme mostrado
3 Cópia bitstream na forense computacional é uma cópia bit a bit dos dados da mídia de
armazenamento original. Disponível em:
http://www.pcrforensics.com/index.php?option=com_glossary&letter=B&id=52&Itemid=132
34
acima, ou em um disco rígido em branco para criar um clone, ou podem ser enviadas através
de uma conexão de rede a um sistema de coleta remoto usando netcat.
Quando se precisa lidar com discos rígidos que possuem varias partições, é
aconselhável realizar uma cópia bitstream de todo o disco primeiro e posteriormente extrair
partições individuais conforme necessidade (CARRIER, 2003). Desta forma para Casey
(2011), uma cópia completa do disco original é preservada. Além disso, antes de realizar uma
cópia bitstream, é de extrema importância para a perícia calcular o valor MD5 da unidade,
para documentar o disco rígido que está sendo copiado. Para obter informações sobre um
disco rígido e as partições no disco, utilizar os seguintes comandos em Linux:
Comando:
grep hd /var/log/dmesg
Exemplo de saída:
ide0: BM-DMA at 0xa890-0xa897, BIOS settings: hda:DMA, hdb:pio
ide1: BM-DMA at 0xa898-0xa89f, BIOS settings: hdc:pio, hdd:pio
hda: HITACHI_DK23DA-20, ATA DISK drive
hda: 39070080 sectors (20004 MB) w/2048KiB Cache, CHS=2584/240/63,
UDMA(100)
hda: hda1 hda2 hda3 hda4 < hda5 >
Comando:
/sbin/hdparm -I /dev/hda
Exemplo de saída:
/dev/hda:
ATA device, with non-removable media
Model Number: HITACHI_DK23DA-20
Serial Number: 14RM3D
Firmware Revision: 00J2A0F3
Standards:
Used: ATA/ATAPI-5 T13 1321D revision 3
Supported: 5 4 3 2 & some of 6
Configuration:
Logical max current
cylinders 16383 16383
35
heads 16 16
sectors/track 63 63
––
CHS current addressable sectors: 16514064
LBA user addressable sectors: 39070080
device size with M = 1024*1024: 19077 MBytes
device size with M = 1000*1000: 20003 MBytes (20 GB)
Capabilities:
<cut for brevity>
Comando:
/sbin/sfdisk -l -uS /dev/had
Exemplo de saída:
Disk /dev/hda: 2584 cylinders, 240 heads, 63 sectors/track
Units = sectors of 512 bytes, counting from 0
Device Boot Start End #sectors Id System
/dev/hda1 * 63 211679 211617 83 Linux
/dev/hda2 211680 20684159 20472480 83 Linux
/dev/hda3 20684160 22317119 1632960 82 Linux swap
/dev/hda4 22317120 39070079 16752960 f Win95 Ext'd (LBA)
/dev/hda5 22317183 39070079 16752897 83 Linux
Em algumas situações segundo Casey (2011), os peritos forenses precisarão calcular
o valor do resumo de mensagem de dados no disco para posterior comparação. O Linux
contém utilitários que fornecem o resumo de mensagem tais como o md5sum e sha1sum, que
podem ser usados para verificar a integridade das evidências digitais. A combinação de
comandos a seguir usa o dd para extrair dados de um disco rígido e direciona os dados para o
md5sum calcular o valor MD5 do disco:
Comando:
dd if=/dev/sda bs=512 | md5sum
Exemplo de saída:
2880+0 records in
2880+0 records out
36
de3af39674f76d1eb2d652543c536a32
Conforme Casey (2011), depois de calculado o valor MD5 do disco, o perito pode
realizar a comparação do valor MD5 da evidência original com o valor MD5 da cópia da
evidência coletada:
Comando:
dd if=/dev/sda of=copiadodisco.dd bs=512
Exemplo de saída:
2880+0 records in
2880+0 records out
Comando:
md5sum copiadodisco.dd
Exemplo de saída:
de3af39674f76d1eb2d652543c536a32 copiadodisco.dd
O laboratório forense do Departamento de Defesa dos EUA criou uma versão
melhorada chamada dc3dd que pode calcular valores MD5 dos dados em intervalos regulares
durante o processo de cópia. A ferramenta dc3dd conta com muito mais recursos, que são
projetados especificamente para perícia forense, ela possui um modo de verificação e um log
de auditoria (CASEY, 2011).
Uma vez que uma cópia bitstream tenha disso criada, ela pode ser montada para a
realização de exames forenses. O Linux fornece uma interface de loopback que permite o
acesso a um arquivo como se fosse um disco, permitindo que os examinadores trabalhem em
cima de uma cópia como se fosse à evidência original, incluindo o acesso ao sistema de
arquivos e a realização de pesquisas. A seguir temos um exemplo de comandos que montam
uma cópia bitstream (apenas leitura, através de um dispositivo de loopback) para gerar uma
lista de arquivos com seus valores MD5 e uma lista de todos os arquivos que foram
modificados no dia anterior (CASEY, 2011).
Comando:
date
Exemplo de saída:
37
Tue May 13 18:01:50 EDT 2003
Comando:
mount -o ro,loop –t “sistema de arquivo (vfat, ext2, ext3, ext4)” copiadodisco.dd
/e1/case2/exhibit1
Comando:
find /e1/case2/exhibit1 –type f -exec md5sum {} \;
Exemplo de saída:
bca6aa0863902c44206dc3f09ccde765 documento01.doc
adcbb2fe3bcdeb62addf4ea27f15ac7c emails.txt
d787d1699ae3c3a81fe94a9482038176 enderecos.txt
Comando:
find /e1/case2/exhibit1 -mtime 0 –ls
Exemplo de saída:
6 21 -rwxr-xr-x 1 root root 21504 May 13 11:58 documento01.doc
7 0 -rwxr-xr-x 1 root root 122 May 13 12:40 emails.txt
8 0 -rwxr-xr-x 1 root root 122 May 13 12:42 enderecos.txt
Para Casey (2011), Algumas formas de exames podem ser realizadas sobre os
arquivos de evidência em oposição à montagem do sistema de arquivos. Por exemplo, o
arquivo de evidência pode ser visto usando um visualizador hexadecimal como xxd ou pode
ser pesquisado utilizando palavras-chave, usando strings junto com o comando grep:
Comando:
strings copiadodisco.dd | grep sales
Exemplo de saída:
Write additional Getafix sales letters
Comando:
cat biotechx-keywords
Exemplo de saída:
patient
GUID
38
Comando:
grep -aibf biotechx-keywords copiadodisco.dd
Exemplo de saída:
30573:_PID_GUIDäAN{443A4AC0-6E57-11D7-865E-006097EDDC2Eþÿÿÿ
37959:patient# infected cellcount
62023:patient# infected cellcount
86603:patient# infected cellcount
125313:_PID_GUIDäAN{D2D244A2-0FE4-11D0-9B61-00AA003CF91Aþÿÿÿ
150373:_PID_GUIDäAN{443A4AC0-6E57-11D7-865E-006097EDDC2Eþÿÿÿ
170341:_PID_GUIDäAN{443A4AC0-6E57-11D7-865E-006097EDDC2Eþÿÿÿ
No entanto esta técnica para examinar um disco é estreitamente limitada porque não
indica quais os arquivos que continham as palavras-chave (CASEY, 2011).
Exames forenses mais avançados podem ser realizados utilizando um conjunto de
utilitários chamado The Coroner’s Toolkit (TCT). Alguns exemplos de comandos com
explicações sobre sua função são fornecidos na tabela 1. Estas ferramentas podem ser
utilizadas em uma cópia bitstream de um disco ou para acessar um disco rígido diretamente
(CASEY, 2011).
Tabela 1 – Alguns utilitários do The Coroner’s Toolkit
Fonte: Casey (2011, p.562)
Comando Descrição
ils -r/dev/hda1 Lista o inode dos arquivos apagados da partição 1
do disco hda.
icat/dev/hda1 2 Mostra o conteúdo do inode 2 na partição 1 do disco
hda
unrm/dev/hda1 > unallocated Extrai espaço não alocado de uma partição no disco
hda
mactime -R -d /e1/case2/exhibit3 12/13/2002
Gera uma lista cronológica de MAC Times dos arquivos no diretório /e1/case2/exhibit3 e todos os subdiretórios entre 13 de Dezembro de 2002 até o
tempo atual.
39
5.2.1 The Coroner’s Toolkit e Sleuth Kit
The Coroner’s Toolkit (TCT) é um conjunto de bibliotecas que contam com vários
utilitários para a perícia forense computacional. O TCT possui código aberto e foi
desenvolvido por Wietse Venema e Dan Farmer. A primeira edição do TCT ocorreu no ano de
2000 e foi disponibilizado no website dos autores. Brian Carrier mais tarde estendeu as
funcionalidades do TCT de varias maneiras, e lançou o novo software com o nome The Sleuth
Kit (TSK), (FARMER E VENEMA, 2007).
Uma das grandes funcionalidades do Sleuth Kit é o apoio aos sistemas de arquivos
FAT e NTFS, além de diversas outras ferramentas poderosas (CASEY, 2011).
Segundo Casey (2011), o comando istat do Sleuth Kit possui a funcionalidade de
examinar inodes específicos. No exemplo abaixo é possível ver que é mostrado o tempo de
exclusão somente dos arquivos apagados. É possível visualizar também informações
semelhantes de arquivos regulares através de comando padrão do Linux, com o comando stat.
Comando:
istat -f linux-ext2 copiadodisco.dd 2
Exemplo de saída:
inode: 2
Allocated
Group: 0
uid / gid: 0 / 0
mode: drwxr-xr-x
size: 4096
num of links: 21
Inode Times:
Accessed: Tue Nov 26 04:03:19 2002
File Modified: Mon Nov 25 20:39:17 2002
Inode Modified: Mon Nov 25 20:39:17 2002
Direct Blocks:
519
A combinação do Sleuth Kit juntamente com o Autopsy Forensic Browser fornecem
diferentes visões de dados através de uma interface em um navegador web (CASEY, 2011).
40
Figura 11: Utilizando o Sleuth Kit e o Autopsy Forensic Browser.
Fonte: CASEY (2011, p. 563)
Duas ferramentas baseadas em Linux que também são baseadas no TSK são o
pyFLAG e o PTK4. O PTK é uma extensão do TSK e possui uma interface gráfica baseada na
web, ele foi aprimorado com novos recursos como a indexação, que tem o objetivo de facilitar
a pesquisa por palavras-chave. O PTK normalmente trabalha junto com o Autopsy Forensic
Browser (CASEY, 2011).
Devido o grande número de utilidades disponíveis e a adaptabilidade infinita do
Linux, ele é uma plataforma muito potente para exames forenses e sua única limitação é um
pouco da complexidade em conhecer o sistema. Embora algumas ferramentas baseadas no
Windows podem ser usadas para examinar sistemas de arquivos ext2, ext3 e UFS, a maioria
não facilita o exame de inodes e outros atributos característicos dos sistemas de arquivos
Linux (CASEY, 2011).
4 Mais informações, consultar: http://ptk.dflabs.com/
41
Figura 12: Visão geral do programa PTK.
Fonte: CASEY (2011)
5.3 Recuperação de dados
Segundo Casey (2011) ao contrário do Windows e sistemas de arquivos Macintosh, o
Linux não possui file slack space5.
Quando o Linux cria um novo arquivo, ele grava o restante do bloco com zeros e os
define como não alocado. Portanto, não é possível recuperar dados apagados do file slack
space em sistemas Linux. Algumas ferramentas, como o test-disk e gpart possuem funções
para recuperar partições apagadas em sistemas Linux e Windows. Há apenas algumas
ferramentas para a reparação de arquivos danificados em Linux, como o tarfix, fixcpio, tarx, e
tar-aids (CASEY, 2011).
5 File slack space é o espaço não utilizado no final de um arquivo.
42
Figura 13: File Slack Space.
Fonte: RABELO (2011)
5.3.1 Ferramentas baseadas em Linux
Uma das formas para a recuperação de arquivos apagados em sistemas Linux
conforme Casey (2011), é a busca de inodes e a recuperação de arquivos associados a ele. É
possível obter uma lista de todos os inodes apagados a partir de um sistema Linux, utilizando
o comando ils, conforme exemplo abaixo:
Comando:
ils -f linux-ext2 /e1/case2/copiadodisco.dd | more
Exemplo de saída:
class|host|device|start_time
ils|case|ext2-bitstream.dd|1054082181
st_ino|st_alloc|st_uid|st_gid|st_mtime|st_atime|st_ctime|st_dtime|st_mode|st_nli
nk|st_size|st_block0|st_block1
1|a|0|0|973385730|973385730|973385730|0|0|0|0|0|0
24|f|500|500|973695537|973695537|973695537|973695537|40700|0|0|308|0
25|f|500|500|954365144|973695521|973695537|973695537|100600|0|28587|309|31
0
26|f|500|500|954365144|973695521|973695537|973695537|100600|0|340|338|0
2049|f|500|500|973695537|973695537|973695537|973695537|40700|0|0|8489|0
2050|f|500|500|953943572|973695536|973695537|973695537|100600|0|4178|8490|
8491
43
2051|f|500|500|960098764|973695521|973695537|973695537|100600|0|52345|849
5|8496
2052|f|500|500|953943572|973695537|973695537|973695537|100600|0|4860|8548|
8549
2053|f|500|500|959130680|973695521|973695537|973695537|100600|0|28961|855
3|8554
2054|f|500|500|959130680|973695521|973695537|973695537|100600|0|87647|8583|
8584
2055|f|500|500|961959437|973695521|973695537|973695537|100600|0|30799|867
0|8671
2056|f|500|500|959130680|973695521|973695537|973695537|100600|0|50176|870
2|8703
2057|f|500|500|953943572|973695537|973695537|973695537|100600|0|21700|875
2|8753
2058|f|500|500|959130680|973695521|973695537|973695537|100600|0|22865|877
5|8776
2059|f|500|500|959130680|973695521|973695537|973695537|100600|0|14584|879
9|8800
2060|f|500|500|953943572|973695521|973695537|973695537|100600|0|12276|881
5|8816
2061|f|500|500|959130680|973695521|973695537|973695537|100600|0|10840|882
7|8828
2062|f|500|500|959130680|973695521|973695537|973695537|100600|0|26027|883
8|8839
Conhecendo o número de inode de um arquivo excluído de acordo com Casey
(2011), o conteúdo desse arquivo pode ser acessado utilizando o comando icat, desde que os
dados existam conforme mostrado no exemplo acima para o inode 2054 (em negrito):
Comando:
icat -f linux-ext2 ext2-copiadodisco.dd 2054
Exemplo de saída:
dcc.c –– handles:
activity on a dcc socket
44
disconnect on a dcc socket
...and that's it! (but it's a LOT)
dprintf'ized, 27oct95
*/
/*
This file is part of the eggdrop source code
copyright (c) 1997 Robey Pointer
and is distributed according to the GNU general public license.
For full details, read the top of 'main.c' or the file called
COPYING that was distributed with this code.
*/
#if HAVE_CONFIG_H
#include <config.h>
O Linux Disk Editor e o debugfs utilizam essa abordagem para recuperar arquivos
apagados em sistemas de arquivos ext2. A ferramenta SMART também utiliza a mesma
técnica para recuperar arquivos apagados (BUCKEY E LISTON, 2002).
No entanto, Casey (2011) explica que muitos sistemas de arquivos Linux removem as
referências de inodes para os setores que contêm os dados, quebrando assim a conexão entre o
inode e os dados no disco. Pode-se visualizar este fato em uma lista de inodes excluídos de
um sistema Solaris, o primeiro setor que continha dados de cada arquivo são ajustados para
zero:
Comando:
ils –r -f solaris /e1/case2/ufs-copiadodisco.dd
Exemplo de saída:
class|host|device|start_time
ils|legolas|/e1/morgue/ufs-bitstream.dd|1039101486
st_ino|st_alloc|st_uid|st_gid|st_mtime|st_atime|st_ctime|st_mode|
st_nlink|st_size| st_block0|st_block1
213|f|0|1|1038427233|1038427233|1038427243|0|0|0|0|0
3946|f|0|0|987886669|987886669|987886690|0|0|0|0|0
7698|f|0|60001|987893332|987893332|987893332|0|0|0|0|0
11509|f|0|60001|987893332|987893332|987893332|0|0|0|0|0
45
15105|f|0|60001|987893332|987893332|987893332|0|0|0|0|0
15260|f|0|0|987886816|987886816|987886830|0|0|0|0|0
15261|f|0|0|987886821|987886821|987886830|0|0|0|0|0
15264|f|0|0|987886449|987886449|987886457|0|0|0|0|0
15265|f|0|0|987886449|987886449|987886457|0|0|0|0|0
22816|f|0|0|1038421634|1038421621|1038421634|0|0|0|0|0
22817|f|0|0|987893848|987887279|987893848|0|0|0|0|0
34164|f|0|60001|987893333|987893332|987893354|0|0|0|0|0
45493|f|0|0|1038421571|1038421571|1038421634|0|0|0|0|0
45494|f|0|0|1038421571|1038421571|1038421634|0|0|0|0|0
53039|f|0|60001|987893333|987887277|987893354|0|0|0|0|0
56784|f|0|0|987886929|987886922|987886935|0|0|0|0|0
56787|f|0|0|987886930|987886929|987886935|0|0|0|0|0
56788|f|0|0|987886903|987886903|987886917|0|0|0|0|0
60579|f|0|0|987886609|987886609|987886620|0|0|0|0|0
Figura 14: Processo de recuperação de arquivos apagados usando o SMART.
Fonte: CASEY (2011, p. 567)
46
Outra forma de recuperar arquivos apagados segundo Casey (2011) é verificar os
diretórios de entradas eliminadas, desde que eles existam. O TSK usa desta técnica para
promover uma lista de diretórios e arquivos apagados em um sistema de arquivos ext2
utilizando o fls conforma demonstrado abaixo:
Comando:
fls -d -r -f linux-ext2 /dev/hdd2
Exemplo de saída:
-/- * 0: boot/
-/- * 4(realloc): boot/
-/- * 0: boot/P
-/- * 0: boot/
-/- * 0: boot/
b/- * 0: dev/ataraid/d9p9;3d905a83
b/- * 0: dev/cciss/c7d9p9;3d905a83
c/- * 0: dev/compaq/cpqrid;3d905a83
c/- * 0: dev/dri/card3;3d905a83
b/- * 0: dev/i2o/hdz9;3d905a83
b/- * 0: dev/ida/c7d9p9;3d905a83
c/- * 0: dev/inet/udp;3d905a83
d/d * 933895(realloc): dev/input
c/c * 66319(realloc): dev/ip2ipl0
l/l * 66318(realloc): dev/ip
c/c * 66323(realloc): dev/ip2stat0
c/c * 66320(realloc): dev/ip2ipl1
c/c * 66321(realloc): dev/ip2ipl2
c/c * 66322(realloc): dev/ip2ipl3
d/d * 983047(realloc): dev/logicalco
-/- * 3355443: dev/
<cut for brevity>
O Autopsy Forensic Browser combina essa duas técnicas para listar todas as entradas
de diretórios que foram excluídos, referenciados a um determinado inode (ele é identificado
47
como “Pointed to by file”), abaixo temos um exemplo para o inode 3817585 em um sistema
de arquivo ext2 (CASEY, 2011).
Exemplo de saída:
inode: 3817585
Pointed to by file:
/tmp/makewhatis3JoBa0 (deleted)
/root/.netscape/cache/1A/cache3DDC0D5A01A20AD (deleted)
/root/.netscape/cache/1A/cache3DD5997A1200A22 (deleted)
File Type: empty
Details:
Not Allocated
Group: 233
uid / gid: 0 / 0
mode: drwx------size: 0
num of links: 0
Inode Times:
Accessed: Mon Nov 25 19:08:29 2002
File Modified: Mon Nov 25 19:08:29 2002
Inode Modified: Mon Nov 25 19:08:29 2002
Deleted: Mon Nov 25 19:08:29 2002
Direct Blocks:
Uma observação importante é que essas ferramentas não se limitam a examinar
apenas sistemas de arquivos do Linux, elas também podem ser utilizadas para recuperar
arquivos de sistemas FAT e NTFS (CASEY, 2011).
5.3.2 Data Carving
Alguns dados apagados podem ser recuperados usando características de classe. Por
exemplo, com os utilitários foremost e scalpel é possível recuperar dados a partir de qualquer
objeto digital, como um arquivo de provas, um espaço não alocado, partições corrompidas e
arquivos de swap, mesmo após o usuário ter realizado uma nova instalação do sistema
operacional (CASEY, 2011).
48
O utilitário foremost é um software de console open source, cuja função é a
recuperação de dados a partir de cabeçalhos, rodapés e estrutura de dados, este tipo de
processo é conhecido como extração de dados (data carving). O foremost permite trabalhar
em cima de uma imagem criada pelo comando dd, Encase, Safeback, dcfldd ou diretamente
em uma partição ou disco (ALMEIDA, 2010).
O recuperador de arquivos scalpel é um recuperador simples, porém de alto
desempenho, basicamente ele lê um banco de dados com diversas definições de cabeçalho e
rodapé, a partir daí, ele extrai os arquivos desejados de um dispositivo raw ou de um grupo de
arquivos de imagem. O tipo de partição independe para o scalpel, ele consegue extrair dados
de partições FAT, NTFS, ext2, ext3 ou partições raw (ALMEIDA, 2010).
O resultado a seguir mostra a recuperação de arquivos mais importantes de uma
cópia bitstream de um disco rígido:
Comando:
foremost –o carved-foremost –v copiadodisco.dd
Exemplo de saída:
foremost version 0.62
Written by Kris Kendall and Jesse Kornblum.
Using output directory: /e1/carved-foremost
Verbose mode on
Using configuration file: foremost.conf
Opening /e1/linuxpractical.dd.
Total file size is 1474560 bytes
/e1/case2/floppycopy.dd: 100.0% done (1.4 MB read)
A doc was found at: 17408
Wrote file /e1/case2/carved-foremost/00000000.doc -- Success
A doc was found at: 37888
Wrote file /e1/case2/carved-foremost/00000001.doc -- Success
A jpg was found at: 76800
Wrote file /e1/case2/carved-foremost/00000002.jpg -- Success
A jpg was found at: 77230
Wrote file /e1/case2/carved-foremost/00000003.jpg -- Success
A jpg was found at: 543232
Wrote file /e1/case2/carved-foremost/00000004.jpg -- Success
49
A gif was found at: 990208
Wrote file /e1/case2/carved-foremost/00000005.gif -- Success
A jpg was found at: 1308160
Wrote file /e1/case2/carved-foremost/00000006.jpg -- Success
Foremost is done (CASEY, 2011).
Outra opção ainda para recuperação de dados segundo Casey (2011) é a utilização do
software Lazarus do TCT, o Lazarus classifica automaticamente os dados da seguinte forma:
1. Lê uma parte dos dados (1 kb padrão).
2. Determina se o trecho é arquivo binário ou texto:
a. Se o trecho for do tipo texto, o programa tenta classificá-lo com base em seu
conteúdo (por exemplo, html);
b. Se for binário, o programa tenta classificá-lo utilizando comandos de arquivos
Linux.
3. Se a classificação for realizada com sucesso, o Lazarus compara com o bloco anterior:
a. Se eles forem da mesma classe, então se encontram no mesmo ficheiro;
b. Se forem de classes diferentes, então se encontram em ficheiros difentes.
4. Se a classificação da parte dos dados não for bem sucedida, o Lazarus faz uma comparação
com o trecho anterior:
a. Se eles forem do mesmo tipo (binário ou texto), então eles estão no mesmo
arquivo;
b. Se eles forem de tipo diferente (binário ou texto), então eles estão em arquivos
diferentes.
5.3.3 Dump de memória
Dump de memória é o processo no qual se captura dados da memória, podendo ser
ela a memória principal (memória RAM) ou a memória virtual do sistema (FARMER;
VENEMA, 2007).
Na perícia forense antes da análise dos dados da memória, é necessário capturar as
informações, ou pelo menos, a maior quantidade possível. O Linux possui dois dispositivos
virtuais, o /dev/mem e o /dev/kmem, que permitem a leitura e gravação na memória via esses
dispositivos. O dispositivo /dev/mem é um arquivo de espelhamento da memória principal do
50
computador, já o /dev/kmem é o espelhamento da memória virtual do kernel (FARMER;
VENEMA, 2007).
De acordo com Reis (2003), como a memória principal do computador é volátil, o
procedimento recomendado é coletar os dados da memória com o sistema nativo ligado, esse
procedimento é conhecido como análise ao vivo, para realizar a cópia da memória principal
no Linux, utiliza-se o seguinte comando:
dd if=/dev/mem of=mem.dump bs=1024
Para copiar a memória virtual do kernel, utiliza-se o seguinte comando:
dd if=/dev/kmem of=/kmem.dump bs=1024
Segundo Reis (2003), depois de copiado os dados da memória, o perito pode realizar
algumas análises, como por exemplo, a busca por palavras-chave através dos comandos grep
e strings, conforme abaixo:
grep palavra-chave mem.dump
# strings –a mem.dump | grep palavra-chave
# strings -a mem.dump | more
5.4 Arquivos de log
Arquivos de log são registros que normalmente estão armazenados em arquivos
ASCII ou texto simples, eles possuem a função de registrar eventos do sistema operacional e
serviços da rede. A relação entre arquivos de logs, segurança e auditoria são fundamentais
para que se possa entender o que ocorreu com um sistema computacional (MILAGRE, 2008).
É importante que antes de se analisar os arquivos de log que o perito de a preferência
para análise de dispositivos voláteis, como um dump da memória e o congelamento do estado
da rede e processos (MILAGRE, 2008).
O Linux é um sistema que possuí muitos registros, com comandos simples é possível
obter muitas informações sobre o sistema, por exemplo, utilizando o comando last/log o
sistema irá retornar os últimos usuários que efetuaram um login no sistema. Para gerar uma
lista das ultimas tentativas de login sem êxito no sistema, utiliza-se o comando lastb.
51
Utilizando o comando who o sistema irá apresentar os usuários logados na máquina, já com o
comando history | more, é possível ter acesso aos últimos comandos executados na sessão
atual (MILAGRE, 2008).
Na maioria dos casos é importante que o perito verifique os processos que estão
sendo executados no momento por um usuário, o comando ps –aux identifica os processos
atuais em execução. Se for preciso, o perito pode filtrar somente os arquivos chamados por
um determinado processo PID, através do comando lsof –p “número do PID” (MILAGRE,
2008).
No Linux por padrão, as maiorias dos registros do sistema ficam localizadas em
“/var/log”, vale destacar alguns deles que são:
/var/log/messages – possuí registros de acesso ao sistema e em alguns casos também do
Iptables;
/var/log/samba/log.smbd - logs do servidor de arquivos Samba;
/var/log/httpd/(access, error ou agent.log) - logs do servidor web Apache;
/var/log/lpr.log - informações de acesso às impressoras;
/etc/mail/maillog - logs do servidor de e-mails (MILAGRE, 2008).
É muito importante que o perito analise o arquivo “/etc/syslog.conf”, este é o arquivo
de configuração de todos os logs do sistema operacional, ele aponta aonde os arquivos de log
estão guardados. Uma análise cuidadosa deve ser feita nesse arquivo, pois ele pode ter sido
alterado por um criminoso. Outra análise essencial é a verificação do arquivo “/etc/passwd”,
conferir se o criminoso não criou alguma conta com privilégio de administrador que não seja
conhecida, o perito pode ainda, visualizar o arquivo “/var/log/auth.log”, esse arquivo
armazena todas as autenticações no sistema com data e hora, seja ela bem sucedida ou não
(MILAGRE, 2008).
No arquivo “/var/log/daemon.log”, o perito pode identificar informações
envolvendo serviços gerais do sistema, como logs da rede aonde pode-se verificar requisições
de conexão ou de IP’s, se o usuário conectou ou desconectou algum tipo de dispositivo
utilizando portas USB. A função do daemons é registrar todos os tipos de serviços e eventos
do sistema (MILAGRE, 2008).
Na forense computacional quando se trata de buscar logs o comando grep é de
grande ajuda, ele é encontrado em quase todas as distribuições Linux, é um aplicativo para
52
linhas de comandos do tipo binário e funciona como um filtro na busca de logs, por exemplo,
é possível buscar registros que tragam uma determinada string em sua linha (MILAGRE,
2008).
Em uma investigação de incidentes eletrônicos, a análise de logs é de
extrema importância, eis que se a função do perito é apurar a ocorrência de
fatos e identificar a autoria dos mesmos, a função dos logs é servir como
“testemunhas eletrônicas”, aptas a depor sobre incidentes e crimes de
tecnologia (MILAGRE, 2008).
5.5 Tráfego de rede
A captura do tráfego de rede se equipara a uma gravação em vídeo de um
determinado crime, pois a partir dos pacotes capturados, o perito tem a possibilidade de
analisar a comunicação entre o atacante e o alvo, de forma que uma sequência de eventos
pode ser verificada, analisada e comparada a outras evidências encontradas. Durante a análise
do tráfego de rede é possível encontrar diversas evidências, dentre essas evidências as mais
comuns encontradas são as seguintes:
Pacotes contendo endereço IP inválido ou suspeito;
Pacotes trafegando através de portas suspeitas, por exemplo, servidores utilizando portas
desconhecidas acima de 1024 ou pacotes destinados a servidores que deveriam estar
desabilitados;
Tráfego suspeito que não condiga com os padrões de protocolos, por exemplo, pacotes
com flags, opções, fragmentação e tamanho inválidos;
Tráfego através do protocolo Transmission Control Protocol (TCP6) sem estabelecimento
de uma conexão, sem flags ou com números de sequência inválidos;
Tráfego na rede muito intenso de pacotes e serviços que deveriam estar desabilitados, por
exemplo, Internet Control Message Protocol (ICMP7) utilizando a função de echo request
/ reply, que envia mensagens para funções de teste e controle da rede;
Pacote ICMP utilizando a função echo reply sem o correspondente echo request;
Pacotes ICMP utilizando a função echo request / reply com um número de sequência
estático ou não incremental;
Pacotes que possuam em sua área de dados, comandos de Linux e códigos de NOPs;
6 Mais informações sobre o protocolo, consultar a RFC 793.
7 Mais informações sobre o protocolo, consultar a RFC 792.
53
Tráfego muito intenso de pacotes à um determinado tipo de serviço, a uma máquina cliente
ou um servidor;
Requisições HTTP suspeitas, que trazem em suas URLs referências a comandos de Linux
ou scripts suspeitos;
Tráfego de serviços como File Transfer Protocol (FTP8) e TELNET através de portas
incomuns (CASEY, 2002).
5.5.1 Captura e análise do tráfego de rede
Quando se trata de capturar tráfego de rede, existem diversos programas que
realizam essa função, esses programas normalmente são chamados de sniffers. Os sniffers
podem além de capturar pacotes que trafegam na rede, decodificá-los e exibi-los de uma
forma que seja mais legível, ou ainda executar operações complicadas como reconstrução de
sessão e recuperação de arquivos transferidos pela rede (CASEY, 2002).
Segundo Casey (2002), entre os diversos programas existentes para esse tipo de
serviço, um dos mais conhecidos e utilizados é o tcpdump, ele pode ser usado em duas
situações na perícia forense, em uma análise ao vivo, onde ele captura todo o tráfego da rede,
decodifica os pacotes e exibi-os de forma legível à medida que eles vão sendo coletados, ou
armazenar os pacotes em um arquivo binário para uma posterior análise. Caso uma análise ao
vivo não seja necessária, a segunda opção é a mais recomendada, pois o programa faz uma
cópia exata das informações que trafegam na rede. A seguir temos alguns exemplos de
utilização do tcpdump:
# tcpdump -1 -n -e -x -vv -s 1500
# tcpdump -w net.dump
# tcpdump -n -e -x -vv -s 1500 -r net.dump
No primeiro comando, o tcpdump será usado para capturar e exibir os pacotes
conforme eles são coletados, esse comando é mais utilizado na perícia quando é necessário
realizar uma análise ao vivo. A função de cada parâmetro utilizado no primeiro comando é a
seguinte:
8 Mais informações sobre o protocolo, consultar a RFC 959.
54
-l – permite a visualização imediata da saída conforme ela vai sendo produzida;
-n – bloqueia a conversão de endereços IP em nomes;
-e – exibe o cabeçalho da camada de enlace;
-x – exibe o conteúdo dos pacotes no formato hexadecimal;
-vv – permite que seja visualizado informações adicionais;
-s – essa opção determina o número de bytes dos dados que devem ser capturados de cada
pacote, se não for determinado um número, automaticamente o número de bytes será 68
por padrão (CASEY, 2002).
No segundo comando, mais utilizado quando não se precisa realizar uma análise ao
vivo, o tcpdump é usado para armazenar todo o tráfego da rede em um arquivo binário,
através da opção –w. Depois de gerado o arquivo binário, ele poderá ser processado
posteriormente conforme no terceiro comando, através da opção –r (CASEY, 2002).
De acordo com Casey (2002), o tcpdump conta com um conjunto de filtros que
podem ser utilizados na captura de dados, tais filtros permitem, por exemplo, capturar dados
de um determinado host ou de uma determinada porta de comunicação, abaixo temos dois
exemplos de utilização de filtros:
# tcpdump -1 -n -e-x -vv -s 1500 host 192.168.1.13
# tcpdump -1 -n -e -x -vv -s 1500 dst port 21
No primeiro comando serão capturados os pacotes trafegados vindo apenas do host
que possuí o IP 192.168.1.13, já no segundo comando serão capturados apenas os pacotes que
trafegam através da porta de comunicação 21. Para maiores informações sobre regras e filtros
do tcpdump, consultar o manual através da opção man tcpdump no terminal do Linux
(CASEY, 2002).
Na captura e análise do tráfego de rede, além dos sniffers, podem ser usados também
alguns sistemas de detecção de intrusão, que permitem, por exemplo, inspecionar e armazenar
apenas os dados que pareçam suspeitos.
O Snort é um desses sistemas capaz de realizar essas tarefas, ele pode ser utilizado
tanto como um sniffer quanto um sistema de detecção de intrusão, Com o Snort é possível
inspecionar área de dados de um pacote, decodificar as camadas do pacote, e realizar a
comparação com uma lista de regras. O Snort permite configurar diversas regras, por
55
exemplo, configurar uma regra para detectar certos tipos de pacotes, inclusive aqueles
relacionados a atividades adversas, como varredura de portas e ataques de buffer overflow.
Outra capacidade do Snort é a de remontar os pacotes fragmentados antes de comparar com as
assinaturas de ataques conhecidos (CASEY, 2002).
Ao se analisar um tráfego de rede, o sniffer deve ser posicionado em um ponto da
rede que permita o acesso ao tráfego da máquina comprometida. Caso o criminoso tenha
comprometido várias máquinas da rede e a perícia deseje verificar a extensão do problema, o
sniffer deverá ser posicionado em um ponto que permita a monitoração de todo o tráfego da
rede, levando em conta a topologia da rede e a configuração dos nós, como os roteadores,
switches e hubs (CASEY, 2002).
56
6. ESTUDO DE CASO
O estudo de caso a seguir, demonstra um processo de perícia forense em um
notebook operando com o sistema operacional Ubuntu 12.10, esse notebook é suspeito de
armazenar conteúdos referentes à pedofilia, vale ressaltar, que esse processo foi simulado em
um ambiente de teste através de uma máquina virtual, o programa utilizado para construir a
máquina virtual foi o Oracle VM Virtualbox versão 4.1.14 r77440, para a realização da perícia
foi utilizado o sistema operacional FDTK rodando direto do CD e um HD portátil HP de 1
TB. O notebook é composto pelas seguintes configurações:
Marca: Itautec;
Modelo: Infoway Note N8645;
Processador: Intel Core i3 370M 2.4GHZ;
Memória RAM: 4GB;
HD: 500GB.
Na primeira etapa, foi iniciado um processo de boot pelo CD-ROM do sistema
operacional FDTK, após esse processo, foi montada a partição do sistema a ser periciado,
conforme mostrado na figura 15.
Figura 15: Montando a partição do sistema a ser periciado.
Fonte: Elaborado pelo autor.
57
Na segunda etapa, foi criada uma cópia bitstream da partição /dev/sda1 do sistema suspeito e
gerado três hashes (MD5, SHA1 e SHA512) da imagem criada. Para realizar a cópia, foi utilizada a
ferramenta dcfldd, que criou uma imagem da partição juntamente com três arquivos de hash na pasta
Perícia Forense dentro do HD externo, de acordo com as figuras 16 e 17.
Figura 16: Criando imagem do disco e arquivos de hash com a ferramenta dcfldd.
Fonte: Elaborado pelo autor.
Figura 17: Imagem do disco e arquivos de hash gerado.
Fonte: Elaborado pelo autor.
58
Depois de criada a imagem da partição e gerado os arquivos de hash, preenchemos o
formulário de cadeia de custódia, conforme mostrado na figura 18.
Figura 18: Formulário de cadeia de custódia preenchido.
Fonte: Elaborado pelo autor.
Na quarta etapa, foi criada a pasta “/media/caso01”, após isso, a montagem da
imagem do disco na pasta caso01, utilizou-se uma interface de loopback que permite o acesso
(apenas leitura) aos arquivos como se fosse um disco, conforme mostrado abaixo nas figuras
19 e 20.
Figura 19: Montando a imagem em uma interface de loopback.
Fonte: Elaborado pelo autor.
59
Figura 20: Exibição da imagem montada em uma interface de loopback.
Fonte: Elaborado pelo autor.
Na quinta etapa, foi utilizado o comando find com alguns argumentos para procurar
arquivos do tipo imagem, copia-los para a pasta criada dentro do disco rígido externo, gerar os
valores hash e direcionar o resultado para um arquivo do tipo texto, conforme mostrado nas
figuras 21, 22 e 23.
Figura 21: Procurando, copiando e gerando hash dos arquivos do tipo imagem.
Fonte: Elaborado pelo autor.
60
Figura 22: Exibindo as imagens copiadas.
Fonte: Elaborado pelo autor.
Figura 23: Hash e pasta de origem das imagens copiadas.
Fonte: Elaborado pelo autor.
Conforme se pode visualizar na figura 22, foram copiadas diversas imagens com
nomes suspeitos, depois de visualizadas as imagens confirmou-se que se trata de fotos de
pedofilia. Na sexta etapa foi utilizado o mesmo principio da quinta etapa, porém, com
mudança no argumento referente à extensão dos arquivos procurados, já que o objetivo era
61
procurar arquivos do tipo vídeo. As figuras 24, 25 e 26 representam os resultados dos
comandos utilizados.
Figura 24: Procurando, copiando e gerando hash dos arquivos do tipo vídeo.
Fonte: Elaborado pelo autor.
Figura 25: Exibindo os vídeos copiados.
Fonte: Elaborado pelo autor.
62
Figura 26: Hash e pasta de origem dos vídeos copiados.
Fonte: Elaborado pelo autor.
De acordo com a figura 25, é possível verificar que foram encontrados também
vídeos com nomes suspeitos, que posteriormente foram visualizados e confirmados como
sendo vídeos que disseminam pornografia infantil.
Na próxima etapa, foi utilizada a ferramenta foremost para realizar a extração de
dados (data carving) que foram apagados do sistema. Utilizou-se o parâmetro -t para
especificar os tipos de arquivos para recuperação, conforme figura 27.
Figura 27: Recuperação de dados utilizando o foremost.
Fonte: Elaborado pelo autor.
63
As figuras 28 e 29 representam os arquivos recuperados através da ferramenta
foremost, o programa conseguiu recuperar seiscentos e oitenta e quatro imagens e três vídeos
que poderiam ser utilizados como provas em um caso real.
Figura 28: Arquivos jpg recuperados usando o foremost.
Fonte: Elaborado pelo autor.
Figura 29: Arquivos flv recuperados usando o foremost.
Fonte: Elaborado pelo autor.
A penúltima etapa foi gerado um arquivo contendo o MAC Time das evidências, para
verificar quando o conteúdo do arquivo foi alterado pela última vez e quando foi aberto para
leitura pela última vez, conforme figuras 30 e 31.
64
Figura 30: Gerando o MAC Times das evidências.
Fonte: Elaborado pelo autor.
A figura 31 mostra claramente o exemplo de um arquivo, pode-se notar que o
arquivo pedo01.jpg foi alterado pela última vez no dia 05/11/2012 às 16:19:04 (representado
por “m...”) e foi aberto para leitura pela última vez no dia 05/11/2012 às 16:19:33
(representado por “..c.”).
Figura 31: Arquivo contendo o MAC Time das evidências.
Fonte: Elaborado pelo autor.
65
Na primeira parte da última etapa, foi investigado no sistema alguns logs do diretório
“/var/log” que poderiam trazer informações relevantes. Na pasta “/var/log” foi encontrado o
diretório proftpd, o que indicava que esse usuário mantinha um servidor FTP. Ao analisar o
arquivo xferlog que se encontrava dentro do diretório proftpd, foi possível determinar que o
usuário matinha o servidor para realizar transferência de conteúdo de pedofilia, conforme
figura 32. Para finalizar a perícia, foi verificada a integridade da imagem do disco através da
ferramenta PTK, averiguando se não houve modificações das evidências originais através dos
hashes MD5 e SHA1, de acordo com a figura 33.
Figura 32: Verificando o conteúdo do arquivo xferlog.
Fonte: Elaborado pelo autor.
Figura 33: Verificando a integridade da imagem do disco.
Fonte: Elaborado pelo autor.
66
Durante esse estudo de caso, foram mostradas as etapas de uma perícia forense
computacional em busca de provas num caso que envolvia pedofilia, vale lembrar que cada
caso é diferente e que pode necessitar de outras metodologias para se realizar a perícia.
67
7. METODOLOGIA
Para apresentar os conceitos e objetivos do tema proposto, foram realizadas
pesquisas bibliográficas em livros, monografias, teses, artigos e publicações na Internet
relacionada ao tema perícia forense computacional em sistemas operacionais open source.
Através dessas pesquisas bibliográficas foi possível desenvolver um trabalho
contendo os fundamentos teóricos, os procedimentos padrões, as melhores práticas aplicadas
na forense computacional, às evidências digitais mais comuns encontradas nos sistemas
operacionais que utilizam o núcleo do Linux, as ferramentas para preservação, aquisição,
análise e recuperação de evidências que podem ser utilizadas como provas. Ao final do
trabalho foi desenvolvido um estudo de caso envolvendo uma suspeita de armazenamento de
conteúdos referentes à pedofilia, a fim de reforçar e demonstrar na prática as técnicas,
procedimentos e ferramentas da perícia forense computacional que foram abordadas durante o
trabalho.
68
8. RESULTADOS
A perícia forense computacional é a área que atua no combate e solução de crimes
virtuais, ela segue quatro procedimentos que são o seu ciclo de vida, que consiste na
identificação, preservação, análise e apresentação de evidências. Para que esse ciclo seja
completado com sucesso é importante que o perito receba um treinamento de um programa de
melhores práticas na perícia forense, diminuindo o risco de possíveis erros durante a
investigação e garantindo a integridade das provas. Durante o desenvolvimento das quatro
etapas da investigação, a perícia trabalha com diversas ferramentas, utilizam técnicas e
conhecimentos gerais de computadores, que são aplicados na investigação para encontrar
evidências que sirvam como provas para a solução de um crime digital. As evidências são
diversas e cada caso é diferente, são vários tipos de situações, diferentes tipos de sistemas
operacionais a serem investigados, servidores, análise em redes de computadores, por isso é
importante que o perito forense sempre esteja atualizado e tenha um conhecimento amplo
sobre computadores e outros dispositivos digitais.
69
9. CONCLUSÕES
Este trabalho apresentou uma explicação específica sobre a perícia forense aplicada a
sistemas operacionais open source, os procedimentos, as melhores práticas, alguns tipos de
evidências que podem ser encontradas e algumas ferramentas. Ele inicia de forma teórica para
que se possam compreender as práticas, procedimentos e funcionamento da forense
computacional, após isso, foram demonstradas as evidências mais comuns encontradas em
sistemas operacionais que utilizem o núcleo Linux, algumas técnicas, ferramentas e comandos
que são utilizados pela perícia, na tentativa de se encontrar evidências em diversos
dispositivos, cujo objetivo é obter provas concretas. No final do trabalho foi apresentado um
estudo de caso em um ambiente de teste que mostrou a realização de uma perícia em um caso
envolvendo pedofilia.
Ressaltou-se a importância das melhores práticas aplicadas à perícia forense e como se
deve atuar de forma correta na identificação, aquisição, análise e preservação de evidências.
Apesar de a perícia possuir ainda poucos pesquisadores, existem hoje diversas ferramentas e
sistemas operacionais livres que permitem a execução completa das quatro etapas
mencionadas acima, esses sistemas e ferramentas estão disponíveis na Internet para qualquer
pessoa. As variedades de ferramentas abrem uma gama de possibilidades de se resolver um
crime digital, seja ele realizado de qualquer computador que opere com qualquer tipo de
sistema operacional.
A perícia forense computacional é uma área em crescimento no Brasil e no mundo. O
mercado de trabalho precisará cada vez mais de peritos forenses bem treinados para atuarem
no combate a crimes virtuais, seja em instituições estaduais, federais, privadas ou
simplesmente na área de pesquisa, desenvolvendo ou aperfeiçoando ferramentas já existentes,
tendo em vista que a grande maioria é de código livre, o que permite que qualquer pessoa com
conhecimento mais profundo em informática atue nessa área.
70
10. REFERÊNCIAS
BUCKEYE, B; LISTON, K. Recovering deleted files in Linux. Disponível em: <
http://www.samag.com/documents/s=7033/sam0204g/sam0204g.htm>. Acesso em: 01 out.
2012.
BURDACH, Mariusz. Forensic Analysis of a Live Linux System. Disponível em: <
http://www.symantec.com/connect/articles/forensic-analysis-live-linux-system-pt-1>. Acesso
em: 14 mai. 2012.
CARRIER, B. A hypothesis-based approach to digital forensic investigations. 2006. 169f.
Dissertação (Doutorado em Filosofia) - Center for Education and Research in Information
Assurance and Security, Purdue University, West Lafayette, 2006.
CARRIER, B. Splitting the disk – Part 1. Disponível em: <
http://www.sleuthkit.org/informer/sleuthkit-informer-2.html>. Acesso em: 26 set. 2012.
CASEY, E. Digital evidence and computer crime: Forensic Science, Computers and the
Internet. San Diego: Academic Press, 2000.
CASEY, E. Digital evidence and computer crime: Forensic Science, Computers and the
Internet. 3 ed. San Diego: Academic Press, 2011.
CASEY, E. Handbook of Computer Crime Investigation. San Diego: Academic Press,
2002.
CASEY, E. Handbook of Digital Forensics and Investigation. San Diego: Academic Press,
2010.
DANIEL, Larry; DANIEL, Lars. Digital Forensics for Legal Professionals: Understanding
Digital Evidence from the Warrant to the Courtroom. Waltham: Elsevier, 2012.
71
ESPINDULA, Alberi. Função Perícial do Estado. Disponível em: <
http://www.espindula.com.br/conteudo.php?id=7>. Acesso em: 10 mai. 2012.
FARMER, Dan; VENEMA, Wietse. Perícia Forense Computacional: Teoria e Prática
Aplicada. São Paulo: Pearson Prentice Hall, 2007.
FEDERAL BUREAU OF INVESTIGATION. Forensic Science Communications.
Disponível em: <http://www.fbi.gov/about-us/lab/forensic-science-
communications/fsc/april2000/swgde.htm>. Acesso em: 20 set. 2012.
FEDERAL EVIDENCE. Federal rules of evidence 2012. Disponível em:
<http://federalevidence.com/rules-of-evidence>. Acesso em: 11 mai. 2012.
FREITAS, Andrey Rodrigues de. Perícia Forense Aplicada à Informática. Rio de Janeiro:
Brasport, 2006.
INTERNATIONAL ORGANIZATION ON COMPUTER EVIDENCE. Guidelines for Best
Practice in the Forensic Examination of Digital Technology. Disponível em: <
http://www.ioce.org/fileadmin/user_upload/2002/ioce_bp_exam_digit_tech.html>. Acesso
em: 20 set. 2012.
KRUSE II, Warren G; HEISER, Jay G. Computer Forensics: Incident Response
Essentials. Massachusetts: Addison-Wesley, 2002.
LERNER, Lee K; LERNER, Wilmoth B. World of Forensic Science. Farmington Hills:
Thomson Gale, 2006.
MILAGRE, José. Análise Forense Computacional de Logs em Sistemas Linux: as
testemunhas da rede. Disponível em: < http://imasters.com.br/artigo/10207/gerencia-de-
ti/analise-forense-computacional-de-logs-em-sistemas-linux-as-testemunhas-da-rede>. Acesso
em: 18 out. 2012.
NETHERLANDS FORENSIC INSTITUTE. Disponível em:
<http://www.forensicinstitute.nl/research_development/research_programmes/cyber_crime>.
Acesso em: 7 mai. 2012.
72
RABELO, Luiz. File Slack Space. Disponível em: <
http://forensics.luizrabelo.com.br/2011/04/file-slack-space.html>. Acesso em: 01 out. 2012.
REIS, Marcelo Abdalla dos. Forense computacional e sua aplicação em segurança
imunológica. 2003. 241f. Dissertação (Mestrado em Ciência da Computação) – Universidade
de Campinas, Campinas, 2003.