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

Post on 04-Jul-2015

302 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

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

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

Sumário

• Objetivos• Conceitos

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

• Desenvolvimento• Resultados• Conclusões

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)

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

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

ConceitosConceitos

Sistemas EmbarcadosSistemas EmbarcadosConceitosConceitos

Sistemas embarcados

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

• Alta disponibilidade• Processamento em tempo real• Baixo custo

Sistema operacionalSistema operacionalConceitosConceitos

Sistemas operacionais

Aplicação

SO

I/OCPUMemória

Sistemas operacionaisAplicação

Kernel

Drivers

MaquinasVirtuais

I/OCPUMemória

GUI

Sistema deArquivos

Troca deContexto

GUIBibliotecasC/C++

Troca de contexto

Troca de contexto

Troca de contexto

Troca de contexto

Troca de contexto

SegurançaSegurançaConceitosConceitos

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

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

Falhas em memórias

Falhas em memórias

Fontes de problemas

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

• Invasões e Ataques

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

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

ConceitosConceitos

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

CRC

Hamming

DesenvolvimentoDesenvolvimento

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

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

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

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

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)

Solução Mista

Interrupção

SalvaHamming

Fim da interrupçãoProcessoAtual é

RT?

SalvaCRC

Próximoprocesso

é RT?

Checar CRC

ChecarHamming

ReiniciaProcesso

Corrige Pilha

ResultadosResultados

Consumo de memória

Consumo de CPUConsumo de CPUResultadosResultados

Sem processo em execução (idle)

Troca de contexto

Processo de tempo real

Processos extras (sobrecarga)

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

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

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

Consumo dos métodos otimizados

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

Sem processo em execução (idle)

Troca de contexto

Processo de tempo real

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

ResultadosResultados

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)

Comando para simulação de falha

Resposta do sistema

Troca de contexto

Ação de controle

Comando para simulação de falha

Resposta do sistema

Troca de contexto

Ação de controle

Melhoria na confiabilidade Melhoria na confiabilidade do sistemado sistema

ResultadosResultados

Confiabilidade no funcionamento

Sistema de controleSistema de controleResultadosResultados

Resultados

Malha aberta

Resposta do sistema

Referência

Ação de controle

Simulação Teste na planta

Diagrama de blocos da simulação

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

Resposta do sistema

Referência

Ação de controle

Simulação Teste na planta

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

Resposta do sistema

Referência

Ação de controle

Simulação Teste na planta

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

Resposta do sistema

Referência

Ação de controle

Simulação Teste na planta

ConclusãoConclusão

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)

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

AgradecimentosAgradecimentos

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.

ObrigadoObrigado

top related