Sentinel: um engenho Java para controle de acesso RBAC

Slides:



Advertisements
Apresentações semelhantes
Soluções elegantes para problemas recorrentes
Advertisements

Sistemas Operacionais - Aula 6
Sistemas Operacionais
2 Políticas, Modelos e Mecanismos de Segurança
Noções de Sistemas Operacionais
SISTEMAS DE INFORMAÇÃO
Sistema de Arquivos - PROTEÇÃO DE ARQUIVOS
Software Básico Silvio Fernandes
Chapter 4: Threads.
Interação Cliente Servidor
DNS Introdução.
Professora: Aline Vasconcelos
Device Drivers no Windows e Linux Visão Geral e Boas Práticas
Open Service Architecture for Heterogeneous Home Environment Ricardo Beck.
Sistemas Operacionais
Material III-Bimestre Wagner Santos C. de Jesus
Simple Network Management Protocol (SNMP)
Lafayette B. Melo – CEFET-PB - COINFO Interface do usuário, linhas de comando e menus Interface do usuário Linhas de comando Menus.
GERENCIAMENTO DE REDES
GERENCIAMENTO DE REDES
Implementação de Sistemas
Fundação Aplicações de Tecnologias Críticas - Atech
09/03/10 20:13 Claudio de Oliveira – 1/21.
Controle de Acesso Baseado em Papéis - RBAC
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Administração de Sistemas de Informação Banco de Dados
DIAGRAMA DE COMPONENTES
DESCRIÇÃO/OBJETIVOS O Controle de Acesso Nacional foi desenvolvido para suprir a necessidade de maior segurança e controle da informação administrada pelos.
Sistemas Operacionais
SETEMBRO, 2010 | SÃO PAULO. Utilizando o AppLocker para proteger seu ambiente da execução de aplicações não autorizadas C Ó DIGO DA SESS Ã O: CLI307 Rodrigo.
Frameworks - Introdução
Capítulo 1 Introdução à administração e às organizações.
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Ethos: Sistema Distribuído para Suporte ao Comitê de Ética em Pesquisa Autor: Rodrigo Stefani Domingues Orientador: Prof. Dr. Carlos M. T. Toledo Faculdade.
Taxonomia Profa. Lillian Alvares,
Sistemas Distribuídos
Sistemas Operacionais
Prof. Kelly E. Medeiros Bacharel em Sistemas de Informação
Sistemas Operacionais
Gestão de Segurança em Comércio Eletrônico
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Segurança de Dados Eduardo Mazza Batista Agosto
Projeto de Banco de Dados
Por que estudar sistemas de informação?
Banco de Dados Parte 04 Ceça. Ceça Moraes 2 Conteúdo  Os três níveis da arquitetura  Mapeamentos  Arquitetura cliente-servidor.
Processo de Aquisição Adilson de Almeida Cezar Meriguetti
SISTEMAS OPERACIONAIS I
© Ricardo Pereira e Silva
Porque um novo ambiente?. Interação inter-grupos  A maioria das ferramentas existentes provê interação dentro do grupo. Na concepção adotada nessa proposta.
Segurança e Auditoria de Sistemas
Introdução à Computação em Grade Porto Alegre, Maio/2006 Centro Nacional de Supercomputação CESUP/RS Realização: Projeto GradeUFRGS Material pertencente.
Tópicos em Sistemas Operacionais (LINUX) Prof:. Msc. Arimatéia Junior Fortaleza-2011.
Tecgraf PUC-Rio Setembro de 2013 Introdução ao Openbus.
Sistemas operacionais
Processos.
O que é? É o processo de investigação técnica com intuito de identificar a qualidade, a segurança e a exatidão do software desenvolvido. A validação do.
Engenharia de Software
Introdução a Banco de Dados Aula 04
Prof.°: João Henrique Disciplina: SOR II
Projeto de Banco de Dados Prof.Ms.Rodrigo Luiz Comitante Leão.
Ultimos recursos Jobson Ronan
DI-UFPE1 Sistemas CASE Modelos de Referência. DI-UFPE2DI-UFPEDI-UFPE Definição n Estruturas de um Ambiente CASE do ponto de vista conceitual; n Permitem.
Controle de Acesso Introdução Controle de acesso discricionário
Tecgraf PUC-Rio maio de 2011 Introdução ao Openbus.
Versão 1 - julho/2013 Tecgraf PUC-Rio Novembro de 2013 Introdução ao OpenBus.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Aspectos de Segurança Autenticação e Controle de Acesso Ricardo Cavalcanti Jobson Ronan
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
Engenharia de Software Conceitos e elementos 1. Engenharia   Resolução de problemas através de soluções economicamente viáveis  Motivacão: Limitação.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Transcrição da apresentação:

