anti-anti-forense de memória: abortando o "abort factor"

66
Memory Anti-Anti Forensics in a Nutshell Aborting the Abort Factor Tony Rodrigues www.octanelabs.net

Upload: nullbyte-security-conference

Post on 14-Jan-2017

131 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Memory Anti-Anti Forensics in aNutshell

Aborting the Abort Factor

Tony Rodrigues www.octanelabs.net

Page 2: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

#whoami

• Tony Rodrigues, CISSP, CFCP, Security+• 30 anos em TI

– Desenvolvimento– Contingência– Segurança de Informações/Computação Forense

• Perito em DFIR• Fundador e Pesquisador-Chefe do OctaneLabs• Blog: http://forcomp.blogspot.com

Page 3: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

#whoami

Page 4: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Fora de TI

● Carioca● Faixa Preta em Kickboxing e Muay Thai

Page 5: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Fora de TI

Page 6: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Fora de TI

• Fotógrafo, Mochileiro • E o mais importante ...

Page 7: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Torcedor do Melhor Timedo Mundo !!!

Page 8: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Agenda• Computação Forense e a importancia

da Forense de Memória• Forense de Memória• Organização de Memória do Windows• Lembra daqueles erros no seu dump

de memória ?• Abort Factor• Atacando a Memória• Podemos reverter ?• Abortando o Abort Factor• Conclusões

Page 9: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Aviso de Isenção deResponsabilidade

As declarações publicadas aqui sãode minha única e exclusiva

iniciativa e não representam,necessariamente, opinião,

estratégia e posicionamento domeu empregador.

Page 10: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Computação Forense ea importancia da

Forense de Memória

Page 11: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

CF – Importancia daForense de Memória

• Análise Post Mortem

• Análise Live

• Análise Dump Memória

Volume de dados dificulta alocalização de malwares

Pode ser comprometida pormalwares (hooking) – menosconfiável em alguns casos

Melhor relação esforço-resultado!!

Page 12: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

• Processo realizado em apenas 2 etapas– Coleta da memória (Dump)– Análise do dump

• Consegue identificar

–Processos e respectivas informações – Dados não alocados (processos terminados)– Processos que estejam ocultos

CF – Importancia daForense de Memória

Page 13: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Forense de Memória

Page 14: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Coletando a Memoria

User Mode

Kernel Mode

Inicio da Aquisição Inicio da Analise

Ferramenta deAquisição

Ferramenta deAnalise

Dump deMemória

Analise Dump

Driver deAquisição

NtWriteFile () dumpNtWriteFile () dump

Host Remoto

Dump MemóriaAlgoritmo Dump de

Memória\\Device\\PhysicalMemoryPhysical space mapping (MmMapIoSpace())

Page 15: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

• Coleta– MoonSols Windd (Raw e CrashDump)– WinEn (Raw)– HBGary Responder (Raw)– DumpIt (Raw)– WinPMem (Raw e CrashDump)– Windows Memory Reader– Belkasoft Live Ram Capturer

Forense de Memória

Page 16: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

• Análise– Volatility– Redline ou Memorize– HBGary Responder– Rekall

Forense de Memória

Page 17: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

• Open Source• Versão Windows OS – XP, Vista, 7, 8,

8.1, 2003, 2008 e 2012• Suporta Raw, Crash Dump, snapshot de

máquinas virtuais e Hibernation• Arquitetura Intel x86• Trabalha com conceito de plugins

Volatility

Page 18: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Volatility

Page 19: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

• Desenvolvido pela Mandiant– Foco na análise dos processos

• Versão Windows OS - todas• Suporta apenas Raw• Duas arquiteturas: x86 e AMD64• Trabalha três conceitos

– Malware Risk Index– IoC (Indicators of Compromise)– MemD5 (whitelist)

Redline

Page 20: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Redline

Page 21: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

• Desenvolvido pela HBGary• Versão Windows OS – Todas• Suporta apenas Raw• Duas arquiteturas: x86 e AMD64• Trabalha com dois conceitos

