sábado, 7 de março de 2009

PROCEDIMENTOS DE FORENSE COMPUTACIONAL PARA CASOS DE MALWARES.

Hoje, a palavra Forense Computacional é encontrada nas investigações policiais que envolvem crimes digitais, esses que certas vezes são noticiados nas TVs relatando algum tipo de quadrilha ou apenas um indivíduo usando-se de meios computacionais e a internet para realizar os chamados golpes virtuais, onde nada mais é aqueles que induzem a vítima, no caso os que estão em outro computador, a fornecer seus dados pessoais, como: RG, CPF, números de contas bancárias e senhas da mesma; simplesmente através de um falso e-mail. Esta, é apenas uma das centenas de formas que se pode utilizar um atacante (criminoso cibernético) no mundo dos computadores. Conhecer estas formas de ataque é essencial na forense computacional, pois só assim é que se pode saber quais ferramentas exatas a serem utilizadas para cada situação que envolva uma perícia mais refinada.

Mas afinal, o que é Forense Computacional?
Em primeiro lugar, é necessário falar sobre a palavra forense. Em português, numa definição bem simples, forense significa tudo aquilo relativo ao foro, ou aquilo que é jurídico, ou relativo a cortes ou tribunais. Em inglês, a palavra que corresponde ao nosso forense, é: forensic. Significa a mesma coisa, e vem da mesma origem, ou seja, a palavra forensis, em latim. Mas, em inglês, é muito comum a palavra forensics, com “s” no final. Esta seria uma forma usada para dizer forensic science (em inglês, ciência forense), significando, geralmente, o uso da ciência e da tecnologia para a reconstituição e obtenção de provas de crimes.
A Forense Computacional foi criada com o objetivo de suprir as necessidades das instituições legais no que se refere à manipulação das novas formas de evidências eletrônicas. Ela é a ciência que estuda a aquisição, preservação, recuperação e análise de dados que estão em formato eletrônico e armazenados em algum tipo de mídia computacional.
As ações com base na prática de forense computacional são uma técnica cientifica, aplicada dentro de um processo legal que busca evidências e responsabilização de envolvidos em incidentes que usem os meios computacionais para execução de crimes ou burlar regras estabelecidas. A coleta adequada dessas evidências e o reconhecimento das autoridades legais é um desafio para os profissionais envolvidos.

Bem, para não nos alongarmos mais nesses assuntos, pois daria muito pano para manga e considerando que todos que procuram ler sobre este tema já tem algum breve conhecimento, vamos deixar de lado a explicação sobre malwares e continuemos no foco do assunto. Lembrando que esse assunto abordado aqui por mim é apenas uma opinião, pois não existe um procedimento determinante na Forense Computacional que firme um modelo padrão, sendo que para cada situação onde necessita ser investigado, os procedimentos são diferentes. Melhor ainda, é considerarmos que para cada tipo de malwares existe um procedimento que se diferencia de outros.

Agora, irei relatar as características da situação de infecção computacional por malwares, considerando apenas:
Um computador com configurações básicas de hardware, sistema operacional proprietário (Microsoft Windows XP Professional com Service Pack 3) com todos os softwares básicos necessários para o dia-a-dia instalados, e no quesito software de segurança, apenas um antivírus de qualquer fabricante, acesso a internet através de uma conexão qualquer, independente deste computador estar num ambiente empresarial ou em casa e infectado por um malware qualquer, sem mesmo saber como aconteceu a infecção, pois a realidade é que temos que aplicar a este computador as análises da forense computacional.
Farei um detalhamento dos passos seguinte para uma análise forense computacional através de imagens e outros recursos que possam ajudar a elaborar essas práticas, são:

1º - COLETA: ferramentas e metodologia de coleta adotada para o caso;
2º - EXTRAÇÃO: ferramentas e metodologia adotada para levantar indícios de evidências;
3º - ANÁLISE: ferramentas e metodologia adotada para correlacionar os indícios e reconstruir o evento;
4º - LAUDO: exemplo escrito do laudo sobre os resultados identificados e propostas para conclusão do laudo.


