A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

©2002-2004 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.

Apresentações semelhantes


Apresentação em tema: "©2002-2004 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."— Transcrição da apresentação:

1 © 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 Matriz de controle de acesso Resultados fundamentais Políticas de segurança Modelos de segurança Mecanismos e implementação

2 © Matt Bishop (C) 2005 Gustavo Motta2 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

3 © Matt Bishop (C) 2005 Gustavo Motta3 Matriz de controle de acesso (2) Introdução (1) especifica os direitossujeitoobjetoModelo conceitual abstrato introduzido por LAMPSON (1974) que especifica os direitos que cada sujeito possui para cada objeto num sistema Sujeito/ Objeto Arquivo_1Arquivo_2Arquivo_3Processo_1 Joãoread, write write Pedro execute, read write suspend Marcos read Filiperead Uma coluna para cada objeto Uma linha para cada sujeito As células da matriz especificam as operações – os direitos de acesso – que cada sujeito tem para cada objeto 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

4 © Matt Bishop (C) 2005 Gustavo Motta4 Matriz de controle de acesso (3) Introdução (2) estado de proteçãoA 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 estado de proteção –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 o sistema está seguro Sempre que está em Q, o sistema está seguro o sistema não está seguro Quando o estado corrente está em P Q, o sistema não está seguro política de segurança –Cabe a uma política de segurança caracterizar os estados de Q mecanismo de segurança –Cabe a um mecanismo de segurança prevenir que o sistema entre num estado em P - Q

5 © Matt Bishop (C) 2005 Gustavo Motta5 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 –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

6 © Matt Bishop (C) 2005 Gustavo Motta6 Matriz de controle de acesso (5) Modelo MCA (1) Descrição objetos (entidades protegidas) sujeitos s1s2…sns1s2…sn o 1 … o m s 1 … s n Sujeitos S = { s 1,…,s n } Objetos O = { o 1,…,o m } S Direitos R = { r 1,…,r k } Entradas a[s i, o j ] R a[s i, o j ] = { r x, …, r y } indica que o sujeito s i tem direitos r x, …, r y sobre o objeto o j

7 © Matt Bishop (C) 2005 Gustavo Motta7 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 fgpq prworrwxow qarorrwxo 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

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

9 © Matt Bishop (C) 2005 Gustavo Motta9 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

10 © Matt Bishop (C) 2005 Gustavo Motta10 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)

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

12 © Matt Bishop (C) 2005 Gustavo Motta12 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 X 0 = (S 0, O 0, A 0 ) o estado inicial do sistema –O conjunto das transições de estado é representado pelas operações 1, 2,... –Estados sucessivos são representados por X 1, X 2,..., para os quais, a notação significa que a transição de estado i+1 leva o sistema do estado X i para X i + 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 Matriz de controle de acesso (11)

13 © Matt Bishop (C) 2005 Gustavo Motta13 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 c k, com parâmetros formais p k,1,..., p k,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 s4. deletar r de a[s, o] –2. criar um objeto o5. destruir o sujeito s –3. entrar com r em a[s, o]6. destruir o objeto o Usados para construir comandos mais elaborados Matriz de controle de acesso (12)

14 © Matt Bishop (C) 2005 Gustavo Motta14 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 Matriz de controle de acesso (13)

15 © Matt Bishop (C) 2005 Gustavo Motta15 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 Matriz de controle de acesso (14)

16 © Matt Bishop (C) 2005 Gustavo Motta16 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 Matriz de controle de acesso (15)

17 © Matt Bishop (C) 2005 Gustavo Motta17 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 Matriz de controle de acesso (16)

18 © Matt Bishop (C) 2005 Gustavo Motta18 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 Matriz de controle de acesso (17) Habilita processos pai e filho a trocarem sinais

19 © Matt Bishop (C) 2005 Gustavo Motta19 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 Matriz de controle de acesso (18)

20 © Matt Bishop (C) 2005 Gustavo Motta20 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 monocondicionais –Comando com uma condição são chamados de monocondicionais Matriz de controle de acesso (19)

21 © Matt Bishop (C) 2005 Gustavo Motta21 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 Matriz de controle de acesso (20)

22 © Matt Bishop (C) 2005 Gustavo Motta22 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 modificar –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 Matriz de controle de acesso (21)

23 © Matt Bishop (C) 2005 Gustavo Motta23 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 Matriz de controle de acesso (22)

24 © Matt Bishop (C) 2005 Gustavo Motta24 Princípio da atenuação de privilégio Um sujeito não pode conceder direitos que ele não possui para terceirosUm 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 Matriz de controle de acesso (22)

25 © Matt Bishop (C) 2005 Gustavo Motta25 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 (Outubro 1972). LAMPSON, B. Protection. ACM operating sys. reviews, v. 8, n. 1, p , MILLER, D. e BALDWIN, R. Access control by boolean expression evaluation. In: 15 TH ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE, Proceedings... p HARRISON, M.; RUZZZO, W. e ULLMAN, J. Protection in operating systems. Communications of the ACM, v. 19, n. 8, p , 1976.


Carregar ppt "©2002-2004 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."

Apresentações semelhantes


Anúncios Google