2 Políticas, Modelos e Mecanismos de Segurança

Slides:



Advertisements
Apresentações semelhantes
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Advertisements

Introdução à Programação Um enfoque orientado a construção de modelos em programas baseados em objetos Gustavo Motta Departamento de Informática - UFPB.
2 Políticas, Modelos e Mecanismos de Segurança
Banco de Dados Prof. Antonio.
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Segurança Renata Viegas.
7130 – Adminstração de Sistemas de Informação
SISTEMAS DE INFORMAÇÃO
Sistema de Arquivos - PROTEÇÃO DE ARQUIVOS
Projeto de Banco de Dados
Maurício Edgar Stivanello
Prof. Heloise Manica Paris Teixeira
Curso Superior de Tecnologia em Automação Industrial Prof. Leo Weber
Material III-Bimestre Wagner Santos C. de Jesus
Linguagem de Prog. e Programas
Introdução à Programação Um enfoque orientado a construção de modelos em programas baseados em objetos Gustavo Motta Departamento de Informática - UFPB.
Introdução ao -calculus
Introdução à Programação
00(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
Introdução à Programação Um enfoque orientado a construção de modelos em programas baseados em objetos Gustavo Motta Departamento de Informática - UFPB.
© Matt Bishop (C) 2005 Gustavo Motta1 2 Políticas, Modelos e Mecanismos de Segurança O papel do controle de acesso Matriz de controle de acesso.
© Matt Bishop (C) 2005 Gustavo Motta1 2 Políticas, Modelos e Mecanismos de Segurança O papel do controle de acesso Matriz de controle de acesso.
Lógica de Programação Módulo II
Prof. Msc. Raul Paradeda Aula 3 Fundamentos
Revisão da Linguagem C.
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
Boas Práticas Clínicas: Protocolo Clínico
UML - Unified Modeling Language
Diagrama de Estados.
Conceitos Básicos.
ÁLGEBRA DE CHAVEAMENTO
Sistemas Operacionais I
Segurança Conceitos de Ataques Mauro Mendes.
Fundamentos de Segurança da Informação
Proteção de Memória O sistema operacional deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização. Proteção para páginas.
UML - Unified Modeling Language
Web Services Uninorte Semana de Tecnologia da Informação
Capítulo 24 Segurança de banco de dados
Dispositivos de Segurança
Sistemas Operacionais
Modelo de Dados Relacional
Paradigmas de Linguagens de Programação Linguagem Imperativa 1
Sistemas de Informações Geográficas SIGs.
Inteligência Artificial
Paradigmas de Programação - prof Gláucya Carreiro Boechat1 Elaborando um Programa Prof.: Gláucya Carreiro Boechat Universidade.
Introdução a Banco de dados
Exercícios SGBD - CESPE
Programação Orientada à Objetos
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
Unified Modeling Language Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Nov/2010.
SISTEMAS OPERACIONAIS I
Introdução a Banco de Dados Aula 04
Bancos de Dados.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Capítulo 10: Interface de Sistemas de Arquivos.
Controle de Acesso e Privacidade em Sistemas Sensíveis ao Contexto Carlos Eduardo Andrião.
Banco de dados 1 Modelagem de Dados Utilizando MER
Fundamentos de linguagens de programação
Semântica de Linguagens de Programação
Conceitos de Orientação a Objetos zConceito de tipo zTipos Abstratos de Dados zMódulos/Pacotes zEncapsulamento.
Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de.
Projeto de Banco de Dados
UCSal – Bacharelado em Informática
ARQUITETURA DE COMPUTADORES Nível do Conjunto de Instruções
Álgebra de Boole Circuitos Digitais
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
Copyright © 2011 Ramez Elmasri and Shamkant Navathe slide 1 Tópicos  Introdução  Um exemplo  Características da abordagem de banco de dados  Vantagens.
Modelos de dados.
Sistemas Operacionais Sistemas de Arquivos Prof. José Queiroz - ZEQUE.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

2 Políticas, Modelos e Mecanismos de Segurança O papel do controle de acesso Matriz de controle de acesso Resultados fundamentais Políticas de segurança Modelos de segurança Mecanismos e implementação (C) 2005 Gustavo Motta

Matriz de controle de acesso (1) Sumário Introdução Modelo de matriz de controle de acesso – (MCA) Controle de acesso pela avaliação de expressões booleanas Controle de acesso baseado na história Transições do estado de proteção Comandos Comandos condicionais Direitos especiais Princípio da atenuação de privilégio (C) 2005 Gustavo Motta

Matriz de controle de acesso (2) Introdução (1) Modelo conceitual abstrato introduzido por LAMPSON (1974) que especifica os direitos que cada sujeito possui para cada objeto num sistema Uma coluna para cada objeto Sujeito/ Objeto Arquivo_1 Arquivo_2 Arquivo_3 Processo_1 João read, write  write Pedro execute, read write suspend Marcos read Filipe A função básica de um sistema de controle de acesso é assegurar que apenas as operações autorizadas na matriz possam ser executadas A matriz é um modelo conceitual do banco de dados de autorização usado pelo monitor de referência As células da matriz especificam as operações – os direitos de acesso – que cada sujeito tem para cada objeto Uma linha para cada sujeito (C) 2005 Gustavo Motta

Matriz de controle de acesso (3) Introdução (2) A MCA é tradicionalmente usada para descrever o estado de proteção de um sistema de controle de acesso O estado de um sistema é a coleção dos valores correntes de todas as posições de memória, de toda a memória secundária e de todos os registradores e outros componentes de um sistema O subconjunto do estado que lida com a proteção é denominado de estado de proteção do sistema Seja P o conjunto de todos os estados possíveis e Q  P o conjunto exato dos estados autorizados para o sistema, i. e., o conjunto de estados seguros Sempre que está em Q, o sistema está seguro Quando o estado corrente está em P  Q, o sistema não está seguro Cabe a uma política de segurança caracterizar os estados de Q Cabe a um mecanismo de segurança prevenir que o sistema entre num estado em P - Q (C) 2005 Gustavo Motta

Matriz de controle de acesso (4) Introdução (3) O modelo da MCA é o mais preciso para descrever um estado de proteção A descrição dos seus elementos formam uma especificação contra a qual o estado corrente de um sistema pode ser comparado Diferentes linguagens e representações da matriz são empregadas para descrever as características dos estados permitidos Transições de estado modificam os elementos da matriz Espera-se que o resultado da transformação de um estado autorizado por uma operação também autorizada nesse estado seja um estado autorizado Por indução, o sistema estará sempre num estado autorizado Apenas as transições que podem alterar as ações a que um sujeito está autorizado a realizar num sistema é que são relevantes (C) 2005 Gustavo Motta

Matriz de controle de acesso (5) Modelo MCA (1) Descrição Sujeitos S = { s1,…,sn } Objetos O = { o1,…,om }  S Direitos R = { r1,…,rk } Entradas a[si, oj]  R a[si, oj] = { rx, …, ry } indica que o sujeito si tem direitos rx, …, ry sobre o objeto oj objetos (entidades protegidas) sujeitos s1 s2 … sn o1 … om s1 … sn (C) 2005 Gustavo Motta

Matriz de controle de acesso (6) Modelo MCA (2) Exemplo 1 – uso tradicional Processos p, q Arquivos f, g Direitos r, w, x, a, o f g p q p rwo r rwxo w q a ro r rwxo O direito de proprietário –own– é diferenciado dos outros porque tem privilégios especiais: a capacidade de adicionar e remover direitos de um objeto possuído, por exemplo, o processo p pode alterar o conteúdo de a[x, f], onde x é um sujeito qualquer (C) 2005 Gustavo Motta

Matriz de controle de acesso (7) Modelo MCA (3) Exemplo 2 – direitos acesso num programa O modelo MCA é abstrato o significado de uma MCA específica deve sempre ser considerado na perspectiva de uma implementação ou sistema particular Procedimento inc_ctr, dec_ctr, manage Variável counter Direitos +, –, call counter inc_ctr dec_ctr manage inc_ctr + dec_ctr – manage call call call (C) 2005 Gustavo Motta

Matriz de controle de acesso (8) Modelo MCA - avaliação de expressões booleanas (1) Direitos determinados pela avaliação de uma expressão booleana, baseada em dados do contexto do acesso MCA para controlar o acesso a campos de um banco de dados (MILLER & BALDWIN, 1990) Sujeitos possuem atributos Verbos definem modos de acesso (insert, delete, update, ...) Regras são associadas a pares de objeto-verbo Quando um sujeito tenta acessar um objeto de um determinado modo A regra associada ao par objeto-verbo para esse sujeito é avaliada Caso o resultado seja verdadeiro – o acesso é concedido Caso o resultado seja falso – o acesso é negado (C) 2005 Gustavo Motta

Matriz de controle de acesso (9) Modelo MCA - avaliação de expressões booleanas (2) Exemplo – casa inteligente (1) Sujeitos: Ana e Tiago Atributos: Ana tem o papel criança e Tiago tem o papel adulto Verbos: assistir – valor default 0 (negado) Objeto: TV Regras: assistir: ‘adulto’ in sujeito.papel or (‘criança’ in sujeito.papel and relogio.hora >= 16 and relogio.hora <= 20) (C) 2005 Gustavo Motta

Matriz de controle de acesso (10) Modelo MCA - avaliação de expressões booleanas (3) Exemplo – casa inteligente (2) às 18:00h, a condição temporal está satisfeita; a MCA é: às 21:00h, a condição temporal não está satisfeita; a MCA é: … TV … … TV … … ana … assistir … ana … (C) 2005 Gustavo Motta

Matriz de controle de acesso (11) Transições do estado de proteção (1) O estado de proteção de um sistema se modifica à medida que os processos executam operações Seja X0 = (S0, O0, A0) o estado inicial do sistema O conjunto das transições de estado é representado pelas operações 1, 2, ... Estados sucessivos são representados por X1, X2, ..., para os quais, a notação significa que a transição de estado i+1 leva o sistema do estado Xi para Xi + 1 Quando um sistema inicia num estado X qualquer e, após uma série de transições, chaga a Y, então escreve-se (C) 2005 Gustavo Motta

Matriz de controle de acesso (12) Transições do estado de proteção (2) Seqüências de transições de estado são representadas por comandos únicos, denominados procedimentos de transformação – que modificam a MCA, onde é a i-ésima transição provocada pelo comando ck, com parâmetros formais pk,1,..., pk,m, denotando sujeitos, objetos e entradas que afetam os procedimentos de transformação HARRISON et al. (1976) definiram 6 comandos primitivos para alterar a MCA 1. criar um sujeito s 4. deletar r de a[s, o] 2. criar um objeto o 5. destruir o sujeito s 3. entrar com r em a[s, o] 6. destruir o objeto o Usados para construir comandos mais elaborados (C) 2005 Gustavo Motta

Matriz de controle de acesso (13) Transições do estado de proteção (3) Especificação dos comandos primitivos (1) Lembrar que S  O O estado de proteção antes da execução de um comando é (S, O, A) e após a execução é (S, O, A ) 1. Comando primitivo: create subject s Pré-condição: s  S Pós-condição: S = S  { s }, O = O  { s }, ( y  O )[a [s, y] = ], ( x  S )[a [x, s] = ], ( x  S) ( y  O)[a [x, y] = a[x, y]] Observação: este comando primitivo cria um sujeito s. Note que s não deve existir como um sujeito ou objeto antes da execução do comando. A operação não adiciona nenhum direito, apenas define uma nova linha e uma nova coluna à matriz (C) 2005 Gustavo Motta

Matriz de controle de acesso (14) Transições do estado de proteção (4) Especificação dos comandos primitivos (2) 2. Comando primitivo: create object o Pré-condição: o  O Pós-condição: S = S, O = O  { o }, ( x  S )[a [x, o] = ], ( x  S) ( y  O)[a [x, y] = a[x, y]] Observação: este comando primitivo cria um objeto o. Note que o não deve existir como um objeto antes da execução do comando. A operação não adiciona nenhum direito, apenas define uma nova coluna à matriz 3. Comando primitivo: enter r into a[s, o] Pré-condição: s  S, o  O Pós-condição: S = S, O = O, a [s, o] = a[s, o]  { r }, ( x  S ) ( y  O )[(x, y)  (s, o)  a [x, y] = a[x, y]] Observação: este comando primitivo adiciona o direito r para a célula a[s, o]. Note que o direito r já pode estar em a[s, o]. O efeito disso dependerá de instanciações específicas do modelo (C) 2005 Gustavo Motta

Matriz de controle de acesso (15) Transições do estado de proteção (5) Especificação dos comandos primitivos (3) 4. Comando primitivo: delete r from a[s, o] Pré-condição: s  S, o  O Pós-condição: S = S, O = O, a [s, o] = a[s, o]  { r }, ( x  S ) ( y  O )[(x, y)  (s, o)  a [x, y] = a[x, y]] Observação: este comando primitivo exclui o direito r da célula a[s, o]. Note que o direito r não precisa estar em a[s, o] e, nesse caso, o efeito da execução do comando é nulo 5. Comando primitivo: destroy subject s Pré-condição: s  S Pós-condição: S = S  { s }, O = O  { s }, ( y  O )[a [s, y] = ], ( x  S )[a [x, s] = ], ( x  S ) ( y  O )[a [x, y] = a[x, y]] Observação: este comando primitivo exclui um sujeito s. A coluna e a linha para s na matriz também são excluídas (C) 2005 Gustavo Motta

Matriz de controle de acesso (16) Transições do estado de proteção (6) Especificação dos comandos primitivos (4) 6. Comando primitivo: destroy object o Pré-condição: o  O Pós-condição: S = S, O = O  { o }, ( x  S )[a [x, o] = ], ( x  S ) ( y  O )[a [x, y] = a[x, y]] Observação: este comando primitivo exclui um objeto o. A coluna para o na matriz também é excluída Exemplo (1): UNIX – processo p cria um arquivo f com direitos de r e w command create-file(p, f) create object f; enter own into a[p, f] enter r into a[p, f] enter w into a[p, f] end (C) 2005 Gustavo Motta

Matriz de controle de acesso (17) Transições do estado de proteção (7) Exemplo (2): UNIX – processo p cria processo filho q command cria-processo-filho(p, q) create subject q; enter own into a[p, q] enter r into a[p, q] enter w into a[p, q] enter r into a[q, p] enter w into a[q, p] end Habilita processos pai e filho a trocarem sinais Habilita processos pai e filho a trocarem sinais (C) 2005 Gustavo Motta

Matriz de controle de acesso (18) Transições do estado de proteção (8) Comandos primitivos não podem ser usados diretamente Uso interno no núcleo de segurança A MCA somente pode ser alterada através de comandos definidos para tal pelo núcleo Entretanto, um comando pode invocar um único comando primitivo – tal comando é denominado de comando mono-operacional Exemplo (3): comando mono-operacional para adicionar p ao conjunto de proprietários de f command torna-proprietário(p, f) enter own into a[p, f] end (C) 2005 Gustavo Motta

Matriz de controle de acesso (19) Transições do estado de proteção (9) Comandos condicionais (1) A execução de comandos primitivos pode requerer a satisfação de certas condições Exemplo (1): um processo p só pode dar o direito do processo q ler um arquivo f se p for o proprietário de f command concede-direito-leitura-1(p, f, q) if own in a[p, f] then enter r into a[q, f] end Comando com uma condição são chamados de monocondicionais (C) 2005 Gustavo Motta

Matriz de controle de acesso (20) Transições do estado de proteção (10) Comandos condicionais (2) Múltiplas condições podem ser combinadas com o operador and Exemplo (2): um processo p só pode dar o direito do processo q ler um arquivo f se p possuir os diretos r e c sobre f command concede-direito-leitura-2(p, f, q) if r in a[p, f] and c in a[p, f] then enter r into a[q, f] end Todas as condições devem ser combinadas com o operador and – o operador or não deve ser usado, por ser desnecessário A negação de uma condição também não é permitida – i. e., não é permitido testar a ausência de direitos (C) 2005 Gustavo Motta

Matriz de controle de acesso (21) Direitos especiais (1) Direito de cópia – (grant right) Permite que um proprietário conceda direitos sobre um objeto para outros sujeitos Em geral, é um flag (copy flag) associado a outros direitos, sendo aplicável apenas a tais direitos r é um direito de leitura que não pode ser copiado rc é um direito de leitura que pode ser copiado Aumenta os direitos existentes sobre um objeto Exemplo: no Windows NT, o copy flag corresponde a ao direito de modificar Exemplo: Nos SGBDs relacionais, corresponde ao grant option Questões Quando um direito qualquer é copiado, o direito de cópia o acompanha? Depende de modelo e de sua instanciação (C) 2005 Gustavo Motta

Matriz de controle de acesso (22) Direitos especiais (2) Direito de proprietário – (own right) Permite que um proprietário adicione ou remova privilégios para si mesmo Conseqüentemente, pode adicionar ou remover privilégios para outros Depende de implementação Não pode conceder direitos para grupos ou usuários específicos Não pode repassar o direito de cópia para grupos ou usuários específicos O proprietário é, em geral, o criador do objeto Exemplo: em sistemas UNIX, o proprietário pode usar o comando chown(1) para modificar as permissões de outros sujeitos sobre um objeto. Em algumas versões, o proprietário pode repassar o own right para outros sujeitos, em outras versões, isto não é possível (C) 2005 Gustavo Motta

Matriz de controle de acesso (22) Princípio da atenuação de privilégio Um sujeito não pode conceder direitos que ele não possui para terceiros Restringe a adição de direitos num sistema Em geral, isto é ignorado para o proprietário Por que? Exemplo: a usuária Ana possui o arquivo /home/ana/agenda, mas não tem direito de leitura sobre ele. Ela pode executar o seguinte comando para permitir que qualquer um leia o arquivo, independente de Ana ter este direito ou não chmod go+r /home/ana/agenda Um outro usuário não poderá fazer isto – modificar a permissão (C) 2005 Gustavo Motta

Referências (1) ANDERSON, J. Computer security technology planning study, volume II, Technical report ESD-TR-73–51, Electronic Systems Division, Air Force Systems Command, Hanscom Field, Bedford, MA 01730 (Outubro 1972). LAMPSON, B. Protection. ACM operating sys. reviews, v. 8, n. 1, p. 18-24, 1974. MILLER, D. e BALDWIN, R. Access control by boolean expression evaluation. In: 15TH ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE, 1990. Proceedings... p. 131-139. HARRISON, M.; RUZZZO, W. e ULLMAN, J. Protection in operating systems. Communications of the ACM, v. 19, n. 8, p. 461-471, 1976. (C) 2005 Gustavo Motta