AnALise Forense em Memoria Ricardo Kléber Martins Galvão www.ricardokleber.com ricardokleber@ricardokleber.com SecurityDay :: 23/11/2013
Análise Forense Definindo e Contextualizando... A aplicação de princípios das ciências físicas ao direito na busca da verdade em questões cíveis, criminais e de comportamento social para que não se cometam injustiças contra qualquer membro da sociedade (Manual de Patologia Forense do Colégio de Patologistas Americanos, 1990). Levantar evidências que contam a história do fato: Quando? Como? Porque? Onde? Normas e Procedimentos
Computação Forense Definindo e Contextualizando... Supre as necessidades das instituições legais para manipulação de evidências eletrônicas; Estuda a aquisição, preservação, identificação, extração, recuperação e análise de dados em formato eletrônico; Produz informações diretas e não interpretativas. Auxilia em investigações que apuram desde violações de normas internas a crimes eletrônicos
Computação Forense Use com moderação e responsabilidade... Lei 12.737/2012 Art. 154-A Invadir dispositivo informático alheio, conectado ou não à rede de computadores, mediante violação indevida de mecanismo de segurança e com o fim de obter, adulterar ou destruir dados ou informações sem autorização expressa ou tácita do titular do dispositivo ou instalar vulnerabilidades para obter vantagem ilícita: Pena detenção, de 03 (três) meses a 01 (um) ano, e multa. 1 o Na mesma pena incorre quem produz, oferece, distribui, vende ou difunde dispositivo ou programa de computador com o intuito de permitir a prática da conduta definida no caput. 2 o Aumenta-se a pena de um sexto a um terço se da invasão resulta prejuízo econômico.
Computação Forense É necessário se especializar... A contestação de técnicas periciais utilizadas (quando provada tecnicamente) pode inviabilizar todo o esforço pericial... Na maioria das vezes é mais fácil provar que as técnicas utilizadas foram inadequadas que provar que o acusado é inocente... Boaz Guttman (www.4law.co.il) Não basta formação/conhecimento na área... Perícia em Informática é coisa séria!!!
Computação Forense Contextualizando... Conceitos Importantes Evidências Não-Voláteis x Voláteis Tipos de Análise: In Loco Post mortem Recuperação Extração
Computação Forense Contextualizando... O que Coletar/Analisar? Mídias Hds, pendrives, cds, dvds... Dispositivos não convencionais Câmeras digitais, óculos/relógios/pulseiras... (com dispositivos de armazenamento). Dados trafegando na rede Grampos digitais para interceptar dados trafegando entre equipamentos Dados em memória O que está (ou estava) na memória volátil
Computação Forense em... Mídias Captura, recuperação, extração e análise (com ferramentas apropriadas)
Computação Forense em... Redes Captura de tráfego e realização da Extração (com ferramentas apropriadas)
Computação Forense em... Memória Análise a quente dos dados da memória Dump (cópia de conteúdo de memória) e análise (com ferramentas apropriadas)
Análise Forense em Memória Definição e Pontos Relevantes Manipulação e/ou captura e análise de dados armazenados na memória volátil (passível de perda no desligamento ou sobrescrita no funcionamento normal) do equipamento O que buscar? Arquivos abertos, bibliotecas em execução, módulos ativos Processos em execução e conexões estabelecidas Senhas (sem criptografia) armazenadas temporariamente Informações de controle do Sistema Operacional Dados do registro (Windows) por exemplo... Malwares!!!
Análise Forense em Memória Análise a quente Abordagem que deve ser planejada com cuidado!!! Acesso ao sistema ligado Possibilidade de: Contaminação de dados Destruição de evidências Contestação judicial (quando for o caso) Provável impossibilidade de repetição de atividades de análise
Análise Forense em Memória Análise a quente Comandos "básicos" do Windows ipconfig, arp, nbtstat, netstat, net,... Ferramentas complementares (avançadas): Sysinternals http://technet.microsoft.com/en-us/sysinternals/default.aspx Process Explorer Autoruns DiskMon NTFSInfo PortMon PsExec PsFile PsInfo PsList PsLogList PsService PsSuspend RAMMap Registry Usage RootKitRevealer Strings TCPView (...) Outros Desenvolvedores: NirSoft Foundstone
Análise Forense em Memória Análise a quente COFEE (Computer Online Forensic Evidence Extractor) Ferramenta Law Enforcement da Microsoft https://cofee.nw3c.org/ http://www.microsoft.com/enus/news/press/2009/oct09/10-13cofeepr.aspx https://wikileaks.org/wiki/microsoft_cofee_(com puter_online_forensics_evidence_extractor)_tool _and_documentation,_sep_2009
Análise Forense em Memória Análise a quente COFEE (Computer Online Forensic Evidence Extractor) Conjunto de comandos do próprio Windows e da Sysinternals arp.exe a at.exe autorunsc.exe getmac.exe handle.exe a hostname.exe ipconfig.exe /all msinfo32.exe /report %OUTFILE% nbtstat.exe n nbtstat.exe A 127.0.0.1 nbtstat.exe S nbtstat.exe c net.exe share net.exe use net.exe file net.exe user net.exe accounts net.exe view net.exe start net.exe Session net.exe localgroup administrators /domain net.exe localgroup net.exe localgroup administrators net.exe group netdom.exe query DC netstat.exe ao netstat.exe no openfiles.exe /query/v psfile.exe pslist.exe pslist.exe t psloggedon.exe psservice.exe pstat.exe psuptime.exe quser.exe route.exe print sc.exe query sc.exe queryex sclist.exe showgrps.exe srvcheck \127.0.0.1 tasklist.exe /svc whoami.exefee
Análise Forense em Memória Análise a quente COFEE (Computer Online Forensic Evidence Extractor) DECAF = Ferramenta para detecção e subversão de dados enviados para o COFEE http://decafme.org Spoof de MAC Address Kill em processos ativos Shutdown na máquina Desabilita adaptadores de rede Desabilita portas USB Desabilita Floppy Drive (!!??) Desabilita CD/DVD-ROM Desabilita portas Seriais e Paralelas Apaga arquivos e pastas Apaga logs do Event Viewer Remove clientes torrent Apaga cache, cookies e histórico do browser
Análise Forense em Memória Dump + Análise post mortem Desafio inicial: Estrutura (não é um sistema de arquivos estruturado) Busca por expressões regulares (comando strings) = padrões/evidências Método manual Uso de ferramentas específicas para manipular imagens de memória Encontrar offsets das principais estruturas Extrair estruturas da memória/dump Recuperar evidências Análise Independe do sistema de arquivos analisado
Análise Forense em Memória A Captura (Dump) Captura (dump) pode ser realizada via hardware ou software Captura via Hardware (especializado) Suspensão do processador Captura da imagem via DMA (Direct Memory Access) Ex: Tribble Card Placa que deve ser instalada ANTES do comprometimento do sistema Vídeo de exemplo (Youtube): http://www.youtube.com/watch?v=vjszltaiyik
Análise Forense em Memória A Captura (Dump) Captura (dump) via software Linux: Ferramentas para Aquisição (dump): dd/dcfldd (/dev/fmem) Windows: Ferramentas para Aquisição (dump): dd para Windows (dd.exe) http://gmgsystemsinc.com/fau/ Memparser (Chris Betz) http://sourceforge.net/projects/memparser/ Win32dd Win64dd DumpIt (Moonsols) http://www.moonsols.com/windows-memory-toolkit/
Análise Forense em Memória A Captura (Dump) Captura (dump) via software :: Outras Ferramentas: Mandiant Memoryze http://www.mandiant.com/software/memoryze.htm Mantech Memory DD http://www.mantech.com/msma/mdd.asp Winen32/64 (Guidance) http://www.guidancesoftware.com FastDump (HBGary) http://www.hbgary.com/download_fastdump.html http://www.forensicswiki.org/ wiki/tools:memory_imaging
Análise Forense em Memória Análise post mortem Após aquisição de imagem de memória (dump) Uso de strings/grep e buscas específicas Carving Manual Exemplo (Sistemas Windows) Qual a Versão do Windows? Dump de memória + strings = arquivo_strings cat arquivo_strings egrep '(KB[0-9]{6})' grep -i windows Busca por expressões regulares: Nomes de pessoas/usuários E-mails eventualmente disponíveis na memória Nomes de documentos, programas, senhas...
Análise Forense em Memória Análise post mortem Outras ferramentas para análise de imagens (dumps): FATKit WMFT Procenum Idetect VAD Tools FlyPaper WinDbg Memoryze (Mandiant) PTK (Framework) EnCase (Guidance) FTK (Access Data) F-Response HBGary Responder KnTTools
Análise Forense em Memória Framework Específico para Análise (múltiplos S.O.) Volatility (+plugins) http://code.google.com/p/volatility Versão Atual: 2.3.1 Linguagem de Desenvolvimento: Python Blog (alternativo): http://www.forensicswiki.org/wiki/volatility_framework Plugins: http://www.forensicswiki.org/wiki/list_of_volatility_plugins
Análise Forense em Memória Framework Específico para Análise (múltiplos S.O.) Volatility (+plugins) Versão estável (pacote) de sua distribuição (Linux/Debian): apt-get install volatility Versão estável atualizada = Subversion (SVN): svn checkout http://volatility.googlecode.com/svn/trunk
Análise Forense em Memória Framework Específico para Análise (múltiplos S.O.) # python vol.py -h Volatility Foundation Volatility Framework 2.3.1 Usage: Volatility - A memory forensics analysis platform. Principais opções/parâmetros: -h help da ferramenta --conf-file=/root/.volatilityrc arquivo de configuração (default) -d modo de depuração (debug) --plugins=plugins diretório para plugins extras --info informações sobre todos os objetos
Análise Forense em Memória Framework Específico para Análise (múltiplos S.O.) # python vol.py --info Volatility Foundation Volatility Framework 2.3.1 Profiles -------- VistaSP0x64 VistaSP0x86 (...) Plugins ------- apihooks atoms (...) - A Profile for Windows Vista SP0 x64 - A Profile for Windows Vista SP0 x86 - Detect API hooks in process and kernel memory - Print session and window station atom tables
Análise Forense em Memória com Volatility Uso em Dumps de Memória de Sistemas Windows Exemplos de uso de plugins no Volatility: python vol.py {plugin} -f {arquivo_dump} Informações sobre o sistema da imagem analisada: $ python vol.py imageinfo -f {arquivo_dump} Módulos/bibliotecas carregados: $ python vol.py modules -f {arquivo_dump} Sockets (Ips e portas com data/hora: $ python vol.py sockets -f {arquivo_dump} Processos ativos c/data/hora: $ python vol.py pslist -f {arquivo_dump}
Análise Forense em Memória com Volatility Exemplos de Uso :: Sistemas Windows Saída do parâmetro imageinfo: # python vol.py imageinfo -f imagem_windows.raw Volatility Foundation Volatility Framework 2.3.1 Determining profile based on KDBG search... Suggested Profile(s) : WinXPSP2x86, WinXPSP3x86 Number of Processors : 1 Image Type (Service Pack) : 3 Image date and time : 2011-04-10 21:29:25 UTC+0000 Image local date and time : 2011-04-10 14:29:25-0700
Análise Forense em Memória com Volatility Exemplos de Uso :: Sistemas Windows Saída do parâmetro pslist: # python vol.py pslist -f imagem_windows.raw Volatility Foundation Volatility Framework 2.3.1 Determining profile based on KDBG search... Offset(V) Name PID PPID Thds Hnds Sess Wow64 Start Exit --------- -------------------- ----- ----- ------ ------ ------ ------ ------------ ------------------------------ 0x823c8830 System 4 0 55 246 -- 0 0x82156a18 SMSS.EXE 368 4 3 19 -- 0 2011-04-10 21:05:13 UTC+0000 0x81e42020 CSRSS.EXE 600 368 10 362 0 0 2011-04-10 21:05:16 UTC+0000 0x81f1a978 WINLOGON.EXE 624 368 23 522 0 0 2011-04-10 21:05:16 UTC+0000 0x81ead620 SERVICES.EXE 668 624 16 252 0 0 2011-04-10 21:05:16 UTC+0000 0x82145020 LSASS.EXE 680 624 22 331 0 0 2011-04-10 21:05:16 UTC+0000 0x82328020 SVCHOST.EXE 844 668 18 164 0 0 2011-04-10 21:05:16 UTC+0000 0x81d82158 SVCHOST.EXE 1056 668 6 76 0 0 2011-04-10 21:05:17 UTC+0000 0x81f1f228 SVCHOST.EXE 1104 668 14 194 0 0 2011-04-10 21:05:18 UTC+0000 0x8227bb28 EXPLORER.EXE 1956 1932 16 427 0 0 2011-04-10 21:05:29 UTC+0000 0x81d5ada0 ALG.EXE 840 668 6 101 0 0 2011-04-10 21:05:33 UTC+0000 0x82088a78 WORDPAD.EXE 320 1204 2 98 0 0 2011-04-10 21:08:40 UTC+0000 0x820d3c10 cmd.exe 972 1956 1 33 0 0 2011-04-10 21:28:24 UTC+0000 0x81f6d228 win32dd.exe 1120 972 1 22 0 0 2011-04-10 21:29:24 UTC+0000 (...)
Análise Forense em Memória com Volatility Exemplos de Uso :: Sistemas Windows Saída do parâmetro connscan: # python vol.py connscan -f imagem_windows.raw Volatility Foundation Volatility Framework 2.3.1 Offset(P) Local Address Remote Address Pid ---------- ---------------------- ------------------------- --- 0x02350cd8 192.168.1.32:1044 91.199.75.77:80 1204 0x024b8838 192.168.1.32:1047 192.168.1.150:139 4
Análise Forense em Memória com Volatility Windows 8 :: O que há de novo!!?? Suporte do Volatility para Windows8: - Versão 3.0 (em desenvolvimento) Addition of Windows 8 / Server 2012 Support/Testing Novos Profiles para Windows 8 = Win8SP0x86 Win8SP0x64 - Tutorial da nova versão: https://volatility.googlecode.com/svn/branches/scudette/docs/index.html - Versão Atual (desenvolvimento) [24/02/2013] Preview Release 0.2: https://volatility.googlecode.com/files/volatility-tp2.zip - Instalação via SVN: svn checkout http://volatility.googlecode.com/svn/branches/scudette/ volatility #./vol.py --help The Volatility Memory Forensic Framework technology preview (3.0_tp2)
Análise Forense em Memória com Volatility Windows 8 :: O que há de novo!!?? Plugins Disponíveis (versão 3.0_tp2): kdbgscan pslist pstree psscan dlllist dlldump pedump handles getsids cmdscan consoles procinfo memmap procexedump vadinfo vadwalk vadtree vaddump evtlogs modules modscan moddump driverscan filescan mutantscan symlinkscan thrdscan connections connscan sockets sockscan netscan hivescan hivelist printkey hivedump hashdump lsadump userassist shimcache getservicesids crashinfo hibinfo imagecopy raw2dmp malfind yarascan svcscan ldrmodules impscan apihooks idt gdt threads callbacks driverirp devicetree psxview timers
Análise Forense em Memória com Volatility Windows 8 :: O que há de novo!!?? Última Dica sobre o Volatility: - Versão 3.0 (em desenvolvimento) Traz, adicionalmente, ferramenta de Dump de Memória: WinPMEM /usr/share/volatility-3.0-tp2/tools/windows/winpmem Versão 1.1 Copyright 2012 Michael Cohen <scudette@gmail.com> Licença: Apache 2.0
Análise Forense em Memória com Volatility Imagens para Praticar NIST Computer Forensic Reference Data Sets (CFReDS Project): - http://www.cfreds.nist.gov/mem/ Arquivo com várias amostras de imagens de memória: http://www.cfreds.nist.gov/mem/memory-images.rar Imagens de Memórias disponibilizadas pelo Volatility (para testes): http://code.google.com/p/volatility/wiki/samplememoryimages
Distribuições Específicas Facilitando a vida do Perito :) www.deftlinux.net Distribuição Específica para Computação Forense Versão Atual: 8.0 Versão LiveCD e LiveUSB
Distribuições Específicas Facilitando a vida do Perito :) www.kali.org Nova Geração das distribuições para pentesting Sucessor do Backtrack Linux (7 anos de desenvolvimento) Desenvolvido pela Offensive Security Baseado no Debian 7.0 (Wheezy) Disponível desde 11/03/2013 ISO (Live / Instalador) e Máquina Virtual (Vmware)
Quer saber mais sobre Segurança da Informação? www.ricardokleber.com Palestras: www.ricardokleber.com/palestras Vídeos: www.ricardokleber.com/videos Twitter: www.twitter.com/ricardokleber