Sentinel: um engenho Java para controle de acesso RBAC Trabalho de graduação – Segurança da Informação – CIn / UFPE Cristiano Lincoln de Almeida Mattos <lincoln@tempest.com.br> Agosto / 2003

Agenda Motivação do trabalho Objetivos Visão geral de controle de acesso RBAC – Role Based Access Control Sentinel – arquitetura e funcionalidades Trabalhos futuros

Motivação do trabalho Segurança é cada vez mais necessário em sistemas computacionais e controle de acesso é um aspecto básico Controle de acesso costuma ser mal dimensionado, arquitetado e implementado em muitas aplicações Resultados: Permissões excessivas Muito esforço para gerenciamento Arquiteturas restritas e inflexíveis Reimplementação

Objetivos O objetivo do Sentinel é o de ser um engenho de controle de acesso que possa ser utilizado em grande variedade de aplicações Java Arquitetado pensando em flexibilidade e extensibilidade Integrar-se a diferentes tipos de aplicações Utilizar modelo RBAC, que vem ganhando grande aceitação O objetivo deste trabalho foi descrever e caracterizar o problema, traçar os critérios para tratá-lo, descrever a arquitetura e implementar o engenho

Visão geral de controle de acesso Acesso pode ser definido como a capacidade de realizar alguma operação em um recurso computacional Controle de acesso baseia-se em três princípios Autenticação: o processo de identificação do usuário Vários tipos: senhas (algo que você sabe), tokens (algo que você possui), biometria (algo que você é), etc. Autorização: uma vez autenticado, o que esse usuário pode fazer? Auditoria: prover mecanismos de acompanhar os eventos do sistema Conceitos pertinentes Sujeito Permissão: objeto + operação

Modelos e políticas de controle de acesso Modelos de controle de acesso (autorização) definem características primitivas de um conjunto de regras de autorização a serem utilizadas – definem a semântica básica Dentro de um modelo podem existir diferentes políticas de controle de acesso – declarações sucintas das propriedades de proteção que um sistema precisa possuir Políticas para sistemas militares, financeiras, para saúde, etc. Os dois modelos mais conhecidas atualmente são MAC (Mandatory Access Control) e DAC (Discretionary Access Control) RBAC é um modelo que vem ganhando bastante força

Modelos e políticas de controle de acesso DAC: usuários são donos de um recurso e tem o controle sobre quem deve acessá-lo com que permissões Muito utilizado em sistemas comerciais (UNIX, Windows, etc.) MAC: usuários não são donos do objeto e não podem definir suas permissões de acesso, atendo-se à política implantada pelo administrador Principalmente utilizado em ambientes restritos como militares, financeiros Exemplo de política de acesso multinível – Bell Lapadula Rotulação das informação em níveis – classified, confidential, secret, top secret, etc. Usuários possuem rótulos e acessam as informações de acordo com o rótulo delas Propriedades básicas: Usuários só podem ler dados de categorias iguais ou menores que a sua: “no read up” Usuários só podem escrever dados de categorias menores que a sua: “no write down”

DAC e MAC hoje O MAC é reconhecido por ser potencialmente mais seguro e controlável, mas não tem obtido popularidade comercial Pouco flexível e adaptado aos processos empresariais O DAC é bastante popular no mundo comercial, mas também tem suas deficiências Gerenciamento complexo, em sistemas com milhares de usuários e recursos Acaba-se gerando permissões excessivamente relaxadas Grupos costumam ser utilizados para simular papéis Nenhum dos dois modelos prevê regras de acesso mais complexas, como separação de privilégios.

