Você está na página 1de 8

Resumo Trata-se de um estudo considerando a relevncia

de percia digital em computadores ligados e em funcionamento,


conhecida como live forensics, especialmente abrangendo as
percias em memria voltil. Apresenta uma viso geral das
informaes armazenadas nesse tipo de memria e algumas
ferramentas especficas para extrair e analisar dados a partir de
dumps de memria; destaca procedimentos periciais importantes
para uma correta anlise de dados dessas memrias e por fim,
apresenta um breve estudo de caso nesse contexto.

Palavras-chave Percia em computadores, Memria voltil,
Vestgios digitais, Anlise de memria, Crimes digitais, Dump de
memria, Volatility, Live forensics

I. INTRODUO
popularizao do uso dos computadores e o advento das
redes de comunicao e da Internet trouxeram valiosos
benefcios sociedade em termos de comunicao,
comodidade e servios remotos. Paralelamente, introduziram a
possibilidade de sua utilizao para a realizao de diversas
atividades ilcitas que podem, inclusive, ter causadores e
afetados distantes fisicamente entre si. Onde outrora era
indispensvel estar presente o elemento humano para a prtica
de determinados crimes, hoje no mais. A disponibilidade de
uma conexo Internet e o uso de programas de computador
especialmente elaborados, em muitos casos, suficiente para
permitir a qualquer indivduo experimentar variadas condutas
criminosas. Espionagem, invases, furto e acesso indevido de
informaes, sabotagem, adulterao e destruio de
informaes, ataques contra servios legtimos em rede,
armazenamento e transmisso de fotos e vdeos de pedofilia,
envio de mensagens comerciais no solicitadas, monitorao
de trfego de dados e comunicaes so algumas das
possibilidades.
Assim como no caso de crimes comuns, o combate aos
crimes cibernticos requer a existncia de evidncias e provas
robustas de sua existncia, que propiciem o pleno
convencimento dos representantes dos poderes estabelecidos
para julgar e punir condutas criminosas. A constituio de
provas nos crimes cibernticos se d por meio da
identificao, coleta e caracterizao de vestgios digitais, ou
seja, de dados e informaes deixados pelos sistemas
computacionais em perifricos, dispositivos de
armazenamento e na prpria memria voltil do computador.
Buscar vestgios digitais e caracteriz-los como evidncias
e provas de crime so atividades fundamentais da percia
forense computacional, que requerem cuidados e
conhecimentos especficos. preciso saber onde pesquisar por
vestgios, que tipos de vestgios buscar, dispor de
conhecimento tcnico para coletar e preservar esses vestgios,
e observar a minimizao dos riscos de sua deteriorao ou
invalidao como prova.
Circunstncias especficas apontam para a necessidade de
se realizar procedimentos de coleta de vestgios digitais no
local em que se encontram instalados os equipamentos
computacionais, enquanto ligados e em funcionamento
normal. Instalaes de equipamentos de grande porte, no
convencionais, ou que suscitem o risco de perda de
informaes significativas ou ainda, a inviabilizao da
percia so exemplos dessas circunstncias. Destaque-se
tambm a situao cada vez mais freqente da possibilidade
de haver configurada proteo por criptografia sobre os
contedos armazenados em dispositivos de mdia dos
equipamentos computacionais, o que tambm justifica
procedimentos de anlise forense live.
Em anlises forenses realizadas em equipamentos ligados e
conectados, possvel identificar processos ativos, dados em
uso pelos processos dispostos em memria, conexes de rede
abertas, alm de ser possvel resgatar contedos de dados
armazenados sem o efeito de uma possvel e indesejada
proteo criptogrfica, considerado o ponto de vista do perito.
II. DADOS EM MEMRIA

A. Viso geral das informaes armazenadas na memria
Tudo o que est sendo executado em um computador
armazenado temporariamente na memria, seja na memria
voltil, seja no arquivo de paginao relacionado com a
memria virtual. Assim, por meio da extrao de uma imagem
da memria conhecida como dump de memria possvel
identificar a relao dos processos em execuo; tambm
vivel estabelecer uma relao entre os processos de modo a
identificar que processos tenham iniciado outros processos; da
mesma forma, possvel identificar quais so os arquivos,
bibliotecas, chaves de registro ou sockets que estavam em uso
por cada processo. Em resumo, possvel mapear como o
sistema estava sendo utilizado no momento da gerao do
dump da memria.
possvel tambm recuperar programas executveis
armazenados em memria, de modo a viabilizar ao perito a
Extrao e Anlise de Dados em Memria na
Percia Forense Computacional
Gilson Marques da Silva, Evandro Mrio Lorens
Departamento de Polcia Federal - DPF
A

anlise desses cdigos, especialmente aqueles desconhecidos e
que eventualmente sero classificados como artefatos
maliciosos capazes de executar ou facilitar a execuo de
crimes.
Da mesma forma que os programas em execuo
permanecem gravados em memria, seus dados de trabalho
tambm assim se encontram. Assim, possvel que sejam
recuperadas informaes variadas, como, por exemplo, uma
senha que porventura ainda esteja armazenada em forma
textual na memria bem como outras informaes especficas
que podem ser recuperadas quando se conhece seu formato,
posio e outras caractersticas teis.