Os Procedimentos

1º - COLETA
Nesta etapa, devemos procurar ter o máximo de dados coletados para podermos identificar, primeiramente, onde esta localizado o malware e só ai depois de todas as etapas descobrir quais as suas causas e efeito (como ele age). O ideal, é que a partir do momento que notássemos ou soubéssemos a efetiva infecção, iniciássemos a coleta de todos os dados possíveis para ajudar a encontrá-lo. Também seria ideal, se tivéssemos antes algum snapshot parcial ou total do computador vítima, mas há situações em que é impossível termos este recurso, pois nem todo usuário tem conhecimentos avançados mas que em alguns casos são simples, de utilizar determinadas ferramentas para poder facilitar a investigação.
Um fator fundamental é a garantia de integridade das evidências coletadas, pois elas poderão ser invalidadas como provas perante a justiça, isso consiste na utilização de ferramentas que aplicam algum tipo de algoritmo hash para a validação dos dados. Outro fator muito importante em que o profissional não pode esquecer é sempre ao coletar os dados, relatar os horários e datas de coletas feitas através dos softwares e qualquer outra atividade feita durante os procedimentos deve ser todos descriminados.


Bom, temos que considerar algumas medidas na etapa de coleta que são: Coletar as evidências; Garantir a integridade e Cadeia de custódia. Para estas medidas, necessitaremos de alguns softwares específicos para a execução desta etapa onde irei mostrar algumas screnshots destes softwares seguidos com alguns breves comentários. É claro que não irei aqui relatar como utilizar as ferramentas, pois é trabalho de vocês saberem como usá-la e nada melhor que uma lida sobre isso no site do fabricante.

Coletar as evidências:
Para começar iremos fotografar o que esta sendo executado no computador, isto é, fazer um snapshot de todos os processos, serviços, arquivos e programas em aberto e também descarregar tudo o que estiver em memória (dump). Consideremos coletar o máximo de dados possíveis para facilitar a identificação e entender futuramente que tipo de malware infectou o computador.

De forma lógica, iremos seguir os seguintes passos para formar uma sistematização da coletagem dos dados nessa situação:

1. Coletar todo o trafego IN/OUT da pilha de protocolos TCP/IP Versão 2.53 e suas portas. Isto será feito através da ferramenta TCPView da família de ferramentas Sysinternals Suíte da Microsoft.


TCPView

2. Coletar informações sobre um processo, incluindo o seu ícone, linha de comando, o seu caminho, estatísticas de memória, conta de usuário, atributos de segurança, listar as DLLs carregadas ou que tem o sistema operacional de lidar com recursos que tem em aberto. Para isto, utilizaremos o Process Explorer Versão 11.32 da família de ferramentas Sysinternals Suíte da Microsoft.


Process Explorer

3. Coletar quem tem acesso aos arquivos e pastas dentro dos diretórios. Embora cada arquivo / diretório exibe apenas as pessoas com permissões, permitindo-lhe determinar rapidamente desvios na sua política de segurança. Neste caso utilizaremos o software AccessEnum Versão 1.32 da família de ferramentas Sysinternals Suíte da Microsoft.


AccessEnum

4. Neste passo, iremos fazer o chamado dump de memória ou despejo de memória. É na realidade nada mais que descarregar, como o próprio nome do software diz tudo que esta na memória para um arquivo, onde possa ser analisado posteriormente, pois sabemos que tudo o que é carregado no sistema fica residente na memória, isso enquanto o computador esta ligado, após desligá-lo tudo desaparece da memória RAM, por isso ela é volátil. Para isso, iremos utilizar um software chamado HELIX Versão 2.0 da empresa E-Fense, onde reuni várias outras ferramentas muito importantes as quais iremos utilizá-las durante o desenrolar destes passos. Este software é muito conhecido no meio profissional da forense computacional, tendo opção de ser bootable tanto para plataformas Microsoft Windows/GNU Linux, neste último existe uma versão do Knoppix sendo na versão mais recente baseada no Ubuntu.


