troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e...

63
Troca de contexto segura em Troca de contexto segura em sistemas operacionais embarcados sistemas operacionais embarcados utilizando técnicas de detecção e utilizando técnicas de detecção e correção de erros correção de erros Rodrigo M A Almeida Rodrigo M A Almeida Orientador: Luis Henrique de Carvalho Ferreira Orientador: Luis Henrique de Carvalho Ferreira Coorientador: Carlos Henrique Valério de Moraes Coorientador: Carlos Henrique Valério de Moraes Universidade Federal de Itajubá Universidade Federal de Itajubá Defesa da Tese Defesa da Tese

Upload: rodrigo-almeida

Post on 04-Jul-2015

302 views

Category:

Technology


2 download

DESCRIPTION

A segurança e a confiabilidade em sistemas embarcados são áreas críticas e de recente desenvolvimento. Além das complicações inerentes à área de segurança, existem restrições quanto a capacidade de processamento e de armazenamento destes sistemas. Isto é agravado em sistemas de baixo custo. Neste trabalho, é apresentada uma técnica que, aplicada à troca de contexto em sistemas operacionais, aumentando a segurança destes. A técnica é baseada na detecção e correção de erros em sequência de valores binários. Para realização dos testes, foi desenvolvido um sistema operacional de tempo real e implementado numa placa de desenvolvimento. Observou-se que o consumo de processamento das técnicas de detecção de erro são inferiores às de correção, cerca de 2% para CRC e 8% para Hamming. Objetivando-se minimizar o tempo de processamento optou-se por uma abordagem mista entre correção e detecção. Esta abordagem reduz o consumo de processamento medida que os processos que exigem tempo real apresentem uma baixa taxa de execução, quando comparados com o período de troca de contexto. Por fim, fica comprovada a possibilidade de implementação desta técnica em qualquer sistema embarcado, inclusive em processadores de baixo custo.

TRANSCRIPT

Page 1: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Troca de contexto segura em Troca de contexto segura em sistemas operacionais embarcados sistemas operacionais embarcados utilizando técnicas de detecção e utilizando técnicas de detecção e

correção de erroscorreção de erros

Rodrigo M A AlmeidaRodrigo M A AlmeidaOrientador: Luis Henrique de Carvalho FerreiraOrientador: Luis Henrique de Carvalho Ferreira

Coorientador: Carlos Henrique Valério de MoraesCoorientador: Carlos Henrique Valério de Moraes

Universidade Federal de ItajubáUniversidade Federal de ItajubáDefesa da TeseDefesa da Tese

Page 2: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Sumário

• Objetivos• Conceitos

• Sistemas embarcados• Sistemas operacionais• Segurança• Algoritmos de correção de informação

• Desenvolvimento• Resultados• Conclusões

Page 3: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Motivação

• "Dado o aumento da dependência da sociedade na computação embarcada, nos sistemas de sensoriamento bem como as aplicações que eles suportam, uma nova forma de vulnerabilidade é inserida nesta infraestrutura critica e que apenas agora esta começando a ser reconhecida como uma ameaça significante com possibilidade de graves consequências." (Wygliski, 2013)

Page 4: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Motivação

• Erro no firmware do controle de aceleração de um carro da Toyota

• Stackoverflow• Falta de backup (mirroring) das variáveis importantes• Ganho de causa na justiça Americana Nov/2013

• Stuxnet• Primeiro vírus direcionado a sistemas embarcados

Detectado em 06/2010• Continua atacando sistemas, com novas alegações de

ataques na Rússia em Nov/2013

Page 5: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Objetivo

• Metodologia aplicada à sistemas embarcados que aumente a robustez do sistema:

• Baixo consumo de recursos• Mantenha a capacidade de execução de processos com

requisitos tempo real• Proteger o sistema contra vulnerabilidades

Page 6: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

ConceitosConceitos

Page 7: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Sistemas EmbarcadosSistemas EmbarcadosConceitosConceitos

Page 8: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Sistemas embarcados

• Microprocessador• Escassez de recursos• Pouca ou nenhuma interface com o usuário• Requisitos comuns

• Alta disponibilidade• Processamento em tempo real• Baixo custo