B. Ferramentas para gerar dumps de memria
Na maioria das vezes, para se conseguir um dump de
memria, a opo mais simples e direta a utilizao de uma
ferramenta especfica para esta atividade. Tais ferramentas
realizam uma leitura bit-a-bit da memria copiando todo o seu
contedo para um arquivo, o prprio dump de memria. Como
imagem espelho da memria, este arquivo ter o mesmo
tamanho fsico da memria do computador. Assim, em um
computador com 2 gigabytes de memria RAM (Random
Access Memory) o arquivo de dump ter os mesmos 2
gigabytes.
Embora existam diversas ferramentas voltadas gerao de
dumps de memria, este artigo limita-se a apresentar duas
ferramentas especficas que podem ser utilizadas para esta
tarefa, de maneira simples e com resultados diretos e precisos.
Uma delas o MDD (ManTech Memory DD) [5],
ferramenta freeware, que pode ser executada nas diversas
verses do Windows, desde o 2000 at o 2008, incluindo
tambm o XP e Vista. O arquivo com o dump gerado no
formato binrio sem formatao; gerado por padro tambm
o hash do tipo MD5 (Message Digest version 5) do contedo
do arquivo. Esse hash ser til na garantia da cadeia da
custdia que ser discutida em seo especfica deste trabalho.
O MDD um arquivo executvel com menos de 100
kilobytes de tamanho, que no precisa ser instalado no sistema
no qual se deseja fazer a coleta, podendo ser executado a
partir de mdias removveis, de maneira prtica e simples.
Basicamente, preciso apenas informar o nome do arquivo
que ser gerado, como pode ser visto a seguir:

D:\>mdd_1.3.exeoDumpMemoriaMDD.dmp
>mdd
>ManTechPhysicalMemoryDumpUtility
Copyright(C)2008ManTechSecurity&MissionAssurance
>ThisprogramcomeswithABSOLUTELYNOWARRANTY;fordetailsuseoption`w'
This is free software, and you are welcome to redistribute it under certain
conditions;useoption`c'fordetails.
>Dumping2037.24MBofphysicalmemorytofile'DumpMemoriaMDD.dmp'.

521534mapoperationssucceeded(100)
0mapoperationsfailed
took54secondstowrite
MD5is:2f40ac650fbf88b53517a650a5256222

Outra opo de ferramenta o Win32DD [15], tambm do


tipo freeware, que pode ser executada na maioria das verses
do Windows, no precisa ser instalado e tem menos de 100
kilobytes. O Win32DD tambm gera o hash do arquivo
armazenado com o dump da memria, porm o algoritmo
usado o SHA1 (Secure Hash Algotithm version 1). Da
mesma forma que o MDD o Win32DD gera um dump com
toda a memria RAM no momento de sua execuo, como
pode ser visto a seguir:

D:\>win32dd.exeDumpMemoriaWin32DD.raw
Win32ddv1.2.2.20090608Kernellandphysicalmemoryacquisition
Copyright(c)20072009,MatthieuSuiche<http://www.msuiche.net>

Name Value

Filetype: Rawdump
Acquisitionmethod: \\Device\\PhysicalMemory
Content: Fullphysicaladdressspace
Destinationpath: \??\D:\DumpMemoriaWin32DD.raw
O.S.Version: MicrosoftWindowsVistaHomePremiumEdition,32bitSP1
Computername: GILSONNTB

Physicalmemoryinuse: 55%
Physicalmemorysize: 2086136Kb(2037Mb)
Physicalmemoryavailable: 920168Kb(898Mb)
Pagingfilesize: 4415272Kb(4311Mb)
Pagingfileavailable: 2943468Kb(2874Mb)
Virtualmemorysize: 2097024Kb(2047Mb)
Virtualmemoryavailable: 2069044Kb(2020Mb)
Extentedmemoryavailable: 0Kb(0Mb)
Physicalpagesize: 4096bytes
Minimumphysicaladdress: 0x110000
Maximumphysicaladdress: 0x7F66F000
Addressspacesize: 2137456640bytes(2087360Kb)
Acquisitionstartedat: [6/7/2009(DD/MM/YYYY)18:8:5(UTC)]

Processing....Done.

Acquisitionfinishedat: [6/7/2009(DD/MM/YYYY)18:13:44(UTC)]
Timeelapsed: 5:38minutes:seconds(338secs)
Createdfilesize: 2137456640bytes(2038Mb)
NtStatus(troubleshooting): 0x00000103
Totalofwrittenpages: 537135
Totalofinacessiblepages: 0
Totalofaccessiblepages: 537135

SHA1:B2688FE6D6404F28586AFE6B3A15209EF27C329A

Physicalmemoryinuse: 56%
Physicalmemorysize: 2086136Kb(2037Mb)
Physicalmemoryavailable: 914812Kb(893Mb)
Pagingfilesize: 4415272Kb(4311Mb)
Pagingfileavailable: 2930420Kb(2861Mb)
Virtualmemorysize: 2097024Kb(2047Mb)
Virtualmemoryavailable: 2069044Kb(2020Mb)
Extentedmemoryavailable: 0Kb(0Mb)
Minimumphysicaladdress: 0x110000
Maximumphysicaladdress: 0x7F66F000
Addressspacesize: 2137456640bytes(2087360Kb)

Independentemente da ferramenta utilizada para a gerao
do dump de memria, este pode ser processado pelo sistema
Volatility, a ser discutido na sequncia deste trabalho, desde
que o dump tenha sido gerado no formato raw,

C. Outros meios para a obteno de dumps de memria
Nem sempre ser possvel instalar uma ferramenta no
sistema para o qual se deseja gerar o dump de memria. Em
alguns casos, nem a simples execuo ser vivel. Em
especial, em computadores alvos de operaes de busca e
apreenso, nos quais o perito no pode alterar o sistema, sob
pena de contaminao e nulidade da prova.
Uma primeira alternativa buscar por arquivos de dump j
armazenados no computador. Vale ressaltar que, neste caso, as
informaes do dump no correspondero ao momento atual
do sistema, mas a algum momento passado, quando aquele