Tela inicial do HELIX

4.1. Esta é a tela do dump de memória do HELIX, no qual ele utiliza o software DD para executar esta ação. Apenas escolhemos o local onde queremos que o arquivo seja salvo.


HELIX com DD para execução do dump.

5. Utilizaremos uma outra ferramenta que se chama Process Monitor Versão 2.03 para podermos visualizar em tempo real o sistema de arquivos, registro e atividades de processos. Ele combina as características dos utilitários, Filemon e Regmon, e acrescenta uma extensa lista de acessórios, incluindo sessão de IDs de usuário e nomes. Também da família de ferramentas Sysinternals Suíte.


Process Monitor

6. Para capturar todas as atividades do registro do sistema operacional, utilizaremos o Registry Monitor Versão 7.04 da família de ferramentas Sysinternals Suíte.


Registry Monitor

7. Bem, também temos que utilizar uma ferramenta para a coleta da ordem de boot do sistema, sendo aqui carregado apenas os seus drivers e serviços, pois podemos ter algum tipo de malware se disfarçando num desses. Para isso utilizaremos o LoadOrder Versão não descriminada pelo fabricante Sysinternals Suíte.


LoadOrder

8. Iremos agora fazer uma coleta sobre todos os autoruns do sistemas, ou melhor, tudo o que é carregado no sistema desde o seu início até o logon. Percebemos que algumas dessas ferramentas da família Sysinternals são em alguns aspectos parecidas, mas o que as diferenciam são algumas características peculiares que podem nos ajudar e muito, pois o quanto mais tivermos dados disponíveis para serem analisados na etapas de extração e análise, melhor ainda será a nossa chance de identificar o malware. A ferramenta aqui é o Autoruns Versão 9.38.


Autoruns

9. Nesta etapa, iremos utilizar um dos softwares também mais conhecidos no meio da forense computacional, o EnCase Versão 4.20 da empresa Guidance Software, pois com ele podemos validar os dados recolhidos através do mesmo, mas o que chama a atenção a este software é opção de criação do HASH de todo o conteúdo coletado que sendo isso, importante principalmente para validar como prova judicial, outra característica é o seu recurso de Timeline onde o podemos acompanhar cada passo seqüencialmente de uma determinada atividade no sistema.


EnCase com criação de HASH


EnCase: opções para coleta de dados.


EnCase: tela de conclusão de coleta.

10. Também mais uma ferramenta do Sysinternals Suíte para completar esta etapa de coleta que é o RootKitRevealer Versão 1.7. Ele faz uma busca por entradas suspeitas no sistema listando o registro de API do sistema de arquivos, procurando discrepâncias que podem indicar a presença de um usuário em modo de espera ou em modo kernel rootkit.


RootKitRevealer

11. Puxa, quanta coleta de dados, mas para podermos saber com o que estamos lhe dando, é realmente necessário obtermos todo esse amontoado de dados para podermos trabalhar da melhor forma. Aqui vai o último software a ser utilizado desta etapa de coleta, o SIW – System Information for Windows Versão de 24/02/2009 que é mantido por Gabriel Topala, totalmente freeware. Este software faz uma coleta pormenorizada das informações sobre todo o hardware e software instalado no computador.


SIW - System Information for Windows




2º - EXTRAÇÃO

Já coletamos todo o “possível” de informações que irá nos ajudar agora neste passo de extração, onde nada mais é que juntarmos as evidências ou aquilo que indica, com probabilidade, a existência de (algo); indicação, indício, sinal, traço. Coloquei entre aspas a palavra possível, acima, por considerar algum equivoco nosso na coleta de algum dado importante que possa fazer diferença na hora de uma análise, quero dizer, podemos na hora de pesarmos as prioridades de coleta, que com a nossa própria ferramenta contaminar o ambiente das provas ou ainda desconsiderar qualquer passo.

