400 likes | 498 Views
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
E N D
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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, si1) ifownina[si1, si] andkina[si, si] and C ina[si, si] then deletekfroma[si, si]; delete C froma[si, si]; enter X intoa[si, si]; enterk1intoa[si1, si1]; 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
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
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
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
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
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
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
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
α 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
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
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
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
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
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
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
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 sG0 com um segmento s-to-y rotulado com α, e • ilhas I1, …, In tal que xI1, sIn, e existe uma ponte de Ij para Ij+1 (1 jn) (C) 2005 Gustavo Motta
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
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 sG0 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 jn) 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
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
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
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
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
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
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
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