arquivo foi gerado. O Windows, por exemplo, gera arquivos
de dump quando ocorrem problemas severos na execuo do
sistema operacional, que so mais especificamente chamados
de arquivos de crash dump. Por padro estes arquivos so
armazenados em c:\windows\ ou c:\winnt\ com o nome
memory.dmp. No caso do Windows XP e Vista, a opo
padro de gerao do dump em formato reduzido, na qual
no se copia toda a memria, mas apenas a parte necessria
identificao e caracterizao da falha ocorrida. No entanto,
esses sistemas podem ser configurados para gerar dumps de
memria completos, da mesma forma que fazem as
ferramentas discutidas na seo anterior. O formato padro
dos sistemas Windows para servidores como o 2000, 2003 e
2008 o formato completo. O formato de dump bem como a
forma de armazenamento do mesmo podem ser configurados
na opo Configuraes Avanadas do Sistema, guia
Avanado, item Inicializao e Recuperao, no cone
Sistema do Painel de Controle.
Uma alternativa complementar coletar os arquivos de
paginao c:\pagefile.sys ou o arquivo de hibernao
c:\hyberfil.sys. O primeiro contm parte da memria que
tenha passado pelo processo de paginao [13]. O segundo
contm uma cpia da memria RAM no momento em que o
sistema foi comandado a entrar no modo de hibernao. Na
maioria das vezes, os dois arquivos contm informaes
privilegiadas ou confidenciais. Alm disso, o arquivo de
hibernao tem todas as informaes da memria, tal qual um
dump completo. Os arquivos de paginao e hibernao
tambm podem ser explorados pela soluo Volatility, como
ser apresentado em seo especfica deste trabalho.
Caso a suspeita ou a necessidade de anlise recaia sobre um
processo especfico, ou sobre um conjunto deles, possvel,
no Windows Vista, a obteno de um dump de memria
somente daquele processo. O prprio sistema operacional
fornece o mecanismo com a funcionalidade. Basta abrir o
gerenciador de tarefas (CTRL+ALT+ESC), selecionar o
processo desejado, clicar com o boto direito e acessar a
opo Criar despejo de memria. O arquivo ser criado no
diretrio temporrio do usurio logado, com o nome do
processo seguido da extenso .dmp. Como esta opo no
existe no XP e o Volatility ainda no analisa dumps de
memria do Vista, esta alternativa pode no oferecer
resultados imediatos, mas poder ser til quando o Volatility
passar a suportar os novos sistemas operacionais da Microsoft.
Finalmente, uma opo que pode trazer bons resultados
para a atividade pericial quando o sistema est bloqueado e h
suspeita de uso de sistemas de criptografia de armazenamento,
a explorao de uma vulnerabilidade de projeto do DMA
(Direct Memory Access), que independe do sistema
operacional em uso. Um ataque explorador vivel o Hit by
bus, owned by iPod [1]. Como restrio, destaque-se que essa
tcnica s funcionar em sistemas que disponham de portas do
tipo firewire ou slots do tipo express card. Outra ressalva a
fazer que este ataque nem sempre ser bem sucedido, pois o
sistema poder reiniciar, a memria poder no ser
completamente copiada, ou poder simplesmente no
funcionar. Logo, dever ser utilizado apenas como uma
tentativa que poder ou no gerar o resultado desejado. Sua
concepo como um procedimento padro e comprometido
com resultados sempre efetivos no adequada, porquanto
uma tentativa sem sucesso poder desgastar a credibilidade do
perito. Obviamente, esse tipo de procedimento pode ser muito
til nos casos nos quais o sistema est bloqueado e utiliza
soluo para criptografia de armazenamento, e no se tem
acesso chave para acesso aos arquivos. Em tal cenrio, as
tcnicas usuais provavelmente no gerariam resultados
satisfatrios e a tcnica de ataque referida poderia trazer
algum melhor resultado. O estudo e o detalhamento desse
ataque extrapolam o escopo deste trabalho, e portanto no
sero discutidos.
III. PROCEDIMENTOS PERICIAIS PARA ANLISE DE DADOS EM
MEMRIA
A. Atendimento a quesitos
Via de regra, os procedimentos periciais esto atrelados a
investigaes de crimes e objetivam responder perguntas e
esclarecer aspectos circunstanciais sobre ocorrncias de
crimes como o que ocorreu?, onde?, quando?, qual o
meio empregado?, de que forma foi utilizado?, quem foi o
autor?. Este conjunto de seis perguntas, com a adio da
questo por que?, conhecido no ramo da criminalstica
como o heptmero das circunstncias de Quintiliano [3] e
constitui-se como fundamento nas metodologias de
investigao criminal. No trabalho conjunto de investigao,
cabe ao perito responder formalmente quesitos relacionados
aos vestgios angariados. Os quesitos so usualmente
elaborados pela autoridade policial condutora do processo
investigatrio, embora o Cdigo de Processo Penal brasileiro
em seu artigo 159, faculte tal prerrogativa tambm ao
Ministrio Pblico, ao assistente de acusao, ao ofendido, ao
querelante e ao acusado [2].
No caso de percias computacionais, especificamente as
percias em dados de memria voltil registrados em um dump
de memria, so viabilizadas respostas para vrios tipos de
quesitos, a saber, dentre outros:
Quais so a data e hora da imagem da memria?
Que programas estavam em execuo?
Que servios de rede o computador executava?
Que servios de rede o computador usava?
A que outros computadores o computador periciado estava
conectado?
Que arquivos estavam em uso pelos programas em
execuo no computador?
Que faixas de endereos de memria estavam em uso por
cada programa?
Que verses de sistemas operacionais estavam carregadas
no computador?
Que mapeamentos de endereos fsicos para endereos
virtuais havia no computador?

B. Cadeia de custdia
Basicamente, a cadeia de custdia pode ser entendida como
um conjunto de processos de controle de integridade,
disponibilidade e idoneidade do vestgio desde a sua
descoberta at o seu efetivo descarte ou utilizao como
elemento probatrio nas instncias da J ustia.

