O intuito deste artigo é simular a atuação de um Perito em Computação Forense judicial e extrajudicial, para que haja um melhor entendimento da função destes profissionais, que de fato, ainda não é bem compreendida pela maioria das pessoas.
O objetivo de um Perito em Computação Forense é encontrar a materialidade, autoria e motivação de crimes digitais, baseando-se em metodologias cientificas de valor reconhecido pela comunidade da área.
Num processo podem existir três especialistas em computação forense, sendo que desses três o único chamado de Perito é o especialista nomeado por juiz para realizar perícia, este deve ser imparcial sem qualquer tipo de relação com as partes do processo, os outros dois tratam-se dos assistentes técnicos, sendo um deles de acusação e outro de defesa.
Após busca e apreensão os assistentes técnicos de acusação e defesa elaboram quesitos, perguntas afim de acusar ou defender, e estas devem ser respondidas pelo perito judicial, a defesa fará quesitos com o objetivo de invalidar as evidências encontradas.
Neste caso, os assistente técnico de acusação, já realizou sua análise, e formulou quesitos para o perito judicial responder.
Acompanharemos parte do trabalho do perito judicial, abordaremos sobre a realização do dump e como fazer análise desse dump de memória RAM para responder quesitos da acusação, e com está análise, é pretendido encontrar evidências digitais.
Fazer um dump da memória RAM é como “congelar” o estado da memória e salva-la num arquivo, que nada mais é, que um clone fidedigno da memória RAM, salvando assim todos os dados que estavam alocados na memória no momento do dump.
Um dump de memória RAM, serve para análise de possíveis malwares alojados na RAM, como também para descobrir o que estava sendo feito naquele dispositivo utilizando os dados voláteis encontrados.
Todas as informações presentes em memória RAM, por serem voláteis serão perdidas assim que o dispositivo em questão for desligado, e qualquer ação no dispositivo ligado altera o estado da memória, pois estará enviando novos dados a memória, como por exemplo ao executar um programa.
A volatidade dar-se pela perda de informação ao ser desligado um dispositivo tecnológico, assim como a capacidade de recuperação ou validação dos dados, diminuindo a veracidade e possivelmente impedindo que tenha algo de valor probatório em juízo.
Usaremos os softwares FTK Imager para fazer o dump e o Volatility Framewok para análise do dump, o FTK Imager será utilizado no Windows para realizar o dump, o Volatility no Linux para análise.
O Volatility Framework possui uma versão para Windows, e a análise no Windows poderá ser realizada com os mesmos comandos do Volatility que usaremos no Linux, em nosso exemplo, faremos a análise com o Caine Linux 8.0, essa distribuição Linux é completamente voltada para a Computação Forense, é amplamente utilizado por Peritos em Computação Forense no mundo todo, o Caine é gratuito e possui excelentes ferramentas que auxiliam o perito desde a coleta à elaboração do parecer técnico. Caso deseje utiliza-lo também, faça o download, clicando no link.
A análise dar-se-á com o uso do software Volatility Framework, mas também pode ser realizada utilizando os comandos do Linux para buscar palavras ou letras usando expressões regulares:
- strings;
- grep;
- egrep;
- fgrep.
É necessário extrair e filtrar as strings (letras/palavras) utilizando uma combinação dos comandos supracitados, assim, os comandos podem nos dar informações preciosas que estavam na memória RAM, como por exemplo, links de sites navegados, e-mails que estavam sendo utilizados, senhas salvas na memória entre outras.
Sabemos que a memória RAM é volátil, mas nela existem dados ainda mais voláteis, veja a ordem de volatilidade e o que podemos conseguir de informação em um dump de memória RAM:
Ordem de volatilidade:
Registradores e cache;
Memória de periféricos (impressora, vídeo, etc.);
Memória principal do sistema (RAM);
Tráfego de rede;
Estado do sistema operacional;
Módulos de Kernel.
É possível extrair da memória RAM:
Processos em execução;
Sockets de rede;
Conexões abertas de rede;
Arquivos e DLLs carregadas para cada processo;
Registros utilizados para cada processo;
Módulos de Kernel do Sistema Operacional;
Mapeamento de endereços físicos e virtuais;
Mapa de memória de cada processo.
Dada a situação hipotética:
Um Perito em Forense Computacional AD-HOC, Lucas Thyerre, é nomeado por juiz para, junto à Polícia Federal cumprir mandado de Busca e Apreensão, o investigado trata-se de Adalberto Pereira Vicente Lopes Viscondislau, conhecido tanto na Internet comum quanto na Deep Web como “fj666”, o mesmo é suspeito de cometer diversos crimes na Internet inclusive trafico de drogas e estelionato. No local, por sorte, no momento da busca e apreensão, fora encontrado Adalberto Pereira utilizando um notebook com Windows 7 instalado, aproveitando a situação o perito em questão decide realizar o dump de memória RAM, para saber o que “fhj666” estava à fazer em seu notebook naquele momento. Vale ressaltar que é necessária cautela ao realizar o dump, para que não se altere de forma a comprometer a validade probatória em juízo da evidência.
Para fazer o dump de memória RAM, o perito vai utilizar o programa AccessData FTK Imager disponível para Windows, o programa possui interface simples e é bem intuitivo, como mostra a Imagem 1:
Imagem 1 - AcessData FTK Imager 3.1.1.8
Para iniciar o Dump, é necessário clicar em “Capture Memory”, onde está circulado em VERMELHO, como mostra a imagem 2:
Imagem 2 - Início do Dump de Memória.
Logo, abrirá uma nova janela com as opções, como mostra a Imagem 3:
Imagem 3 - Opções para Dump de Memória RAM.
Agora deve ser escolhido o nome do arquivo de saída (Dump da RAM) e a pasta de destino (onde será salvo o Dump da RAM), veja na Imagem 4 e 5.
Imagem 4 - Dê o nome de sua preferência ao arquivo.
Imagem 5 - Selecione browse e escolha a pasta de destino.
Caso necessite, é possível fazer Dump também na memória virtual do dispositivo, caso queira marque a opção “Include pagefile”, a inclusão do pagefile.sys aumentará o tempo necessário a conclusão do dump, veja na Imagem 6:
OBS: Para este exemplo, não será incluído o “pagefile.sys”.
Imagem 6 - Incluindo pagefile.sys ao Dump.
Após configurado todas as opções, clique em “Capture Memory” para dar início ao processo, como mostra a Imagem 7:
Imagem 7 - Progresso do Dump de memória RAM.
Por fim concluído o Dump, que será salvo em dispositivo removível pertencente ao Perito, para posterior análise, veja como ficou nas Imagens 8 e 9:
Imagem 8 - Fim do processo de Dump.
Imagem 9 - Resultado do processo, arquivo “fhj666.mem”.
pós realizado o dump de memória RAM, cópia forense e todo o trâmite da coleta, os hashs¹ das mídias apreendidas foram calculados para garantir a integridade das evidências encontrados no local, e por fim o Perito cria a cadeia de custódia² de cada mídia apreendida. Então a acusação elabora os quesitos e o Perito Judicial Lucas Thyerre vai a seu laboratório de Computação Forense para realizar os exames e análises necessárias as resposta dos quesitos, para identificar possíveis evidências digitais.
¹Hash: Algoritmo matemático para garantir a integridade de evidências digitais.
Exemplo de hash md5: 68eacb97d86f0c4621fa2b0e17cabd8c
²Cadeia de custódia: Documento necessário previsto no POP 3.1 (Procedimento Operacional Padrão) para rastreabilidade da evidência. Por exemplo, cada especialista que tocar na evidência para fazer sua perícia deverá por suas credenciais, data, hora e demais informações para que no futuro, caso exista alguma alteração na evidência, seja possível saber quem alterou o estado original da evidência.
Lucas Thyerre iniciará a análise do Dump de memória RAM, o mesmo inicializou seu notebook com o sistema operacional Caine Linux .
O Caine Linux por padrão vem com Volatility Framework instaldo, caso esteja em outra distribuição Linux é necessário instalar, então execute o comando:
$ sudo apt install volatility
Após instalar o software vejamos como utiliza-lo, para isso executemos o comando:
# volatility -h
Imagem 10 - Saída do comando volatility -h.
Vamos utilizar os plug-ins do Volatility Framework, para encontrar informações especificas no qual podemos necessitar, veja na imagem 11 os possíveis plug-ins:
Imagem 11 - Plug-ins suportados.
A priori esse especialista deseja descobrir as informações sobre o Sistema Operacional que o “fhj666” estava a utilizar, para isso, ele utiliza o plug-in imageinfo do Volatility, então no terminal do Caine Linux o mesmo executou o comando:
$ volatility -f fhj666.mem imageinfo > imageinfo.txt
“-f ” : nome do arquivo de dump a ser períciado.
“imageinfo”: plug-in que possuí a função de extrair as informações referentes ao Sistema Operacional que estava funcionando no dispositivo tecnológico.
“> imageinfo.txt”: ‘>’ aponta para a saída onde serão salvas as informações obtidas por meio do plug-in, no caso, a saída será salva no arquivo de texto “imageinfo.txt”.
Imagem 12 - Saída do plug-in imageinfo.
“cat”: É um comando para exibição do conteúdo de um arquivo.
“imageinfo.txt”: Arquivo a ser exibido pelo comando “cat”.
Dessas informações, a que será útil ao perito nesse momento é “Suggested Profile(s) : Win2008R2SP0x64, Win7SP1x64, Win7SP0x64, Win2008R2SP1x64” pois será um desses, o perfil utilizado para obter informações do dump com os demais plug-ins. Nesse caso o profile correto para o Perito utilizar é o “Win2008R2SP1x64”, tente com outros profiles caso o primeiro não seja compatível.
Com o profile correto em mãos, o perito, vai agora verificar os processos que estavam em execução utilizando o plug-in pslist, e novamente o resultado desse plug-in será salvo num arquivo de texto. O plug-in pstree mostra toda arvore de processos, de forma organizada, seria mais indicado para uma análise aprofundada nos processos, como este não é o caso, execute o comando:
$ volatility -f fhj666.mem --profile=Win2008R2SP1x64 pslist > pslist.txt
Imagem 13 - Saída do plug-in pslist.
Podemos notar que este plug-in nos retorna Offset, o nome do processo, PID que é a identificação do processo, PPID identificação do “pai” do processo, threads, hnds, Sess entre outras informações úteis a analise pericial.
Analisando o perito encontrou o software FTK Imager, que fora utilizado para fazer o dump de memória RAM, este software causou uma pequena alteração no estado original da evidência e terá de ser relatado no parecer técnico desta perícia (laudo técnico), veja na Imagem 14:
Imagem 14 - FTK Imager listado nos processos.
Vejamos agora, se é possível encontrar algo suspeito nos arquivos que estavam ou estão sendo executados, para isso o perito executará o plug-in filescan, eis um exemplo de como faze-lo:
$ volatility -f fhj666.mem --profile=Win2008R2SP1x64 filescan > filescan.txt
Imagem 15 - Saída do plug-in filescan.
A saída deste comando nos mostra diversas informações, como permissões de leitura e escrita que aquele programa possui, local onde o mesmo se encontra no HD (Hard Disk), neste caso esse é um dos plug-ins que motivou a realização do dump, afinal Lucas Thyerre queria saber o que Adalberto Pereira estava fazendo naquele momento, e a análise desse plug-in não evidenciou nenhuma ação ilícita.
Na análise dos processos e arquivos não foi possível encontrar nada suspeito, então o especialista pretende observar as DLL’s que foram carregadas na memória RAM, podendo assim saber o que já havia sido utilizado tanto por Adalberto Pereira, como pelo próprio Windows. Então o comando é executado:
$ volatility -f fhj666.mem --profile=Win2008R2SP1x64 dlllist > dlllist.txt
Imagem 16 - Saída do plug-in dlllist.
Em análise encontrou nas DLL’s o programa cmd.exe, que por sua vez, está a executar o comando pushd “C:\Users\Morthar\Pictures”, esse comando está causando alguma alteração no diretório C:\Users\Morthar\Pictures, bom, parece ser um vestígio, que pode ou não levar o perito a uma evidência, agora o perito quer descobrir o que Adalberto Pereira alterou.
Para obter informações detalhadas sobre os comandos executados no cmd.exe, o especialista vai executar o consoles, plug-in que lista os comandos executados no cmd.exe, assim saberá o que foi alterado no diretório C:\Users\Morthar\Pictures, então, ele executou o comando:
$ volatility -f fhj666.mem --profile=Win2008R2SP1x64 consoles > consoles.txt
Imagem 17 - Saída do plug-in consoles.
O especialista buscou por comandos executados no cmd.exe, e encontrou algo que pode ser uma evidência digital, um único comando executado pelo Adalberto Pereira, com destino ao diretório C:\Users\Morthar\Pictures, observe na Imagem 18 a parte selecionada:
Imagem 18 - Comando executado no cmd.exe.
O perito sabe que este comando incorpora um texto a uma imagem, uma forma simples de esteganografia.
O que é estegranografia? é uma palavra originada do grego e significa “escrita oculta”, trata-se de um estudo de técnicas que permitam esconder informações dentro de outros arquivos, como imagens, músicas, videos ou mesmo textos. Agora, entenda comando executado:
> copy /b wallpaper-paisagens-papel-de-parede.jpg + “Receita Metanfetamina.txt” wallpaper-paisagens.jpg
“copy”: Comando que cópia um arquivo ou grupos de arquivos de uma pasta para outra.
“/b”: Indica um arquivo binário.
“+”: Simboliza união entre a imagem wallpaper-paisagens-papel-de-parede.jpg e o arquivo de texto Receita Metanfetamina.txt.
“wallpaper-paisagens.jpg”: Resultado da esteganografia, uma imagem de extensão .jpg que contém um arquivo de texto.
Logo abaixo mostra-se o Dump desse comando, e o mesmo nos revela o destino do comando supracitado C:\Users\Morthar\Pictures. O perito agora analisará a cópia forense do HD pertencente ao notebook de Adalberto Pereira, em busca do arquivo wallpaper-paisagens.jpg.
O HD cópia, deve ser montado com permissão de apenas leitura, para preservar o estado original da evidência. Navegando através do terminal Linux, até a pasta supracitada, veja o que foi encontrado:
Imagem 19 - Listagem do conteúdo da pasta Pictures.
No Linux o comando ls é utilizado para listar arquivos e pastas dentro de determinado diretório.
Agora é possível analisar a imagem com esteganografia, afim de desvenda-la, como o perito sabe que dentro da imagem existe um arquivo de texto, é possível executar essa imagem com um editor de texto qualquer, foi utilizado o editor de texto nano do linux, veja na Imagem 20 o arquivo aberto:
Imagem 20 - Imagem wallpaper-paisagens.jpg executada no nano.
Estes caracteres que não apresentam sentido algum, tratam-se da imagem em texto, mas não é o almejado.
No fim do arquivo, o perito encontra uma evidência digital, veja a Imagem 21:
Imagem 21 - Receita de metanfetamina dentro da Imagem.
Essa evidência digital mostra que no texto criado por Adalberto Pereira, o mesmo está passando a receita da metanfetamina e comandos para alguém apelidado de Tusk007, esse possivelmente iria fabrica-la e vende-la em algum local não citado, Adalberto Pereira em seu texto ainda diz para Tusk007 “executar” alguém, ao que parece, como um requisito para entrar no “negocio”.
Desta forma Lucas Thyerre atuando como Perito Judicial chegou em sua primeira evidência digital deste caso, o mesmo está comprometido em afirmar a verdade de forma imparcial, não tendo qualquer tipo de relação com nenhuma das partes do processo, este ainda está no início de sua análise em resposta à quesitos e poderá ou não encontrar novas evidências.
Essa evidência ainda pode ser forticada pelo assistente técnico de acusação, análisando logs de registros do Windows, para verificar data e hora de criação dos arquivos, usuário que criou os arquivos, thumbnails, entre outros dados que juntos, fortificam essa evidência.
Por outro lado, a função do assistente técnico de defesa, seria encontrar falhas no processo de acusação, com o objetivo de desentranhar as provas do processo, baseando-se no Art. 157 do CPP (Código de Processo Penal) que diz: São inadmissíveis, devendo ser desentranhadas do processo, as provas ilícitas, assim entendidas as obtidas em violação as normas constitucionais ou legais.
OBS:: Adalberto é um personagem fictício, assim como os demais apelidos e formula.
Perito em Computaçāo Forense AD-HOC Thyerre Aguiar