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

2 © Matt Bishop (C) 2005 Gustavo Motta2 Questões fundamentais Como se pode determinar que um sistema é seguro? –Qual é a definição de sistema seguro? algoritmo genéricoExiste um algoritmo genérico que permite determinar se um sistema é seguro? Resultados fundamentais (1)

3 © Matt Bishop (C) 2005 Gustavo Motta3 Definição de sistema seguro (1) Definição simples –É aquele que não permite a violação da política de segurança Definição adotada por (HARRISON et al., 1976) (1) –Política baseada na distribuição de direitos para sujeitos Seja R o conjunto de direitos genéricos (primitivos) do sistema vazamento Quando um direito genérico r é adicionado a um elemento da matriz de controle de acesso que ainda não contém r, diz-se que ocorreu o vazamento do direito r –Isto é, a política define o conjunto de estados autorizados A como sendo o conjunto de estados para o qual nenhum comando c(x 1,..., x n ) pode vazar o direito r Não há distinção entre vazamento de direitos e transferência autorizada de direitos Não há sujeitos confiáveis Resultados fundamentais (2)

4 © Matt Bishop (C) 2005 Gustavo Motta4 Definição de sistema seguro (2) Definição adotada por (HARRISON et al., 1976) (2) –Seja um sistema de computação num estado de proteção inicial S 0 –O sistema é seguro (safe) com respeito ao direito r se r jamais puder ser vazado –O sistema é seguro (safe) com respeito ao direito r se r jamais puder ser vazado. Caso o sistema possa vazar o direito r (entrar num estado não autorizado), diz-se que o sistema é inseguro (unsafe) com respeito ao direito r Distinção entre safe e secure –Safe refere-se a um modelo abstrato –Secure refere-se a uma implementação real do modelo –Um sistema secure corresponde a um modelo safe com respeito a todos os direitos, enquanto um modelo safe com respeito a todos os direitos não garante um sistema secure Resultados fundamentais (3)

5 © Matt Bishop (C) 2005 Gustavo Motta5 Safety question Sejam –O estado inicial X 0 = (S 0, O 0, A 0 ) –Um conjunto de comandos C –r A 0 [s, o], r R, s S 0, o O 0 Existe um algoritmo para determinar que um estado X n pode ser alcançado, onde – s, o tal que r A n [s, o] e r A 0 [s, o] ? Resultados fundamentais (4)

6 © Matt Bishop (C) 2005 Gustavo Motta6 mono-operacional Teorema: Existe um algoritmo que determina (decide) se um dado sistema de proteção mono-operacional com estado inicial S 0 é seguro (safe) com respeito a um direito genérico r (HARRISON et al., 1976) Esquema da prova (1): –Considerar a seqüência mínima de comandos c 1,..., c k para vazar r –Pode-se omitir os comandos delete e destroy: não podem vazar ou serem detectados, pois não se pode testar a ausência de direitos na MCA –Pode-se fundir todos comandos create em apenas um: nenhum comando mono- operacional pode, isoladamente, criar um objeto/sujeito e entrar com direitos, logo múltiplas criações podem ser removidas, deixando-se a criação de um único sujeito Não há teste para ausência de direitos Testes em A[s 1, o 1 ] e em A[s 2, o 2 ] têm o mesmo resultado que os mesmos testes em A[s 1, o 1 ] e em A[s 1, o 2 ] = A[s 1, o 2 ] A[s 2, o 2 ] Resultados fundamentais (5)

7 © Matt Bishop (C) 2005 Gustavo Motta7 Esquema da prova (2): –Caso n direitos possam ser vazados, então n(|S 0 | + 1)(|O 0 | + 1) comandos são necessários para entrar com cada direito em cada elemento da matriz –No pior caso, um novo sujeito é criado, então, lembrando que c 1,..., c k é a seqüência mínima de comandos para vazar r, tem-se que k n(|S 0 | + 1)(|O 0 | + 1) + 1 k n(|S 0 | + 1)(|O 0 | + 1) + 1 –Isto é, no pior caso, o tamanho da computação que pode levar a um vazamento é limitada a k Pela enumeração de todos os estados possíveis, pode-se determinar se um sistema de proteção mono-operacional é safe –Tentar todas as seqüências de comandos enter, opcionalmente começando pelo comando create subject, com tamanhos limitados a k Resultados fundamentais (6)

