21
1 Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres , Antonio L. Maia Neto, Omar P. Vilela Neto, Leonardo B. Oliveira Departamento de Ciência da Computação Universidade Federal de Minas Gerais (UFMG) – Belo Horizonte, MG, Brasil 1

Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

1

Implementação em Hardware de Instrução Segura de

Acesso à Memória - Caso MIPS 16 bit

Eric S. Torres , Antonio L. Maia Neto, Omar P. Vilela Neto, Leonardo B. Oliveira

Departamento de Ciência da Computação Universidade Federal de Minas Gerais (UFMG) – Belo Horizonte, MG, Brasil

1

Page 2: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

2

Introdução

• Segurança de Software• Integridade de dados

• Confiabilidade de dados

• Linguagens• Focam eficiência

• Mínima interferência na execução

• Não possuem mecanismos de segurança

• Ficam a cargo do desenvolvedor

2

Page 3: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

3

Introdução

• Buffer Overflow – BOF• Escrever mais dados do que o arranjo suporta

• Worm Morris 1988

• Execução DoS

• Verificação de Limites de Arranjo • (Array Bound Check)- ABC

• Eficaz

• Ineficiente

3

Page 4: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

4

Segurança de Software

• Exploração de Vulnerabilidade• Sigilo

• Integridade*

• Disponibilidade

• Autenticidade

• Proposta do trabalho• Acesso a memória seguro

• Instrução de Hardware para ABC

4

Page 5: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

5

Memória de um processo • Texto - regiao de memória estática –

contém o código

• Dados – estática - armazenadas constantes e variaveis globais.

• Heap – dinâmica - armazena porções de memória para o programa

• Pilha – dinâmica e contígua -armazena variáveis de controle e realiza troca de contexto entre procedimentos.

5

Page 6: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

6

Memória de um processo

Ataques ocorrem de duas formas:

• Pilha• Sobreescrever variáveis• Altera fluxo de execução

• Heap• Corrompe a estrutura de

controle• Sobreescreve o endereço

de retorno

6

Page 7: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

7

Array Bound Check (ABC)• Técnica de defesa

contra BOF

• Garante os limites de arranjo

• Sobrecarga

7

Page 8: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

8

Microprocessador MIPS

• Desenvolvido em Stanford (1982~1984)• Arquitetura RISC

• Reduced Instruction Set Computer

• Tamanho fixo de instrução

• pipeline em nível de hardware• Lista de operações criadas por hardware

• Cria uma lista dos processos no cache do processador

8

Page 9: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

9

Microprocessador MIPS – 16 bits• Versão mais simples• Menor número de instruções

• 16 bits cada instrução

• Menor número de registradores• 16

• Endereços limitados• 64KB de dados

• Opcode• Instrução para realizar tarefas

9

Page 10: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

10

MIPS – InstruçõesOperações de 16 bits, dos quais, 4 são opcodeInstruções são de 3 tipos:• Tipo R - Aritméticas

• 3 registradores para instrução

• Tipo I - Memória• 2 registradores para instrução• 1 registrador para constante

• Tipo J – Sem registradorse• 12 bits paraconstantes

10

Page 11: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

11

MIPS – Instruções

Para o trabalhado foram implementadas as seguintes instruções:

• Add

• Sub

• Addi

• And

• Or

• Not

• Shiftl

• Shitftr

• Lw

• Sw

• Beq

• Jump

• Halt

• nop

11

Page 12: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

12

Array Bound Check (ABC)• Em Assembly – Arquitetura MISP

• Aumento de operações branch

• Cálculo dos endereços limites para comparação

12

Page 13: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

13

Trabalhos na Área

• Análise estática• Durante desenvolvimento

• Análise dinâmica• Utiliza o hardware

• Shao - arquitetura DLX

13

Page 14: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

14

Trabalhos na Área• Shao - arquitetura DLX

• Instruções especias para limites• 3 registradores – limites e local de acesso• Se houver violação -> interrupção

• Neste trabalho• Safe Store Word• Apenas limite superior• Opera em apenas uma instrução• 3 registradores

14

Page 15: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

15

Projeto - SSW

15

Page 16: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

16

Projeto – SSW

• Desenvolvimento caminho de dados• HDL

• Cyclone 2 - Altera

• 1663 linhas

• Inserção da estrutura do trabalho• 1710 linhas

• 2.83% crescimento

• 2,43% sobrecarga

16

Page 17: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

17

Projeto – SSW

17

Page 18: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

18

Teste Comparativo• Original - os arranjos são acessados sem ABC• Baseline - é utilizado um ABC em software (verificando apenas o limite superior). • SSW - o programa será modificado de forma que utilize a nova instrução.

18

Page 19: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

19

Algoritmo de Teste• Copyarray

• De um array de 32 bytes para um de 16 bytes

• Preenchido com a palavra CODE

• Byte a byte

• Original sem bloqueio

• Baseline e SSW bloqueiam – não geram interrupção

19

Page 20: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

20

Trabalhos Futuros• Validar limite inferior

• Implementar SLW ( Safe Load Word )

• Analisar influência no desempenho

20

Page 21: Implementação em Hardware de Instrução Segura de Acesso à ...€¦ · Implementação em Hardware de Instrução Segura de Acesso à Memória - Caso MIPS 16 bit Eric S. Torres

21

Referências• TORRES, Eric S. et al. Implementaç ao em Hardware

de Instruç ao Segura de Acesso a Memória-Caso MIPS 16 bit.

21