Page 9: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Sistema operacionalSistema operacionalConceitosConceitos

Page 10: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Sistemas operacionais

Aplicação

SO

I/OCPUMemória

Page 11: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Sistemas operacionaisAplicação

Kernel

Drivers

MaquinasVirtuais

I/OCPUMemória

GUI

Sistema deArquivos

Troca deContexto

GUIBibliotecasC/C++

Page 12: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Troca de contexto

Page 13: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Troca de contexto

Page 14: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Troca de contexto

Page 15: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Troca de contexto

Page 16: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Troca de contexto

Page 17: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

SegurançaSegurançaConceitosConceitos

Page 18: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Segurança

• Confidencialidade: garantia que as informações não serão disponibilizadas

• Disponibilidade: Garantia que o equipamento continuará funcionando

• Integridade: garantia que as informações não serão alteradas indevidamente

Page 19: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Fontes de problemas

• Erros em memórias• Interferência

eletromagnética• Problemas de conexão

elétrica• Bombardeamento de

partículas atômicas• Falha por desgaste (vida

útil)

0,001 0,01 0,1 1 10 100 10000%

20%

40%

60%

80%

100%

Tempo de funcionamento (anos)Pr

obab

ilida

de d

e fa

lha

Page 20: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Falhas em memórias

Page 21: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Falhas em memórias

Page 22: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Fontes de problemas

• Vulnerabilidades nos códigos• Buffer overflow• Unitialized reads• Diversidade de compiladores

• Invasões e Ataques

Page 23: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Soluções atuais

• Redundância em memórias• Limitação na execução de páginas• Modificação do programa em tempo de execução• Microkernel

Page 24: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Algoritmos de detecção Algoritmos de detecção e correção de errose correção de erros

ConceitosConceitos

Page 25: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Algoritmos de detecção/correção de erros

• Se utilizam na inserção de informações redundantes para realizar a detecção de erros na transmissão/armazenamento de informações.

• CRC (ciclic redundant check)• Hamming

Page 26: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

CRC

Page 27: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Hamming

Page 28: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

DesenvolvimentoDesenvolvimento

Page 29: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Desenvolvimento

• Criação de um SO modelo para teste da metodologia

• Inserção de um sistema de detecção/correção de erros na troca de contexto

• Correção mista• Real time – Hamming• “Normais” – CRC

Page 30: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

SistemaOperacional

Generic Driver

driverAbstrato

driver

Controladora de Drivers

ddCtrddCtr_prm.h

ctrlMngr

Serial

ctrPID

DACADC

Aplicação

main

Interrupt Timer

serialMonitor pidController

*

Kernel

kernel

kernel_definitions process*

calculus<<interface>>function

Page 31: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Detecção de erro (CRC)

Interrupção

Salvar variáveis doprocesso corrente

Calculo do CRC do processo corrente

Carregamento dopróximo processo

CRC OK?

Fim da interrupção

Carrega variáveis dopróximo processo

Calculo do CRC do próximo processo

Carrega rotinade recuperação

Page 32: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Correção de erro (Hamming)

Interrupção

Salvar variáveis doprocesso corrente

Calculo do CRC do processo corrente

Carregamento dopróximo processo

Hamming OK?

Fim da interrupção

Carrega variáveis dopróximo processo

Calculo do Ham do próximo processo

Corrige erros dosdados da pilha

Page 33: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Implementação no HCS12• Adição de 2 bytes de verificação para cada pilha de

contexto.Posição na memória Informação Tamanho

stk-3 Resultado do CRC 2 bytes (High:Low)

stk-1 PPage 1 byte

stk+0 CCR 1 byte

stk+1 D 2 bytes (B:A)

stk+3 X 2 bytes (High:Low)

stk+5 Y 2 bytes (High:Low)

stk+7 PC 2 bytes (High:Low)

Page 34: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Solução Mista

Interrupção

SalvaHamming

Fim da interrupçãoProcessoAtual é

RT?

SalvaCRC

Próximoprocesso

é RT?

Checar CRC

ChecarHamming

ReiniciaProcesso

Corrige Pilha

Page 35: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

ResultadosResultados

Page 36: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Consumo de memória

Page 37: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Consumo de CPUConsumo de CPUResultadosResultados

