21-11-2008 - Atualização:
Rob Lee (da Mandiant e Sans Institute) publicou um interessantíssimo post contendo um how-to sobre o que comentamos em setembro neste blog (Live Response versus Memory Analysis) , usando como exemplo o Memoryze e o Volatility. Vale a pena conferir estas referências sobre o assunto:
- http://www.hbgary.com/papers/The%20value%20of%20physical%20memory%20for%20incident%20response.pdf
- http://www.search.org/files/pdf/collectevidenceruncomputer.pdf
- http://sansforensics.wordpress.com/2008/11/19/memory-forensic-analysis-finding-hidden-processes/
05-09-2008 - Atualização:
Os pesquisadores
Cal Waits,
Joseph Ayo Akinyele,
Richard Nolan e
Larry Rogers - do
Carnegie Mellon University’s Software Engineering Institute - publicaram ontem um interessante relatório - intitulado "
Computer Forensics: Results of Live Response Inquiry vs. Memory Image Analysis. (SEI Technical Note CMU/SEI-2008-TN-017)".
O documento apresenta cenários onde evidências voláteis úteis à investigação são obtidas de duas formas diferentes:
1) coletadas de uma máquina ligada - utilizando ferramentas da
Sysinternals (agora Microsoft).
2) colatadas através de dump da memória RAM da máquina - utilizando o
Volatility e o PTFinder.Para cada caso é mostrada a abordagem de resposta e de análise dos dados coletados, além de ser feita uma apresentação das vantagens e desvantagens dos métodos em questão e sua utilidade no curso de uma investigação envolvendo computadores ligados.
Ao final é sugerido pelos pesquisadores uma abordagem híbrida, utilizando tanto a análise de dados voláteis quanto dumps de memória durante a triagem do incidente em curso.
Para auxiliar grandes corporações a alcançar este objetivo em redes com milhares de pontos e grande complexidade, existem soluções comerciais como o
Encase Enterprise, da Guidance Software.
23-06-2008:Conforme apontado por
Lance Mueller, a versão 6.11 do Encase Forensic possui utilitários standalone de extração de Memória RAM (32bits : "
winen.exe" e 64bits: "
winen64.exe" - que funcionam nos sistemas operacionais
Windows 2000, XP, 2003 & Vista).
Z:\>winen.exe -h
Usage: [Options]
-p : Evidence File Path
-m : Evidence Name (Max Size:50)
-c : Case Number (Max Size:64)
-e : Examiner Name (Max Size:64)
-r : Evidence Number (Max Size:64)
-d : Compression level (0=None, 1=Fast, 2=Best) (Default: 0)
-a : A semicolon delimated list of Alternate paths
-n : Notes (Max Size:32768)
-s : Maximum file size in mb (Default: 640) (min:1 max:10485760)
-g : Error granularity (Sectors) (Default: 1) (min:1 max:1024)
-b : Block size (Sectors) (Default: 64) (min:1 max:1024)
-f : Path to configuration file
-t: Turns off hashing the evidence file (default: true)
-h: This help message
Para efetuar o
parsing das imagens de memória adquiridas,
podem ser utilizados:
1 -
Encase + Enscripts Encase
publicados por TK_Lane - para
XP SP2 e para
Windows 2000
2 -
FTK Imager Lite
3 - Volatility Open Source (CygWin/OSX/Linux) - escrito em python
Volatility Supported Commands:
connections Print list of open connections
connscan Scan for connection objects
datetime Get date/time information for image
dlllist Print list of loaded dlls for each process (VERY verbose)
files Print list of open files for each process (VERY verbose)
ident Identify image properties such as DTB and VM type (may take a while)
modules Print list of loaded modules
pslist Print list of running processes
psscan Scan for EPROCESS objects
sockets Print list of open sockets
sockscan Scan for socket objects
strings Match physical offsets to virtual addresses (VERY verbose)
thrdscan Scan for ETHREAD objects
vaddump Dump the Vad sections to files
vadinfo Dump the VAD info
vadwalk Walk the vad tree
1 - Exemplo de extração de processos executando de um Windows XP:
ss@ss:~/Volatility-1.1.2$ python volatility pslist -f memory-images/xp-laptop-2005-06-25.img
Name Pid PPid Thds Hnds Time
System 4 0 61 1140 Thu Jan 01 00:00:00 1970
smss.exe 448 4 3 21 Sat Jun 25 16:47:28 2005
services.exe 580 528 18 401 Sat Jun 25 16:47:31 2005
lsass.exe 592 528 21 374 Sat Jun 25 16:47:31 2005
(...)
wuauclt.exe 2424 840 4 160 Sat Jun 25 16:49:21 2005
firefox.exe 2160 1812 6 182 Sat Jun 25 16:49:22 2005
PluckSvr.exe 944 740 9 227 Sat Jun 25 16:51:00 2005
iexplore.exe 2392 1812 9 365 Sat Jun 25 16:51:02 2005
PluckTray.exe 2740 944 3 105 Sat Jun 25 16:51:10 2005
PluckTray.exe 3256 1812 0 -1 Sat Jun 25 16:54:28 2005
cmd.exe 2624 1812 1 29 Sat Jun 25 16:57:36 2005
wmiprvse.exe 4080 740 7 0 Sat Jun 25 16:57:53 2005
PluckTray.exe 3100 1812 0 -1 Sat Jun 25 16:57:59 2005
dd.exe 4012 2624 1 22 Sat Jun 25 16:58:46 2005 2 - Exemplo de extração de conexões estabelecidasem de um Windows XP:
ss@ss-ubuntu:~/Volatility-1.1.2$ python volatility connections -f memory-images/xp-laptop-2005-06-25.img Local Address Remote Address Pid
127.0.0.1:1056 127.0.0.1:1055 2160
127.0.0.1:1055 127.0.0.1:1056 2160
192.168.2.7:1077 64.62.243.144:80 2392
192.168.2.7:1082 205.161.7.134:80 2392
192.168.2.7:1066 199.239.137.200:80 2392 3 - Exemplo de extração de objetos EPROCESS em de um Windows XP:ss@ss:~/Volatility-1.1.2$ ./volatility psscan -f memory-images/xp-laptop-2005-07-04-1430.imgNo. PID Time created Time exited Offset PDB Remarks
---- ------ ------------------------ ------------------------ ---------- ---------- ----------------
1 0 0x00558e80 0x00039000 Idle
2 3612 Mon Jul 04 18:24:00 2005 0x013383b0 0x19d19000 PluckTray.exe
3 3276 Mon Jul 04 18:21:11 2005 0x0133d810 0x1ebc8000 firefox.exe
4 2496 Mon Jul 04 18:18:06 2005 0x01462be0 0x185c5000 VPTray.exe
5 2392 Mon Jul 04 18:18:03 2005 0x0146e860 0x17b7f000 explorer.exe
6 3128 Mon Jul 04 18:19:11 2005 0x01474510 0x1c1b5000 wuauclt.exe
7 368 Mon Jul 04 18:24:30 2005 Mon Jul 04 18:26:44 2005 0x01488350 0x1bb44000 PluckUpdater.ex
8 2692 Mon Jul 04 18:18:15 2005 0x014b8a58 0x1972e000 WZQKPICK.EXE
9 480 Mon Jul 04 18:17:29 2005 0x014dc020 0x0dec3000 winlogon.exe
10 2548 Mon Jul 04 18:18:07 2005 0x014ecc00 0x18962000 jusched.exe
11 680 Mon Jul 04 18:17:31 2005 0x014f0020 0x0e7b3000 svchost.exe
12 1380 Mon Jul 04 18:17:40 2005 0x01521da0 0x12701000 DefWatch.exe
13 524 Mon Jul 04 18:17:30 2005 0x015221c8 0x0e0de000 services.exe
(...)Seguem para referência dois guias interessantes que detalham os passos a serem seguidos nos casos em que é necessária a Forense de Dados Voláteis:
Muitas novidades devem surgir neste campo em breve, um evento para ficar de olho é o
Digital Forensics Research Workshop (DFRWS) 2008 - que ocorrerá em 10/08/2008 e sediará também o evento "
Open Memory Forensics Workshop (OMFW)", com a presença já garantida dos seguintes especialistas:
- Dr. Brian Carrier (Basis Technology)
- Eoghan Casey (ONKC)
- Dr. Michael Cohen (Australian Federal Police)
- Brian Dykstra (Jones Dykstra & Associates)
- Brendan Dolan-Gavitt (Georgia Institute of Technology)
- Matthew Geiger (CERT)
- Keith Jones (Jones Dykstra & Associates)
- Jesse Kornblum (ManTech)
- Andreas Schuster (Deutsche Telekom AG)
- AAron Walters (Volatile Systems, LLC)