RBAC – Role Based Access Control DAC e MAC associam usuários a permissões RBAC traz o conceito de papel, intermediando esse acesso Apesar de simples, o conceito traz poder expressivo Usuário tem permissão de acesso somente se pertence a um papel autorizado a essa permissão Organizações trabalham em cima de papéis / cargos. Por isso, papéis são mais estáveis que usuários e obejtos: com isso, o gerenciamento é facilitado Heranças de papéis provêem um meio sucinto de expressar privilégios gradualmente maiores RBAC vem sendo bastante discutido na academia e no mundo comercial, com estudos que comprovam a sua eficácia na diminuição de custos com gerenciamento Usuários Permissoes n Permissoes Usuários n Papel

RBAC – Role Based Access Control Papéis não são grupos de usuários Apesar de grupos rotineiramente serem utilizados para “simular” papéis em sistemas DAC Em RBAC, grupos expressam características próprias como local (“grupo-usuários-recife”) Hierarquia de papéis

RBAC – Role Based Access Control Usuários Papéis Permissões Atribuição de Usuários Atribuição de Permissões Sessões Hierarquia de Papéis Constraints rwx-- rw-d- r---- Recursos Constraints são predicados que atuam sobre uma autorização de acesso, negando-a ou permitindo-a com base em critérios mais complexos que o de simples operações Separação de privilégios estática: uma mesma pessoa não pode pertencer a papéis excludentes Separação de privlégios dinâmica: uma pessoa só pode estar logada com um dos papéis de um conjunto excludente Autorização dependente do contexto: exemplos do médico na UTI e marinheiro no navio

RBAC – Role Based Access Control O NIST padronizou um modelo RBAC, com diferentes níveis de complexidade Níveis: RBAC1 – Core RBAC: sem hierarquias nem restrições (constraints) RBAC2 – Hierarchical RBAC: com hierarquias, sem restrições RBAC3 – Constrained RBAC: com hierarquias, com restrições O modelo RBAC é neutro em termos de política, podendo ser configurado para implantar vários tipos RBAC pode ser considerado mandatório ou discrecionário? Nenhum – dependendo da política configurada, ele pode pender mais para um lado ou o outro

Sentinel – critérios de design Segurança Atender às regras de autorização do modelo RBAC Utilizar técnicas de programação segura Flexibilidade Ser um engenho de controle de acesso independente de aplicação, mas com mecanismos flexíveis para integração a diferentes tipos de aplicação Suporte a diferentes vários tipos de autenticação – login/senha, certificado digital, etc. Extensibilidade O Sentinel provê um framework baseado em plugins que permitem estender e customizar as regras de acesso Plugins são utilizados para implementar autenticadores, constraints e operações que sejam de necessidade específica da aplicação

Sentinel – arquitetura e funcionalidades Desenvolvido em Java Puro: amplamente portável Genérico e dissociado da aplicação Porém, toda aplicação tem seu conceito próprio do recurso que deve ser protegido e consequentemente as operações a serem executadas naquele recurso Para tal, é necessária uma camada de adaptação para se integrar à aplicação: a definição e implementação dos Resources Integração através do conceito de “Recurso” Pode representar funcionalidades, objetos em um sistema de arquivos, colunas em uma tabela de um SGBD, etc. Implementado com uma classe abstrata provida pela aplicação para definir o namespace e a semântica dos objetos Exemplos: Arquivo: “/etc/passwd”, “c:\windows\win.ini”, “/lib/abc*” Funcionalidades: “Funcionalidade001”, “RelatorioVendasSemestral”, “funcoes.relats.vendas” Outros tipos: “.1.3.6.1.2.1.1.1” (OID de SNMP), “dados.planilhas.custos-Recife” , “dados.*”