As percias em memria voltil tambm se subordinam aos
aspectos da cadeia de custdia, e cuidados essenciais devem
ser observados nos procedimentos de coleta, processamento e
produo de resultados.
No procedimento de coleta dos dados de memria,
importante que a produo do dump de memria seja realizada
de maneira automtica, sem nenhuma interveno ou
interferncia que possa afetar o contedo da memria
enquanto ocorrer a extrao. Tambm essencial que o
arquivo gerado para posterior anlise seja uma imagem exata
da memria, bit a bit, com vistas manuteno da integridade
do vestgio. Em geral, as ferramentas especficas para gerao
de dumps cuidam para que os aspectos acima sejam
observados.
Imediatamente aps a coleta, sugere-se que o arquivo de
dump de memria seja submetido a uma funo resumo (hash)
que associar o contedo do arquivo a uma seqncia
numrica nica, de modo que, em termos prticos, caso ocorra
qualquer alterao no contedo do arquivo, no seja possvel
validar ou reproduzir o mesmo hash. Outras providncias
interessantes so a gravao do arquivo em mdia no
altervel ou a habilitao dos atributos do arquivo para
somente leitura.
Na fase de processamento dos dados de memria
representados pelo arquivo de dump, sob a tica da cadeia de
custdia, devem ser observados os aspectos de funcionalidade,
confiabilidade e eficincia como atributos de qualidade de
software [4] do sistema empregado para extrair dados do
arquivo de dump, considerando basicamente que o sistema
realize exatamente aquilo que se prope a realizar, de maneira
funcional, confivel e eficiente, no permitindo erros de
operao e especialmente da interpretao dos dados
analisados.
Na formalizao dos resultados, o perito deve cuidar em
expor as evidncias, suas interpretaes e deve tambm
apresentar a metodologia de anlise e as etapas do seu
trabalho, ressaltando os controles de garantia da cadeia de
custdia.

C. Concluses periciais
A percia da memria voltil de um determinado
computador por meio da anlise de um dump de memria
pode identificar inequivocamente a ocorrncia de
determinadas condutas delituosas realizadas com o apoio de
computadores.
O modelo de arquitetura dos computadores modernos,
baseado na arquitetura de Von Neumann [13] tem como
caracterstica bsica o conceito de programa armazenado, que
prope que os programas em execuo no computador devem
estar carregados em memria, assim como os dados
manuseados por eles. Em termos prticos e do ponto de vista
pericial, isso significa que o uso de computador em atividades
ilcitas sempre deixar vestgios na memria voltil em tempo
de execuo dos programas empregados.
A ttulo ilustrativo so apresentadas a seguir algumas
atividades maliciosas e alguns dos vestgios relacionados que
podem ser extrados da memria voltil em situaes
especficas e, consequentemente, subsidiar o trabalho pericial.



TABELA I
ATIVIDADES MALICIOSAS E VESTGIOS
Furto de
identidades e
senhas comuso
de programas
espies
instalados
remotamente
Conexes comoutros computadores usando servios
de transferncia de arquivos suspeitos;
Cdigos fontes carregados para edio com
funcionalidades tpicas;
Cdigos executveis componentes de solues
cliente-servidor tpicas;
Arquivos de texto e/ou de imagens carregados para
edio commensagens forjadas emnome de
instituies terceiras para ludibriar pessoas comuns;
Servio ativo de e-mail recebendo mensagens
automticas comdados e senhas de contas bancrias,
cartes de crdito e outros;

Pedofilia Conexes comoutros computadores usando servios
de transferncia de arquivos suspeitos;
Arquivos de imagemou vdeo suspeitos carregados
para edio e visualizao;
Histrico de navegao armazenado na registry
contendo endereos de stios de pedofilia;
Servio ativo de e-mail e/ou mensagens instantneas
enviando ou recebendo mensagens comimagens e
vdeos de pedofilia anexados;

Ameaas e
extorses
Espionagem
industrial
Arquivos de texto, imagem, vdeos e outros contendo
informaes reservadas de pessoas, comerciais e/ou
industriais, carregados para edio e visualizao;
Servio ativo de e-mail e/ou mensagens instantneas
recebendo mensagens relacionadas a ameaas,
extorses ou espionagemindustrial;

Spam Cdigos executveis de servidores simples de correio
eletrnico;
Tabelas ou cdigos carregados relacionando
servidores de correio na Internet comconfiguraes
de relay abertas;
Arquivos de texto e/ou de imagens carregados para
edio commensagens comerciais no solicitadas
Tabelas carregadas comgrande nmero de endereos
de e-mail, identidades e perfis de stios de
relacionamento, e contas de servios de mensagens
instantneas;
Servio ativo de correio eletrnico ou mensagens
instantneas enviando mensagens comcontedo
comercial no solicitado;

Hospedagemde
arquivos ou
stios de
pedofilia,
pirataria,
comrcio de
drogas, armas e
outros ilcitos
Servio web ativo e servidores web carregados com
pginas tpicas;
Informaes do servio web e das pginas hospedadas
na mquina armazenadas na registry;
Conexes web de entrada abertas comrequisies
para pginas hospedadas suspeitas;
Invases
Operao de
bots
Uso de rootkits
Cdigos executveis componentes de solues
cliente-servidor tpicas;
Conexes comoutros computadores usando servios
e portas no convencionais e suspeitos;

Articulao
criminosa
Terrorismo
Arquivos, planilhas, mensagens instantneas ou e-
mail carregados cominformaes de alvos e
comparsas, atribuies, endereos e telefones,
movimentaes financeiras suspeitas, planejamento e
tarefas suspeitas;



IV. UMA OPO DE FERRAMENTA PARA EXTRAO DE DADOS
DE DUMPS: VOLATILITY