– Digital DNA– Code Graphing

HBGary Responder

Page 22: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

HBGary Responder

Page 23: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Organização de Memóriado Windows

Page 24: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

AtençãoAs estruturas da memória

podem variar com a versãodo Sistema Operacional ou

mesmo do Service Pack

Page 25: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Memória do WindowsUm conjunto de bytes

Page 26: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Organização da Memoria

PageTableEntries

Memória FísicaPaginasVirtuais

00000000

7FFFFFFF

80000000

C0000000

C1000000

FFFFFFFF

Page 27: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Tradução de endereçosvirtuais

PaginaDesejada

Existem outros modelos de endereçamento como o PAE e 64 bits

Page DirectoryIndex

Page TableIndex

Byte Index

KPROCESS

CR3

PFN

PFNPDE

PTE

EndereçoFísico

Index

Index

Index

Endereço Físico

Page 28: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Estruturas ImportantesProcess Control Block (PCB)

Process ID

Parent Process ID

Image File Name

Exit Status

Create and Exit Time

Active Process Link

Session Process Link

Quota BlockMemory Management Information

Security,Exception, Debug Ports

(...)

Process Counter

Process Flag

Image Base Address

EPROCESS

Dispatcher Header

Kernel Time

User Time

Cycle Time

Inheritable ThreadScheduling Flags (...)

Insawap-Outswap List Entry

Thread List Head

Process SpinlockProcessor Afinity

Resident Kernel Stack Count

Process State

Thread Seed

Ideal Node

KTHREAD

PS

Act

iveP

roce

ssH

ead

Estrutura EPROCESS

Estrutura KPROCESS

(...) Directory Table Base

Page 29: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Outras Estruturas

Page 30: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Lembra daqueles errosno seu dump de

memória ?!?

Page 31: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"
Page 32: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"
Page 33: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"
Page 34: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Abort Factor

Page 35: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Ataque do Abort Factor

• BlackHat 2012• O ataque é contra a análise• Baseado na modificação de um byte em alguns

lugares específicos (Abort Factor)• Implementado em código que executa no nível

do Kernel• Busca inviabilizar as ferramentas de análise

Page 36: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Ataque do Abort Factor• Ataque é realizado sobre operações

críticas– Tradução do endereçamento virtual do kernel

space– Identificação da arquitetura e Sistema

Operacional– Obtenção de Objetos do Kernel

• Não pode dar BSOD !

Page 37: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Abort Factors Possíveis

Page 38: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Atacando a Memória

Page 39: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Atacando a Memória• Rootkit

– Altera o abort factor• Apenas 1 byte alterado em cada• Não pode dar BSOD*

– Logo no momento da carga do rootkit

• Durante a análise, teremos:– Impossibilidade de achar o SO– Erro nas operações

• No PoC realizado a máquina ficou ligada por 15 dias consecutivos sem dar BSOD

Page 40: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Código disponível

Page 41: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Uso• Malwares

– Esconder os vestígios na memória– Evitar ou atrasar a análise do dump

• Auto-defesa maliciosa– Usuário malicioso pode usar na própria

máquina– Evitar vestígios de atividades ilícitas

Page 42: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Podemos reverter isso?

Page 43: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Apresentando ....

PhosfosolOctaneLabs

Indicium in Veritas

Page 44: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Abortando o Abort Factor

• Fato– Abort Factor inviabiliza todas as 3

ferramentas de análise

• Anti-Abort Factor– Fazendo funcionar para ao menos uma das

ferramentas

• Volatility é o alvo– Permite indicar DTB e Profile

Page 45: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Como ?

• Principalmente– Localizando o DTB do Kernel– Inferindo o profile correto

• Foco em estruturas de kernel intactas ecorrelação– Não atacadas por opção– Não atacadas por impossibilidade– Correlação entre os vestígios

