troca de contexto segura em sistemas operacionais embarcados utilizando de técnicas de detecção e...
Post on 04-Jul-2015
302 Views
Preview:
DESCRIPTION
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