O documento descreve uma solução de análise transparente de malware com suporte de hardware. A solução reconstrói fluxos de controle e gráficos de chamada usando registradores de hardware para monitorar desvios de fluxo. Isso permite a análise de malware evasivo sem a necessidade de injetar código ou emular o sistema. Os resultados demonstraram que a abordagem foi capaz de reconstruir com sucesso fluxos de malware reais.
XVII SBSEG: Análise Transparente de Malware com Suporte por Hardware
1. Parte I Parte II Parte III
An´alise Transparente de Malware com Suporte
por Hardware
Marcus Botacin1, Andr´e Gr´egio1,2, Paulo L´ıcio de Geus1
1Instituto de Computac¸˜ao - UNICAMP
{marcus,paulo}@lasca.ic.unicamp.br
2Universidade Federal do Paran´a (UFPR)
gregio@inf.ufpr.br
09 de Novembro de 2016
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
2. Parte I Parte II Parte III
T´opicos
1 Parte I
Introduc¸˜ao
Trabalhos Relacionados
2 Parte II
Fundamentos
Proposta
Implementac¸˜ao
Resultados
3 Parte III
Considerac¸˜oes Finais
Conclus˜oes e Agradecimentos
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
3. Parte I Parte II Parte III
Introduc¸˜ao
T´opicos
1 Parte I
Introduc¸˜ao
Trabalhos Relacionados
2 Parte II
Fundamentos
Proposta
Implementac¸˜ao
Resultados
3 Parte III
Considerac¸˜oes Finais
Conclus˜oes e Agradecimentos
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
4. Parte I Parte II Parte III
Introduc¸˜ao
Panorama
Malware
Ameac¸as persistentes.
Propagac¸˜ao crescente de exemplares.
Uso de t´ecnicas de anti-an´alise.
Cen´ario Atual
Packers e ofuscac¸˜ao.
Detecc¸˜ao de efeitos colaterais de emulac¸˜ao.
Detecc¸˜ao de injec¸˜ao de c´odigo em runtime.
Objetivos
Desenvolvimento de soluc¸˜ao de an´alise transparente.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
5. Parte I Parte II Parte III
Trabalhos Relacionados
T´opicos
1 Parte I
Introduc¸˜ao
Trabalhos Relacionados
2 Parte II
Fundamentos
Proposta
Implementac¸˜ao
Resultados
3 Parte III
Considerac¸˜oes Finais
Conclus˜oes e Agradecimentos
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
6. Parte I Parte II Parte III
Trabalhos Relacionados
Trabalhos Relacionados
Hardware Virtual Machines (HVM)
Monitoramento Externo.
Exige escrita de hypervisor.
System Management Mode (SMM)
Monitoramento a partir da BIOS.
Exige reescrita da BIOS.
Monitores de Performance
Focados em Efeitos Colaterais.
Limitac¸˜oes de implementac¸˜ao.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
7. Parte I Parte II Parte III
Trabalhos Relacionados
Implementac¸˜oes Atuais
Kbouncer, ROPecker, CFIMon, e outros
Focados em ROP.
Injec¸˜ao de c´odigo.
Base Est´atica.
Implementac¸˜ao como extens˜ao ou m´odulo.
Proposta
Soluc¸˜ao Modular.
Sem injec¸˜ao de c´odigo.
Reconstruc¸˜ao de fluxos.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
8. Parte I Parte II Parte III
Fundamentos
T´opicos
1 Parte I
Introduc¸˜ao
Trabalhos Relacionados
2 Parte II
Fundamentos
Proposta
Implementac¸˜ao
Resultados
3 Parte III
Considerac¸˜oes Finais
Conclus˜oes e Agradecimentos
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
9. Parte I Parte II Parte III
Fundamentos
Monitorac¸˜ao de branch
Definic¸˜ao
Recurso do processador.
Armazenamento em registradores ou em mem´oria.
Dividido em LBR/BTS e PEBS.
Funcionamento
Interrupc¸˜ao ao atingir threshold.
Filtragem de ac¸˜oes e por privil´egio.
Acesso via kernel.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
10. Parte I Parte II Parte III
Fundamentos
Monitorac¸˜ao de branch
LBR/BTS
JNE,JMP,CALL,RET.
Tratamento de Excec¸˜oes.
Usado por soluc¸˜oes que tratam ROP.
PEBS
Cache hit/miss, branches predicted.
Usado por soluc¸˜oes que tratam efeitos colaterais.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
11. Parte I Parte II Parte III
Proposta
T´opicos
1 Parte I
Introduc¸˜ao
Trabalhos Relacionados
2 Parte II
Fundamentos
Proposta
Implementac¸˜ao
Resultados
3 Parte III
Considerac¸˜oes Finais
Conclus˜oes e Agradecimentos
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
12. Parte I Parte II Parte III
Proposta
Proposta de soluc¸˜ao.
Funcionamento
Threshold de 1 desvio.
Interrupc¸˜ao para isolamento de processos.
Introspecc¸˜ao de sistema para obtenc¸˜ao de contexto.
Dump da mem´oria de instruc¸˜oes para reconstruir fluxo de
controle.
Modelo de Ameac¸as
N´ıvel de usu´ario.
Single-Core.
Chamadas de API do sistema.
Sistema Operacional moderno.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
13. Parte I Parte II Parte III
Implementac¸˜ao
T´opicos
1 Parte I
Introduc¸˜ao
Trabalhos Relacionados
2 Parte II
Fundamentos
Proposta
Implementac¸˜ao
Resultados
3 Parte III
Considerac¸˜oes Finais
Conclus˜oes e Agradecimentos
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
14. Parte I Parte II Parte III
Implementac¸˜ao
Implementac¸˜ao
Captura de Dados
Model Specific Register (MSR) exige driver de kernel.
Tratamento de Interrupc¸˜oes
Local Vector Table (LVT).
HalpPerfInterruptHandler hook.
Non Maskable Interrupt (NMI).
Arquitetura
Cliente-Servidor.
Captura system-wide.
Cliente implementa pol´ıticas e isolamento.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
15. Parte I Parte II Parte III
Implementac¸˜ao
Implementac¸˜ao
Identificac¸˜ao de Processos
PsGetCurrentProcessId
Acesso `a mem´oria
ReadProcessMemory.
Bibliotecas Carregadas
GetModuleHandle
Disassembly
LibOpcodes
Capstone
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
16. Parte I Parte II Parte III
Implementac¸˜ao
Introspecc¸˜ao.
Tabela : Exemplo do efeito do mecanismo de aleatorizac¸˜ao de enderec¸os
(ASLR) sobre os m´odulos dinˆamicos em duas inicializac¸˜oes consecutivas
do SO.
M´odulo Enderec¸o M´odulo Enderec¸o
ntdll.dll 0xBAF80000 ntdll.dll 0x987B0000
KERNEL32.DLL 0xB9610000 KERNEL32.DLL 0x98670000
KERNELBASE.dll 0xB8190000 KERNELBASE.dll 0x958C0000
NETAPI32.dll 0xB6030000 NETAPI32.dll 0x93890000
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
17. Parte I Parte II Parte III
Implementac¸˜ao
Introspecc¸˜ao.
Tabela : Exemplos de offsets das func¸˜oes de biblioteca ntdll.dll
Fun¸c˜ao Offset
NtCreateProcess 0x3691
NtCreateProcessEx 0x30B0
NtCreateProfile 0x36A1
NtCreateProfileEx 0x36B1
NtCreateResourceManager 0x36C1
NtCreateSemaphore 0x36D1
NtCreateSymbolicLinkObject 0x36E1
NtCreateThread 0x30C0
NtCreateThreadEx 0x36F1
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
18. Parte I Parte II Parte III
Implementac¸˜ao
Introspecc¸˜ao.
Figura : Diagrama de funcionamento do mecanismo de introspecc¸˜ao para
associac¸˜ao de nomes de func¸˜oes a enderec¸os de m´odulos.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
19. Parte I Parte II Parte III
Implementac¸˜ao
Disassembly.
Figura : Identificac¸˜ao de um bloco de c´odigo atrav´es de duas instruc¸˜oes
de desvio consecutivas.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
20. Parte I Parte II Parte III
Implementac¸˜ao
Disassembly.
Listagem 1 : Exemplo de buffer de instruc¸˜oes obtido a partir dos
enderec¸os fornecidos pelo mecanismo BTS.
1 x f f x15x0ax11x00x00x48x8dx0d x9f x11x00
x00
Listagem 2 : Convers˜ao das instruc¸˜oes do buffer para opcodes.
1 0x1000 ( s i z e =6) c a l l QWORD PTR [ r i p+0x110a ]
2 0x1006 ( s i z e =7) l e a rcx , [ r i p+0x119f ]
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
21. Parte I Parte II Parte III
Resultados
T´opicos
1 Parte I
Introduc¸˜ao
Trabalhos Relacionados
2 Parte II
Fundamentos
Proposta
Implementac¸˜ao
Resultados
3 Parte III
Considerac¸˜oes Finais
Conclus˜oes e Agradecimentos
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
22. Parte I Parte II Parte III
Resultados
Testes - CG.
Listagem 3 : C´odigo de exemplo para a reconstruc¸˜ao do CG.
1 scanf (”%d”,&n) ;
2 scanf (”%s ” , v a l ) ;
3 f o r ( i =0; i <n ; i++)
4 p r i n t f (”%s n ” , v a l ) ;
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
23. Parte I Parte II Parte III
Resultados
Testes - CG.
Figura : Visualizac¸˜ao completa de trecho do CG.
Figura : Visualizac¸˜ao do CG reduzido.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
24. Parte I Parte II Parte III
Resultados
Testes - CFG.
Listagem 4 : C´odigo de exemplo para a reconstruc¸˜ao do CFG.
1 a=0;
2 scanf (”%d”,&n) ;
3 f o r ( i =0; i <n ; i++)
4 i f ( i %2==0)
5 a++
6 e l s e
7 a−−
8 p r i n t f (”%dn ” , a )
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
25. Parte I Parte II Parte III
Resultados
Testes - CFG.
Figura : CFG reconstru´ıdo a partir da execuc¸˜ao do c´odigo de exemplo.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
26. Parte I Parte II Parte III
Resultados
Exemplares Reais.
Tabela : Comparac¸˜ao entre exemplares evasivos reais em execuc¸˜ao em
nossa soluc¸˜ao e em outra sandbox.
Amostra (MD5) BehEMOT Esta Soluc¸˜ao
f03c0df1f046197019e12f3b41ad8fb2
2b647bdf374a2d047561212c603f54ea
7a4b29df077d16c1c186f57403a94356
340573dd85cf72cdce68c9ddf7abcce6
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
27. Parte I Parte II Parte III
Resultados
Discuss˜ao.
CFG
Branch determina o bloco.
Desvios reais - n˜ao ´e afetado por desalinhamento.
Online Disassembly permite avaliar c´odigo gerado em runtime.
Desafios
N´ıvel de Abstrac¸˜ao (semantic gap).
Interpretac¸˜ao de desvios n˜ao tomados.
Perda do controle quando em kernel.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
28. Parte I Parte II Parte III
Resultados
Discuss˜ao.
Portabilidade
Soluc¸˜ao Port´avel.
Recurso do processador.
T´ecnicas independentes de plataforma.
Depende de Bibliotecas.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
29. Parte I Parte II Parte III
Resultados
Overhead.
Habilitac¸˜ao do Mecanismo
1%.
Coleta de dados
14%.
Introspecc¸˜ao
26%.
Disassembly
26%.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
30. Parte I Parte II Parte III
Resultados
Overhead.
Comparac¸˜ao
Esta Soluc¸˜aoa: 43%.
Ether: 72%.
MAVMM: 100%.
a
disassembly offline
Reduzindo o Overhead
Disassembly offline.
Uso de m´ultiplos n´ucleos.
Uso de banco de dados de c´odigo.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
31. Parte I Parte II Parte III
Considerac¸˜oes Finais
T´opicos
1 Parte I
Introduc¸˜ao
Trabalhos Relacionados
2 Parte II
Fundamentos
Proposta
Implementac¸˜ao
Resultados
3 Parte III
Considerac¸˜oes Finais
Conclus˜oes e Agradecimentos
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
32. Parte I Parte II Parte III
Considerac¸˜oes Finais
An´alise dos Resultados
Sumarizac¸˜ao
Exemplares aplicam t´ecnicas de anti-an´alise.
Soluc¸˜oes precisam ser transparentes.
Mecanismos existentes tem grande custo de desenvolvimento.
Mecanismo de monitorac¸˜ao de Branch pode ser utilizado.
An´alise ´e transparente.
Custo de desenvolvimento ´e baixo (kernel driver).
Overhead compar´avel ao estado-da-arte.
Validac¸˜ao com exemplares reais.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
33. Parte I Parte II Parte III
Considerac¸˜oes Finais
Limitac¸˜oes e Trabalhos Futuros
Limitac¸˜oes
An´alise em kernel.
Uso de APIs do sistema.
Maior granularidade do que HVM e SMM.
Trabalhos Futuros
Aplicac¸˜ao a clusterizac¸˜ao de exemplares de malware evasivos.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
34. Parte I Parte II Parte III
Conclus˜oes e Agradecimentos
T´opicos
1 Parte I
Introduc¸˜ao
Trabalhos Relacionados
2 Parte II
Fundamentos
Proposta
Implementac¸˜ao
Resultados
3 Parte III
Considerac¸˜oes Finais
Conclus˜oes e Agradecimentos
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
35. Parte I Parte II Parte III
Conclus˜oes e Agradecimentos
Conclus˜oes
Conclus˜oes
Mecanismos de an´alise transparente precisam ser
desenvolvidos.
Uso dos monitores de performance como meio transparente.
Reconstruc¸˜ao de fluxos (CG e CFG) ´e vi´avel.
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16
36. Parte I Parte II Parte III
Conclus˜oes e Agradecimentos
Agradecimentos
CNPq, pelo financiamento via Proj. MCTI/CNPq/Universal-A
edital 14/2014 (Processo 444487/2014-0)
CAPES, pelo financiamento via Proj. FORTE - Forense Digital
Tempestiva e Eficiente (Processo: 23038.007604/2014-69).
Instituto de Computac¸˜ao/Unicamp
Departamento de Inform´atica/UFPR
Contato:
marcus@lasca.ic.unicamp.br
paulo@lasca.ic.unicamp.br
gregio@inf.ufpr.br
An´alise Transparente de Malware com Suporte por Hardware SBSeg’16