8 © Matt Bishop (C) 2005 Gustavo Motta8 Infelizmente, o resultado anterior não se generaliza para todos os sistemas de proteção não para sistemas de proteção em geralOu seja, a resposta à Safety Question é não, para sistemas de proteção em geral Não é decidível Teorema: Não é decidível se um dado estado de um dado sistema de proteção é seguro (safe) para um dado direito genérico (HARRISON et al., 1976) Esquema da prova (1) –Prova por contradição Mostra-se que uma máquina de Turing arbitrária pode ser reduzida à Safety Question, com a máquina de Turing entrando num estado final correspondente ao vazamento de um dado direito genérico Então, caso a Safety Question seja decidível, pode-se determinar quando a máquina de Turing pára, mostrando que o problema da parada é decidível, o que não é verdadeiro, logo, conclui-se que a Safety Question é não decidível Resultados fundamentais (7)

9 © Matt Bishop (C) 2005 Gustavo Motta9 Esquema da prova (2) –Revisão de máquinas de Turing Fita infinita numa direção Estados K, símbolos M e um valor distinto para branco b Função de transição (k, m) = (k, m, L) significando que no estado k, o símbolo m numa posição da fita é alterada para o símbolo m, com a cabeça da máquina movendo- se uma posição à esquerda (direita se R). Depois, a máquina entra no estado k A máquina de Turing pára quando entra no estado q f Resultados fundamentais (8) A BC … cabeça D O estado corrente é k O símbolo corrente é C fita

10 © Matt Bishop (C) 2005 Gustavo Motta10 Esquema da prova (2) –Mapeamento de uma máquinas de Turing para um sistema de proteção Símbolos e estados direitos, porém diferenciados Células da fita sujeitos Célula s i contém A s i possui o direito A sobre si mesmo Célula s k (mais a direita) s k possui o direito end sobre si mesmo Máquina no estado p e cabeça na célula s i s i possui o direito p sobre si mesmo Direito diferenciado own »s i possui o direito own sobre s i+1, para 1 i < k Resultados fundamentais (9)

11 © Matt Bishop (C) 2005 Gustavo Motta11 Esquema da prova (3) –Mapeamento de uma máquinas de Turing para um sistema de proteção Resultados fundamentais (10) A BCD… cabeça s1s1 s2s2 s3s3 s4s4 s4s4 s3s3 s2s2 s1s1 A B C k D end own O estado corrente é k 1 234

12 © Matt Bishop (C) 2005 Gustavo Motta12 Esquema da prova (4) –Mapeamento de uma máquinas de Turing para um sistema de proteção Resultados fundamentais (11) A BXD… cabeça s1s1 s2s2 s3s3 s4s4 s4s4 s3s3 s2s2 s1s1 A B X D k 1 end own Após (k, C) = (k 1, X, R), onde k estado corrente e k 1 é o próximo estado 1 234

13 © Matt Bishop (C) 2005 Gustavo Motta13 Esquema da prova (4) –Mapeamento de uma máquinas de Turing para um sistema de proteção (k, C) = (k 1, X, R), numa célula diferente da mais à direita, é mapeada pelo comando command c k, C (s 3, s 4 ) if own in a[s 3, s 4 ] and k in a[s 3, s 3 ] and C in a[s 3, s 3 ] then delete k from a[s 3, s 3 ]; delete C from a[s 3, s 3 ]; enter X into a[s 3, s 3 ]; enter k 1 into a[s 4, s 4 ]; end Esquema da prova (5) –Mapeamento de uma máquinas de Turing para um sistema de proteção (k, C) = (k 1, X, R), numa célula diferente da mais à direita, é mapeada pelo comando command c k, C (s i, s i+1 ) if own in a[s i, s i+1 ] and k in a[s i, s i ] and C in a[s i, s i ] then delete k from a[s i, s i ]; delete C from a[s i, s i ]; enter X into a[s i, s i ]; enter k 1 into a[s i+1, s i+1 ]; end Resultados fundamentais (12)