Avaliar e extrair somente as informações relevantes à investigação é o que vai pesar neste passo:

  • Diferentes formatos de arquivos existentes (imagens, áudio, arquivos criptografados e compactados);

  • Arquivos de log de um servidor podem conter milhares de entradas, sendo que somente algumas delas podem interessar ao caso;

  • Muitos formatos de arquivos possibilitam o uso de esteganografia para ocultar dados, o que exige que o perito esteja atento e apto a identificar e recuperar esses dados.


Essas e outras situações são apenas algumas das situações que podemos nos deparar nesta etapa de filtragem, pois mais do que nunca, neste momento conta muito a experiência, perspicácia e eficiência para realmente conseguirmos selecionar as evidências que serão úteis para a análise.

Nesta etapa, também iremos utilizar alguns softwares que nos ajudaram a filtrar melhor os dados para extração, e dependendo destas ferramentas podemos reduzir significativamente o tempo de busca.

Irei agora mostrar alguns softwares que podemos utilizar para fazermos uma filtragem na procura do malware que infectou o computador, alguns podem ser, vamos dizer reutilizados, os quais usamos na etapa de coleta, pois muitos deles tem recursos de filtragem, já que todos aqueles snapshots que tiramos do computador agora eram utilizados aqui. Se o usuário tive-se esses snapshots como eu falei, na etapa de coleta, seria como se diz no popular “uma mão na roda”, pois apenas compararíamos essas snapshots anteriores com as atuais após a infecção do malware no computador. Mas já que a situação, infelizmente, não é essa, teremos que uma boa parte verificar essas modificações através do olhometro (observação) mesmo. É ai que deveremos procurar por alguma característica não comum de um sistema operacional, deveremos procurar por peculiaridades em que sejam próprias do malware, mas que não são padrão em um computador infectado.

Falarei de algumas observações a serem feiras para filtragem destes dados, lembrando que para cada caso é um caso, pois essas ações a serem tomadas aqui, podem não valer para outra situação de investigação:

  • Com o software TCPView da família Sysinternals Suíte, identificaríamos qual o processo que esta ativo, seu protocolo, o endereço local, o endereço remoto a qual o processo esta associado e o seu estado. Faríamos as resoluções dos IPs encontrados no computador para descobrir de onde são esses endereços e procuraríamos por algum tipo suspeito e suas portas utilizadas, pois através dela algum malware poderia estar associado;

  • No Process Explorer do Sysinternals Suíte, é uma poderosa ferramenta que nos ajudará mostrando os processos e os serviços associados a estes, sem esquecer de que ao clicarmos com o botão direito do mouse, podemos verificar ainda mais pormenores relacionado ao arquivo;

  • Através do software AccessEnum do Sysinternals Suíte, por exemplo, poderíamos procurar por alguma evidência de arquivo/pasta que as permissões de Leitura/Escrita/Negação diferissem do normal num sistema;

  • Com o HELIX da e-Fense iremos utilizar o AccessData FTK Imager Versão 2.5.3.14 da empresa AccessData Corporation para fazer a leitura do arquivo que geramos pelo DD o qual fizemos o dump da memória. Através dele, após carregarmos o arquivo, procuraremos na área que mostra uma seqüência de números decimais alguma referência de palavras, frases escritas, pois esta em texto puro;