Page 46: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Estruturas preservadas

• PoC somente explora 3 Abort Factors– Código pronto. Copy&Paste– Os 3 explorados já cumprem o objetivo

• Outros podem ser mais complicados– Pelo menos em um primeiro momento

• Estruturas mapeadas– Eprocess do IDLE– _DBGKD_DEBUG_DATA_HEADER64

(KDBG)

Page 47: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Ataque impossível

• Assinaturas baseadas em endereços– Endereços adulterados == BSOD

• Estruturas auto-referenciadas– Page Directory Table, Page Table

Page 48: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Estruturas Auto-Referenciadas

Page 49: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Estruturas Auto-Referenciadas

Page 50: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Phosfosol

Abort Factor

Page 51: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Phosfosol

Vamos usaressas

informações

Page 52: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Phosfosol → VolatilityDTB informado

Profileinformado

Page 53: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

E se não funcionar ?!?

Page 54: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Phosfosol não funcionou

• Outros Abort Factors foram usados– Assinatura do KDBG adulterada– Imagename do System ou do Idle adulterado

• Serão endereçados no upgrade doPhosfosol

Page 55: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Phosfosol 2.0 Ultra GoldVitaminado ++

• Uso de assinaturas fortes– Trabalho de Brendan Dolan-Gavitt– Carving baseado em campos críticos

• BSOD se adulterados

• Suportará ataques múltiplos até mesmode todos os Abort Factors conjugados

• Novas opções de linha de comando– Confirmação de ataque/abort factor– Reversão do ataque

Page 56: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Conclusões• Abort Factor é um ataque eficiente

✔ Lançado em 2012✔ Ainda efetivo em 2016

• Código disponível• Phosfosol pode recuperar as informações

danificadas

Page 57: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Referencias• Phosfosol

– https://code.google.com/p/phosfosol/

• OctaneLabs– http://www.octanelabs.net

• Moonsols (Dumpit, Win32dd)– http://www.moonsols.com/

• Mandiant (Red Line, Memoryze)– http://www.mandiant.com/

• HBGary (Responder Community Edition)– http://www.hbgary.com/

• Volatility

– https://code.google.com/archive/p/volatility/

Page 58: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

References• One-byte Modification for Breaking Memory Forensic Analysis

– https://media.blackhat.com/bh-eu-12/Haruyama/bh-eu-12-Haruyama-Memory_Fore

nsic-Slides.pdf

• Robust Signatures for Kernel Data Structures– http://www.cc.gatech.edu/~brendan/ccs09_siggen.pdf

• Windows Kernel Architecture Internals– Dave Probert

• Windows Internals– Mark Russinovich, David Solomon

• Windows operating systems agnostic memory analysis– http://www.dfrws.org/2010/proceedings/2010-306.pdf

Page 59: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Obrigado !• Agradecimentos do OctaneLabs

– Ao co-autor Diego Fuschini

– Takahiro Haruyama san

– Mr Brendan Dolan-Gavitt

– Mr Matthieu Suiche

Page 61: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

OctaneLabs

• O que é OctaneLabs ???• Time de Pesquisa Open Source em

Computação Forense e Resposta aIncidentes

Page 62: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

OctaneLabs

• Objetivos• Fomentar a pesquisa em

Computação Forense no Brasil• Promover Projetos Open Source

com foco em Computação Forensee Investigação Digital

• Ministrar Treinamentos em CF• Consultoria, Perícia e Investigação

Digital

Page 63: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

OctaneLabs

• Projetos• MUFFIN• Byte Investigator• DataJuicer• Jardineiro• CORE• FSJuicer• Phosfosol• Blitz• Langoliers

Page 64: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

We Want YOU ! www.octanelabs.net@octanelabs

Page 65: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Perguntas !

Page 66: Anti-Anti-Forense de Memória: Abortando o "Abort Factor"

Obrigado !

inv.forense arroba gmailponto com

@octanelabs

(Tony Rodrigues)