14 © Matt Bishop (C) 2005 Gustavo Motta14 Esquema da prova (6) –Mapeamento de uma máquinas de Turing para um sistema de proteção Resultados fundamentais (13) A BCD… cabeça s1s1 s2s2 s3s3 s4s4 s4s4 s3s3 s2s2 s1s1 A B C k D end own O estado corrente é k 1 234

15 © Matt Bishop (C) 2005 Gustavo Motta15 Esquema da prova (5) –Mapeamento de uma máquinas de Turing para um sistema de proteção Resultados fundamentais (14) A BXD… cabeça s1s1 s2s2 s3s3 s4s4 s4s4 s3s3 s2s2 s1s1 A B k 1 X D end own Após (k, C) = (k 1, X, L), onde k estado corrente e k 1 é o próximo estado 1 234

16 © Matt Bishop (C) 2005 Gustavo Motta16 Esquema da prova (4) –Mapeamento de uma máquinas de Turing para um sistema de proteção (k, C) = (k 1, X, L), numa célula, é mapeada pelo comando command c k, C (s 3, s 2 ) if own in a[s 2, s 3 ] and k in a[s 3, s 3 ] and C in a[s 3, s 3 ] then delete k from a[s 3, s 3 ]; delete C from a[s 3, s 3 ]; enter X into a[s 3, s 3 ]; enter k 1 into a[s 2, s 2 ]; end Esquema da prova (6) –Mapeamento de uma máquinas de Turing para um sistema de proteção (k, C) = (k 1, X, L), numa célula, é mapeada pelo comando command c k, C (s i, s i 1 ) if own in a[s i 1, s i ] and k in a[s i, s i ] and C in a[s i, s i ] then delete k from a[s i, s i ]; delete C from a[s i, s i ]; enter X into a[s i, s i ]; enter k 1 into a[s i 1, s i 1 ]; end Resultados fundamentais (15)

17 © Matt Bishop (C) 2005 Gustavo Motta17 Esquema da prova (7) –Mapeamento de uma máquinas de Turing para um sistema de proteção Resultados fundamentais (16) A BXD… cabeça s1s1 s2s2 s3s3 s4s4 s4s4 s3s3 s2s2 s1s1 A B X D k 1 end own O estado corrente é k

18 © Matt Bishop (C) 2005 Gustavo Motta18 Esquema da prova (8) –Mapeamento de uma máquinas de Turing para um sistema de proteção Resultados fundamentais (17) A BXY cabeça s1s1 s2s2 s3s3 s4s4 s4s4 s3s3 s2s2 s1s1 A B X Y own Após (k 1, D) = (k 2, Y, R), onde k 1 é o estado corrente e k 2 próximo estado … 5 s5s5 own b k 2 end

19 © Matt Bishop Esquema da prova (9) –Mapeamento de uma máquinas de Turing para um sistema de proteção (k 1, D) = (k 2, Y, R), na célula mais à direita, é mapeada pelo comando command crightmost k,C (s 4, s 5 ) if end in A[s 4, s 4 ] and k 1 in A[s 4, s 4 ] and D in A[s 4, s 4 ] then delete end from A[s 4, s 4 ]; create subject s 5 ; enter own into A[s 4, s 5 ]; enter end into A[s 5, s 5 ]; enter b into A[s 5, s 5 ]; delete k 1 from A[s 4, s 4 ]; delete D from A[s 4, s 4 ]; enter Y into A[s 4, s 4 ]; enter k 2 into A[s 5, s 5 ]; end Resultados fundamentais (18) Esquema da prova (9) –Mapeamento de uma máquinas de Turing para um sistema de proteção (k 1, D) = (k 2, Y, R), na célula mais à direita, é mapeada pelo comando command crightmost k,C (s i, s i+1 ) if end in A[s i, s i ] and k 1 in A[s i, s i ] and D in A[s i, s i ] then delete end from A[s i, s i ]; create subject s i+1 ; enter own into A[s i, s i+1 ]; enter end into A[s i+1, s i+1 ]; enter b into A[s i+1, s i+1 ]; delete k 1 from A[s i, s i ]; delete D from A[s i, s i ]; enter Y into A[s i, s i ]; enter k 2 into A[s i+1, s i+1 ]; end

