VALIDAÇÃO DE DADOS ATRAVÉS DE HASHES CRIPTOGRÁFICOS: Uma Avaliação na Perícia Forense
Computacional Brasileira
por
José Paulo da Silva Lima
Dissertação de Mestrado
[email protected] www.cin.ufpe.br/∼posgraduacao
RECIFE 2015
Pós-Graduação em Ciência da Computação
José Paulo da Silva Lima
VALIDAÇÃO DE DADOS ATRAVÉS DE HASHES CRIPTOGRÁFICOS: Uma Avaliação na Perícia Forense Computacional Brasileira
Este trabalho foi apresentado ao Programa de Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco como requisito parcial para obtenção do grau de Mestre em Ciência da Computação.
Orientador: Ruy José Guerra Barretto de Queiroz.
RECIFE 2015
L732v Lima, José Paulo da Silva.
Validação de Dados Através de Hashes Criptográficos: Uma Avaliação na Perícia Forense Computacional Brasileira / José Paulo da Silva Lima – Recife: O autor, 2015.
115 f.: fig., tab.
Orientador: Ruy José Guerra Barretto de Queiroz.
Dissertação (Mestrado) – Universidade Federal de Pernambuco. CIn., Ciência da Computação, 2015.
Inclui referências e anexos.
1. Criptografia de dados (computação). 2. Computadores - Medidas de segurança. 2. Crime por computador - Investigação. I. Queiroz, Ruy José Guerra Barretto de. (Orientador). II. Título.
Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco, sob o título “Validação de Dados Através de Hashes Criptográficos:
Uma Avaliação na Perícia Forense Computacional Brasileira” orientada pelo Prof. Ruy José Guerra Barretto de Queiroz e aprovada pela Banca Examinadora formada
pelos professores:
______________________________________________ Prof. Vinicius Cardoso Garcia
Centro de Informática/UFPE
______________________________________________ Prof. Alexandre Freire Pimentel
Departamento de Ciências Jurídicas / UNICAP
_______________________________________________ Prof. Ruy José Guerra Barretto de Queiroz
Centro de Informática / UFPE
Visto e permitida a impressão. Recife, 31 de agosto de 2015.
___________________________________________________
Profa. Edna Natividade da Silva Barros
Coordenadora da Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade Federal de Pernambuco.
que tanto trabalharam e se esforçaram em me dar uma educação de qualidade.
Agradeço a Deus pela minha vida, pois sinto que sou abençoado por ter uma família unida, ter saúde e inteligência para desenvolver minha vida acadêmica e profissional. Espero que esta dissertação seja uma das muitas conquistas que serei conduzido por Ele a alcançar.
Agradeço meu pai José Teixeira e minha mãe Severina Maria por terem se esforçado tanto para dar uma educação de qualidade, tanto a minha irmã Maria Paula quanto a mim.
Agradeço a José Leandro pelos anos de convivência e, por ter se tornado meu maior confidente e meu principal apoio nos momentos difíceis, e por dividir comigo todos os risos e alegrias vividas.
Agradeço ao meu orientador, o professor Ruy de Queiroz, por ter transmitido tanto conhecimento e ter me dado a liberdade para pesquisar e desenvolver este tema. Agradeço também aos professores Alexandre Pimentel e Vinicius Garcia que compuseram a banca de avaliação.
Agradeço a CAPES, por ter financiado parte da minha pesquisa. Agradeço também a Universidade Federal de Pernambuco, especialmente ao Centro de Informática, por oferecer uma excelente estrutura para que pudesse desenvolver meu trabalho acadêmico. Agradeço a todos professores, funcionários e alunos do CIn com quem tive convivência e partilha de conhecimentos. Muito obrigado a todos!
Este trabalho foi desenvolvido no LATEX, e por isso agradeço ao grupo abnTEX21 que contribuíram no desenvolvimento desse projeto, auxiliando-me na escrita desta dissertação dentro das normas da ABNT.
A todos que me ajudaram de alguma forma na realização deste trabalho, meu mais sincero obrigado.
A criptografia tem três princípios básicos: garantir a confidencialidade das mensagens, que elas não sejam alteradas por intrusos e que a mensagem flua entre o remetente e destinatário sem que haja a interrupção desta comunicação. Visto resumidamente as metas de um esquema criptográfico, podemos observar o quão importante a criptografia é nos dias atuais. Funções hash são usadas comumente para garantir a integridade de dados, ou seja, garantir que os dados não foram mudados. Os hashes acabam sendo usados em diversas áreas, especialmente na perícia computacional onde o perito prova que não alterou os dados que ele coletou. Porém, seria necessário que houvesse um maior cuidado com a utilização de hashes, afinal existem muitos deles que são considerados inseguros e podem continuar a ser usados indevidamente. Visto isso, este trabalho tenta analisar o cenário atual dentro da perícia forense computacional e da legislação de alguns países, com o objetivo de apontar melhorias para que despertem uma preocupação quanto a confiança na utilização dos hashes criptográficos.
The cryptography has three basic principles: ensure the confidentiality of messages, don’t be changed by intruders and the message flow between the sender and the recipient without any interruption in communication. Considering the goals of a cryptographic scheme, we can realise how important encryption is today. Hash functions are commonly used to ensure data integrity, that is, ensure that the data haven’t changed. Hashes are used in various fields, especially in computer forensics where the specialist proves that he didn’t manipulate the data he collected. However, it would be necessary a greater concern with the use of hashes, after all there are many of them who are considered unsafe and can to continue to be used incorrectly. Considering it, this paper attempts to analyze the current situation within the computer forensic expertise and the legislation of some countries, in order to point out improvements to awaken a concern with the confidence in the use of cryptographic hashes.
Figura 1 – Incidentes reportados entre 2008 e 2014 . . . 34
Figura 2 – Incidentes reportados em 2014 . . . 37
Figura 3 – Fases do processo de investigação forense . . . 48
Figura 4 – Início da cifragem MD5 . . . 66
Figura 5 – Bloco pronto para a cifragem MD5 . . . 66
Figura 6 – Modelo de execução do SHA-1 . . . 71
Tabela 1 – Comportamento dos malwares . . . . 38
Tabela 2 – Representatividade de peritos em informática no Brasil . . . 43
Tabela 3 – Algoritmos simétricos, assimétricos, híbridos e hashes . . . . 58
Tabela 4 – Funções hash: estado da arte . . . 63
Tabela 5 – Constantes e funções usadas em cada fase do SHA-1 . . . 70
ABNT Associação Brasileira de Normas Técnicas abnTEX2 Absurdas Normas para TEX
AES Advanced Encryption Standard API Application Programming Interface Bit Binary digit
CAINE Computer Aided Investigative Environment
CAPES Coordenação de Aperfeiçoamento de Pessoal de Nível Superior
CD Compact Disc
CERT.br Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil
CIn Centro de Informática da UFPE CNJ Conselho Nacional de Justiça CPU Central Processing Unit
DEFT Digital Evidence & Forensics Toolkit DES Data Encryption Standard
DoS Denial of Service DVD Digital Versatile Disc ECC Elliptic Curve Cryptography FDTK Forense Digital ToolKit
HD Hard Disk
HMAC Hash-based Message Authentication Code IBM International Business Machines Corporation ICP-Brasil Infraestrutura de Chaves Públicas Brasileira IDEA International Data Encryption Algorithm
IPSec IP Security Protocol
MAC Message Authentication Code MD4 Message-Digest algorithm 4 MD5 Message-Digest algorithm 5
NIST National Institute of Standards and Technology NMAC Nested Message Authentication Code
NSA National Security Agency N/A Não aplicável
N/R Não respondeu
PJe Processo Judicial Eletrônico PROJUDI Processo Judicial Digital P2P Peer-to-peer
RAID Redundant Array of Inexpensive Disks RAM Random Access Memory
RC6 Rivest Cipher 6
REMnux Reverse-Engineering Malware
RIPEMD RACE Integrity Primitives Evaluation Message Digest RSA Rivest-Shamir-Adleman Algorithm
SAJ Sistema de Automação da Justiça
Senasp Secretaria Nacional de Segurança Pública SET Secure Electronic Transaction
SHA Secure Hash Algorithm
S/MIME Secure/Multipurpose Internet Mail Extensions TLS Transport Layer Security
UFPE Universidade Federal de Pernambuco UNICAP Universidade Católica de Pernambuco VI Vetor de Inicialização
VM Virtual Machine
≈ Aproximadamente
← Atribuição
k Concatenação
:= Definição
Deslocamento de bits a esquerda
6= Diferente
R Grupo dos números reais Q Grupo dos números racionais
= Igualdade
→ Implica, mapeamento da função
∈ Pertence
¬ Operador lógico de negação ∧ Operador lógico “E”
∨ Operador lógico “OU”
⊕ Operador lógico “OU EXCLUSIVO”
1 INTRODUÇÃO . . . 27 1.1 Objetivos . . . 30 1.1.1 Objetivo Geral . . . 30 1.1.2 Objetivos Específicos . . . 30 1.2 Justificativa . . . 30 1.3 Metodologia . . . 31
1.3.1 Quanto aos Fins . . . 31 1.3.2 Quanto aos Meios . . . 32 1.3.3 Quanto a Forma de Abordagem . . . 32
2 REFERENCIAL TEÓRICO . . . 33 2.1 Segurança Computacional . . . 33
2.1.1 Malwares . . . . 35
2.1.1.1 Defesa usando a criptografia . . . 38
2.2 Perícia Forense . . . 40
2.2.1 Perícia Forense Computacional . . . 42
2.3 Criptografia . . . 48 2.3.1 Conceitos básicos . . . 48 2.3.1.1 Tipos de ataque . . . 52 2.3.1.2 Sigilo perfeito . . . 54 2.3.1.3 MAC . . . 56 2.3.1.3.1 HMAC e NMAC . . . 57 2.3.1.4 Assinatura Digital . . . 59 2.3.1.5 Hash Criptográfico . . . 60 2.3.2 MD5 . . . 65 2.3.2.1 Evolução do MD4 . . . 65 2.3.2.2 Funcionamento do MD5 . . . 66 2.3.2.3 Falhas do MD5 . . . 67 2.3.3 SHA . . . 68 2.3.3.1 Funcionamento do SHA . . . 69 2.3.3.2 Falhas do SHA-0 e SHA-1 . . . 71 2.3.3.3 Diferenças entre as versões do SHA . . . 72
2.3.4 Curvas Elípticas . . . 73
2.3.4.1 Introdução matemática. . . 73 2.3.4.2 Esquema criptográfico . . . 74
3.1.1 Brasil . . . 78
3.1.1.1 Processo Eletrônico Brasileiro . . . 80
3.1.2 União Europeia . . . 82 3.1.3 Reino Unido . . . 83 3.1.4 Estados Unidos . . . 84
3.2 Análise dos fatos . . . 85
3.2.1 Criptografia utilizada . . . 85 3.2.2 Perícia Forense Brasileira . . . 87 3.2.3 Atual legislação . . . 88
4 CONSIDERAÇÕES FINAIS . . . 89 4.1 Trabalhos Futuros . . . 89
Referências . . . 91
ANEXOS
99
ANEXO A – DIAGNÓSTICO DA PERÍCIA CRIMINAL NO BRASIL101
ANEXO B – PADRÕES E ALGORITMOS CRIPTOGRÁFICOS DA ICP-BRASIL . . . 103
ANEXO C – DIRECTIVA 1999/93/CE DE 13 DE DEZEMBRO DE 1999 . . . 113
1 Introdução
Desde de que a escrita foi criada, passamos a registrar e validar informações. Seja através de uma assinatura, um papel timbrado ou carimbo, temos ciência de que tal documento veio do suposto autor ao notar quaisquer destes identificadores citados. Porém falsificar qualquer um desses “validadores” é algo totalmente trivial, além disso não há garantias de que o documento foi alterado durante seu percurso.
A partir desta preocupação em garantir a não alteração da mensagem e que haja confidencialidade de seu conteúdo, surgem os conceitos de criptografia. A palavra criptografia surgiu da união das palavras gregas “kryptós” que significa “escondido”, e “gráphein” que significa “escrita”.
Antes mesmo de surgir o conceito de criptografia, hieróglifos1 eram produzidos com uma linguagem particular, onde muitos deles permanecem intraduzíveis até hoje por não haver conhecimento de como foram escritos. Comparando com nossa criptografia atual, não há conhecimento da chave desses hieróglifos.
Até o século XIX tanto a escrita quanto a criptografia evoluíram, mas durante o século XX tivemos uma grande transformação com a invenção do computador e da internet. Os meios como a informação era transmitida e como garantir sua autenticidade, também sofreriam mudanças.
A comunicação, que antes era feita somente em meio físico através da escrita em papel, hoje pode até nem ser palpável, visto que a informação agora flui em meio digital. A escrita hoje é apenas um dos modos de se passar informação, esta pode ser repassada através de vídeos, fotos, áudios e vários outros formatos de arquivos circulando através da internet. Com a digitalização da comunicação, as garantias de segurança tiveram de ser alocadas junto ao canal de transmissão dos dados.
O volume de dados que são criados e transferidos diariamente no mundo chega a ser algo imensurável, porém uma preocupação comum ligada a todo este volume de informações é a segurança para transmiti-los e guardá-los, sem haver alteração ou interceptação de algum pacote de dados.
Esta preocupação em manter tais informações seguras, faz com que a criptografia seja cada vez mais utilizada para garantir sigilo e confiabilidade dos dados. Seu uso varia desde de validar um simples torrent, até sigilar táticas de um exército durante alguma intervenção secreta.
1 “Cada um dos sinais da escrita pictográfica dos antigos egípcios e de outros povos, como os maias.
A criptografia chegou a compor a comunicação alemã durante a 2ª guerra mundial. A Alemanha dominou o início da guerra devido ao Enigma, que era a máquina de encriptação usada pelos alemães para sigilar todas as mensagens trocadas. Porém a Alemanha saiu derrotada depois que a criptografia do Enigma foi quebrada na Inglaterra, por um grupo de criptógrafos liderados por Alan Turing.
Devido ao avanço tecnológico e a grande revolução que tivemos na criptografia graças ao poder computacional, podemos dizer que estamos presenciando o momento da criptografia moderna, que tenta garantir o mesmo sigilo, integridade e disponibilidade da criptografia clássica, utilizada antes da invenção dos computadores.
A criptografia moderna surgiu no período após a Segunda Guerra mundial com um desafio maior, pois um computador pode simular vários cenários e uma simples cifragem, por exemplo, de embaralhamento ou de substituição de caracteres, é trivialmente quebrada usando a computação dos dados recebidos ou até mesmo com um Ataque de Força Bruta. Na criptografia moderna os esquemas de cifragem se tornaram mais robustos pensando que nem mesmo o mais potente computador consiga quebrar o esquema criptográfico.
Então os atuais algoritmos utilizam-se de artifícios criptográficos que o deixam seguros, como a utilização de MAC a fim de garantir a integridade e autenticidade da mensagem através de um cálculo envolvendo a mensagem a ser transmitida e uma chave secreta, ou também a utilização do HMAC que é uma variação do MAC que envolve uma função hash.
Com isso já podemos entender o quão necessário a criptografia é, principalmente nos atuais dias onde existe uma grande quantidade e tipos diversos de arquivos. O carimbo que antes dava a autenticidade de um documento foi substituído por assinaturas digitais, hashes e outros tipos de validação da criptografia.
Os hashes trabalham pegando uma entrada de tamanho variável, seja ela um texto ou arquivo qualquer, e gerando uma saída de tamanho fixo. Este cálculo hash é uma boa maneira de se provar a integridade dos dados em que se foram feitos os cálculos.
Outra área que teve grandes avanços no período pós-guerra foi a Perícia Forense, que também teve de se adaptar a era dos computadores. Foi aí que surgiu a Forense Computacional, que não difere no trabalho e nos objetivos das outras área da perícia. O perito forense computacional tem o mesmo objetivo que qualquer outro perito: coletar evidências, analisá-las e construir hipóteses.
A perícia forense computacional, área da computação que tenta solucionar questões durante investigações, é uma profunda conhecedora e utilizadora de métodos criptográficos, visto que às vezes é necessário quebrar alguma trava criptográfica para obter os dados e, é necessário também, que os peritos utilizem criptografia para afirmar que não houve manipulação de dados durante seu estudo.
Neste trabalho definimos como área de estudo a área da perícia criminal, onde geralmente utiliza-se nas suas investigações o hash criptográfico para garantir a integridade do que foi coletado, afirmando assim que tal dado não foi alterado. Isto acaba sendo essencial no trabalho de um perito criminal, pois poder-se-á provar que ele não manipulou as evidências coletadas e quando provado criptograficamente o juiz pode classificar a evidência como prova.
Porém o perito deve ficar atento ao escolher qual hash ele usará, pois há vários algoritmos que não são considerados seguros a um bom tempo. Um algoritmo não é considerado mais seguro quando se é encontrado alguma colisão, ou seja, duas diferentes entradas que resultam num mesmo valor. As colisões podem ser apontadas através de ataques teóricos (que através de algum artigo aponta falha na manipulação do próprio algoritmo que possa levar a uma colisão) ou através de ataques práticos (que provam em algum experimento a ocorrência de uma colisão).
Portanto, escolher um bom algoritmo de hash ajuda a aumentar a confiança na integridade dos dados e, em contra partida, a escolha de um mau algoritmo leva a falta de segurança, pois não há garantia que não houve manipulação no hash gerado.
Devido a todas as mudanças que tivemos na sociedade graças ao avanço da utilização de artifícios computacionais e criptográficos, alguns países criaram legislações específicas com o intuito de validar a utilização destes meios nos processos. Como por exemplo, validar o uso de assinaturas digitais na troca de documentos.
Apesar de termos algumas leis que atuam na área criptográfica, elas carecem de melhorias. Ou encontram-se desatualizadas, ou foram mal escritas deixando muitas lacunas em aberto. Um exemplo disso é que em nenhuma legislação brasileira há um detalhamento técnico de como devem funcionar esquemas criptográficos para que sejam considerados seguros.
Esta despreocupação quanto a qualidade e segurança da criptografia pode causar danos. No Brasil, por exemplo, temos problemas em julgamentos que utilizam evidências digitais coletados por peritos forense computacionais, pois pode ser utilizado para validar as evidências o hash do algoritmo MD5, que não é considerado seguro a algum tempo. Caso um simples erro de escolha de qual função criptográfica deve ser utilizada ocorra, todo o trabalho pericial pode ser descartado. No caso de troca de mensagens, um mau algoritmo pode não garantir mais sua integridade e sigilo.
Em meio a tantas preocupações com o armazenamento e transmissão de dados, porque não há um maior zelo com a criptografia utilizada para obter uma segurança estável?
1.1
Objetivos
1.1.1
Objetivo Geral
Avaliar como a validação de dados acontece na perícia forense computacional brasileira.
1.1.2
Objetivos Específicos
1. Elencar os métodos de validação utilizados na Perícia Forense Computacional, com enfoque nos que são utilizados no Brasil.
2. Avaliação dos hashes criptográficos utilizados na validação de dados na perícia forense computacional no Brasil.
3. Comparar com outros países como a validação, através de assinaturas digitais, são utilizadas.
4. Pesquisar sobre avanços já obtidos no âmbito pericial na área criptográfica.
1.2
Justificativa
Visto o quão é utilizada a criptografia nas operações diárias, não podemos negar que seu uso é essencial hoje em dia para realizar nossas atividades. A evolução tecnológica nos fez dependentes da computação para desenvolver nossos trabalhos. Graças ao expressivo número de dados que manipulamos, a preocupação com a segurança deles deve ser algo constante.
Obviamente tivemos avanços na criptografia que objetivavam o acréscimo no nível de segurança. Este avanço muitas vezes foi identificando falhas que algum modelo de cifragem possuía e há-se então a recomendação de mudar o modelo ou migrar para um outro melhor.
Devido ao grande número de funções criptográficas e a importância do trabalho de um perito computacional, surge a preocupação com a qualidade e a segurança desta área. Por trabalhar com grandes volumes de dados, tendo um trabalho minucioso e imparcial, garantir a autenticidade dos dados é parte fundamental no trabalho pericial. Todo o trabalho de um perito pode ser descartado caso ele use artifícios criptográficos inseguros.
Em alguns países mundo afora, temos leis que regem a utilização da criptografia. Porém já surge a necessidade de termos leis que busquem melhorar a escolha de criptografias seguras, que desperte a necessidade de avaliar os esquemas que podem ser utilizados dentro da segurança computacional.
O Poder Judiciário brasileiro também tem sua preocupação com o trabalho dos peritos, mas não por completo. Preocupa-se basicamente em fornecer investimentos para auxiliar no trabalho da área, seja ajudando na formação ou investindo no ambiente de trabalho. Tanto no Brasil quanto em outros países temos algumas leis que tentam regular a utilização de algoritmos criptográficos, como por exemplo nos Estados Unidos, no Reino Unido e na União Europeia. Podemos então observar e traçar parâmetros de como está o envolvimento com os hashes.
Mas a carência principal é uma regulamentação na escolha de hashes seguros para serem utilizados, por exemplo, na forense computacional. Sabemos que em um julgamento não se pode apontar culpados sem provas, e por isso a importância em validar as evidências coletas por peritos é fundamentada no projeto que eles desenvolveram durante a investigação. A qualidade criptográfica utilizada é fundamental para validar as evidências e o juiz decidir se podem ser consideradas como prova.
A questão que envolve tanto os peritos quanto a Justiça brasileira é se há alguma preocupação de como as evidências são validadas. Há alguma verificação quanto a qualidades dos hashes utilizados?
1.3
Metodologia
Conforme afirma Köche (2007 apud PRODANOV; FREITAS, 2013, p. 49) “o planejamento de uma pesquisa depende tanto do problema a ser estudado, da sua natureza e situação espaço-temporal em que se encontra, quanto da natureza e nível de conhecimento do pesquisador”.
Levando-se em conta as variáveis citadas por Köche (2007 apud PRODANOV; FREITAS, 2013), podemos afirmar que cada trabalho acaba sendo único. “Isso significa que podem existir vários tipos de pesquisa. Cada tipo possui, além do núcleo comum de procedimentos, suas peculiaridades próprias.” (PRODANOV; FREITAS, 2013, p. 50).
1.3.1
Quanto aos Fins
Este trabalho se classifica como pesquisa exploratória e descritiva. Classifica-se como exploratória devido as sucessivas pesquisas bibliográficas realizadas, tendo como objetivo obter conhecimento necessário para identificar problemas voltados a segurança de hashes no âmbito da perícia forense computacional. A pesquisa não ficou restrita apenas a área acadêmica da criptografia.
Segundo Prodanov e Freitas (2013, p. 51-52) a pesquisa exploratória tem por objetivo buscar mais informações sobre um assunto tendo como meta o levantamento de definições para esboço da pesquisa.
A pesquisa exploratória possui planejamento flexível, o que permite o estudo do tema sob diversos ângulos e aspectos. Em geral, envolve:
• levantamento bibliográfico;
• entrevistas com pessoas que tiveram experiências práticas com o problema pesquisado;
• análise de exemplos que estimulem a compreensão.
(PRODANOV; FREITAS, 2013, p. 52).
Este trabalho também pode ser classificado como pesquisa descritiva, afinal após o levantamento feito de maneira exploratória das informações necessárias foi-se necessário agrupá-las para ser feita uma análise a fim de identificar problemas e sugerir soluções.
Prodanov e Freitas (2013, p. 52) definem que nas “pesquisas descritivas, os fatos são observados, registrados, analisados, classificados e interpretados, sem que o pesquisador interfira sobre eles [. . . ]”.
1.3.2
Quanto aos Meios
O trabalho foi realizado através de sucessivas pesquisas acadêmicas em livros, artigos e outros tipos de publicações. Esta dissertação, portanto, é caracterizada como uma Pesquisa Bibliográfica, pois foi
[. . . ] elaborada a partir de material já publicado, constituído principal-mente de: livros, revistas, publicações em periódicos e artigos científicos, jornais, boletins, monografias, dissertações, teses, material cartográfico, internet, com o objetivo de colocar o pesquisador em contato direto com todo material já escrito sobre o assunto da pesquisa. (PRODANOV; FREITAS, 2013, p. 54).
1.3.3
Quanto a Forma de Abordagem
A pesquisa deste trabalho é classificada como pesquisa qualitativa, já que tem como objetivo compreender e apresentar soluções do contexto pesquisado.
Na abordagem qualitativa, a pesquisa tem o ambiente como fonte direta dos dados. [. . . ] Nesse caso, as questões são estudadas no ambiente em que elas se apresentam sem qualquer manipulação intencional do pesquisador. [. . . ] Os dados coletados nessas pesquisas são descritivos, retratando o maior número possível de elementos existentes na realidade estudada. (PRODANOV; FREITAS, 2013, p. 70).
2 Referencial Teórico
2.1
Segurança Computacional
Certamente a maior preocupação existente na computação atual é quanto à segu-rança, não só a segurança voltada aos dados armazenados, mas a segurança de transmissão de mensagens. A segurança não deve ser baseada na ocultação dos dados, mas deve ser baseada na garantia de que os dados estarão acessíveis a todos os usuários autorizados e que somente esses usuários autorizados tenham permissão de acessar e manipular esses dados.
A segurança da informação é alcançada pela implementação de um conjunto adequado de controles, incluindo políticas, processos, proce-dimentos, estrutura organizacional e funções de software e hardware. Estes controles precisam ser estabelecidos, implementados, monitorados, analisados criticamente e melhorados, quando necessário, para assegurar que os objetivos do negócio e a segurança da informação da organização sejam atendidos. (ABNT, 2013, p. x).
De forma resumida, podemos definir que a segurança computacional trabalha com técnicas e protocolos digitais definidos, a fim de garantir princípios básicos conforme citam Goodrich e Tamassia (2013). A segurança computacional é baseada em 3 princípios: confidencialidade, integridade e disponibilidade. Esses 3 princípios são base para o desen-volvimento de qualquer aplicação que tenha por objetivo ampliar o nível de segurança dos dados, visto que o ambiente computacional necessita desta segurança para assegurar as inúmeras operações feitas principalmente, pela internet. De exemplo podemos citar o armazenamento em nuvem, que populariza cada vez mais seu serviço entre os usuários.
A confidencialidade envolve a proteção de dados, deixando que apenas usuários permitidos tenham acesso a tal dado. Ela pode ser garantida através da criptografia dos dados, e até mesmo com a imposição de barreiras físicas para limitar o acesso a essa informação protegida. Em sistemas mais robustos ou que a informação seja de grande importância, é normal que haja todo um histórico salvo de acesso e edições dos dados juntamente com os dados do usuário que realizou a ação.
A integridade garante que os dados não foram alterados por alguém que não possuía acesso a eles. Uma forma simples de garantir versões que não foram alteradas, é com backups periódicos dos dados. Para validar a não alteração dos dados, podemos utilizar checksums, que são somas de verificação que levam em conta todo o conteúdo do arquivo. Na criptografia o checksum mais utilizado é o hash, onde cada arquivo possui uma sequência única.
Já a disponibilidade é a propriedade dos dados serem acessíveis para acesso e edição por usuários permitidos. Um artifício utilizado comumente para garantir a disponibilidade são as Redundâncias Computacionais, temos como exemplo as RAID1, Servers Farms ou Cluster Beowulf2. Vale a pena ressaltar ainda sobre a disponibilidade, que durante algum
tempo foi fortemente atacada através de Ataques de Negação de Serviço (DoS).
Ainda segundo Goodrich e Tamassia (2013, p. 14) os Ataques de Negação de Serviço são “a interrupção ou degradação de um serviço de dados ou de acesso à informação [. . . ]. A negação de serviço é um ataque a disponibilidade”. Os spams podem ser considerados um Ataque DoS, já que congestionam o servidor de e-mail.
Segundo levantamento da CERT.br (2015) nos últimos anos os ataques DoS eram inexpressivos, visto que no período de 2008 a 2013 não ultrapassaram 0,3%, mas no ano de 2014 apresentou um salto para 21,39%. Em números o crescimento foi de 1.030 ataques em 2013 para 223.935 ataques em 2014, um número 217 vezes maior:
Figura 1: Incidentes reportados entre 2008 e 2014
2014 2013 2012 2011 2010 2009 2008 0 20 40 60 80 100 Inciden tes rep ortados (%)
Worm DoS Invasão Web Scan Fraude Outros
Fonte: Gráfico desenvolvido pelo autor com dados extraídos no site da CERT.br (2015).
Além da preocupação existente com Ataques DoS, as ameaças mais comuns enfren-tadas são os malwares, que invadem várias máquinas diariamente. Por serem um software malicioso podem repetir e espalhar seus ataques a diversos alvos, diferentemente do Ataque DoS que tenta derrubar um serviço específico de uma determinada aplicação web.
1 É um subsistema de armazenamento com alguns dispositivos trabalhando simultaneamente afim de
garantir segurança e desempenho através da redundância dos dados.
2 Tanto Servers Farms quanto Cluster Beowulf são um grupo de computadores funcionando para
2.1.1
Malwares
Um grande desafio da segurança computacional são os malwares, que são uma constante ameaça aos princípios da segurança computacional. Malware, também conhecido por software malicioso, “é um software cuja existência ou execução tem consequências negativas ou involuntárias”, segundo afirmam Goodrich e Tamassia (2013, p. 171).
Hoje, malwares tornaram-se uma das graves ameaças na internet. A análise do comportamento de cada malware é um elemento crítico na realização de esforços de defesa e de mitigação de malwares. Existem dois métodos de análise de malwares - análise estática de malwares e análise dinâmica demalwares. A análise estática requer uma análise do código domalware. O código do malware geralmente não está disponível para análise e até mesmo se ele estiver disponível, o autor do malware muitas vezes ofusca o código, tornando a análise estática tarefa difícil e demorada.
Em contraste com a análise estática, a análise dinâmica de malwares permite que o analista monitore a execução domalware a cada passo. O
malware geralmente é executado em uma sandbox ou VM para monitorar
o comportamento de tempo de execução domalware. Ao contrário de análise estática, a análise dinâmica é imune a ofuscação de código. A análise dinâmica pode ser feita de duas maneiras:
• Capturar a imagem do estado do sistema antes da execução do
malware e, em seguida, comparando-a com o estado do sistema
após a execução domalware;
• Execução domalware e observação do seu comportamento durante a execução.
(TILBORG; JAJODIA, 2011, p. 367, tradução nossa).
Esta análise dos malwares além de identificar de qual tipo de malware estamos tratando, é possível entender seu funcionamento e a partir daí buscarmos solução contra este ataque. Entre os malwares mais conhecidos está o vírus, que leigos chegam a pensar que os vírus de computador são os únicos malwares existentes. Mas na verdade
[. . . ] um vírus é considerado uma função computável que infecta qual-quer programa. Um programa infectado pode realizar então três ações disparadas conforme as entradas:
a) executar no programa hospedeiro e propagar a infecção, b) danificar o sistema ou
c) imitar o programa hospedeiro.
Uma das características de um vírus é a necessidade de anexar-se a um “programa hospedeiro” para funcionar. O alvo neste caso pode ser um arquivo executável, o setor de inicialização, um documento que suporte macros ou um arquivo descript. Os vírus propagam-se normalmente atra-vés de mídias removíveis,e-mails, downloads e diretórios compartilhados. (PEREIRA et al., 2007, p. 6).
“Outra propriedade discriminante de um vírus é que essa replicação requer algum tipo de assistência do usuário, como clicar um anexo de e-mail ou compartilhar uma unidade USB.” (GOODRICH; TAMASSIA, 2013, p. 177).
Outro tipo de malware que assemelha-se ao vírus é o worm que é também conhecido como verme. A diferença básica entre o vírus e o worm é que o worm não necessita infectar algum outro programa para se reproduzir e não precisa de qualquer assistência do usuário, ou seja, o worm é como se fosse uma versão melhorada do vírus, é um malware mais robusto. “Um verme de computador é um programa malicioso que espalha cópias de si mesmo sem a necessidade de se injetar em outros programas, e geralmente sem interação humana”. (GOODRICH; TAMASSIA, 2013, p. 187).
Goodrich e Tamassia (2013, p. 171) citam outros exemplos de malwares, como por exemplo a backdoor, também conhecida por trapdoor, que segundo eles é uma brecha no programa criada para facilitar o acesso às informações pretendidas, burlando qualquer controle de segurança que possa existir.
[. . . ] um spyware é um software que auxilia a coleta de informações sobre uma pessoa ou organização sem o seu conhecimento, que pode enviar tais dados para outra identidade sem o seu consentimento ou que toma controle do computador sem que o usuário saiba disso. De todos os tipos demalware existentes spyware é o mais comumente encontrado. (PEREIRA et al., 2007, p. 10).
Pereira et al. (2007, p. 16) cita também os bots como um tipo de software malicioso, sendo eles caracterizados por terem um controle a distância do adversário, e por possuir vários comandos permitindo que ele tenha um mecanismo de replicação e difusão na rede. Em resumo, os bots tomam conta de um determinado serviço de alguma máquina e manipulam-no a gosto do adversário.
Por fim podemos citar dois malwares que compartilham uma mesma característica, o Trojan e o Rootkit. Ambos que tem como característica comum a tentativa de disfarçar-se no meio invadido, a fim de não serem reconhecidos com suas atividades ilícitas.
Um Cavalo de Troia (ouTrojan) é um programa malware que aparenta realizar alguma tarefa útil, mas que faz algo com consequências negativas [. . . ]. Cavalos de Troia podem ser instalados como parte da carga de outro programa malicioso, mas com frequência são instalados por um usuário ou administrador, deliberadamente ou não. (GOODRICH; TAMASSIA, 2013, p. 185).
Assim como o Trojan camufla-se para entrar no alvo, o Rootkit camufla-se também durante sua execução, tentando esconder-se em pastas os programas de essencial utilização para não ser encontrado.
Umrootkit é um tipo especialmente furtivo de malware. Rootkits geral-mente alteram utilitários do sistema ou do próprio sistema operacional para evitar detecção. [. . . ]Rootkits são muitas vezes usados para esconder ações maliciosas ou outros tipos demalware, como Cavalo de Troia e vírus. (GOODRICH; TAMASSIA, 2013, p. 192).
Os malwares podem ser classificados de diferentes maneiras, quanto aos danos que podem causar. O CERT.br anualmente oferece um estudo dos ataques que foram notificados no âmbito brasileiro, e há alguns anos o worm aparece entre os líderes quanto ao número de ataques. Ficando em 4º lugar em 2014, atrás de dois incidentes que não são classificados como malware e atrás também do Ataque DoS, que pode ser causado também por um malware.
Figura 2: Incidentes reportados em 2014
Fraude Scan DoS Worm W eb Invasão Outros 0 10 20 30 40 44.66 25.18 21.39 4.03 2.75 0.62 1.37 Inciden tes rep ortados (%)
Fonte: Gráfico desenvolvido pelo autor com dados extraí-dos no site da CERT.br (2015).
O líder de incidentes notificados ao CERT.br são as fraudes. “Esta categoria engloba as notificações de tentativas de fraudes, ou seja, de incidentes em que ocorre uma tentativa de obter vantagem.” (CERT.BR, 2015).
Alguns exemplos de fraudes são: páginas falsas de bancos, sites de comércio eletrônico e demais categorias de sites3; Cavalos de Troia, utilizados para furtar informações e credenciais; e quebras de direitos autorais. Esses exemplos de fraudes formaram este expressivo número que é cinco vezes maior em relação a 2013.
O segundo incidente mais notificado ao CERT.br em 2014 foi o Scan, o órgão acaba definindo que os Scans são
varreduras em redes de computadores, com o intuito de identificar quais computadores estão ativos e quais serviços estão sendo disponibilizados por eles. É amplamente utilizado por adversários para identificar poten-ciais alvos, pois permite associar possíveis vulnerabilidades aos serviços habilitados em um computador. (CERT.BR, 2015).
3 Uma técnica bastante utilizada nas fraudes é o phishing, que tenta “pescar” informações sigilosas
usando páginas ou e-mails falsos, ou usando também técnicas de Engenharia Social para obter tais dados.
Em terceiro lugar aparece o ataque DoS seguido pelo malware worm, como foi citado anteriormente. O quinto incidente mais reportado foram os ataques que comprometem servidores web ou desconfiguram alguma página web, que aparece no gráfico sob a legenda web com 2,75% de representatividade. Completando os incidentes mais notificados em 2014 tivemos invasões a redes e/ou computadores com 0,62%.
O grande número de ataques worm, aliado aos expressivos números de invasões (que podem ser caracterizadas por backdoors) e scan mostra o quão desafiadores são os malwares para garantir-se a segurança computacional. Juntos eles representam quase 30%
do problemas contabilizados pelo CERT.br.
Vistas tais definições sobre os malwares, podemos atribuir algumas características da execução de cada um deles.
Tabela 1: Comportamento dos malwares
Malware Comportamento
Vírus Deixam a execução dos programas mais lentos, podendo bloquear a aplicação ou derivados por conta de erros e/ou incompatibilidade de códigos.
Worm Intenso uso da CPU, memória RAM, HD e da Rede.
Trojan Acessa a internet para baixar um segundo código malicioso.
Backdoor Adiciona um programa no computador abrindo uma porta estranha.
Rootkit Escondem outros códigos maliciosos.
Spyware Redirecionam parte do tráfego de internet, deixando-o lento.
Bot Permanecem camuflados até serem acordados, fazendo intenso uso de CPU,memória, HD e Rede.
Fonte: Tabela desenvolvida pelo autor baseado em Goodrich e Tamassia (2013, p. 171-210) e Pereira et al. (2007).
2.1.1.1 Defesa usando a criptografia
Dentre os exemplos citados acima, o ponto em comum entre eles é que todos tem origem de um software malicioso. Ou seja, o ataque teve como origem um programa ou um arquivo que foi manipulado e passado à máquina a ser contaminada, como por exemplo um Cavalo de Troia.
Um usuário um pouco mais atento às boas práticas da computação, observaria se o arquivo que ele quer manipular é realmente o arquivo que ele deseja, afim de identificar se o arquivo em questão não foi corrompido a fazer algo indesejado. A maneira mais utilizada de se fazer essa identificação é checando o hash do arquivo que foi disponibilizado pelo remetente do arquivo.
A verificação por hash mostrará que o arquivo que está sob domínio do usuário, é o mesmo que foi disponibilizado pelo remetente. É possível fazer isso tanto em arquivos transferidos por rede quanto transferidos por dispositivos físicos.
Tilborg e Jajodia (2011, p. 753–754) também descrevem como a atividade criptográ-fica pode auxiliar na defesa contra malwares. Além de citar resumidamente como funciona a utilização da criptografia nos antivírus, dão exemplos de como tratar de malwares mais específicos, como os malwares polimórficos4.
O método de detecção mais rápido e mais comum é a utilização de assina-turas demalwares estáticos. Na forma mais simples, eles são sequências binárias de código ou dados que aparecem em uma instância específica do
malware. Outras formas de assinaturas de malwares estáticos são valores hash de blocos de código a partir de um dado offset em um executável, ou
sequências binárias incluindowildcards5 para permitir alguma variação sintática. As assinaturas tem de ser gerada a partir de sequências de código suficientemente longos para minimizar falsos positivos (ou seja, falsas detecções demalware em programas benignos). Para detectar uma determinada instância malware, o software de antivírus simplesmente verifica a presença de sua assinatura em um determinado programa (escaneamento). Os antivírus comercializados mantêm grandes bases de dados destas assinaturas, e escaneiam todos os arquivos para todas as assinaturas de vírus e worms que conhecem [. . . ].
Malwares polimórficos são difíceis de detectar por meio de associação
de assinatura, uma vez que a imagem sintática do disco for alterado com cada instância replicada. Para simples malwares polimórficos cuja rotina de decriptação não varia significativamente entre as instâncias de
malware, as assinaturas para a rotina de decriptação podem ser gerados.
Uma vez que o malware polimórfico é executado (por exemplo, como parte da análise dinâmica) e tem descriptografado o corpo do vírus, combinando assinatura pode ser aplicado para detectar o malware na memória. (TILBORG; JAJODIA, 2011, p. 753–754, tradução nossa).
Marcacini (2010, p. 34-44) disserta como a criptografia pode ser utilizada afim de combater tipos de ataques em páginas web. Primeiramente o autor mostra vantagens que o esquema de criptografia assimétrica possuí, mas ao mesmo tempo alerta que “não se pode pensar que o simples uso da criptografia seja o passaporte mágico que nos conduzirá a um nível de segurança absolutamente inviolável. Há boa e má criptografia; há criptografia forte e criptografia fraca”.
Esse alerta de Marcacini é importante, pois destaca que somente o uso de um esquema criptográfico não solucionará todas as questões de integridade e sigilo. É necessário que haja um estudo para saber quão seguro é o esquema criptográfico a ser utilizado. Esta preocupação com a criptografia deve ser um ponto fundamental da perícia computacional para não abrir espaços a possíveis fraudes nas provas.
4 “Malwares polimórficos criptografam seu código executável malicioso (corpo do vírus) e anexam
um pequeno motor de decodificação, que decifra o código só em tempo de execução”. (TILBORG; JAJODIA, 2011, p. 753, tradução nossa).
2.2
Perícia Forense
A perícia forense é um conjunto de todos os tipos de conhecimentos científicos e tecnológicos existentes, utilizados para desvendar crimes. Existem diversas áreas de atuação e conforme elenca Senasp (2012) a perícia forense pode ser subdividida em Informática, Contábil e Financeira, Documentoscópicas, Audiovisual e Eletrônicos, Química Forense, Engenharia, Meio Ambiente, Genética Forense, Balística, Locais de Crime, Bombas e Explosivos, Veículos, Medicina e Odontologia Forense e sobre o Patrimônio Cultural.
No Brasil para se tornar perito criminal, em qualquer que seja a área de trabalho, é necessário que o candidato seja aprovado em um concurso público e que possua diploma de nível superior, conforme define o Artigo 159 do Decreto-Lei nº 3.689, de 3 de Outubro de 1941: “O exame de corpo de delito e outras perícias serão realizados por perito oficial, portador de diploma de curso superior”. (BRASIL, 1941).
O perito forense é portanto um profissional especializado em encontrar vestígios mediante a análise tecnocientífica. As atividades periciais são classificadas como de grande complexidade, em razão da responsabilidade e formação especializada revestidas no cargo. Resumidamente as atribuições do perito forense criminal são: realizar exames periciais em locais de infração penal; realizar exames em instrumentos possivelmente utilizados; proceder pesquisas de interesse; coletar dados e informações necessários à complementação dos exames periciais e desempenhar outras atividades que visem apoiar as metas que lhe forem atribuídas.
Apesar de haver um grande e constante trabalho na perícia forense, não existe um consenso mundial de como a análise deve ser tratada, há ausência de uma padronização de como trabalhar, desde a coleta até a redação do laudo pericial. Isso faz com que cada país tenha uma legislação própria sobre o tema e a existência de vários manuais de boas práticas, conforme afirma Melo (2009, p. 1): “Não há padrões internacionais para o tratamento de dados periciais, embora existam documentos de boas práticas dedicados a classificar respostas a incidentes de segurança e um capítulo da NBR ISO/IEC 17799:20056 que endereça o assunto”.
E no Diagnóstico da Perícia Criminal no Brasil (SENASP, 2012, p. 1) fica ainda mais explícito essa necessidade em se possuir uma padronização dos processos periciais, visto que o efetivo de peritos é baixo, a estrutura oferecida é precária, o volume de processos e a demanda de trabalho é alta:
A perícia no Brasil carece de uma estrutura minimamente padronizada, o que faz com que se desenhe de forma diferente em cada Estado e no Distrito Federal. A escassez de dados sistematizados mostrou-se como regra e chamou-nos a atenção como os próprios gestores, muitas vezes, desconhecem suas instituições. (SENASP, 2012, p. 1).
Apesar de possuir várias áreas de atuação, o trabalho do perito segue uma estrutura parecida independentemente da área, como afirma Neukamp (2007): “O processo de investigação pode ser dividido em 4 etapas, que são: Coleta dos Dados, Exame dos Dados, Analise dos Dados e Laudo Pericial”.
A tarefa inicial do perito durante sua investigação é, portanto, coletar e assegurar que não houve manipulação das provas, para então iniciar a sua detalhada investigação. Como todas as evidências coletadas ficarão de posse da polícia a qual o perito pertence, faz-se necessário que utilize a Cadeia de Custódia durante o arquivamento da evidência no cofre policial designado. Os peritos em informática, segundo Senasp (2012), armazenam seus materiais nas centrais de criminalística.
No que diz respeito à preservação das informações coletadas a cadeia de custódia possibilita documentar a cronologia das evidências, quem foram os responsáveis por seu manuseio, etc. Procedimentos como: colocar lacres em evidências, restringir o acesso apenas aos profissionais responsáveis pela custódia minimizam a possibilidade da manipulação indevida e tornam as evidências mais confiáveis. (COSTA JÚNIOR, 2014, p. 51).
O arquivamento da evidência é bastante organizado, visto que há identificação e lacração de cada vestígio indicando a qual investigação pertence e, qual perito coletou-o. Todo o processo da Cadeia de Custódia aumenta a garantia de integridade da prova, torna-se mais segura e transparente, já que haverá toda uma documentação de quem teve acesso às estas evidências protegidas, documentando quem e quando acessou-as, além de exibir como se deu o processo investigativo.
No processo forense, equipamentos de informática apreendidos são nor-malmente identificados por números de série na perícia forense ou no relatório da cadeia de custódia. Estes exemplos destacam o papel dos números de série como um meio para identificar equipamentos de informá-tica e sua propriedade. (CARROLL; KROTOSKI, 2014, p. 49, tradução nossa).
Infelizmente não existe nenhuma lei ou padronização acerca da Cadeia de Custódia. No diagnóstico realizado pela Senasp (2012), fica evidente o descaso que muitos centros periciais tem com a Cadeia de Custódia, sendo ela tão fundamental no trabalho pericial. Afinal todos os elementos coletados como evidências serão avaliados em um jul-gamento para serem considerados prova ou não. Ou seja, as evidências são consideradas um indício que algo pode ser verdade e somente o trabalho do perito pode apresentar argumentos ou evidências mais refinadas para considerar isto uma prova: que é tida como verdade sobre o fato em questão. A indevida utilização ou a inutilização da Cadeia de Custódia podem levar o juiz a questionar a integridade de todas as evidências apresentadas e não considerar as evidências como prova.
Conforme afirma Birnfeld (2004): “As provas são concretas, documentadas. As evidências prescindem de provas: tem-se certeza mesmo sem contar com provas objetivas. Portanto, prova e evidência são coisas diferentes”.
Um dos elementos fundamentais para se compreender os processos de trabalho da atividade pericial é a existência e o funcionamento da cadeia de custódia dos vestígios. Ela é essencial para a validação da prova técnica uma vez que possibilita a rastreabilidade do vestígio, ou seja, assegura o vínculo entre o material periciado e o fato investigado. A cadeia de custódia também possibilita documentar a cronologia da evidência e quem foram os responsáveis por seu manuseio.
O Brasil não tem uma normativa geral sobre cadeia de custódia e o mesmo ocorre na grande maioria dos Estados, que ainda encontram fragilidades na gestão da atividade pericial. [. . . ].
Mais da metade das unidades centrais de Criminalística, de Medicina Legal e de Identificação [tabelas no Anexo A] responderam que os vestígios não são lacrados quando coletados no local de crime e não são guardados em local seguro e que preserve suas características. Não há também rastreabilidade dos vestígios na maioria dessas unidades. Em conjunto, esses dados apontam para a inexistência de procedimentos de cadeia de custódia na Criminalística. (SENASP, 2012, p. 70).
2.2.1
Perícia Forense Computacional
Antes de iniciarmos a decorrer sobre a Perícia Forense Computacional, faz-se necessário diferenciá-la da Perícia Digital, também conhecida por Forense Digital. A Perícia Forense Computacional, também conhecida por Perícia em Informática, é uma subárea da Forense Digital. A Forense Digital possui uma área de atuação abrangente que engloba qualquer tipo de dispositivo eletrônico que armazene ou processe dados, como por exemplo: smartphones, câmeras digitais, etc. Como a Forense Computacional é uma subárea da Forense Digital, acaba sendo totalmente focada em computadores, estando seus peritos aptos a trabalharem em qualquer ambiente computacional.
Visto que a Perícia Forense Computacional é uma subárea da Perícia Digital, podemos citar Pereira et al. (2007, p. 4) que define que
[. . . ] a Forense Computacional pode ser definida como a inspeção científica e sistemática em ambientes computacionais, com a finalidade de angariar evidências derivadas de fontes digitais, tendo como objetivo, promover a reconstituição dos eventos encontrados (podendo assim, determinar se o ambiente em análise foi utilizado na realização de atividades ilegais ou não autorizadas).
A perícia forense computacional pode ser utilizada para várias finalidades, mas seu papel mais sério e mais minucioso ocorre quando trabalha-se com a suspeita de algum crime onde o computador foi utilizado. Portanto a perícia forense não é exclusiva para cibercrimes, ela pode acontecer na investigação de crimes em que a computação foi mera ferramenta, e não o meio pelo qual se deu o golpe.
No Brasil a representatividade de peritos em informática é bem modesta, não ultrapassa o percentual de 2,5% no âmbito nacional. O que já torna preocupante a qualidade que possamos ter do trabalho pericial brasileiro, visto que há uma sobrecarga de trabalhos sobre os peritos.
Tabela 2: Representatividade de peritos em informática no Brasil
Estado Peritos Criminais Em Informática Porcentagem Acre 40 1 2,50% Alagoas 49 1 2,04% Amapá 71 4 5,63% Amazonas 142 6 4,23% Bahia 317 5 1,58% Ceará 78 2 2,56% Distrito Federal 169 3 1,78% Espírito Santo 61 2 3,28% Goiás 146 5 3,42% Maranhão 88 1 1,14% Mato Grosso 133 3 2,26%
Mato Grosso do Sul 108 4 3,70%
Minas Gerais 588 3 0,51% Pará 306 7 2,29% Paraíba 116 3 2,59% Paraná 195 10 5,13% Pernambuco 153 5 3,27% Piauí 24 2 8,33% Rio de Janeiro 296 5 1,69%
Rio Grande do Norte 48 4 8,33%
Rio Grande do Sul 228 4 1,75%
Rondônia 118 1 0,85% Roraima 39 1 2,56% Santa Catarina 182 4 2,20% São Paulo 1065 33 3,10% Sergipe 14 0 0,00% Tocantins 151 3 1,99% TOTAL 4925 122 2,48%
Fonte: Desenvolvido pelo autor com dados de Senasp (2012).
Em Senasp (2013) é passado aos peritos brasileiros boas práticas que eles podem seguir em seu trabalho, não só na área computacional, mas sim em várias áreas da perícia criminal. O objetivo deste trabalho é que haja futuramente uma padronização do trabalho pericial forense brasileiro. Entretanto o material faz um relato muito superficial e possui um detalhamento, tecnicamente falando, muito simples e sem explorar os conceitos técnicos conhecidos pelos peritos.
Atualmente, mesmo não existindo uma padronização dos trabalhos periciais, Pereira (2010, p. 2–3) sintetiza alguns passos que geralmente são seguidos ao longo de uma investigação e afirma que todo processo pericial pode ser dividido em quatro etapas, que vão da coleta dos indícios até a escrita do laudo a ser apresentado durante o julgamento.
Pereira (2010, p. 3) destaca que “o perito que for nomeado para realizar a perícia deve trabalhar de uma forma sistemática e cuidadosa com as evidências com o intuito de sempre preservar a integridade dos dados e detalhar toda a atividade executada no laudo final”.
Coleta de dados
Na coleta de dados todo o trabalho é iniciado, buscando obter todos os dados de maneira cuidadosa para preservar a integridade deles. Senasp (2013, p. 99) lista alguns equipamentos essenciais para o início da investigação, pois no ambiente onde os dados serão coletados é necessário documentar tudo, buscar e preservar evidências que auxiliem não só o trabalho do perito em informática como também de outras áreas periciais. A coleta não deve ser restrita aos equipamentos informáticos, mas outros peritos também buscaram outras evidências como cabelo, fluídos corporais, digitais, etc.
• Câmera fotográfica;
• HD externo de leitura e escrita;
• HD externo protegido contra escrita (Talon, Solo-III ou Dossier, por exemplo);
• CDs de inicialização ou equivalentes com softwares forenses, tais como: Helix, DEFT, CAINE, BackTrack, Encase LinEn;
• CDs de inicialização ou equivalentes contendosoftwares forenses, tais como: Microsoft COFEE, FTK Imager Lite, NUDETECTIVE, etc;
• CDs e DVDs virgens;
• Conjunto de cabos IDE, PATA, SATA, SCSI, SAS;
• Discos rígidos de capacidade de armazenamento adequada; • Equipamento computacional portátil equipado comsoftwares
fo-renses.
(SENASP, 2013, p. 99).
A preocupação inicial dos peritos é coletar todos os vestígios encontrados sem “que-brar” nenhum deles. O objetivo é coletar todos sem haver alterações de suas características (garantir a integridade) e sem atrapalhar o trabalho de outros peritos de áreas diferentes.
Por isso foi citado acima o uso de câmera fotográfica e HDs, para registrar como tudo foi encontrado e na próxima fazer começar a análise de tudo que foi coletado.
Nesta primeira fase da investigação pericial iniciam-se todos os processos inves-tigatórios. Na coleta de todos os vestígios, identificam-se os equipamentos e evidências coletadas, visando a utilização de Cadeia de Custódia durante todo o tempo que estas evidências estejam de posse dos peritos. Tudo isso para tentar garantir a transparência do processo.
A cadeia de custódia é de extrema importância, mas por si não assegura a qualidade no processamento do vestígio. Para tanto é necessária a padronização dos procedimentos operacionais e a existência de um sistema de aferição da qualidade dos equipamentos utilizados. A padronização de procedimentos determina a forma correta de se realizar um exame e possibilita que eles sejam realizados sempre da mesma forma, ou seja, que possam ser repetidos por diferentes profissionais e cheguem ao mesmo resultado. Para isso, também é necessária a aferição da qualidade dos equipamentos, que assegura a sua precisão. (SENASP, 2012, p. 74).
Conforme foi citado a utilização de softwares forense, Basto (2012, p. 13-15) cita vários exemplos de sistemas operacionais baseados em softwar e livre que reúnem ferramen-tas para se trabalhar com a perícia computacional, como por exemplo: FDTK, BackTrack, CAINE, Santoku, DEFT, BackBox, Helix e REMnux.
Dentre estes podemos destacar o FDTK, que foi desenvolvido por brasileiros e é baseado no Ubuntu possuindo mais de 100 ferramentas que auxiliam na prática forense. Na página oficial do sistema operacional FDTK (NEUKAMP, 2007) explica que o “FDTK-UbuntuBr, é um projeto livre que objetiva produzir e manter uma distribuição para coleta e análise de dados em Perícias de Forense Computacional” e que este projeto foi iniciado durante um trabalho de graduação.
“O sistema FDTK foi projetado para atender a todas as etapas que compõem a metodologia da perícia forense computacional” (SILVA; OLIVEIRA, 2014, p. 122). Desde o auxílio na coleta dos dados, cópias de dados, geração de hashes, análises, redação do laudo, etc.
Exame dos dados
Na segunda fase da perícia forense há uma separação de todo os dados coletados, a fim de identificar quais serão realmente úteis na investigação. Pode-se dizer que esta fase da investigação é onde ocorre uma “filtragem” de tudo que foi coletado, afinal o perito vê tudo que foi coletado e ao analisar destaca todos os dados que possam auxiliá-lo na investigação, visto que existirão dados que não terão ligação alguma com o fato investigado. Com isso Senasp (2013) listou mais uma vez equipamentos que possam auxiliar no exame dos dados.
• Equipamento que permita a realização de duplicação dos dados; • Estação de trabalho pericial (hardware + software) que permita o
processamento/análise dos dados e a elaboração do laudo e seus anexos;
• Mídia de armazenamento computacional com capacidade livre superior ao da mídia a ser examinada;
• Mídia de armazenamento computacional com capacidade suficiente para armazenamento do resultado do exame.
É perceptível vendo os equipamentos indicados pela Senasp que uma preocupação dos peritos é fazer uma duplicação dos dados. Esta preocupação é válida pois toda a análise dos dados é feita em uma cópia bit a bit do que foi coletado. A criação desta cópia faz-se necessária para não haver alterações, e consequentemente a perca de integridade, do que foi coletado.
Para provar que a cópia analisada pelo perito, de onde ele levantou todas as hipóteses a partir dos indícios observados, é uma cópia idêntica e fiel a evidência original coletada, há o cálculo do hash criptográfico. Caso os dados forem exatamente iguais o hashes também serão.
Pereira (2010, p. 3) alerta que “é necessário validar a garantia de integridade dos dados por meio de funções hash”, e portanto é fundamental que isto ocorra antes de qualquer análise. “O perito deve garantir e preservar a integridade dos [dados], pois, caso isso não ocorra, eles poderão ser invalidados como provas perante a justiça”. (PEREIRA et al., 2007, p. 21, adaptado).
Quando a investigação se dá em equipamentos computacionais portáteis é preciso acrescentar mais alguns equipamentos à análise:
• Carregador universal de baterias;
• Ferramentas forenses contendo programas, cabos e dispositivos que permitam a realização da extração dos dados do equipamento computacional portátil;
• Sala protegida contra sinais de telefonia, equipamento bloqueador de sinais ou invólucro de bloqueio de sinais.
(SENASP, 2013, p. 93).
E na internet a investigação também necessitará de outros equipamentos específicos:
• Equipamento computacional equipado com softwares forenses; • Conexão dedicada de Internet desvinculada da rede corporativa
da instituição pública (sem informações cadastrais que indiquem a natureza pericial), ou alternativamente, utilização de serviço de navegação anônima (por exemplo, TOR).
(SENASP, 2013, p. 93).
Análise das Informações
A investigação começa a se aprofundar nos dados selecionados tendo como meta identificar informações relevantes que ajudem na conclusão da investigação. Aqui os dados virarão informação. O grande volume de dados coletados e analisados pelo perito começam a virar informações para a investigação, como: saber qual o horário de utilização da máquina periciada, quem a utilizou, o que fez o suspeito durante o período que estava com o equipamento ligado, etc.
A analogia que sempre é feita é com um quebra-cabeça. Cada peça é algum dado que o perito obteve, e nesta fase da investigação o perito tenta ligar os dados que ele obteve durante a análise do que foi coletado à informações que ele tem. Tenta-se reconstruir os acontecimentos correlacionando as informações ao local da investigação, aos suspeitos e acontecimentos.
Senasp (2013, p. 88) cita que a análise dos dados pode ser classificada em dois tipos em relação ao resultado que espera se obter.
1. Extração direta de arquivos: Busca expor o maior número possível de arquivos que possam ser de interesse na investigação.
2. Elucidação técnico-pericial: Tem uma busca mais focada, provavelmente para validar apenas alguma questão levantada sobre o material analisado.
Interpretação dos resultados
Encerramento da investigação se dá com a escrita de um relatório informando as informações encontradas. O laudo redigido pelo perito tem de detalhar toda a investigação: como foi realizada a coleta, a análise e quais conclusões o perito obteve. Obviamente o perito pode anexar ao laudo tudo que ele achar necessário para embasar seu trabalho. O juiz julgará este material e poderá incluí-lo num julgamento como prova.
A avaliação interna dos laudos periciais é um item importante para assegurar sua qualidade, uma vez que é executada por meio de um processo de revisão em que os próprios profissionais de perícia repassam o trabalho sistematizado por seus colegas, visando identificar eventuais incorreções. (SENASP, 2012, p. 80).
O Governo Federal, através de Senasp (2013, p. 90), sugere aos peritos uma estrutura básica para a redação do laudo pericial. Os tópicos que são indicados a aparecer no laudo são: • Preâmbulo • Histórico (opcional) • Objetivo • Material • Exame
• Considerações Técnico-Periciais (opcional)
• Conclusão/Resposta aos Quesitos • Anexos (opcional)
De acordo com as etapas apresentadas, podemos resumir as fases da investigação forense conforme a Figura 3 demonstra de forma gráfica como se desenvolve todo o processo pericial, desde a coleta das evidências até a escrita do laudo, destacando o quão importante cada fase da investigação é, visto que todas estas fases são uma sequência que depende do passo anterior, portanto se alguma tarefa não foi executada da maneira correta o resultado final será negativamente influenciado.
Figura 3: Fases do processo de investigação forense
Fonte: Figura extraída de Pereira et al. (2007, p. 18).
2.3
Criptografia
2.3.1
Conceitos básicos
Diffie e Hellman (1976) definiram que a criptografia é o estudo de sistemas matemá-ticos para resolver problemas de privacidade e autenticação. Onde a privacidade garante que não haja acesso não-autorizado de partes da mensagem e a autenticação garante que o usuário só receba mensagens legítimas e nunca de algum invasor.
Katz e Lindell (2014, p. 3–4) cita o quanto a criptografia já evoluiu, e chega até a classificá-la em dois períodos: clássica e moderna. O divisor desses períodos é o final do século XX, que segundo o autor até esta época a criptografia era tratada como uma arte que estudava uma comunicação secreta. Neste período não haviam teorias ou noções do que era seguro, as criações e quebras das cifragem aconteciam com a criatividade e habilidade pessoal.
Hoje, no período moderno, a criptografia é considerada uma ciência que não busca apenas o sigilo da comunicação, mas busca autenticação de mensagens, assinaturas digitais, protocolos para a troca de chaves secretas, protocolos de autenticação, etc. Baseados sempre em modelos e padrões que são considerados seguros.
Já que estamos no período denominado de criptografia moderna, período surgido após o avanço causado pelo advento da computação, podemos apontar as principais funcionalidades da criptografia moderna são garantir através de suas funções criptográficas haver proteção ao sigilo, à integridade além de garantir a autenticidade das mensagens transmitidas.
Podemos resumir que a proteção do sigilo não permite que o conteúdo da mensagem seja revelado a invasores, apenas os usuários que possuam a correta chave conseguirão visualizar o purotexto. A proteção da integridade evita que a mensagem seja modificada no seu percurso por algum atacante, esta proteção pode ser alcançada com esquemas de MAC, por exemplo. Enquanto que garantir a autenticidade da mensagem significa afirmar que a mensagem veio do remetente esperado e não de algum outro desconhecido, essa garantia pode ser feita com a criptografia de chave pública, por exemplo.
Segundo Stinson (2006), o objetivo geral da criptografia é permitir que duas pessoas se comuniquem através de um canal inseguro, sem que algum curioso que intercepte as mensagens e entenda o que está sendo transmitido. Em outras palavras, a criptografia não tem o objetivo de esconder a comunicação, mas mantê-la indecifrável a alguém indesejado que observe a comunicação.
Para isso Stinson (2006) fornece características necessárias que um esquema cripto-gráfico deve possuir:
Um criptossistema é uma quíntupla (P, C, K, E , D), onde as condições a seguir são satisfeitas:
1. P é um conjunto finito de possíveis purotextos; 2. C é um conjunto finito de possíveis cifrotextos; 3. K é um conjunto finito de possíveis chaves;
4. Para cada k ∈ K, temos uma regra de encriptação Enck∈ E e uma
correspondente regra de decriptação Deck ∈ D. Onde cada Enck:
P → C e Deck : C → P são funções tais que Deck(Enck(p)) = p
para todo purotexto p ∈ P.
(STINSON, 2006, p. 1, tradução nossa).
Com base em Queiroz e Oliveira (2013) podemos traduzir os termos “plaintext” e “ciphertext” criando neologismos com o propósito de tornar explícito o significado deles. “Plaintext” pode ser traduzido para “purotexto”; já que ele representa o texto original a
ser encriptado, a verdadeira mensagem. Enquanto que “ciphertext” pode ser traduzido para “cifrotexto”; já que representa a encriptação do texto original, ou seja, a mensagem que será transmitida.
Katz e Lindell (2014, p. 4–7) sugerem a divisão da criptografia em dois grupos, destingindo-os quanto a forma de utilização das chaves: o esquema de encriptação de chave privada e o esquema de encriptação de chave pública. No esquema de encriptação de chave privada é composto por: