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

Post on 14-Jan-2017

131 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Memory Anti-Anti Forensics in aNutshell

Aborting the Abort Factor

Tony Rodrigues www.octanelabs.net

#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

#whoami

Fora de TI

● Carioca● Faixa Preta em Kickboxing e Muay Thai

Fora de TI

Fora de TI

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

Torcedor do Melhor Timedo Mundo !!!

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

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.

Computação Forense ea importancia da

Forense de Memória

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!!

• 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

Forense de Memória

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())

• 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

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

Forense de Memória

• 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

Volatility

• 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

Redline

• 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

HBGary Responder

Organização de Memóriado Windows

AtençãoAs estruturas da memória

podem variar com a versãodo Sistema Operacional ou

mesmo do Service Pack

Memória do WindowsUm conjunto de bytes

Organização da Memoria

PageTableEntries

Memória FísicaPaginasVirtuais

00000000

7FFFFFFF

80000000

C0000000

C1000000

FFFFFFFF

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

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

Outras Estruturas

Lembra daqueles errosno seu dump de

memória ?!?

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

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 !

Abort Factors Possíveis

Atacando a Memória

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

Código disponível

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

Podemos reverter isso?

Apresentando ....

PhosfosolOctaneLabs

Indicium in Veritas

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

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

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)

Ataque impossível

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

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

Estruturas Auto-Referenciadas

Estruturas Auto-Referenciadas

Phosfosol

Abort Factor

Phosfosol

Vamos usaressas

informações

Phosfosol → VolatilityDTB informado

Profileinformado

E se não funcionar ?!?

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

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

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

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/

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

Obrigado !• Agradecimentos do OctaneLabs

– Ao co-autor Diego Fuschini

– Takahiro Haruyama san

– Mr Brendan Dolan-Gavitt

– Mr Matthieu Suiche

OctaneLabs

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

Computação Forense e Resposta aIncidentes

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

OctaneLabs

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

We Want YOU ! www.octanelabs.net@octanelabs

Perguntas !

Obrigado !

inv.forense arroba gmailponto com

@octanelabs

(Tony Rodrigues)

top related