20 © Matt Bishop (C) 2005 Gustavo Motta20 Resultados fundamentais (19) Esquema da prova (10) –Restante da prova O sistema de proteção simula exatamente uma máquina de Turing »Exatamente 1 direito end na MCA »1 dos direitos das células corresponde ao estado da máquina de Turing »Logo, no máximo, um comando é aplicável por vez Caso a máquina de Turing entre no estado q f, então houve vazamento de direitos Caso a Safety Question seja decidível, então representa-se uma máquina de Turing como visto e determina-se se q f vaza »O que implica que o problema da parada é decidível – falsidade Conclusão: a Safety Question é não decidível

21 © Matt Bishop (C) 2005 Gustavo Motta21 Outros resultados recursivamente enumerávelO conjunto dos sistemas proteção unsafe é recursivamente enumerável –Pode-se gerar a lista de todos os sistemas unsafe –Pode ser reconhecido por uma máquina de Turing Excluíndo-se as primitivas create, então a safety question pode ser completada em P-SPACE Excluíndo-se as apenas as primitivas delete e destroy, a safety question é não decidível –Os sistemas são monotônicos A safety question para sistemas monotônicos e bicondicionais não é decidível A safety question para sistemas monotônicos e monocodicionais é decidível A safety question para sistemas monocodicionais com create, enter e delete, mas sem destroy) é decidível Resultados fundamentais (20)

22 © Matt Bishop (C) 2005 Gustavo Motta22 Conclusões Safety não é decidível em modelos de proteção genéricos, mas pode-se tornar decidível se o sistema de proteção for restringido de um modo particular A atenção volta-se à concepção de modelos de controle de acesso para os quais a safety question é decidível, em vez de se desenvolver uma teoria geral de sistemas seguros takegrant –Restrição no uso dos direitos take e grant delegação –Restrição da delegação Questões Dado um sistema particular, com regras de transformação específicas, pode-se mostrar que a safety question é decidível? Quais são as restrições mais fracas num sistema de proteção que tornam a safety question decidível nesse sistema? Resultados fundamentais (21)

23 © Matt Bishop (C) 2005 Gustavo Motta23 Modelo de proteção take-grant (1) Sistema específico, com um conjunto de regras para transição de estados –Take –Grant –Create –Remove Safety é decidível em tempo linearmente proporcional ao tamanho do sistema –O(|V| + |E|) Objetivo – Encontrar as condições, sob as quais, direitos podem ser transferidos de uma entidade para outra no sistema Resultados fundamentais (22)

24 © Matt Bishop (C) 2005 Gustavo Motta24 Modelo de proteção take-grant (2) O sistema é representado por um grafo direcionado –Sujeito: –Objeto: –O segmento rotulado indica os direitos um vértice de origem tem sobre um vértice de destino Regra take – α β Resultados fundamentais (23) Sujeito ou objeto: t α βtβ x zy x zy x takes (α para y ) de z

25 © Matt Bishop (C) 2005 Gustavo Motta25 Modelo de proteção take-grant (3) Regra grant – α β Regra create – α R Regra remove – α β Resultados fundamentais (24) g α βgβ zyzy z grants (α para y ) para x xx α xy x creates (α para o novo vértice) y β -αβ -α xy β xy x removes (α to) y