A. Introduo ferramenta Volatility
Volatility uma coleo de ferramentas abertas destinada
extrao de contedos digitais armazenados em memria
voltil de sistemas operacionais Windows XP. Construdo em
linguagem Python, foi concebido para funcionar em qualquer
plataforma de sistema operacional para a qual exista
implementao de Python, de forma totalmente independente
do sistema em investigao.
A ferramenta idealizada pela Volatile Systems prope uma
plataforma de apoio coleta e anlise de evidncias digitais
contidas em memria voltil, proporcionando a obteno de
um variado conjunto de informaes ali armazenadas, a saber:
Data e hora da imagem da memria RAM
Processos em execuo
Sockets de rede abertos
Conexes de rede abertas
DLLs carregadas para cada processo
Arquivos abertos para cada processo
Chaves de registro para cada processo
Memria enderevel de um processo
Mdulos do kernel do sistema operacional
Mapeamento de endereos fsicos para endereos virtuais
Informaes do Virtual Address Descriptor.
Como funcionalidades adicionais do conjunto Volatility,
destacam-se a capacidade de realizar varredura no dump em
busca de processos, sockets, conexes e mdulos carregados,
o suporte transparente a vrios formatos de dumps, a
converso automatizada entre formatos e a possibilidade de
uso de mdulos de terceiros.
A arquitetura do Volatility sustenta-se basicamente em trs
pilares: espao de endereos, objetos e perfis, e mdulos de
viso de dados. O espao de endereos diz respeito
organizao da memria; os objetos so uma abstrao para os
dados encontrados em memria; e os mdulos de viso de
dados referem-se localizao dos objetos na memria e a
respectiva extrao desses objetos [14].

B. Instalao
Nesta seo so apresentados os passos necessrios para a
correta instalao da ferramenta e de seus pr-requisitos em
sistemas operacionais como o Windows XP ou Vista.

1. Realizar o download do Python [10] necessrio o
Volatility formado por um conjunto de scripts
desenvolvidos em Python, sendo essa plataforma
necessria para a execuo dos mesmos.
2. Instalar o Python em modo padro nenhuma alterao
nas opes de instalao necessria.
3. Realizar o download do Volatility [14].
4. Descompactar o arquivo baixado.
5. Abrir uma janela de prompt de comando e testar o
funcionamento do Python e do Volatility, com o comando:

c:\Python30\python.exec:\Volatility\volatility
VolatileSystemsVolatilityFrameworkv1.3
Copyright(C)2007,2008VolatileSystems
Copyright(C)2007Komoku,Inc.
Thisisfreesoftware;seethesourceforcopyingconditions.
ThereisNOwarranty;notevenforMERCHANTABILITYorFITNESSFORA
PARTICULARPURPOSE.
usage:c:\Volatility\volatilitycmd[cmd_opts]
Runcommandcmdwithoptionscmd_opts
Forhelponaspecificcommand,run'c:\Volatility\volatilitycmdhelp'
SupportedInternelCommands:
connections Printlistofopenconnections
connscan Scanforconnectionobjects
connscan2 Scanforconnectionobjects(New)
datetime Getdate/timeinformationforimage
dlllist Printlistofloadeddllsforeachprocess
dmp2raw Convertacrashdumptoarawdump
dmpchk Dumpcrashdumpinformation
files Printlistofopenfilesforeachprocess
hibinfo Converthibernationfiletolinearrawimage
ident Identifyimageproperties
memdmp Dumptheaddressablememoryforaprocess
memmap Printthememorymap
modscan Scanformodules
modscan2 Scanformoduleobjects(New)
modules Printlistofloadedmodules
procdump Dumpaprocesstoanexecutablesample
pslist Printlistofrunningprocesses
psscan ScanforEPROCESSobjects
psscan2 Scanforprocessobjects(New)
raw2dmp Convertarawdumptoacrashdump
regobjkeys Printlistofopenregkeysforeachprocess
sockets Printlistofopensockets
sockscan Scanforsocketobjects
sockscan2 Scanforsocketobjects(New)
strings Matchphysicaloffsetstovirtualaddresses
thrdscan ScanforETHREADobjects
thrdscan2 Scanforthreadobjects(New)
vaddump DumptheVadsectionstofiles
vadinfo DumptheVADinfo
vadwalk Walkthevadtree
SupportedPluginCommands:
Example:volatilitypslistf/path/to/my/file

O auxlio para cada opo pode ser obtido com o seguinte


comando:

c:\Python30\python.exec:\Volatility\volatilitypslisthelp
Usage:pslist[options](seehelp)
Options:
h, helpshowthishelpmessageandexit
fFILENAME, file=FILENAME(required)XPSP2Imagefile
bBASE, base=BASEPhysicaloffsetofdirtablebase
tTYPE, type=TYPEIdentifytheimagetype(pae,nopae,auto)

Desta forma, a ferramenta estar pronta para ser usada,


porm necessrio que o arquivo com a imagem de memria
esteja disponvel para ser trabalhada.
A instalao em sistemas do tipo Linux praticamente no
difere do que foi descrito nesta seo. Basta que o Python
esteja instalado e os arquivos do Volatility estejam
descompactados em uma pasta qualquer. Neste caso,
recomendvel que as permisses dos diretrios e arquivos
sejam configuradas de modo seguro, evitando a exposio
desnecessria do sistema. Estas configuraes extrapolam o
escopo deste trabalho, contudo podero ser consultadas em
[12].

C. Funcionamento e uso
Nesta seo so apresentados os resultados de algumas
opes disponibilizadas pela ferramenta Volatility para a
extrao de informaes da memria. Uma boa alternativa

para os primeiros testes com a ferramenta usar um arquivo
com um dump de memria disponibilizado pelo NIST
(National Institute of Standards and Technology), [8].
Primeiramente, a opo ident pode ser utilizada para
identificar a imagem e mostrar a data e hora em que o dump
foi gerado.

c:\Python30\python.exec:\Volatility\volatilityidentfc:\memoryimages\xplaptop.img
ImageName:c:\memoryimages\xplaptop.img
ImageType:ServicePack2
VMType:nopae
DTB:0x39000
Datetime:MonJul1416:37:252009

Outra opo gerar uma relao dos processos que estavam


em execuo. Esta relao inclui o identificador numrico do
processo (Pid), o identificador numrico do pai do processo
(PPid), bem como outras informaes teis para comprovar o
que estava sendo executado na mquina.

