Fundamentos de Sistemas Operacionais
Aula 3: Segurança Interprocessos
Diego Passos
Última Aula
Processos
Compostos por:
Código (programa).
Estado (memória, registradores).
Em um sistema com multiprogramação:
Vários processos residentes em memória.
Cada um com seu espaço de endereçamento.
Filas de processos aptos.
Processos em diferentes estados.
SO responsável por compartilhar os recursos.
Problemas de Segurança
Um Processo em Execução...
Tem controle do processador:
Decide quais instruções são executadas.
Controla o valor dos registradores.
Tem acesso a barramentos e dispositivos de E/S.
Tem controle sobre a memória:
Pode ler valores armazenados.
Pode escrever novos valores.
Como evitar que determinados processos...
... monopolizem o processador?
... monopolizem dispositivos de E/S?
... leiam dados confidenciais de outras processos?
... alterem valores de variáveis de outros processos?
Requisitos de Segurança
O SO deve ser capaz de:
Retomar o controle do processador.
Impedir o acesso à posições de memória externas aos espaço de endereçamento de um processo.
Impedir o acesso direto a dispositivos de E/S.
Solução: Suporte do Hardware
Hardware precisa prover mecanismos de segurança:
Temporizadores.
Após determinado tempo, geram interrupções.
Validação de endereços em acessos à memória.
Acessos inválidos geram interrupções.
Restrição de acesso a certas instruções.
Tentativas de execução de instruções restritas geram interrupções.
Interrupções
Base de todo o gerenciamento do SO.
Ao ser carregado, SO preenche o vetor de interrupções.
Tabela de ponteiros para rotinas de tratamento de interrupções.
Quando uma interrupção ocorre:
Hardware salva o estado ("básico") atual.
Registradores.
SO pode precisar salvar outras informações no tratador de interrupção.
Operação denominada troca de contexto.
Vetor de Interrupções é consultado.
Rotina de tratamento de interrupção é executada.
Contexto é restaurado.
Execução anterior continua.
Interrupções (mais)
Três tipos:
Interrupções de hardware: eventos externos.
e.g., novo pacote recebido pela interface de rede.
Interrupções de software: instrução INT.
Processo requisita serviço do SO.
Exceção: erros na execução.
e.g., overflow, acesso indevido à memória.
Podem ter prioridades diferentes.
Alguns eventos são mais importantes que outros.
Modos de Execução do
Processador
Modo Supervisor
Modo inicial do processador, quando ligado.
Modo que permite total controle da máquina:
Acesso a qualquer posição de memória.
Execução de qualquer instrução do processador.
Acesso a dispositivos de E/S.
Troca do modo de operação do processador.
Kernel do SO é executado neste modo.
Modo Usuário
Modo de execução restrito do processador.
Vários recursos são proibidos ou restritos:
Todo acesso à memória é verificado.
Certas instruções não podem ser executadas.
e.g., CLI e STI.
Processos de aplicação executam neste modo.
Processadores Mais Novos
Trazem o conceito de Rings.
Vários níveis de privilégios.
Permitiram suporte do hardware à virtualização:
Intel VT-x.
AMD-V.
Máquinas virtuais hoje são mais rápidas.
Têm acesso direto a certos recursos do hardware.
Menos chamadas ao SO nativo.
Maior eficiência.
Fonte: wikipedia
Proteção de E/S
Instruções Privilegiadas
Instruções de E/S só podem ser executadas em modo supervisor.
Instrução IN para leitura.
Instrução OUT para escrita.
Força processos de aplicação a fazer chamadas de sistema.
Fonte: "Sistemas Operacionais". Rômulo Oliveira, Alexandre Carissimi, Simão Toscani, 2a Edição.
Chamadas de Sistema
Solicitação de serviço feita por um processo de aplicação ao SO.
Geralmente acionadas através de interrupções de software.
Tratador de interrupção é acionado.
Operação requisitada é identificada.
Parâmetros são verificados.
Serviço é executado.
Resultado é retornado.
Proteção de Memória
Registradores Base e Limite
Objetivo:
Verificar se os endereços de acesso à memória estão dentro do espaço de endereçamento.
Uma solução:
Utilizar dois registradores:
Base: endereço da primeira posição de memória válida.
Limite: endereço da primeira posição inválida (após o espaço de endereçamento).
A cada acesso à memória, compara o endereço aos registradores.
Registradores Base e Limite (mais)
Fonte: "Sistemas Operacionais". Rômulo Oliveira, Alexandre Carissimi, Simão Toscani, 2a Edição.
Proteção do Processador
Temporizadores
Ao passar a execução para um processo de aplicação, SO configura um temporizador.
Ao expirar, temporizador gera uma interrupção.
Processador passa a execução para o tratador de interrupção (parte do SO).
Temporizadores são a base da multiprogramação.
Perfeitos para sistemas de timesharing.
Revisão
Para Lembrar
Questões de segurança em multiprogramação.
E/S, CPU, memória.
Requisitos de segurança.
Suporte do hardware.
Modos de operação (usuário e supervisor).
Instruções privilegiadas.
Temporizadores.
Verificação de endereços de memória.