Troca de contexto segura emTroca de contexto segura em
sistemas operacionais embarcadossistemas operacionais embarcados
ut...
Sumário
• Objetivos
• Conceitos
• Sistemas embarcados
• Sistemas operacionais
• Segurança
• Algoritmos de correção de info...
Motivação
• "Dado o aumento da dependência da sociedade na
computação embarcada, nos sistemas de
sensoriamento bem como as...
Motivação
• Erro no firmware do controle de aceleração de um
carro da Toyota
• Stackoverflow
• Falta de backup (mirroring)...
Objetivo
• Metodologia aplicada à sistemas embarcados que
aumente a robustez do sistema:
• Baixo consumo de recursos
• Man...
ConceitosConceitos
Sistemas EmbarcadosSistemas Embarcados
ConceitosConceitos
Sistemas embarcados
• Microprocessador
• Escassez de recursos
• Pouca ou nenhuma interface com o usuário
• Requisitos comu...
Sistema operacionalSistema operacional
ConceitosConceitos
Sistemas operacionais
Aplicação
SO
I/OCPUMemória
Sistemas operacionais
Aplicação
Kernel
Drivers
Maquinas
Virtuais
I/OCPUMemória
GUI
Sistema de
Arquivos
Troca de
Contexto
G...
Troca de contexto
Troca de contexto
Troca de contexto
Troca de contexto
Troca de contexto
SegurançaSegurança
ConceitosConceitos
Segurança
• Confidencialidade: garantia que as informações não
serão disponibilizadas
• Disponibilidade: Garantia que o eq...
Fontes de problemas
• Erros em memórias
• Interferência
eletromagnética
• Problemas de conexão
elétrica
• Bombardeamento d...
Falhas em memórias
Falhas em memórias
Fontes de problemas
• Vulnerabilidades nos códigos
• Buffer overflow
• Unitialized reads
• Diversidade de compiladores
• I...
Soluções atuais
• Redundância em memórias
• Limitação na execução de páginas
• Modificação do programa em tempo de execuçã...
Algoritmos de detecçãoAlgoritmos 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 ...
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...
Sistema
Operacional
Generic Driver
driverAbstrato
driver
Controladora de Drivers
ddCtrddCtr_prm.h
ctrlMngr
Serial
ctrPID
D...
Detecção de erro (CRC)
Interrupção
Salvar variáveis do
processo corrente
Calculo do CRC do
processo corrente
Carregamento ...
Correção de erro (Hamming)
Interrupção
Salvar variáveis do
processo corrente
Calculo do CRC do
processo corrente
Carregame...
Implementação no HCS12
• Adição de 2 bytes de verificação para cada pilha de
contexto.
Posição na memória Informação Taman...
Solução Mista
Interrupção
Salva
Hamming
Fim da interrupção
Processo
Atual é
RT?
Salva
CRC
Próximo
processo
é RT?
Checar CR...
ResultadosResultados
Consumo de memória
Consumo de CPUConsumo de CPU
ResultadosResultados
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 25
0%
2%
4%
6%
8%
10%
12%
EDF
RR
...
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
25
EDF
RR
Número de Processos
1
2...
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 25
0%
10%
20%
30%
...
Consumo dos métodos
otimizados
Consumo do método misto
0 5 10 15 20 25 30 35 40
0%
1%
2%
3%
4%
5%
6%
7%
8%
9%
10%
Medido
Calculado
Período pRT em ticks
C...
Sem processo em execução (idle)
Troca de contexto
Processo de tempo real
Simulação de falhas naSimulação de falhas na
memóriamemória
ResultadosResultados
Falhas observadas com o sistema
de correção/detecção desligado
Byte Descrição
Bit
7 6 5 4 3 2 1 0
0 CRC (alto)
1 CRC (baix...
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 confiabilidadeMelhoria na confiabilidade
do sistemado sistema
ResultadosResultados
Confiabilidade no funcionamento
Sistema de controleSistema de controle
ResultadosResultados
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
• Cons...
Conclusões
• O sistema é capaz de se recuperar de problemas
que corrompam a pilha de dados
• Processos com exigência de RT...
AgradecimentosAgradecimentos
Agradecimento
• Luis e Carlos pelas valiosas orientações
• Adriano, Cesar, Lucas, Henrique e Rafael, pelo auxilio nos
driv...
ObrigadoObrigado
Upcoming SlideShare
Loading in …5
×

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

562 views
425 views

Published on

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.

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
562
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. Troca de contexto segura emTroca de contexto segura em sistemas operacionais embarcadossistemas operacionais embarcados utilizando técnicas de detecção eutilizando técnicas de detecção e correção de erroscorreção de erros Rodrigo M A AlmeidaRodrigo M A Almeida Orientador: 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
  2. 2. Sumário • Objetivos • Conceitos • Sistemas embarcados • Sistemas operacionais • Segurança • Algoritmos de correção de informação • Desenvolvimento • Resultados • Conclusões
  3. 3. 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)
  4. 4. 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
  5. 5. 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
  6. 6. ConceitosConceitos
  7. 7. Sistemas EmbarcadosSistemas Embarcados ConceitosConceitos
  8. 8. Sistemas embarcados • Microprocessador • Escassez de recursos • Pouca ou nenhuma interface com o usuário • Requisitos comuns • Alta disponibilidade • Processamento em tempo real • Baixo custo
  9. 9. Sistema operacionalSistema operacional ConceitosConceitos
  10. 10. Sistemas operacionais Aplicação SO I/OCPUMemória
  11. 11. Sistemas operacionais Aplicação Kernel Drivers Maquinas Virtuais I/OCPUMemória GUI Sistema de Arquivos Troca de Contexto GUI Bibliotecas C/C++
  12. 12. Troca de contexto
  13. 13. Troca de contexto
  14. 14. Troca de contexto
  15. 15. Troca de contexto
  16. 16. Troca de contexto
  17. 17. SegurançaSegurança ConceitosConceitos
  18. 18. 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
  19. 19. 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 1000 0% 20% 40% 60% 80% 100% Tempo de funcionamento (anos)Probabilidadedefalha
  20. 20. Falhas em memórias
  21. 21. Falhas em memórias
  22. 22. Fontes de problemas • Vulnerabilidades nos códigos • Buffer overflow • Unitialized reads • Diversidade de compiladores • Invasões e Ataques
  23. 23. 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
  24. 24. Algoritmos de detecçãoAlgoritmos de detecção e correção de errose correção de erros ConceitosConceitos
  25. 25. 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
  26. 26. CRC
  27. 27. Hamming
  28. 28. DesenvolvimentoDesenvolvimento
  29. 29. 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
  30. 30. Sistema Operacional 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
  31. 31. Detecção de erro (CRC) Interrupção Salvar variáveis do processo corrente Calculo do CRC do processo corrente Carregamento do próximo processo CRC OK? Fim da interrupção Carrega variáveis do próximo processo Calculo do CRC do próximo processo Carrega rotina de recuperação
  32. 32. Correção de erro (Hamming) Interrupção Salvar variáveis do processo corrente Calculo do CRC do processo corrente Carregamento do próximo processo Hamming OK? Fim da interrupção Carrega variáveis do próximo processo Calculo do Ham do próximo processo Corrige erros dos dados da pilha
  33. 33. 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)
  34. 34. Solução Mista Interrupção Salva Hamming Fim da interrupção Processo Atual é RT? Salva CRC Próximo processo é RT? Checar CRC Checar Hamming Reinicia Processo Corrige Pilha
  35. 35. ResultadosResultados
  36. 36. Consumo de memória
  37. 37. Consumo de CPUConsumo de CPU ResultadosResultados
  38. 38. Sem processo em execução (idle) Troca de contexto Processo de tempo real Processos extras (sobrecarga)
  39. 39. 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 25 0% 2% 4% 6% 8% 10% 12% EDF RR Troca de Contexto Número de Processos ConsumodeCPU
  40. 40. 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 25 EDF RR Número de Processos 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0% 2% 4% 6% 8% 10% 12% Número de Processos ConsumodeCPU Sem Prioridade Com Prioridade
  41. 41. 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 25 0% 10% 20% 30% 40% 50% RR CRC Hamming Número de Processos ConsumodeCPU
  42. 42. Consumo dos métodos otimizados
  43. 43. Consumo do método misto 0 5 10 15 20 25 30 35 40 0% 1% 2% 3% 4% 5% 6% 7% 8% 9% 10% Medido Calculado Período pRT em ticks ConsumodeCPU
  44. 44. Sem processo em execução (idle) Troca de contexto Processo de tempo real
  45. 45. Simulação de falhas naSimulação de falhas na memóriamemória ResultadosResultados
  46. 46. Falhas observadas com o sistema de correção/detecção desligado Byte Descrição Bit 7 6 5 4 3 2 1 0 0 CRC (alto) 1 CRC (baixo) 2 Paginação 3 CCR 4 Acumulador B 5 Acumulador A 6 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)
  47. 47. Comando para simulação de falha Resposta do sistema Troca de contexto Ação de controle
  48. 48. Comando para simulação de falha Resposta do sistema Troca de contexto Ação de controle
  49. 49. Melhoria na confiabilidadeMelhoria na confiabilidade do sistemado sistema ResultadosResultados
  50. 50. Confiabilidade no funcionamento
  51. 51. Sistema de controleSistema de controle ResultadosResultados
  52. 52. Resultados
  53. 53. Malha aberta Resposta do sistema Referência Ação de controle Simulação Teste na planta
  54. 54. Diagrama de blocos da simulação
  55. 55. Kp=1; Ki=0; Kd=0; Resposta do sistema Referência Ação de controle Simulação Teste na planta
  56. 56. Kp=1; Ki=5; Kd=0; Resposta do sistema Referência Ação de controle Simulação Teste na planta
  57. 57. Kp=10; Ki=3; Kd=0,02; Resposta do sistema Referência Ação de controle Simulação Teste na planta
  58. 58. ConclusãoConclusão
  59. 59. 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)
  60. 60. 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
  61. 61. AgradecimentosAgradecimentos
  62. 62. 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.
  63. 63. ObrigadoObrigado

×