26 © Matt Bishop (C) 2005 Gustavo Motta26 Modelo de proteção take-grant (4) Compartilhamento de direitos –Dado G 0, um vértice x pode obter direitos α sobre y? Can_share Can_share(α, x, y, G 0 ) é verdade se e somente se »G 0 * G n usando apenas as 4 regras, e »Existe um segmento α de x para y em G n –tg-path: é a seqüência de vértices v 0,…,v n não vazia, com segmentos t ou g entre quaisquer pares de vértices v i, v i+1 Vértices são tg-connected se existe um tg-path entre eles –Teorema: quaisquer dois sujeitos com tg-path de tamanho 1 podem compartilhar direitos Resultados fundamentais (25)

27 © Matt Bishop (C) 2005 Gustavo Motta27 Modelo de proteção take-grant (5) Compartilhamento de direitos Can_share –Teorema: quaisquer dois sujeitos com tg-path de tamanho 1 podem compartilhar direitos - Can_share(α, x, y, G 0 ) –Esquema da prova: 1. Regra take 2. Regra grant 3. Lema Lema 3.2 Resultados fundamentais (26) t β α g t g xyz

28 © Matt Bishop (C) 2005 Gustavo Motta28 Modelo de proteção take-grant (5) Compartilhamento de direitos Can_share –Teorema: quaisquer dois sujeitos com tg-path de tamanho 1 podem compartilhar direitos - Can_share(α, x, y, G 0 ) –Esquema da prova: Lema 3.1 Lema 3.2 – resultado similar Resultados fundamentais (27) x y β α t z * α t g tg α

29 © Matt Bishop (C) 2005 Gustavo Motta29 Modelo de proteção take-grant (5) IlhaIlha: máximo subgrafo composto apenas com sujeitos tg-connected –Quaisquer direitos possuídos por um vértice qualquer numa ilha podem ser compartilhados com qualquer outro vértice da ilha Prova: indução sobre o teorema anterior PontePonte: é um tg-path entre os pontos finais v 0 e v n, ambos sujeitos, com segmentos da seguinte forma –t * –t * g t * Resultados fundamentais (28)

30 © Matt Bishop (C) 2005 Gustavo Motta30 Modelo de proteção take-grant (6) PontePonte: é um tg-path entre os pontos finais v 0 e v n, ambos sujeitos, com segmentos da seguinte forma –Exemplo Resultados fundamentais (29) gtt v0v0 vnvn 1. Pelo lemma Por grant 3. Por take α α α α gtt v0v0 vnvn gtt v0v0 vnvn ?

31 © Matt Bishop (C) 2005 Gustavo Motta31 Modelo de proteção take-grant (6) Subject_can_shareTeorema: o predicado Subject_can_share(α, x, y, G 0 ) é verdadeiro, se e somente se, x e y são sujeitos e existe um segmento α de x para y em G 0 OU se: s-y – um sujeito s G 0 com um segmento s- to- y rotulado com α, e x – ilhas I 1, …, I n tal que x I 1, s I n, e existe uma ponte de I j para I j+1 (1 j n) Resultados fundamentais (30) x s α α α α y I1I1I1I1 I2I2I2I2 InInInIn

32 © Matt Bishop (C) 2005 Gustavo Motta32 Modelo de proteção take-grant (7) Generalização para incluir objetos – definições auxiliares initially spans –x initially spans para y se x é um sujeito e existe um tg-path com uma palavra associada em {t *g } { } entre eles xy x pode conceder um direito para y terminally spans –x terminally spans para y se x é um sujeito e existe um tg-path com uma palavra associada em {t *} { } entre eles xy x pode pegar um direito de y Resultados fundamentais (31)