AccessData FTK Imager

  • Com o Process Monitor do Sysinternals Suíte, poderemos procurar através das suas ferramentas, refinar os filtros de procura que podem mostrar apenas as atividades do registro, dos arquivos, da rede, dos processos e todos os eventos do sistema;
  • No Registry Monitor do Sysinternals Suíte, também iremos cruzar algumas entradas no registro do sistema encontradas através das outras ferramentas com algumas encontradas neste. Com isso sabermos exatamente qual programa esta fazendo referencia a determinada entrada no registro do sistema;
  • O LoadOrder do Sysinternals Suíte nos permitira procurar pelos valores de inicialização, o seu nome o caminho de execução do sistema operacional, pois se esse malware for um rootkit ele pode estar disfarçado de um driver;
  • O Auotuns também do Sysinternals Suíte, nos dará uma ampla visão de escolha para cruzarmos e irmos atrás das evidências encontradas nas outras ferramentas e relacionar e relacionar o seu snapshot. Com iremos mais facilmente atrás de um determinado processo que esteja relacionado com inicialização do sistema;
  • Com o EnCase da empresa Guidance Software, iremos ver de forma bruta (bit-a-bit) os arquivos que por um acaso, dependendo se o malware tiver conseguido inibir a sua visualização através desses programas já citados, pois nele a capacidade de refinar as buscas é ainda maior através da análise de linha do tempo, sobre quais ações geraram atividades no sistema e a ordem delas;
  • E para finalizarmos essa parte da extração utilizaremos para por nossas dúvidas de lado o RootKitRevealer do Sysinternals Suíte, onde não teremos uma certeza, mas a evidencia de suspeitas constatadas ou não.

Como relatado no começo desta etapa de extração, conta muito a experiência da pessoa que irá aplicar estes procedimentos ao problema, pois a pessoa pode se deparar com situações que sejam necessários o suporte de outros softwares do quais ele não utilize, considerando que possam surgir determinadas situações de procurar outros programas para conseguir um resultado mais concreto. Esta etapa é uma das que consome muito tempo, paciência e muitos conhecimentos.

3º - ANÁLISE

Nesta etapa, ela muitas vezes acontece paralela a etapa de extração, tendo nós de recriarmos os eventos investigados através das evidencias adquiridas na etapa anterior, esta, é uma fase que também requer muito tempo e a experiência do profissional que esta a executar deve levar muito em conta, sendo que equívocos nesta etapa podem acontecer, pois na hora do cruzamento dos dados para a recriação do fato ao qual levou o computador a ser infectado, neste caso por um malware, possa confundir a pessoa. É importante e essencial entender como originou o fato para a interpretação dos dados. A finalidade aqui é identificar pessoas, locais e eventos; determinar como esses elementos estão inter-relacionados, normalmente é necessário correlacionar informações de várias fontes de dados.

Poucas ferramentas realizam análise de informações com precisão, por isso, a experiência profissional conta muito na hora de cruzar os dados filtrados, sendo também que possa ser necessário filtrar ainda mais o que é encontrado como fato para termos a certeza.

Um exemplo de correlação (cruzamento) entre os dados obtidos através da filtragem e a seleção destes, seria:

  • O início de uso do computador ao ligá-lo, até o momento da infecção pelo malware, sendo através da suspeita ou correlacionando com alguns processos iniciados, serviços, programas carregados, arquivos ou algum destes que possam entra em atividade após um determinado tempo durante o funcionamento do computador;
  • Arquivos sendo carregados da pasta Temp ou Temporary Internet Files e se esses arquivos em seus nomes encontra-se algum caractere estranho, com colchetes, um exemplo seria o arquivo amovoce[1].exe e também algum arquivo com a extensão .dll que não seja comum no sistema operacional.

Novamente, deve-se sempre ser um profissional atento e cuidadoso em termos da obtenção da chamada "prova legítima", a qual consiste numa demonstração implacável e inquestionável dos rastros e elementos da comunicação entre as partes envolvidas e seu teor, além das datas e trilhas dos segmentos de disco utilizados. Sendo esses detalhes importantíssimos para a evidência ser inquestionável perante, se for o caso, a justiça.

4º - LAUDO

É a apresentação das evidências de uma forma que possa ser compreendida pelos operadores do Direito. Elas podem ser apresentadas da seguinte forma documental:

- Um relatório investigativo;

- Um Parecer Técnico;

- Um Laudo Pericial.

A interpretação dos resultados obtidos é a etapa conclusiva da investigação neste momento. O perito ou profissional, elabora um laudo pericial, que neste caso iremos adotá-lo para o nosso caso, devendo ser escrito de forma clara e concisa, elencando todas as evidências localizadas e analisadas. O laudo pericial deve apresentar uma conclusão imparcial e final a respeito da investigação.

