Segurança: Controlo de Acesso



Documentos relacionados
(Monitor de referências) olicy nforcement oint. olicy ecision oint

Sistemas de Nomes Planos

Sistemas Distribuídos: Conceitos e Projeto Controle de Acesso

ACL Linux. O que são ACLs e por que usá-las?

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular SISTEMAS DISTRIBUIDOS Ano Lectivo 2015/2016

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

Sistemas de Nomes Hierarquicos: DNS

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Departamento de Informática

Um cliente de cada vez:

Comunicação. Parte II

MODELO CLIENTE SERVIDOR

Sistemas Operativos: Deadlocks

Sistemas Operativos: Introdução. February 22, 2011

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com

Desenvolvimento Cliente-Servidor 1

Ciência de Computadores Sistemas Distribuídos e Móveis

Visão do Usuário da DSM

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

A falha em alguns destes pontos pode resultar num excessivo e desnecessário investimento/despesa

Conceitos de Segurança Física e Segurança Lógica. Segurança Computacional Redes de Computadores. Professor: Airton Ribeiro Fevereiro de

1. O DHCP Dynamic Host Configuration Protocol

Hardware & Software. SOS Digital: Tópico 2

Escola Secundária Eça de Queiroz

Aspectos técnicos do desenvolvimento baseado em componentes

Organização de Computadores 1

Ficha prática nº 7. SGBD Microsoft Access e SQL Server

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de o Teste A

Índice. Introdução Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais... 35

Sumário. Comunicação Multicast. Soluções. Multicast. Application-Level Multicast. October 20, 2008 Algoritmos Epidémicos

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

ITIL v3 - Operação de Serviço - Parte 1

Introdução. Sistemas Distribuídos. Mas, o que é um sistema distribuído? Seriamente. Professor: Paulo Jorge Marques. Professora Práticas: Pinki Meggi

INE Sistemas Distribuídos

Programação de Sistemas

Implementação de políticas UCON em um núcleo de sistema operacional

1 Criar uma entity a partir de uma web application que usa a Framework JavaServer Faces (JSF)

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

Engenharia de Software Sistemas Distribuídos

FICHEIROS COM EXEMPLOS

Introdução aos Sistemas Operativos

Bases de Dados. Lab 1: Introdução ao ambiente

Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos. Sistemas Operativos - 2º Ano

2.3. PHP Tipos de dados e operadores

Noções de. Microsoft SQL Server. Microsoft SQL Server

Escola Superior de Tecnologia de Setúbal. Projecto Final

Índice. Introdução 31. Tutorial 1: O Microsoft Access como Sistema de Gestão de Bases de Dados Relacionais 35

Tarefa Orientada 14 Subconsultas

Manual do GesFiliais

Certificação de Software. Impacto nas operações das empresas

5 Estudo de caso: utilizando o sistema para requisição de material

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

Arquitetura de Computadores II

Sistemas Distribuídos. Aleardo Manacero Jr.

Oficina de ferramentas de Gerência para Redes em Linux. Prof. Jefferson Santiago

1

Projeto de Redes de Computadores. Desenvolvimento de Estratégias de Segurança e Gerência

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

Sistemas Operativos I

Administração de Utilizadores e grupos

MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE PELOTAS UNIDADE DE PASSO FUNDO

RAID Redundat Arrays of Inexpensive Disks

Curso de Instalação e Gestão de Redes Informáticas

4 Avaliação Experimental

Web Technologies. Tópicos da apresentação

Introdução ao Modelos de Duas Camadas Cliente Servidor

Agentes Inteligentes segundo o Chimera

DECLARAÇÃO DE RISCO DE INVESTIMENTO (OTC) De 15 de Fevereiro de 2012

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

Sistemas Operacionais. Conceitos de um Sistema Operacional

Configurando um servidor WWW seguro. Centro de Atendimento a Incidentes de Segurança - CAIS

Carlos Ferraz

Sistemas Distribuídos

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

Mac OS X Felipe Gomes Lacerda Pedro Garcia Freitas 23 de novembro de 2009

REGULAMENTO DE UTILIZAÇÃO DE CORREIO ELECTRÓNICO DOS SOLICITADORES

Controle de Acesso em Rede

FTIN Formação Técnica em Informática. Sistema Operacional Proprietário Windows Prof. Walter Travassos

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular SISTEMAS DISTRIBUÍDOS Ano Lectivo 2012/2013

Hugo Pedro Proença, 2007

Autoridade de Certificação de uma infraestrutura de chave pública (PKI).

Infra-Estrutura de Software. Introdução. (cont.)

Arquitetura dos Sistemas Operacionais

Prof. José Maurício S. Pinheiro UniFOA

Transcrição:

Segurança: Controlo de Acesso November 27, 2009 Sumário Modelo de Controlo de Acesso Matriz de Controlo de Acesso Listas de Controlo de Acesso Capabilities Camadas e Controlo de Acesso

Controlo de Acesso A segunda componente de segurança é o controlo de acesso. No modêlo cliente-servidor, quando um servidor recebe um pedido para execução duma operação, o servidor deverá verificar se o cliente tem permissões de acesso (access rights). Controlo de Acesso é a verificação das permissões de acesso. Autorização é a atribuição de permissões de acesso. Autenticação é a verificação da identidade do utilizador e é uma pré-condição. Modêlo de Controlo de Acesso (Lampson) Subject Access Req. Reference Monitor o é uma entidade sobre a qual se pode executar um conjunto de operações sujeitas a autorização. As operações dependem do tipo de objecto, e do sistema. Sujeito é uma entidade activa que executa operações sobre objectos, desde que tenha as permissões necessárias. Pode ser um utilizador ou um processo. Reference Monitor é a entidade que permite ou rejeita a execução das operações por um sujeito sobre um objecto.

