Proteção. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

Documentos relacionados
Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 21. Proteção

Sistemas Operacionais

implementação Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Fernando Ramos, Nuno Neves, Sistemas Operativos,

Processos. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

Sistemas Operacionais

Sistemas Operacionais

Sistemas Operacionais

SISTEMAS OPERATIVOS I

Introdução. PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Sistemas Operacionais. Prof. André Y. Kusumoto

Licenciatura em Informática

Sistemas Operativos. 2017/2018 1º Semestre

LISTA DE EXERCÍCIOS 02

Protótipo tipo de um sistema de arquivos para ambiente distribuído

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Sistemas Operacionais

Gestão de Memória algoritmos e políticas

Capítulo 10: Interface de Sistemas de Arquivos. Operating System Concepts 8 th Edition

SOP Sistemas Operacionais Módulo 04: Processo

Motivação. Apresentação. Paulo Marques Departamento de Eng. Informática Universidade de Coimbra

Segurança em Sistemas Operativos

Introdução aos Sistemas Operacionais

Listagens de ficheiros e directorias

Segurança em Sistemas Operativos

Sistemas Operacionais

Aula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes

Sistemas Operacionais

Sistemas Operacionais

SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

Sistemas Operacionais

Bases de Dados. Apresentação da disciplina. Programa

Prof. Kleber R. Rovai

Sistemas Operativos. Objetivo. Entrega do Questionário. Exercício 1. Exercício 2. Exercício 3. Exercício 4. Grupo 1 Introdução

Windows 95/98/Me/2000

Sistemas Operacionais. Prof. MSc André Y. Kusumoto

Leandro Soares de Sousa (D.Sc.) Página:

Engenharia de Computação MATRIZ 535

Capítulo 11: Implementação de Sistemas de Arquivos. Operating System Concepts 8th Edition

Sumário. Sistemas Operativos 1

Controlo de Acesso. Mecanismos de Controlo de Acesso. Conjunto de recursos que estão sujeitos ao mecanismo de controlo de acesso

SSC0640 Sistemas Operacionais I

Sistemas Operacionais. BC Sistemas Operacionais

Roteiro 20/9/2010. Serviço do sistema operacional. Interface. Chamadas de sistemas (System Call) Programas do sistema Projeto e Implementação

Introdução à Programação de Computadores Fabricação Mecânica

Apresentação. Sistemas Operacionais. Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D.

Threads. Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa. Fernando Ramos, Nuno Neves, Sistemas Operativos,

Leandro Soares de Sousa (DSc.) Página:

Organização e Arquitetura de computadores. Memórias

Capítulo 8: Memória Principal. Operating System Concepts 8 th Edition

Sistemas Operativos 2014/15

Sistemas Operacionais

SISTEMAS OPERATIVOS I

Introdução. Pedro Cruz. EEL770 Sistemas Operacionais

PLANO DE ENSINO. 1 Objetivos da Disciplina. 2 Ementa do Programa

Sistemas Operativos: Implementação de Processos

Espaço de Endereçamento

Manipulação de directorias

Arquitectura de Computadores (ACom)

Linux - comando essenciais

Sistemas Operacionais

Chamadas de Sistema (SYSCALL)

Arranque. Anne-Marie Mahfouf Tradução: José Pires

Introdução à Ciência da Computação

Sistemas Operacionais

Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores

Sistemas Operacionais

Conceito de programação

Abortar a execução dum programa

ESTRUTURA DOS SISTEMAS OPERACIONAIS

Arquitecturas Alternativas. Java Virtual Machine

Sistemas Operacionais

English version at the end of this document

Sistemas de Entrada e Saída

Computadores e Programação (DCC/UFRJ)

Capítulo 11 Sistemas de Arquivos

Engenharia da Programação

Instruções de Instalação dos Guias Móveis (versão 1.0, PT)

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

Sistemas de Informação. Sistemas Operacionais

Sistemas de Entrada e Saída

Rootkits. Segurança em Sistemas Informáticos. 16 maio, 2017

Sistemas Operacionais

Sistemas Operacionais. Prof. André Y. Kusumoto

Capítulo 10: Interface de Sistemas de Arquivos. Operating System Concepts 8th Edition

SSC0640 Sistemas Operacionais I

Sincronização Plano de IVA 7.00

Gerência de memória III

CP Introdução à Informática Prof. Msc. Carlos de Salles

SISTEMAS OPERATIVOS I

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006

Curso: Redes de Computadores

Compiladores Ambiente de Execução

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 3ª Parte Prof. Sandra Pais Soares

Segurança em Sistemas Operativos. André Zúquete, João Paulo Barraca SEGURANÇA INFORMÁTICA E NAS ORGANIZAÇÕES 1

Arquitectura de Computadores (ACom)

Ficha da Unidade Curricular (UC)

Métodos de Programação I Ana Maria de Almeida

Transcrição:

Proteção Nuno Ferreira Neves Faculdade de Ciências de Universidade de Lisboa Objetivos da aula Discutir os objetivos e o princípio basilar da proteção de um sistema Explicar como os domínios de proteção, combinados com uma matriz de acesso, são usados para especificar os recursos a que um processo pode aceder