Para que o laudo pericial torne-se um documento de fácil interpretação é indicado que o mesmo seja organizado em seções como estas:

  • Finalidade da investigação;
  • Autor do laudo;
  • Resumo do incidente;
  • Metodologia;
  • Técnicas;
  • Softwares e/ou equipamentos empregados;
  • Relação de evidências analisadas e seus detalhes;
  • Conclusão;
  • Anexos;
  • Glossário (ou rodapés).

Para melhor identificar e validar as evidências encontradas é necessário anotar todo o processo, pois esta documentação é que vai validar os métodos utilizados assim como as provas encontradas. Uma investigação bem sucedida tem necessariamente uma boa documentação.
Bom, terminando aqui nosso assunto sobre Forense Computacional, é necessário para todos aqueles que leram este documento, que procurem mais materiais sobre o assunto para entender melhor e conhecer mais procedimentos a serem tomados e seguidos no dia a dia de um perito ou profissional da área forense. Apenas a leitura deste material, não é só suficiente para alguém que deseje tomar o caminho profissional de perito ou apenas adquirir conhecimentos desta profissão.
No Brasil não existem normas específicas que regem a forense computacional, contudo existem normas gerais que abrangem todos os tipos de perícia (ditadas no Código de Processo Penal), podendo ser adotadas no âmbito computacional, salvo algumas peculiaridades. No caso de uma perícia criminal existe a figura do Perito Oficial (dois para cada exame), onde o seu trabalho deve servir para todas as partes interessadas (Polícia, Justiça, Ministério Público, Advogados, etc.). Para se fazer perícia criminal, o profissional precisa ter nível universitário e prestar concurso público específico, podendo existir, porém a figura do perito “ad hoc” para o caso de não existirem peritos oficiais disponíveis. Logo quando se descobre uma invasão na rede deve-se imediatamente entrar em contato com as organizações de resposta a incidentes de segurança e tomar todas as medidas legais cabíveis.

A responsabilidade do perito no exercício da sua função deve ser dividida em duas partes distintas: aquela do ponto de vista legal, onde lhe são exigidas algumas formalidades e parâmetros para a sua atuação como perito; e as de ordem técnica, necessárias para desenvolver satisfatoriamente os exames técnico-científicos que lhe são inerentes.

Bom pessoal, aqui termino este assunto, que com o tempo, irei postando mais coisas com relação a Forense Computacional e outros assuntos sobre segurança. Obrigado a todos e até a próxima.

REFERENCIAIS TEÓRICOS

http://www.istf.com.br/vb/pericia-forense/7280-como-trabalhar-e-ensinar-forense-computacional.html
http://imasters.uol.com.br/artigo/6485/forense/pericia_forense_computacional_-_ferramentas_periciais/
http://imasters.uol.com.br/artigo/6225/forense/pericia_forense_computacional_e_metodologias_para_obtencao_de_evidenvias/
http://www.las.ic.unicamp.br/paulo/papers/2001-WSeg-flavio.oliveira-marcelo.reis-forense.pdf
http://dandrea.wordpress.com/2007/06/12/forensics/
http://www.grupotreinar.com.br/media/4440/descritivo%20detalhado%20do%20curso%20forense%20computacional.pdf
http://www.gtopala.com
http://www.fdtk.com.br/files/Banca.ppt
http://www.sbseg2007.nce.ufrj.br/documentos/Minicursos/minicurso_forense.pdf
http://fabianouea.wdfiles.com/local--files/segredes/segredes_aulap8p2.pdf
http://www.cin.ufpe.br/~ruy/crypto/seguranca/Forense_Computacional(UFPE).pdf
http://www.tisafe.com/Recursos/Solucoes/AP_Forense_Computacional_TISafe.pdf
http://www.datasecur.com.br/academico/ForenseXP.pdf