c:\Python30\python.exec:\Volatility\volatilitypslistfc:\memoryimages\xplaptop.img
Name Pid PPid Thds Hnds Time
System 4 0 61 1140 ThuJan0100:00:001970
smss.exe 448 4 3 21 SatJul1413:27:132009
csrss.exe 504 448 12 596SatJul1413:27:402009
winlogon.exe 528 448 21 508SatJul1413:27:412009
services.exe 580 528 18 401 SatJul1413:27:412009
lsass.exe 592 528 21 374 SatJul1413:27:422009
svchost.exe 740 580 17 198 SatJul1413:27:432009
svchost.exe 800 580 10 302 SatJul1413:27:442009
svchost.exe 840 580 83 1589 SatJul1413:27:442009
Smc.exe 876 580 22 423 SatJul1413:27:452009
svchost.exe 984 580 6 90 SatJul1413:27:472009
firefox.exe 2160 1812 6 182 SatJul1413:27:532009
PluckSvr.exe 944 740 9 227 SatJul1413:27:572009
iexplore.exe 2392 1812 9 365SatJul1413:28:012009
PluckTray.exe2740 944 3 105SatJul1413:28:032009

Tambm de grande utilidade para os procedimentos


periciais a gerao da relao de conexes e sockets que
estavam ativos no sistema no momento do dump de memria.
Para isso, as opes connscan e sockets podem ser utilizadas.

c:\Python30\python.exec:\Volatility\volatilityconnscanfc:\memoryimages\xp
laptop.img
LocalAddress RemoteAddress Pid

192.168.2.7:1164 66.179.81.247:80 944
192.168.2.7:1082 205.161.7.134:80 2392
127.0.0.1:1055127.0.0.1:1056 2160
192.168.2.7:107764.62.243.144:80 2392
192.168.2.7:1066 199.239.137.200:80 2392
127.0.0.1:1056127.0.0.1:1055 2160

c:\Python30\python.exec:\Volatility\volatilitysocketsfc:\memoryimages\xp
laptop.img
Pid PortProto CreateTime
4 138 17 SatJul1413:27:302009
4 0 47 SatJul1413:27:342009
2160 1055 6 SatJul1413:27:562009
2392 1064 17 SatJul1413:28:042009
2392 1077 6 SatJul1413:28:072009
4 4456 SatJul1413:27:382009
2392 10666 SatJul1413:28:082009
2392 10826 SatJul1413:28:112009
4 1396 SatJul1413:27:482009
4 10286 SatJul1413:27:552009
2160 10566 SatJul1413:27:582009
4 44517 SatJul1413:28:012009

D. Extrao de hashs do tipo SAM e visualizao das senhas
Uma informao interessante, muitas vezes disponvel na
memria so os hashs do tipo SAM (Security Account
Manager). Cada usurio do sistema operacional tem uma
senha cadastrada, armazenada na forma de um hash. Estes
hashs so considerados e tratados como informao
confidencial pelo sistema operacional, pois com acesso a eles,
outros procedimentos de ataque podem ser executados de
modo a conseguir a obteno efetiva de senhas que permitiro
acessos no autorizados no sistema. Sob o ponto de vista da
percia, caso haja respaldo judicial, este procedimento pode
permitir acesso ao sistema e at mesmo aos arquivos
criptografados, caso a criptografia esteja atrelada senha de
acesso ao sistema.
A tarefa de recuperao de senhas a partir dos hashs
armazenados em memria pode ser dividida em trs etapas: a
obteno do dump de memria, j discutida; a extrao dos
hashs do dump e a quebra dos hashs com a visualizao das
senhas.
Para a extrao dos hashs necessrio que o Volatility
esteja instalado, no entanto, outros dois mdulos so
necessrios o pyCrypto [9] e o mdulo Volatility Plugin from
Moyix [7]. Os seguintes passos devem ser seguidos:
1. Realizar o donwload do Volatility Plugin from Moyix,
descompactar os pacotes e copi-los sobre as pastas
originais do Volatility, sobrescrevendo os arquivos
existentes nas seguintes pastas: forensics, memory_objects
e memory_plugins.
2. Realizar o donwload do pyCrypto e instal-lo em suas
configuraes padro.
3. Supondo que o dump de memria (xp-laptop.img) esteja
disponvel, executar o seguinte comando:

c:\Python30\python.exec:\Volatility\volatilityhivescanfc:\memoryimages\xp
laptop.img
Offset(hex)
4736799201b0e738
4751375201b4a738
...........corte.................
5215710401e1cd870
5481620801f9604f0

4. Com base no primeiro offset apresentado, executar o


seguinte comando:

c:\Python30\python.exec:\Volatility\volatilityhivelistfc:\memoryimages\xp
laptop.imgo01b0e738
AddressName
0xe1bc4006\DocumentsandSettings\Administrator\NTUSER.DAT
0xe1afeb68\DocumentsandSettings\LocalService\LocalSettings\Application
Data\Microsoft\Windows\UsrClass.dat
0xe1c4c006\DocumentsandSettings\LocalService\NTUSER.DAT
0xe1c004d8\DocumentsandSettings\NetworkService\NTUSER.DAT
0xe1619b68\WINDOWS\system32\config\software
0xe161bb68\WINDOWS\system32\config\default
0xe1751b68\WINDOWS\system32\config\SAM
0xe1637006\WINDOWS\system32\config\SECURITY
0xe1256756\WINDOWS\system32\config\system

5. O comando seguinte montado com a localizao (offset)


dos arquivos system e SAM, gerando os hashs desejados.

c:\Python30\python.exec:\Volatility\volatilityhashdumpfc:\memoryimages\xp
laptop.imgy0xe1256756s0xe1751b68
ExtractedSAM:
Administrator:500:5CB625623A24D503EF3335D9CAEF53BF:BB7B0AC2BDCA5BECEB1B2
90EE97FA32F:::
Guest:501:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C
089C0:::

