1. 2. 3. 4. Introdução Controle de acesso discricionário Controle de acesso mandatário Controle de acesso baseado em papéis Segurança de Banco de Dados - Prof. Msc Rodrigo Santos Copyleft Administração de usuários, grupos, papéis níveis de segurança Negado Permitido Pedido de Acesso Autenticação Política de Segurança Subsistema de Autorização Requer modificação no pedido Regras de acesso Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 2 Os mecanismos de controle de acesso são usados para implementar as políticas de autorização. Define quem pode fazer o que em um sistema Se refere a sistemas grandes (S.O, bancos de dados, prontuários de pacientes emdeum Matriz Três modelos de Acesso hospital) controle de acesso Sujeitos Monitor de Referência Segurança de Banco de Dados - Prof. Msc Rodrigo Santos Objetos 3 Discretionary Access Control (DAC) Os direitos de acesso a cada informação são manipulados livremente pelo responsável da informação, à sua discrição = sobre controle do usuário – muito comum em sistemas operacionais Não especifica o que são direitos. Os mais comuns (em S.O.) são : direito de ler o dado/ arquivo (afeta o requisito de confidencialidade) direito de escrever o dado/ arquivo (afeta os requisitos de integridade e disponibilidade). Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 4 Pedido de Acesso O pedido satisfaz as regras de autorização Regras de autorização SIM NÃO Acesso Permitido Acesso Negado Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 5 DAC em BD: baseado em conceder e revogar privilégios (linguagem, ex: SQL) DBA concede aos usuários privilégios Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 6 Em SQL: grant <lista de privilégios> on <nome da tabela ou visao> to <lista de usuário/conta> Ex: grant select on agencia to U1, U2, U3 revoke <lista de privilégios> on <nome da tabela ou visao> from <lista de usuário/conta> [restrict | cascade] Ex: revoke select on agencia to U1, U2, U3 cascade DAC: Limitações - vazamentos de informações!!! Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 7 Daniella não confia confia Faz uma copia do arquivo A de Daniella Confiança não é transitiva! Fabio Segurança de Banco de Dados - Prof. Msc Rodrigo Santos Rodrigo Concede o acesso de leitura ao arquivo A para Fabio 8 Cavalo de Tróia Programas que fazem algo útil e roubam informação, por baixo do pano Programas baixados da rede (Windows) Mesmo sendo confiável, Maria pode ser a fonte de um vazamento (involuntariamente) Maria é dona do arquivo CUSTO, ao qual não deu direito de leitura para ninguém. Maria roda o programa MUSICA+ ROUBA que toca musicas MP3 e, baixo do pano, copia CUSTO para a área de João (ou manda por e-mail) Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 9 Mandatory Access Control (MAC) Administração Centralizada Impõem regras incontornáveis que se acrescentam às regras discricionárias Usuários e objetos (recursos do sistema) são etiquetados Um usuário será autorizado a manipular uma informação do sistema se o direito de leitura é posicionado sob a informação para ele (controle discricionário) e se ele está habilitado a manipulá-la. Usuários Níveis de Habilitação Comparação Objetos Classificação 10 Pedido de Acesso Habilitação dos usuários O pedido satisfaz as regras de autorização Classes dos objetos SIM NÃO Acesso Permitido Acesso Negado Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 11 A regra básica do MAC é: Não leia para cima Não escreva para baixo Comparação Níveis de Habilitação Ultra-secreto Secreto Limitado Público Classificação Ultra-secreto Secreto Limitado Público Uma pessoa que se logou com nível de secreto não pode ler dados de alto secreto. Da mesma forma, se uma pessoa se logou com nível de secreto não pode escrever um arquivo com nível limitado Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 12 Controle mandatário elimina o problema de Cavalos de Tróia: Maria se loga com nível secreto. Ela pode acessar o dado CUSTO que também tem nível secreto. Ela roda o programa MUSICA+ ROUBA, que tenta copiar CUSTO para a área de João. João tem nível de segurança limitado, e portanto a regra “não escreva para baixo” se aplica: alguém com nível secreto não pode escrever para alguém com nível limitado. Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 13 Controle de acesso obrigatório tem uma inconveniência: As pessoas precisam definir com que nível de acesso elas se “logam” no sistema. P. ex., como Maria (com nível segredo), pode mandar um mail para João (com nível limitado) para marcar um almoço? (não pode escrever para baixo!) Para falar com João, Maria precisa se logar com nível igual ao de João, neste caso limitado. Porém, quando ela se loga com nível limitado, passa a não ter acesso aos seus dados de nível segredo! Controle de acesso obrigatório não tem o problema de transitividade de confiança. A empresa é que decide que João, depois de provar sua confiabilidade, passa a ter acesso de nível secreto (não há vazamento de informação) Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 14 MAC – muito rígido DAC- Muito pouco protegido Alternativa – RBAC (Role Based Access Control) Requer que direitos de acesso sejam atribuídos a papéis e não a usuários Modelo Existem pessoas (usuários). Existem papéis ou funções (médico, programador, analista de credito) Existem direitos (acessar o dado A, rodar o programa X, escrever na tabela Y do banco de dados Z). Existe uma tabela que relaciona usuários com os papéis que eles podem assumir Existe uma tabela que relaciona os direitos que cada papel tem. Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 15 Uma pessoa pode assumir mais que um papel. João é programador em C, programador em Java, administrador de rede, e funcionário do depto. de sistemas. Papéis estão organizados em hierarquias de herança (mais específico herda do mais geral) para facilitar. Médico tem vários direitos, cardiologista herda osdireitos de médico e acrescenta mais alguns (ordenar teste ergonométrico, ordenar cardio- Doppler, etc). Um papel normalmente tem vários direitos: programadores em C podem usar vários compiladores, podem escrever nos diretórios g:/ projetos/ C/, qualquer funcionário pode ler e- mail, etc. As pessoas se identificam para o sistema e decidem que papel elas executarão. Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 16 Para o administrador definir o papel (define): Grupo de operações ou privilégios Grupo de objetos que o papel terá acesso Grupo de usuários ou papéis que farão parte deste papel específico Para criar o papel, o usuário deve ter o privilégio. grant create role to <usuário> create role <nome do papel> [identified by <senha>] create role lancamento_contabil create role libera_pagamento identified by senhadificil grant privilegio(s) on tabela(s) to rolename grant select, insert, delete, update on lancamentos to lancamentos_contabeis grant lancamentos_contábeis to Paulo Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 17 Como no obrigatório, é a organização que decide que direitos cada papel tem, e quem pode assumir que papéis Uma vez definidas as tabelas, o gerenciamento é fácil. Um funcionário foi contratado, crie seu usuário e liste os papéis dele. Um funcionário foi promovido, acrescente novos papéis ao usuário dele na tabela RBAC está sendo considerado como uma inovação importante em segurança e administração. O NIST organiza a padronização desta tecnologia. http://csrc.nist.gov/rbac/ Windows NT já tem componentes de RBAC, bancos de dados também Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 18 Gerente de Agência Ger. Pessoa Física Caixa Contas P. Física Caixa Poupança P. Física ver_saldo (P.Fis) depositar (P.Fis) transferencia (P.Fis) Tudo o que Ger. Pessoa Física e Ger. Pessoa Jurídica podem fazer Ger. Pessoa Jurídica Caixa Contas P. Jurídica ver_saldo (P.Jur) depositar (P.Jur.) transferencia(P.Jur.) abrir_conta (P.Jur.) Caixa Poupança P. Jurídica ver_saldo (P.Jur) depositar (P.Jur.) transferencia (P.Jur.) Segurança de Banco de Dados - Prof. Msc Rodrigo Santos 19