XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

37
Parte I Parte II Parte III Detecc¸˜ ao de ataques por ROP em tempo real assistida por hardware Marcus Botacin 1 , Andr´ e Gr´ egio 1,2 , Paulo L´ ıcio de Geus 1 1 Instituto de Computac¸˜ ao - UNICAMP {marcus,paulo}@lasca.ic.unicamp.br 2 Universidade Federal do Paran´ a (UFPR) [email protected] 09 de Novembro de 2016 Detecc¸˜ ao de ataques por ROP em tempo real assistida por hardware SBSeg’16

Transcript of XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

Page 1: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 2: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 3: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 4: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 5: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 6: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 7: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 8: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 9: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 10: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 11: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 12: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 13: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 14: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 15: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 16: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 17: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 18: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 19: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 20: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 21: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 22: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 23: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 24: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 25: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 26: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 27: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 28: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 29: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 30: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 31: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 32: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 33: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 34: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 35: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 36: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

Page 37: XVII SBSEG: Detecção de ataques por ROP em tempo real assistida por hardware

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

[email protected]

Deteccao de ataques por ROP em tempo real assistida por hardware SBSeg’16