Sentinel – arquitetura e funcionalidades Classes de definição e semântica do Resource Aplicação “usuária” ResourceID Usuários Papéis Permissões Engenho de Autorização Camada de dados Chamadas ao Sentinel de diversos pontos da aplicação Auditoria/ Logging Filesystem XML SGBDR Plugins de Autenticação Arq texto Syslog SGBDR . . . Nome e senha Certificados Digitais LDAP Biometria

Sentinel – componentização Plugins de autenticação Implementação de classe com interface bem-definida Caso autenticado, recebe uma credencial de acesso que deve ser utilizada em cada pedido de autorização Plugins de constraints Sob a relação usuário – papel: acionados na alteração entre usuário e papel, recebe o ID do usuário e o papel envolvidos Sob a relação papel – permissões: acionado em um pedido de autorização, recebe o ID do papel, do objeto e das permissões desejadas No estabelecimento da sessão: acionado no momento do login, recebe o ID do usuário, papel e informações de origem do usuário Plugins de operações Podem ser implementadas operações mais complexas e apropriadas a uma determinada aplicação: “débito” e “crédito” ao invés de leitura, escrita e remoção

Sentinel – Integração opcional Arquiteturalmente, o Sentinel é um componente independente dentro da aplicação Cada funcionalidade da aplicação pergunta ao Sentinel se o usuário atual está autorizado a usar uma funcionalidade Prós: Mais fácil de implementar ou retroequipar, não altera significativamente a arquitetura da aplicação Cons: O programador escrever código para perguntar ao Sentinel a cada operação Sentinel Consultas Relatórios Usuários Papéis Permissões Fachada Usuários Configurações Entrada de Dados

Sentinel – Integração estilo kernel O núcleo da aplicação exporta APIs para execução das funcionalidades com controle de acesso já previamente autorizado no Sentinel As funcionalidades usam-se dessas APIs para implementarem suas tarefas Prós: Mais seguro: o desenvolvedor não tem como esquecer de checar permissões Cons: Requer repensar ou reestruturar radicalmente a aplicação (ou que ela já tenha sido projetada assim) Sentinel Usuários Papéis Permissões APIs do Sistema Operacional APIs de Baixo Nível da App “Kernel” ou Núcleo Usuários Entrada de Dados Consultas Relatórios Configurações Stub Fachada

Sentinel – conclusões e trabalhos futuros Controle de acesso parece simples, mas o campo é cheio de sutilezas e preocupações práticas (segurança, performance, extensibilidade, gerenciamento, etc.) O campo de RBAC possui teoria bem embasada, mas poucas experiências na modelagem, arquitetura e implementação de engenhos. O Sentinel é um passo para suprir essa lacuna e agregar a experiência. Trabalhos futuros Funcionamento do Sentinel como serviço de autorização em rede. Um autorizador central de um ambiente distribuído Possivelmente utilizando CORBA ou Web Services como interface de acesso Segurança no transporte, e credenciais de acesso resistentes a spoofing Implementação de constraints utilizando princípios de especificação formal do conceito Construção de biblioteca robusta e extensa de plugins de autenticação e constraints para serem utilizados no framework definido pelo Sentinel Melhorias na camada de dados e interfaces de configuração

Referências Ross Anderson, Security Engineering: a guide to building dependable distrited systems, Wiley Computer Publishing, 2001 Ravi S. Sandhu, Edward J. Coyne, Hal L. Feinstein & Charles E. Youman. Role-based access control models. IEEE Computer, 29(2):38-47, February 1996. Michael P. Gallaher, Alan C. O’Connor & Brian Kropp, The Economic Impact of Role-Based Access Control, Mar/2002, National Institute of Standards and Technology, US Department of Commerce11 David Ferraiolo & Richard Kuhn, Role-Based Access Control, 1992, Proceedings of 15th National Computer Security Conference David Ferraiolo, Ravi Sandhu, Serban Gavrila, Richard Kuhn & Ramaswamy Chandramouli, Proposed NIST Standard for Role-Based Access Control, August 2001, ACM Transactions on Information and System Security, Vol. 4, No. 3 ...