33 © Matt Bishop (C) 2005 Gustavo Motta33 Modelo de proteção take-grant (8) Can_shareTeorema: o predicado Can_share(α, x, y, G 0 ) é verdadeiro, se e somente se, existe um segmento α de x para y em G 0 OU se: s-y – um vértice s G 0 com um segmento s- to- y rotulado com α initially spans – um sujeito x, tal que, x=x ou x initially spans para x, terminally spans – um sujeito s, tal que, s=s ou s terminally spans para s, e x – ilhas I 1, …, I n tal que x I 1, s I n, e existe uma ponte de I j para I j+1 (1 j n) Resultados fundamentais (32) x s α α α α y I1I1I1I1 I2I2I2I2 InInInIn x x pode conceder um direito a x s pode tomar um direito de s s

34 © Matt Bishop (C) 2005 Gustavo Motta34 Modelo de proteção take-grant (9) Can_shareCorolário: existe um algoritmo com complexidade O(|V| + |E|) que testa o predicado Can_share, no qual, V é o conjunto de vértices e E é o conjunto de segmentos em G 0 –A Safety Question é decidível em tempo linear O compartilhamento de direitos requer a cooperação de todos sujeitos envolvidos –Roubo e Conspiração Resultados fundamentais (33)

35 © Matt Bishop (C) 2005 Gustavo Motta35 Questões chave Dado que se pode responder à safety question em sistemas específicos, por que não se pode respondê-la para sistemas genéricos? Quais características distinguem um modelo no qual a safety question é decidível daqueles em que essa questão não é decidível? Avanços Modelo de proteção esquemático (SPM) Modelo de proteção esquemático estendido (ESPM) Modelo de matriz de acesso tipado (TAM) Resultados fundamentais (34)

36 © Matt Bishop (C) 2005 Gustavo Motta36 Modelo de proteção esquemático (SPM) tipo de proteçãoBaseia-se na noção de um tipo de proteção –Rótulo que determina como os direitos de controle afetam uma entidade Direitos são particionados nos conjuntos –Direitos inertes (DI) Não alteram o estado de proteção do sistema »Por exemplo, ler um arquivo não altera quais entidades podem acessar esse documento, logo o direito ler é um DI –Direitos de controle (DC) Altera o estado de proteção do sistema »A aplicação da regra take no modelo take-grant altera o estado de proteção do sistema, logo o direito take é um direito DC Resultados fundamentais (35)

37 © Matt Bishop (C) 2005 Gustavo Motta37 Modelo de proteção esquemático estendido (ESPM) O SPM assume implicitamente a noção de um único ancestral ESPM permite a existência de mais de um ancestral –Problema que surge em sistemas distribuídos Exemplo –Ana e João devem cooperar para realizar uma certa tarefa, mas um não confia no outro Solução baseada na criação de um proxy em conjunto »Cada um concede ao proxy apenas aqules direitos necessários à realização da tarefa »É proibido às partes copiar direitos do proxy Resultados fundamentais (36)

38 © Matt Bishop (C) 2005 Gustavo Motta38 Modelo de matriz de acesso tipado (TAM) As propriedades de safety dos modelos SPM e ESPM são baseadas na noção de tipos –O modelo TAM introduz a noção de tipos explicitamente e possui propriedades safety similares às dos modelos SPM e ESPM O tipo de uma entidade é fixado quando ela é criada (ou no estado inicial) e ele permanece fixo ao longo da vida do modelo O estado de proteção de um sistema é (S, O,, A), onde S é o conjunto de sujeitos, O é o conjunto de objetos, A é a MCA e : O T é uma função de tipo, que especifica o tipo de cada objeto Resultados fundamentais (37)

39 © Matt Bishop (C) 2005 Gustavo Motta39 Conclusão A safety question é um problema rico que trouxe o desenvolvimento de vários modelos e técnicas de análise –Tais modelos oferecem insights para o limiar entre decidibilidade e não decidibilidade – tipos são importantes para análise da safety question –Do ponto de vista da security, ajuda no entendimento de quando a análise da segurança é tratável e quando não é Saber qual o conjunto de características suficientes e necessárias para tornar o safety question um problema decidível ainda é uma questão em aberto Resultados fundamentais (38)

40 © Matt Bishop (C) 2005 Gustavo Motta40 Referências (1) 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