Bibliografia [Silberchatz2014], Capítulo 14 NOTA Os acetatos que se seguem não substituem a bibliografia aqui referida, e deverão por isso ser vistos apenas como um complemento para o estudo da matéria. Objetivos Os sistemas são constituídos por um conjunto processos e de objetos (de hardware e de software) cada objeto pode ser acedido através de um conjunto de operações bem definidas Objetivo garantir que cada objeto é acedido apenas pelos processos que têm permissões para tal e de acordo com essas permissões Benefícios na fiabilidade na segurança

Princípio basilar A definição de princípios ajuda no desenho, na manutenção e na simplificação do sistema Princípio dos privilégios mínimos devem ser atribuídosapenas osprivilégiosmínimosnecessários para os programas, utilizadores ou sistema executarem as suas tarefas ajuda a minimizar danos no caso de surgir um problema e sim, e os problema vão surgir Domínio de Proteção Um processo pode aceder a recursos de acordo com o seu domínio de proteção Direitos de acesso <nome do objeto, conjunto de direitos> o conjunto de direitos é um subconjunto de todas as operações válidas que podem ser executadas num objeto Um domínio de proteção é um conjunto de direitos de acesso os domínios não têm de ser disjuntos Fonte da imagem: [Siberschatz2010]

Implementação em UNIX O sistema consiste em 2 domínios Utilizador: apenas pode invocar instruções não privilegiadas Monitor: pode executar instruções privilegiadas, tendo controlo completo sobre o sistema UNIX Domínio é associado ao utilizador (através do userid) para que o utilizador possa executar operações priveligiadas é preciso mudar de domínio, corresponde a comutar temporariamente o userid A comutação éfeitaatravésdo sistema de ficheiros cada ficheiro está associado a um dono (owner) e a um bit de domínio (setuid) quando se executa um ficheiro e o setuid = on, o userid passa a ser o do dono do ficheiro quando a execução termina o userid volta ao estado original se setuid = off o userid não muda Matriz de acesso Modelo genérico que permite especificar as proteções através de uma matriz as linhas representam domínios as colunas representam objetos Access(i,j) é o conjunto de operações que um processo em execução no domínio i pode invocar no objeto j Fonte da imagem: [Siberschatz2010]

Proteção dinâmica Dependendo do SO, os processos podem estar associados de maneira estática a um domínio ou ter a possibilidade de mudar dinamicamente de domínio O conceito de matriz de acesso pode ser expandido para oferecer proteção dinâmica Tipos de direitos de acesso especiais: Transferência possível comutar de domínio (i.e., mudar de linha) Cópia direito de acesso a um objeto pode ser copiado de um domínio para outro (i.e., copiar permissões ao longo da coluna) Dono o domínio que é dono de um objeto pode alterar as permissões do objeto em qualquer domínio (i.e., alterar permissões ao longo da coluna) Controlo um domínio (o controlador ) pode modificar direitos de acesso de outro domínio (i.e., alterar permissões ao longo da linha) Transferência de domínios Transferência e controlo Exemplo: processo em D2 pode comutar para D3 ou D4 Controlo Exemplo: Processo em D2 pode alterar o domínio D4 Fonte da imagem: [Siberschatz2010]

Dono e cópia (alteração de colunas) Dono D 1 éo dono de F 1 e por isso pode alterar os direitos de F 1 (no exemplo, remove direito de execução em D 3 ) Cópia Processo em D 2 pode copiar operação de leitura de F 2 para outro domínio (no exemplo, para D 3 ) Implementação Podíamos ter uma tabela global, mas como na prática a tabela é poucodensa esta solução seria muito ineficiente Solução 1: uma ACL (Access Control List) por objeto (por coluna) define quem pode executar que operação num objeto Exemplo para objeto X: D 1 = Read, Write D 2 = Read D 3 = Read Solução 2: uma capability list por domínio (por linha) para cada domínio, quais as operações permitidas em cada objeto (a capability é um apontador para o objeto) Exemplo para domínio X: O 1 = Read O 4 = Read, Write, Execute O 5 = Read, Write, Delete, Copy

Como revogar direitos de acesso? Quando se usa uma ACL por objeto basta percorrer a ACL e apagar os direitos de acesso que se pretendam Simples Imediato Capability List necessário um esquema para localizar as capabilities (por objeto) no sistema antes de estas poderem ser revogadas Reaquisição as capabilities são apagadas periodicamente, e terão de ser readquiridas se necessário, e se tiverem sido revogadas, não se podem readquirir Back pointers Mantem se uma lista de ponteiros por objeto, apontando para as suas capabilities, e logo para remover, basta percorrer a lista (Ver livro para outras técnicas) Proteção baseada na linguagem A especificação da proteção numa linguagem de programação permite descrições de alto nível das políticas especificações de proteção podem ser geradas independentemente do sistema de proteção usado no SO Exemplo: Java a Java Virtual Machine (JVM) trata da proteção quando uma classe é carregada é lhe atribuído um domínio de proteção o domínio indica as operações que a classe pode (e não pode) executar (as permissões) exemplo: ler ficheiros de uma diretoria; establecer ligações de rede a JVM tem mecanismos para obrigar ao cumprimento das políticas de proteção

[Siberschatz2014] Referências e agradecimentos Operating System Concepts. Abraham Silberschatz, Peter B. Galvin, Greg Gagne, 9th edition, 2014. Parte muito relevante da inspiração para estes slides surgiu da consulta dos slides de SO do Professor Mário Calha, da Professora Dulce Domingos e dos de [Siberschatz2010]