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

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

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

Apresentações semelhantes


Apresentação em tema: "2 Políticas, Modelos e Mecanismos de Segurança"— Transcrição da apresentação:

1 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

2 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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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 , 1974. MILLER, D. e BALDWIN, R. Access control by boolean expression evaluation. In: 15TH 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. (C) 2005 Gustavo Motta


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

Apresentações semelhantes


Anúncios Google