Parte I Parte II Parte III
Deteccao de ataques por ROP em tempo realassistida por hardware
Marcus Botacin1, Andre Gregio1,2, Paulo Lıcio de Geus1
1Instituto de Computacao - UNICAMP{marcus,paulo}@lasca.ic.unicamp.br
2Universidade Federal do Parana (UFPR)[email protected]
09 de Novembro de 2016
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Introducao
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Introducao
Panorama
ProblemaInjecao de Codigo Externo.
MitigacoesCanarios de pilha.Paginas nao executaveis (NX/XD).Protecoes ampliadas de memoria (MPX).
Um Novo ProblemaReuso de Codigo.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
ROP
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
ROP
Programacao Orientada a Retorno (ROP)
ROPEncadeamento de sequencias de codigo legıtimo (gadgets).
Figura : ROP.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
ROP
Programacao Orientada a Retorno (ROP)
ROPROP permite computacoes arbitrarias (Turing-completa).
Figura : Ataque ROP.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Trabalhos Relacionados
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Trabalhos Relacionados
Trabalhos Relacionados
Tempo de compilacaoReescrita de codigo.Limitacao: sistemas legados.
InstrumentacaoAceita codigo legado.Efeitos Colaterais de emulacao..
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Trabalhos Relacionados
Trabalhos Relacionados
Reescrita de binarioAceita codigo legado.Sem efeitos colaterais.Nao trata codigo gerado em runtime.
Monitoracao por hardwareAceita codigo legado.Sem efeitos colaterais.Trata codigo gerado em runtime.Limitacoes de implementacao.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Mecanismos de Monitoracao
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Mecanismos de Monitoracao
Mecanismos
LBR vs. BTSDados de branch fornecidos pelo processador.Armazenamento em registradores vs. Memoria.Polling vs. Interrupcao.Limitado vs. Ilimitado.
DadosAcesso em kernelJNE,JMP,CALL,RET
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Implementacoes atuais
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Implementacoes atuais
Implementacoes atuais
KbouncerLimitacao do uso do LBR.Injecao de codigo.Monitoracao por processo.
ROPeckerLimitacao do uso do LBR.Base de codigo estatica.
PropostaSem injecao de codigo.Sem componentes estaticos.Monitoracao de multiplas instancias.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Proposta
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Proposta
Proposta de solucao.
FuncionamentoThreshold de 1 desvio.Interrupcao para isolamento de processos.Introspeccao de sistema para obtencao de contexto.
Arquitetura da SolucaoCliente-Servidor / Driver-Userland.Cliente filtra processos monitorados.Cliente aplica polıticas de integridade.
Limitacoes do Modelo de AmeacasApenas Nıvel de usuario.Apenas instrucoes RET (sem tricks).
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Proposta
Proposta de solucao.
Figura : Notificacao de ataque identificado emitida pelo cliente demonitoracao.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Polıticas de Integridade
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Polıticas de Integridade
Polıtica CALL-RET.
Figura : Exemplo de violacao de polıtica do tipo CALL-RET.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Polıticas de Integridade
Como Identificar as instrucoes ?.
Tabela : Opcodes de instrucoes do tipo CALL.
Opcode Mnemonic Opcode Mnemonic0xE8 CALL rel16 0x9A CALL ptr16:160xE8 CALL rel32 0x9A CALL ptr16:320xFF CALL r/m16 0xFF CALL m16:160xFF CALL r/m32 0xFF CALL m16:32
Tabela : Opcodes de instrucoes do tipo RET.
Opcode C3 CB C2 iw CA iwMnemonic RET RET RET imm16 RET imm16
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Polıticas de Integridade
Polıtica CALL-RET.
Listagem 1 : Correspondencias “CALL-RET” indicando fluxo de execucaoıntegro.
1 PID 3140 FROM 6 b8e7f17 INSTR e8 − CALL2 PID 3140 TO 6 b9d90c1 INSTR c3 − RET3 PID 4196 FROM 77 b2ce8e INSTR e8 − CALL4 PID 4196 TO 77 aa591e INSTR c2 − RET5 PID 2532 FROM 3 de50b6c INSTR e8 − CALL6 PID 2532 TO 40714979 INSTR c2 − RET
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Polıticas de Integridade
Polıtica do comprimento do gadget.
Figura : Exploit ROP (Fonte: Kbouncer).Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Polıticas de Integridade
Polıtica do comprimento do gadget.
Listagem 2 : Comprimento dos blocos em programas legıtimos (emnumero de instrucoes).
1 PID 3820 FROM 5 f0dea04 TO 5 f0deb30 INSTR 152 PID 3820 FROM 5 f0deb4a TO 5 f0deb53 INSTR 213 PID 3820 FROM 5 f0dea0e TO 5 f0dea17 INSTR 19
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Polıticas de Integridade
Polıtica do comprimento da frequencia de desvios.
<BLOCO> 1 movzx eax,al 2 test eax,eax 3 je 0x10d2 <FIM DO BLOCO>
<BLOCO> 4 mov rax, [rsp+0x58] 5 mov eax, [rax+0x10] 6 add eax,0x8 7 and eax,0xfffffffa 8 mov [rsp+0x30],eax 9 mov eax, [rsp+0x30]10 and eax,0x211 test eax,eax12 jne 0x1062 <FIM DO BLOCO>
<BLOCO>13 lea rax,[rip+0x116c44]14 mov [rsp+0x28],rax15 lea rax,[rip+0x106e14]16 mov [rsp+0x20],rax17 xor r9d,r9d18 mov r8d,0x32e19 lea rdx,[rip+0x116a13]20 mov ecx,0x221 call 0x00000000000b4513 <FIM DO BLOCO>
<BLOCO>22 xor eax,eax23 xor eax,eax24 jmp 0x1062 <FIM DO BLOCO>
...
...
Figura : Blocos com instrucoes de desvios nas extremidades (em negrito)e janela deslizante de 16 instrucoes.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Polıticas de Integridade
Como Obter Instrucoes a partir de branches ?
Listagem 3 : Exemplo de buffer de instrucoes obtido a partir dosenderecos fornecidos pelo mecanismo BTS.
1 \ x f f \x15\ x0a\x11\x00\x00\x48\x8d\x0d\ x 9 f \x11\x00\x00
Listagem 4 : Conversao das instrucoes do buffer para opcodes.1 0 x1000 ( s i z e =6) c a l l QWORD PTR [ r i p +0x110a ]2 0 x1006 ( s i z e =7) l e a rcx , [ r i p +0x 1 1 9 f ]
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Testes e Resultados
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Testes e Resultados
Um exploit real
Tabela : Janela de instrucoes de desvio contendo 2 gadgets de 2 bytes e2 instrucoes.
FROM TO—- 0x7c346c0a
0x7c346c0b 0x7c37a1400x7c37a141 —-
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Testes e Resultados
Um exploit real
Listagem 5 : Codigo legıtimo (alinhado) contendo uma sequencia debytes que pode ser abusada em um ataque (gadget).
1 7 c346c08 : f 2 0 f 58 c3 addsd %xmm3,%xmm02 7 c346c0c : 66 0 f 13 44 24 04 movlpd %xmm0, 0 x4(%esp )
Listagem 6 : Codigo desalinhado contendo o gadget realmente executado.1 0 x1000 ( s i z e =1) pop rax2 0 x1001 ( s i z e =1) r e t
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Testes e Resultados
Um exploit real
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
iexplo mplayer soffice adobe superpi Exploit
De
nsid
ad
e
Aplicações
Densidade de desvios para diferentes aplicações
exploitbenign
Figura : Densidade de desvios em diferentes aplicacoes.Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Testes e Resultados
Overhead
Ativacao do Monitor1%.
Coleta de dados14% a 26%
Disassembly online40%.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Consideracoes Finais
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Consideracoes Finais
Solucao Definitiva ?
Weird MachinesPage Fault ComputingELF Metadata ComputingLook up Tables Computing
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Consideracoes Finais
Analise dos Resultados
SumarizacaoAtaques de Reuso cada vez mais frequente..Solucoes exigem recompilacao ou codigo estatico.Solucoes por hardware tem limitacoes de implementacao.Uso de BTS e disassembly dinamico e opcao.Diferentes heurısticas para diferentes construcoes.Nao temos solucao definitiva.Solucoes de monitoramento sempre serao necessarias.Podemos avancar estado-da-arte das implementacoes.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Consideracoes Finais
Limitacoes e Trabalhos Futuros
LimitacoesAnalise em kernel.Jump Oriented Programming (JOP).Loop Oriented Programming (LOP).POP+RET como substituto a CALL.
Trabalhos FuturosExpansao das analises.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Conclusoes e Agradecimentos
Topicos
1 Parte IIntroducaoROPTrabalhos RelacionadosMecanismos de MonitoracaoImplementacoes atuais
2 Parte IIPropostaPolıticas de IntegridadeTestes e Resultados
3 Parte IIIConsideracoes FinaisConclusoes e Agradecimentos
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Conclusoes e Agradecimentos
Conclusoes
ConclusoesSolucao Baseada em BTS ao inves do LBR.Sem injecao de codigo.Monitoramento system wideDisassembly dinamico.
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Parte I Parte II Parte III
Conclusoes e Agradecimentos
Agradecimentos
CNPq, pelo financiamento via Proj. MCTI/CNPq/Universal-Aedital 14/2014 (Processo 444487/2014-0)CAPES, pelo financiamento via Proj. FORTE - Forense DigitalTempestiva e Eficiente (Processo: 23038.007604/2014-69).Instituto de Computacao/UnicampDepartamento de Informatica/UFPR
Contato:[email protected]@lasca.ic.unicamp.br
Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16
Top Related