gilsonm:1000:02D7F8F3A0A48C3B6CF90A2DDECFFFDB:127069A1E054864C319A13B17
9EB2037:::
operador:1001:AAF63EC2074BA90FAAD3B435B51404EE:9EECB7BC0F6FC26F1FDCBD91
E9FE4B7C:::
usuario:1002::78BCCAEE08C90E29AAD3B435B51404EE:972E8E7D5568F70AC896B2C76
E1395DC:::

6. Gerar um arquivo texto com o resultado do comando


anterior.
7. Baixar e instalar a ferramenta SamInside [11].
8. Executar a ferramenta e importar o arquivo no item File,
opo Import from PWDUMP file. As senhas sero
apresentas em tela como abaixo; um ataque de fora bruta
tambm pode ser comandado:

V. ESTUDO DE CASO APLICADO PERCIA FORENSE



O objetivo deste estudo de caso mostrar como as
ferramentas apresentadas neste trabalho podem ser usadas
pelos peritos e ser teis na resposta a quesitos que podem
gerar provas fortes e embasar uma investigao em curso.
Para a apresentao deste estudo de caso, foi instalado um
ambiente de laboratrio com um sistema Windows XP, no
qual foram instalados e configurados:

1. O software eMule, um cliente P2P (Peer to Peer), que
comumente encontrado em boa parte dos computadores
domsticos e que pode ser usado como ferramenta de
apoio aos crimes cibernticos no compartilhamento e
transferncia de imagens, pedofilia, programas maliciosos
ou outras informaes.
2. Um programa malicioso, criado por crackers para o roubo
de credenciais de acesso, em especial de acessos aos
servios de Internet Banking. Neste caso foi utilizado o
kb1.exe, um banker j obsoleto, mas adequado ao
propsito didtico deste trabalho.
3. Todas as ferramentas descritas neste trabalho, objetivando
simplificar a extrao e a anlise de informaes da
memria.

Primeiramente, um dump de memria (CasoTeste1.dmp)
foi gerado por meio da ferramenta MDD, j apresentada.
Uma relao de processos foi gerada com a opo pslist do
Volatility; somente a parte que nos interessa mostrada
abaixo, contendo o identificador dos processos do eMule e do
banker:

NamePid PPid Thds Hnds Time
Kb1.exe712 5 1 11 ThuJul1601:15:072009
emule.exe 983 337 9 231ThuJul1601:15:432009

De forma semelhante, utilizando as opes connscan e
sockets do Volatility, so identificados os endereos IP
(Internet Protocol), portas e protocolos em uso pelos dois
programas:


LocalAddress RemoteAddress Pid

189.15.129.17:1078 194.67.36.117:80 712
189.15.129.17:51259 38.107.164.24:4661 983
127.0.0.1:51259 127.0.0.1:4661 983

Pid PortProto CreateTime


712 25 6 ThuJul1601:15:132009
983 4661 6 ThuJul1601:15:522009

Em especial, interessante mapear quais arquivos, chaves


de registro e DLLs esto em uso pelo banker. Para isso, as
opes files, regobjkeys e dlllist do Volatility podem ser
usadas. Vale a pena especificar o nmero do processo (712)
com a opo -p:

Pid:712
File\WINDOWS\system32
File\net\NtControlPipe11
File\Endpoint

Pid:712
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware
Profiles\Current\System\CurrentControlSet\SERVICES\TSWDD\DEVICE1

Commandline:C:\WINDOWS\System32\kb1.exe
Base Size Path
0x1000000 0xa000 C:\WINDOWS\System32\kb1.exe
0x7c800000 0xf4000 C:\WINDOWS\system32\kernel32.dll
0x76f20000 0x27000 C:\WINDOWS\System32\DNSAPI.dll

Uma outra possvel necessidade da investigao
identificar se o referido software realmente malicioso, se
capaz de capturar e enviar informaes confidenciais ao
suposto criminoso. Para isso, o perito poder extrair o
executvel do dump da memria, tendo acesso ao mesmo
cdigo objeto que estava em execuo na mquina
investigada, e monitorar seu comportamento em um ambiente
de anlise de artefatos, verificando suas caractersticas e
eficcia. A extrao pode ser feita da seguinte forma:

c:\Python30\python.exec:\Volatility\volatilityprocdumpp712f
c:\Gilson\CasoTeste1.dmp
************************************************************************
Dumpingkb1.exe,pid:712output:executable.712.exe

C:\Gilson>dir
OvolumenaunidadeCnotemnome.
ONmerodeSriedoVolumeD3CB38F9
PastadeC:\Gilson
16/07/200902:14<DIR>.
16/07/200902:14<DIR>..
16/07/200902:144.301executable.712.exe
1arquivo(s)4.301bytes
2pasta(s)3.467.876.864bytesdisponveis

Em uma ltima etapa, as chaves SAM podem ser extradas,
processadas e quebradas conforme j exposto neste trabalho.
Estas senhas, por comodidade do administrador ou usurio da
mquina, alm de permitir o acesso ao sistema, podem
tambm coincidir com senhas de arquivos protegidos ou
criptografados, senhas de contas de e-mail, dentre outras.

Logo, dentro dos limites legais de autorizaes judiciais, as
senhas reveladas podem ser testadas para acesso a outros
sistemas do investigado.
Por meio da utilizao plena das capacidades do Volatility
e outras ferramentas de suporte, muito mais pode ser feito. O
que foi mostrado neste estudo de caso pode ser considerado
significativo em termos de arcabouo probatrio robusto,
necessrio eventual atuao da J ustia.
VI. CONCLUSO E TRABALHOS FUTUROS