Page 38: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Sem processo em execução (idle)

Troca de contexto

Processo de tempo real

Processos extras (sobrecarga)

Page 39: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Consumo dos Escalonadores

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 250%

2%

4%

6%

8%

10%

12%

EDF

RR

Troca de Contexto

Número de Processos

Cons

umo

de C

PU

Page 40: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Consumo dos Escalonadores

12

34

56

78

910

1112

1314

1516

1718

1920

2122

2324

25

EDF

RR

Número de Processos

12

34

56

78

910

1112

1314

1516

1718

1920

2122

2324

25

0%

2%

4%

6%

8%

10%

12%

Número de Processos

Cons

umo

de C

PU

Sem Prioridade Com Prioridade

Page 41: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Consumo dos métodos de detecção/correção

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 250%

10%

20%

30%

40%

50%

RR

CRC

Hamming

Número de Processos

Cons

umo

de C

PU

Page 42: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Consumo dos métodos otimizados

Page 43: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Consumo do método misto

0 5 10 15 20 25 30 35 400%1%2%3%4%5%6%7%8%9%

10%

MedidoCalculado

Período pRT em ticks

Cons

umo

de C

PU

Page 44: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Sem processo em execução (idle)

Troca de contexto

Processo de tempo real

Page 45: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Simulação de falhas na Simulação de falhas na memóriamemória

ResultadosResultados

Page 46: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Falhas observadas com o sistema de correção/detecção desligadoByte Descrição Bit

7 6 5 4 3 2 1 00 CRC (alto)1 CRC (baixo)2 Paginação3 CCR4 Acumulador B5 Acumulador A6 Indexador IX (alto)7 Indexador IX (baixo)8 Indexador IY (alto)9 Indexador IY (baixo)10 Contador de Programa (alto)11 Contador de Programa (baixo)

Page 47: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Comando para simulação de falha

Resposta do sistema

Troca de contexto

Ação de controle

Page 48: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Comando para simulação de falha

Resposta do sistema

Troca de contexto

Ação de controle

Page 49: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Melhoria na confiabilidade Melhoria na confiabilidade do sistemado sistema

ResultadosResultados

Page 50: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Confiabilidade no funcionamento

Page 51: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Sistema de controleSistema de controleResultadosResultados

Page 52: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Resultados

Page 53: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Malha aberta

Resposta do sistema

Referência

Ação de controle

Simulação Teste na planta

Page 54: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Diagrama de blocos da simulação

Page 55: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Kp=1; Ki=0; Kd=0;

Resposta do sistema

Referência

Ação de controle

Simulação Teste na planta

Page 56: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Kp=1; Ki=5; Kd=0;

Resposta do sistema

Referência

Ação de controle

Simulação Teste na planta

Page 57: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Kp=10; Ki=3; Kd=0,02;

Resposta do sistema

Referência

Ação de controle

Simulação Teste na planta

Page 58: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

ConclusãoConclusão

Page 59: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Conclusões

• É uma técnica implementável na maioria dos sistemas operacionais atuais

• Baixo consumo de Flash e RAM• Consumo de processamento de 12% à 50%

• É possível reduzir o consumo para valores de 1,7% à 8,5% com o uso de lookup tables, aumentando no entanto o consumo de RAM ou Flash (+600 bytes)

Page 60: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Conclusões

• O sistema é capaz de se recuperar de problemas que corrompam a pilha de dados

• Processos com exigência de RT• Continuaram sua execução sem problemas, mesmo com

ocorrência de erros

• A solução mista aumenta a segurança sem um consumo exagerado de processamento

Page 61: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

AgradecimentosAgradecimentos

Page 62: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

Agradecimento

• Luis e Carlos pelas valiosas orientações• Adriano, Cesar, Lucas, Henrique e Rafael, pelo auxilio nos

drivers e testes• Enzo pela ajuda na 1ª versão do kernel e a Thaty pelas

revisões do documento• Armando pela ajuda na estatística e análises de confiabilidade• Alberto Fabiano pelas conversas sobre segurança e

embarcados• Colegas do Grupo de engenharia biomédica pelo apoio e

infraestrutura.

Page 63: Troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e correção de erros

ObrigadoObrigado