1 / 40

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

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. Resultados fundamentais (1). Questões fundamentais

hal
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2Polí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. Resultados fundamentais (1) • Questões fundamentais • Como se pode determinar que um sistema é seguro? • Qual é a definição de “sistema seguro”? • Existe um algoritmo genérico que permite determinar se um sistema é seguro? (C) 2005 Gustavo Motta

  3. Resultados fundamentais (2) • 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 • 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(x1, ..., xn) 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 (C) 2005 Gustavo Motta

  4. Resultados fundamentais (3) • 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 S0 • 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 (C) 2005 Gustavo Motta

  5. Resultados fundamentais (4) • Safety question • Sejam • O estado inicial X0 = (S0, O0, A0) • Um conjunto de comandos C • r  A0[s, o], r R, s S0, o O0 • Existe um algoritmo para determinar que um estado Xn pode ser alcançado, onde •  s, o tal que r  An[s, o] e r  A0[s, o] ? (C) 2005 Gustavo Motta

  6. Resultados fundamentais (5) • Teorema: Existe um algoritmo que determina (decide) se um dado sistema de proteção mono-operacional com estado inicial S0 é 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 c1, ..., ck 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[s1, o1] e em A[s2, o2] têm o mesmo resultado que os mesmos testes em A[s1, o1] e em A[s1, o2] = A[s1, o2] A[s2, o2] (C) 2005 Gustavo Motta

  7. Resultados fundamentais (6) • Esquema da prova (2): • Caso n direitos possam ser vazados, então n(|S0| + 1)(|O0| + 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 c1, ..., ck é a seqüência mínima de comandos para vazar r, tem-se que • k n(|S0| + 1)(|O0| + 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 (C) 2005 Gustavo Motta

  8. Resultados fundamentais (7) • Infelizmente, o resultado anterior não se generaliza para todos os sistemas de proteção • Ou seja, a resposta à Safety Questioné não,para sistemas de proteção em geral • 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 (C) 2005 Gustavo Motta

  9. 1 2 3 4 A fita B C D … O estado corrente é k cabeça O símbolo corrente é C Resultados fundamentais (8) • 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 qf (C) 2005 Gustavo Motta

  10. Resultados fundamentais (9) • 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 si contém A  si possui o direito A sobre si mesmo • Célula sk (mais a direita)  sk possui o direito end sobre si mesmo • Máquina no estado p e cabeça na célula si  si possui o direito p sobre si mesmo • Direito diferenciado own • si possui o direito own sobre si+1, para 1  i < k (C) 2005 Gustavo Motta

  11. 1 2 3 4 Resultados fundamentais (10) • Esquema da prova (3) • Mapeamento de uma máquinas de Turing para um sistema de proteção s1 s2 s3 s4 A B C D … s1 A own cabeça s2 B own s3 C k own O estado corrente é k s4 D end (C) 2005 Gustavo Motta

  12. cabeça 1 2 3 4 Resultados fundamentais (11) • Esquema da prova (4) • Mapeamento de uma máquinas de Turing para um sistema de proteção s1 s2 s3 s4 A B X D … s1 A own s2 B own X s3 own Após (k, C) = (k1, X, R), onde k estado corrente e k1 é o próximo estado s4 D k1end (C) 2005 Gustavo Motta

  13. Resultados fundamentais (12) • Esquema da prova (5) • Mapeamento de uma máquinas de Turing para um sistema de proteção (k, C) = (k1, X, R), numa célula diferente da mais à direita, é mapeada pelo comando command ck, C(si, si+1) ifownina[si, si+1] andkina[si, si] and C ina[si, si] then deletekfroma[si, si]; delete C froma[si, si]; enter X intoa[si, si]; enterk1intoa[si+1, si+1]; end • Esquema da prova (4) • Mapeamento de uma máquinas de Turing para um sistema de proteção (k, C) = (k1, X, R), numa célula diferente da mais à direita, é mapeada pelo comando command ck, C(s3, s4) ifownina[s3, s4] andkina[s3, s3] and C ina[s3, s3] then deletekfroma[s3, s3]; delete C froma[s3, s3]; enter X intoa[s3, s3]; enterk1intoa[s4, s4]; end (C) 2005 Gustavo Motta

  14. 1 2 3 4 Resultados fundamentais (13) • Esquema da prova (6) • Mapeamento de uma máquinas de Turing para um sistema de proteção s1 s2 s3 s4 A B C D … s1 A own cabeça s2 B own s3 C k own O estado corrente é k s4 D end (C) 2005 Gustavo Motta

  15. cabeça 1 2 3 4 Resultados fundamentais (14) • Esquema da prova (5) • Mapeamento de uma máquinas de Turing para um sistema de proteção s1 s2 s3 s4 A B X D … s1 A own s2 B k1 own X s3 own Após (k, C) = (k1, X, L), onde k estado corrente e k1 é o próximo estado s4 D end (C) 2005 Gustavo Motta

  16. Resultados fundamentais (15) • Esquema da prova (6) • Mapeamento de uma máquinas de Turing para um sistema de proteção (k, C) = (k1, X, L), numa célula, é mapeada pelo comando command ck, C(si, si1) ifownina[si1, si] andkina[si, si] and C ina[si, si] then deletekfroma[si, si]; delete C froma[si, si]; enter X intoa[si, si]; enterk1intoa[si1, si1]; end • Esquema da prova (4) • Mapeamento de uma máquinas de Turing para um sistema de proteção (k, C) = (k1, X, L), numa célula, é mapeada pelo comando command ck, C(s3, s2) ifownina[s2, s3] andkina[s3, s3] and C ina[s3, s3] then deletekfroma[s3, s3]; delete C froma[s3, s3]; enter X intoa[s3, s3]; enterk1intoa[s2, s2]; end (C) 2005 Gustavo Motta

  17. cabeça 1 2 3 4 Resultados fundamentais (16) • Esquema da prova (7) • Mapeamento de uma máquinas de Turing para um sistema de proteção s1 s2 s3 s4 A B X D … s1 A own s2 B own X s3 own O estado corrente é k1 s4 D k1end (C) 2005 Gustavo Motta

  18. cabeça Resultados fundamentais (17) • Esquema da prova (8) • Mapeamento de uma máquinas de Turing para um sistema de proteção 1 5 2 3 4 s1 s2 s3 s4 s5 A B X Y … s1 A own s2 B own X s3 own Após (k1, D) = (k2, Y, R), onde k1 é o estado corrente e k2 próximo estado s4 own Y b k2 end (C) 2005 Gustavo Motta

  19. Resultados fundamentais (18) • Esquema da prova (9) • Mapeamento de uma máquinas de Turing para um sistema de proteção (k1, D) = (k2, Y, R), na célula mais à direita, é mapeada pelo comando command crightmostk,C(s4, s5) ifendinA[s4, s4] andk1inA[s4, s4] and D inA[s4, s4] then deleteendfromA[s4, s4]; create subjects5; enterown into A[s4, s5]; enterendintoA[s5, s5]; • enterb intoA[s5, s5]; deletek1fromA[s4, s4]; delete D fromA[s4, s4]; enter Y intoA[s4, s4]; enterk2intoA[s5, s5]; end • Esquema da prova (9) • Mapeamento de uma máquinas de Turing para um sistema de proteção (k1, D) = (k2, Y, R), na célula mais à direita, é mapeada pelo comando command crightmostk,C(si, si+1) ifendinA[si, si] andk1inA[si, si] and D inA[si, si] then deleteendfromA[si, si]; create subjectsi+1; enterown into A[si, si+1]; enterendintoA[si+1, si+1]; • enterbintoA[si+1, si+1]; deletek1fromA[si, si]; delete D fromA[si, si]; enter Y intoA[si, si]; enterk2intoA[si+1, si+1]; end

  20. 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 qf, 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 qf vaza • O que implica que o problema da parada é decidível – falsidade • Conclusão: a Safety Question é não decidível (C) 2005 Gustavo Motta

  21. Resultados fundamentais (20) • Outros resultados • O 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 (C) 2005 Gustavo Motta

  22. Resultados fundamentais (21) • 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 • Restrição no uso dos direitos take e grant • 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? (C) 2005 Gustavo Motta

  23. Resultados fundamentais (22) • 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 (C) 2005 Gustavo Motta

  24. α t β t β ├ z y z y x x Resultados fundamentais (23) • 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 – αβ Sujeito ou objeto: x takes (α para y) de z (C) 2005 Gustavo Motta

  25. Resultados fundamentais (24) • Modelo de proteção take-grant (3) • Regra grant – αβ • Regra create – αR • Regra remove – αβ α g β g β ├ z y z y x x z grants (α para y) para x α ├ x y x creates (α para o novo vértice) y β β-α ├ x y x y (C) 2005 Gustavo Motta x removes (α to) y

  26. Resultados fundamentais (25) • Modelo de proteção take-grant (4) • Compartilhamento de direitos • Dado G0, um vértice x pode obter direitos α sobre y? • Can_share(α, x, y, G0) é verdade se e somente se • G0├* Gn usando apenas as 4 regras, e • Existe um segmento α de x para y em Gn • tg-path: é a seqüência de vértices v0,…,vn não vazia, com segmentos t ou g entre quaisquer pares de vértices vi, vi+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 (C) 2005 Gustavo Motta

  27. Resultados fundamentais (26) • Modelo de proteção take-grant (5) • Compartilhamento de direitos • Teorema: quaisquer dois sujeitos com tg-path de tamanho 1 podem compartilhar direitos - Can_share(α, x, y, G0) • Esquema da prova: • 1. Regra take • 2. Regra grant • 3. Lema 3.1 • 4. Lema 3.2 x z y β α t β α g β α t β α g (C) 2005 Gustavo Motta

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

  29. Resultados fundamentais (28) • Modelo de proteção take-grant (5) • Ilha: 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 • Ponte: é um tg-path entre os pontos finais v0 e vn, ambos sujeitos, com segmentos da seguinte forma • t→* • t←* • t→*g→t←* • t→*g←t←* (C) 2005 Gustavo Motta

  30. t g t v0 vn α α α 2. Por grant 3. Por take t g t v0 vn α t g t ? v0 vn Resultados fundamentais (29) • Modelo de proteção take-grant (6) • Ponte: é um tg-path entre os pontos finais v0 e vn, ambos sujeitos, com segmentos da seguinte forma • Exemplo 1. Pelo lemma 3.1 (C) 2005 Gustavo Motta

  31. x s α α I2 I1 α y In α Resultados fundamentais (30) • Modelo de proteção take-grant (6) • Teorema: o predicado Subject_can_share(α, x, y, G0) é verdadeiro, se e somente se, x e y são sujeitos e existe um segmento α de x para y em G0 OU se: •  um sujeito sG0 com um segmento s-to-y rotulado com α, e •  ilhas I1, …, In tal que xI1, sIn, e existe uma ponte de Ij para Ij+1 (1 jn) (C) 2005 Gustavo Motta

  32. Resultados fundamentais (31) • Modelo de proteção take-grant (7) • Generalização para incluir objetos – definições auxiliares • xinitially spans para y se x é um sujeito e existe um tg-path com uma palavra associada em {t→*g→}  {} entre eles • x pode conceder um direito para y • xterminally spans para y se x é um sujeito e existe um tg-path com uma palavra associada em {t→*}  {} entre eles • x pode pegar um direito de y (C) 2005 Gustavo Motta

  33. Resultados fundamentais (32) • Modelo de proteção take-grant (8) • Teorema: o predicado Can_share(α, x, y, G0) é verdadeiro, se e somente se, existe um segmento α de x para y em G0 OU se: •  um vértice sG0 com um segmento s-to-y rotulado com α •  um sujeito x’, tal que, x’=x ou x’initially spans para x, •  um sujeito s’ , tal que, s’=s ou s’terminally spans para s, e •  ilhas I1, …, In tal que x’I1, s’In, e existe uma ponte de Ij para Ij+1 (1 jn) s x’ s’ α In α I2 I1 α y x α s’ pode tomar um direito de s (C) 2005 Gustavo Motta x’ pode conceder um direito a x

  34. Resultados fundamentais (33) • Modelo de proteção take-grant (9) • Corolá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 G0 • A Safety Question é decidível em tempo linear • O compartilhamento de direitos requer a cooperação de todos sujeitos envolvidos • Roubo e Conspiração (C) 2005 Gustavo Motta

  35. Resultados fundamentais (34) • 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) (C) 2005 Gustavo Motta

  36. Resultados fundamentais (35) • Modelo de proteção esquemático (SPM) • Baseia-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 (C) 2005 Gustavo Motta

  37. Resultados fundamentais (36) • 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 (C) 2005 Gustavo Motta

  38. Resultados fundamentais (37) • 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 (C) 2005 Gustavo Motta

  39. Resultados fundamentais (38) • 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 (C) 2005 Gustavo Motta

  40. Referências (1) • 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

More Related