A necessidade crescente de anlises periciais mais
completas implica na adoo de novos processos que no
somente a anlise das mdias de armazenamento secundrio.
Neste sentido necessrio que procedimentos e tcnicas para
a extrao e a anlise de dados da memria voltil sejam bem
definidos e adotados em benefcio dos trabalhos periciais.
Uma significativa quantidade de informaes pode ser
obtida dos dados extrados de memria, incluindo evidncias e
provas de comportamentos maliciosos e crimes digitais.
Nos processos de extrao e anlise de dados de memria,
fundamental que as metodologias adotadas privilegiem a
qualidade e a preciso dos dados, e especialmente a cadeia de
custdia dos vestgios apurados.
J se fazem disponveis para a comunidade forense e de
usurios em geral, diversas ferramentas confiveis, de
utilizao relativamente simples, voltadas extrao de dados,
gerao de dumps de memria e anlise de contedo de dumps
gerados. O uso combinado dessas ferramentas e outras tantas
voltadas ao suporte tcnico de sistemas operacionais pode
agregar importante valor aos trabalhos de anlise pericial em
computadores investigados.
Como trabalhos futuros nesse contexto, sugerem-se
anlises de desempenho e comparativas entre ferramentas,
conceituao e elaborao de frameworks integradores de
ferramentas voltadas percia de memria voltil,
levantamentos de conceitos e diretivas de organizaes de
memria de outros sistemas operacionais, aprimoramento de
automatizaes e customizaes das ferramentas periciais
existentes, desenvolvimento de novas ferramentas ainda mais
interativas e amigveis, e documentaes mais completas de
metodologias periciais relacionadas.

REFERNCIAS

[1] Boileau Adam. Hit by bus: physical access attacks with firewire,
Disponvel em:
http://www.ruxcon.org.au/files/2006/firewire_attacks.pdf. Acessado em
09/07/2009.
[2] Brasil. Cdigo de Processo Penal. Disponvel em:
http://www.planalto.gov.br/ccivil_03/Decreto-Lei/Del3689.htm.
Acessado em13/07/2009.
[3] Carvalho, J oo. Investigao pericial criminal e criminologia.
Campinas: Bookseller, 2005.
[4] Falbo, Ricardo. Engenharia de software notas de aula. Disponvel
em http://www.inf.ufes.br/~falbo/download/aulas/es-g/2006-
2/NotasDeAula.pdf. Acessado em13/07/2009.
[5] MDD. Mantech Memory DD 1.3, Disponvel em:
http://www.mantech.com/msma/mdd.asp.Acessado em13/07/2009.
[6] Microsoft. Uma funcionalidade do Windows permite gerar umficheiro
de informaes de estado da memria utilizando o teclado. Disponvel
em: http://support.microsoft.com/kb/244139/pt. Acessado em
23/06/2009.
[7] Moyix. Volatility Plugin from Moyix , Disponvel em:
http://kurtz.cs.wesleyan.edu/~bdolangavitt/memory/volreg-0.2.zip.
Acessado em09/07/2009.
[8] NIST. Imagens de Memrias (NIST), Disponvel em:
http://www.cfreds.nist.gov/mem/memory-images.rar. Acessado em
23/06/2009.
[9] PyCrypto, PyCrypto 2.0.1, Disponvel em:
http://www.voidspace.org.uk/downloads/pycrypto-2.0.1.win32-
py2.6.exe. Acessado em09/07/2009.
[10] Python. Python 3.0.1, Disponvel em: http://www.python.org/download/.
Acessado em23/06/2009.
[11] SamInside. Sam Inside 2.5.8.0 , Disponvel em:
http://saminside.en.softonic.com/. Acessado em09/07/2009.
[12] Silva, Gilson Marques. Segurana emSistemas Linux. Rio de J aneiro:
Cincia Moderna, 2008.
[13] Tanenbaum, Andrew. Organizao estruturada de computadores. 5.
ed. So Paulo: Pearson Prentice Hall, 2007.
[14] Volatility. Volatility 1.3 Beta , Disponvel em:
https://www.volatilesystems.com/default/volatility/. Acessado em
23/06/2009.
[15] Win32DD. Win32DD 1.2.2.20090608, Disponvel em:
http://win32dd.msuiche.net/. Acessado em13/07/2009.

BIOGRAFIA

Gilson Marques da Silva (gilson-
marques@hotmail.com) nasceu emMatutina no
estado de Minas Gerais no Brasil, em 14 de
junho de 1975. Ele graduou-se na Universidade
Federal de Uberlndia, como bacharel em
Cincia da Computao no primeiro semestre de
1998. No incio de 2000 concluiu o curso de ps
graduao latu-sensu emTelecomunicaes e no
segundo semestre de 2001 terminou o curso de
ps graduao latu-sensu em Redes de
Computadores. Em 2005 concluiu mestrado
strictu-sensu emCincia da Computao na rea
de Segurana em Redes sem Fios na Faculdade de Computao da
Universidade Federal de Uberlndia. Sua experincia profissional inclui
atividades como analista de redes na diretoria de processamento de dados da
Universidade Federal de Uberlndia, como professor no nvel de graduao e
ps-graduao na UFU e UNIMINAS e como coordenador da rea de
segurana e antifraude de grande empresa operadora de telecomunicaes.
Atualmente Perito Criminal Federal no Departamento de Polcia Federal,
lotado na Unidade Tcnico-Cientfica da delegacia de Marlia/SP.
_________________________________

Evandro Mrio Lorens (lorens@unb.br)
natural de Belo Horizonte/MG; graduado em
Cincia da Computao pela Universidade
Federal do Esprito Santo UFES, especialista
emTelecomunicaes e Redes de Comunicao
pela UFES e mestre emCincia da Informao
pela Universidade de Braslia UnB. Atuou nas
reas de TI, gesto e segurana da informao no
BANESTES Banco do Estado do Esprito Santo
(1989-2000), Caixa Econmica Federal (2000-
2007) e Banco Central do Brasil (2007- 2009);
professor nos cursos de Cincia da Computao
na UnB (2000-2002), e Cincia da Computao, Sistemas de Informao,
Engenharia da Computao e Engenharia Eltrica na Universidade Paulista
UNIP (2002-2009). Atualmente Perito Criminal Federal do Departamento de
Polcia Federal, lotado na Unidade Tcnico-Cientfica da delegacia de
Sinop/MT