Matriz de Controlo de Acesso Conceptualmente o reference monitor usa uma matriz de controlo de acesso para representar as permissões de acesso. Cada elemento da matriz de controlo de acesso associa um sujeito a um objecto e representa o conjunto de operações que o sujeito tem permissões para executar sobre o objecto Formalmente, seja S o conjunto de sujeitos O o conjunto de objectos A o conjunto de operações de acesso Então, M é tal que: M[s, o] A, s S, o O Matriz de Controlo de Acesso: Exemplo Matriz de controlo de acesso a ficheiros e processos (Unix) Domain 1 File1 File2 File3 File4 File5 File6 Printer1 Plotter2 Domain1 Domain2 Enter Domain3 2 Execute 3 Execute Domínio de Protecção : É uma linha da matriz de controlo de acesso e representa um conjunto de permissões. Pode ser definido independentemente dum sujeito (principal). Pode ser associado dinamicamente a um sujeito.

Matriz de Controlo de Acesso: Problemas Uma implementação simplista da matriz de controlo de acesso (MCA) não é muito eficiente: Um sistema com uma centena de utilizadores e uma dezena de milhar de objectos precisaria duma matriz com mais de... Contudo, a maioria dos elementos desssa matriz são nulos... Acrescentar um objecto ou um sujeito, levantaria problemas de gestão de memória. Listas de Controlo de Acesso (LCA) Associar a cada objecto uma Lista de Controlo de Acesso (Access Control List (ACL)): Um conjunto de pares (sujeito, permissões), que especificam as operações que o sujeito pode executar sobre o objecto. Process Owner A B C User space File F1 A: RW; B: A ACL F2 F3 A: R; B:RW; C:R B:RWX; C: RX Kernel space

Abreviação de LCAs LCAs podem ainda conduzir à necessidade de manter uma grande quantidade de informação de controlo de acesso. Em Unix esta informação é condensada 1. associando utilizadores a grupos; 2. dividindo o conjunto de sujeitos que operam sobre um objecto em 3 classes: owner tipicamente o utilizador que criou o objecto; group owner grupo do owner no momento em que criou o objecto; other restantes utilizadores. A principal limitação desta solução é a granularidade: No máximo, há 3 combinações de permissões possíveis. Alguns sistemas aumentam abreviaturas de ACLs com: ACLs propriamente ditas. Permissões negativas. Capabilities Uma capability é uma elemento da matriz de controlo de acesso (MCA). Uma linha da MCA é uma capability list. Cada elemento desta lista é um par, (objecto, permissões). Process Owner A B C User space F1 F1:R F1:R F2:R F2 F3 F2:R F2:RW F3:RWX F3:RX C-list Kernel space

Uso de ACLs vs. Uso de Capabilities Client Create access request r as subject s (s,r) (a) ACL Server if (s appears in ACL) if (r appears in ACL[s]) grant access; Client Server Create access request r for object o. Pass capability C (o, r) C if (r appears in C) grant access; (b) Implementação de Capabilities com Criptografia Problema Como impedir um sujeito de forjar capabilities? Solução Usar criptografia para garantir integridade: Além da identidade do objecto e das permissões, inclui uma assinatura digital. O sistema distribuído Amoeba desenvolvido por Tanenbaum no final dos anos 80, usa extensivamente este tipo de capability. Server Rights f(s,rights,check)

Capabilities: Cópia A capacidade de fazer cópias de capabilities implica a capacidade de atribuir direitos. Um processo pode dotar outro processo de capacidades restritas, usando, p.ex., o esquema: Port Capability 11111111 C Proposed new rights 00000001 Exclusive or f One-way function Restricted capability Port 00000001 f(c 00000001) Capabilities: Revogação de Direitos A revogação de todos os direitos de acesso a um objecto requer a eliminação de todas as capabilities associadas ao objecto A solução é usar indirecção: A capability aponta não para o objecto mas para a sua entrada numa tabela. Em Informática, não há problema que não se resolva usando indirecção. A revogação de apenas algumas capabilities é mais complexa, embora possa, teoricamente, ser realizada usando o mesmo mecanismo.

Comparação entre LCA e Capabilities LCAs são mais apropriadas para responder à pergunta: Quem está autorizado a realizar que operações sobre um objecto? Capabilities são mais apropriadas para a pergunta: Que operações sobre que objectos um sujeito está autorizado a fazer? Como a primeira põe-se sempre que se cria um objecto, LCAs são usadas mais frequentemente do que capabilities. Bishop sugere que atendendo a que na resposta a incidentes de intrusão a pergunta: Quem acedeu ao objecto? é menos relevante do que: A que outros objectos o intruso acedeu? é de esperar um interesse renovado em capabilities. Protecção e Camadas Alguns dos exemplos apresentados referem-se a sistemas operativos, mas aplicam-se a outras camadas dum sistema computacional. App Middleware SO HW A segurança numa camada depende da segurança da camada inferior (ou exterior). Em particular, a segurança depende dos mecanismos de protecção fornecidos pelo HW.

Leitura Adicional Capítulo 9 de Tanenbaum e van Steen, Distributed Systems, 2nd Ed. Secção 9.3: Access Control Apenas Subsecção 9.3.1: General Issues in Access Control Subsecção 9.4.3: Authorization Management