Controle de Acesso Baseado
em Papéis - RBAC
Laboratório de Banco de Dados
Kelly Rosa Braghetto
[email protected]
Controle de Acesso
 Autorização relaciona-se com os modos
através dos quais usuários podem acessar
recursos em um sistema computacional.
 Os primeiros artigos relacionados à
definição e a modelagem do Controle de
Acesso surgiram na década de 1970. Os
esforços no sentido de padronização se
iniciaram na década de 80.
Autorização X Autenticação
 Autenticação é o processo que determina se uma
identificação fornecida por um usuário é legítima.
O modo mais comum de autenticação é por senha.
Formas menos comuns são biometrias e smart
cards.
 Autorização é uma decisão “sim” ou “não” para
uma pergunta do tipo: “o usuário X pode acessar o
recurso Y do sistema?”.
 Para implementar um processo de autorização, um
sistema de informação precisa manter algum
relacionamento entre identificadores de usuários e
recursos do sistema.
Matriz de Controle de Acesso
 Introduzida por Lampson (1972) e extendida por
Harrison, Ruzzo e Ullman (1976-8), a matriz de
controle de acessos é estruturada da seguinte
forma:
– Colunas são indexadas por objetos (recursos do
sistema);
– Linhas são indexadas por subjects (representação do
usuário dentro do sistema );
– As entradas da matriz são operações de acessos (ou
conjunto delas).
 Esse tipo de matriz fundamenta muitos modelos
teóricos de segurança.
Matriz de Controle de Acesso
Jason
Laila
arq.txt
{r,w}
{r}
cmd.exe
{r,w,x}
win.ico
{r}
{w}
 Problemas: não é adequada para a implementação direta, pois a
matriz pode ser muito esparsa. Além disso, seu custo de
manutenção a torna ineficiente.
 Uma ACL (Access Control List) corresponde a uma coluna da
matriz de acessos. Se foca nos objetos e tipicamente são
implementadas no nível do sistema operacional.
 Uma CL (Capability List) corresponde a uma linha da matriz de
acessos. Se foca nos subjects e tipicamente são implementadas
em serviços e aplicações. Aplicações de Banco de Dados
utilizam as CPs para implementar o controle de permissões
sobre tabelas e consultas de forma bem granular.
Role-Based
(RBAC)
Access
Control
 É uma família de modelos de referência na qual
privilégios são associados a papéis e papéis são
associados a usuários.
 Seu conceito começou a ser desenvolvido nos
anos 70.
 Na abordagem orientada a objetos:
– papéis  objetos
– privilégios  direitos de acesso a seus métodos
 Motivação: Funcionários de uma organização
mudam de posição mais freqüentemente que as
obrigações (responsabilidades) relacionadas a uma
posição.
RBAC - Características
 Pode ser configurado para apoiar vários métodos
de controle de acesso diferentes, como MAC
(Mandatory Access Control) e o tradicional DAC
(Discretionary Access Control).
– MAC: baseia-se na atribuição de “rótulos” de segurança
a subjects (usuários) e objetos.
– DAC: baseia-se em permissões atribuídas por um
usuário individual (tipicamente, o dono do objeto) a
outros usuários.
 Utilizado tanto em aplicações stand-alone como
em aplicações distribuídas.
RBAC – Pergunta Freqüente
 Qual a diferença entre Grupos e Papéis?
– Grupos são tipicamente tratados como uma
coleção de usuários (e não uma coleção de
permissões).
– Um papel é uma coleção de usuários associada
a uma coleção de permissões.
Usuários
Usuários
n
n
n
n
Papel
Permissões
Permissões
Padrões RBAC
 Privilégios atribuídos a papéis são derivados a
partir das responsabilidades pertencentes aos
trabalhos associados a eles.
 Papéis e privilégios são atribuídos e gerenciados
por administradores.
 Podemos atribuir mais de um papel a um mesmo
usuário. A um papel, estão associados vários
usuários.
 Uma permissão pode ser atribuída a um ou mais
papéis. A um papel, podem estar associadas uma
ou mais permissões.
Padrões RBAC
 É possível utilizar o conceito de hierarquia de cargos
(herança e herança múltipla) na definição dos papéis.
 Por convenção, papéis mais “poderosos” aparecem no topo
do diagrama, enquanto que os mais “fracos” aparecem na
base.
Project Supervisor
Programmer
Test Engineer
Project Member
RBAC - Conceitos
 User: é uma pessoa interagindo com o sistema.
 Role: é uma coleção de funções que um usuário ou
um grupo de usuários pode executar dentro do
contexto de uma organização.
 Subject: é a representação do usuário dentro do
sistema. Pode-se entender o conceito de sujeito
como o de um processo no sistema aliado a um
conjunto de credenciais de acesso que associam
aquele processo a um usuário da base do sistema.
RBAC - Conceitos
 Object: qualquer recurso acessível num sistema,
incluindo arquivos, periféricos, bancos de dados,
ou entidades mais granulares (como campos
individuais de um banco de dados). Objetos são
tradicionalmente vistos como entidades passivas,
que contêm ou recebem informação.
 Operation: é um processo ativo invocado por um
subject. O tipo das operações e dos objetos que
RBAC gerencia são dependentes do tipo do
sistema no qual ele está implementado.
RBAC - Conceitos
 Constraints: predicados que podem operar sobre a
autorização de um acesso, negando-o ou
permitindo-o com base em critérios mais
complexos do que o envolvido em operações
simples.
– Exemplo: um constraint comum é o de separação de
privilégios, no qual um mesmo usuário não pode
pertencer a dois papéis que poderiam dar um poder
excessivo ao mesmo – como um mesmo usuário
participando dos papéis de “gerente de contas” e
“auditor”.
Modelos RBAC do NIST
 RBAC ganhou gradualmente mais apoio da
comunidade acadêmica e comercial, com diversas
implementações aparecendo no mercado.
 Inexistência de um modelo padronizado para
RBAC resultava em incerteza e ineficiência sobre
seu significado e utilidade.
 Resultado: modelo RBAC do NIST – National
Institute of Standards and Technology (padrão
atual da RBAC), em 2001.
Visão geral do modelo
 RBAC é um conceito muito rico.
– Vai de controles simples a controles complexos.
 Um único molde definitivo ou iria incluir demais
ou excluir demais.
 Solução adotada: o modelo RBAC foi organizado
em quatro níveis de recursos e funcionalidades
crescentes.
 Estes níveis foram definidos e formalizados em
um conjunto de artigos (ver Referências).
RBAC0: Core RBAC
 Os recursos requeridos do Core RBAC são obrigatórios a
qualquer implementação de RBAC. Este nível prevê
apenas usuários, papéis e permissões. Usuários (ou grupos
de usuários) e permissões são associados a papéis.
(UA)
User
Assignment
USERS
(PA)
Permission
Assignment
ROLES
OPS
OBS
Permissions
user_sessions
session_roles
SESSIONS
RBAC0: Core RBAC
 O RBAC0 define duas relações básicas: a
relação entre usuários e papéis (UA – User
Assignment), e a relação entre papéis e
permissões (PA – Permission Assignment).
 Tanto a UA quanto a PA são relações manyto-many.
 O modelo RBAC não discorre sobre
revogação de permissões ou de usuários de
papéis.
RBAC1: Hierachical RBAC
 Difere do RBAC0 somente na introdução da hierarquia de
papéis - denominada como relação RH.
 Hierarquias de papéis são uma maneira natural de
estruturar papéis de forma a representar as
responsabilidades dentro de organizações.
(RH)
Role Hierarchy
(UA)
User
Assignment
USERS
(PA)
Permission
Assignment
ROLES
OPS
OBS
Permissions
user_sessions
session_roles
SESSIONS
RBAC2: Constrained RBAC
 RBAC nível 2 adiciona o recurso de constraints.
– Constraints podem estar associados às relações usuário
– papel e papel – permissão ou à ativação de papéis
dentro de sessões de usuário no sistema.
 O RBAC2 só especifica um tipo de constraint
obrigatório a ser apresentado pelo sistema: a
separação
de
deveres,
referente
ao
particionamento de tarefas e privilégios entre
diferentes papéis. Mas qualquer outro tipo de
constraint pode ser implementado, de acordo com
as políticas de cada organização e as
características do sistema de controle de acesso.
RBAC2: Constrained RBAC
 O nível 2 de RBAC do padrão prevê dois tipos de separação de
deveres:
– Separação Estática de Deveres (Static Separation of Duty)
– Separação Dinâmica de Deveres (Dynamic Separation of Duty)
SSD
(PA)
Permission
Assignment
(UA)
User
Assignment
USERS
OPS
ROLES
OBS
Permissions
user_sessions
session_roles
SESSIONS
DSD
RBAC2 - Separação Estática de
Deveres
 Visa diminuir o conflito de interesses em um
sistema baseado em papéis ao não permitir que um
mesmo usuário pertença a dois papéis
considerados mutuamente exclusivos.
 A separação é estática porque ela sempre está ativa
no sistema, agindo na relação usuário – papel.
 Se um usuário é autorizado como membro de um
papel, ele é proibido de ser membro de um papel
conflitante.
 Este tipo de constraints são herdados na hierarquia
de papéis.
RBAC2 – Separação Dinâmica de
Deveres
 Esse tipo de separação de deveres fornece a
capacidade de tratar situações de conflitos de
interesse no momento em que o usuário entra no
sistema assumindo um determinado papel.
 O constraint age sobre o estabelecimento da
sessão do usuário dentro do sistema.
 Permite tratar situações em que um usuário
pertença a um conjunto de papéis que não
constituem conflito de interesse quando utilizados
de modo independente, mas gerem preocupação se
utilizados em conjunto.
RBAC – Exemplos de Constraints
 Na relação papel – permissão:
– permitir ou negar o acesso em determinados horários,
de acordo com uma política estabelecida.
 Na relação usuário – papel:
– forçar uma quantidade máxima de pessoas por papel
(cardinality constraint). Um exemplo de utilização é
no caso do papel de um gerente de projeto (só deve
existir uma pessoa exercendo-o).
– permitir que um marinheiro de baixo escalão (com um
papel correspondente) exerça o papel de comandante de
navio (um papel com privilégios mais altos) apenas se
ele for o último remanescente no barco, em caso de
acidente, por exemplo.
RBAC – Exemplos de Constraints
 No estabelecimento da sessão do usuário:
– permitir ou negar o acesso quando o usuário utilizar o
sistema a partir de algumas origens específicas – de
máquinas não confiadas na rede, por exemplo.
 Na relação usuário – papel ou no estabelecimento da
sessão:
– exclusão mútua: permite a separação de deveres.
RBAC3 – Modelo Consolidado
 O RBAC3 combina o RBAC1 e RBAC2, suportando tanto
as hierarquia de papéis quanto os constraints.
(RH)
Role Hierarchy
SSD
(PA)
Permission
Assignment
(UA)
User
Assignment
USERS
OPS
ROLES
OBS
Permissions
user_sessions
session_roles
SESSIONS
DSD
Referências
 Sandhu, R., Coyne, E., Feinstein, H., Youman, C. Role-
Based Access Control Models, IEEE Computer 29(2),
IEEE Press, 1996, Pages 38-47.
 Sandhu, R., Ferraiolo, D., Gavrila, S., Chandramouli, R.
and Kuhn, R. Proposed NIST Standard for Role-based
access control. ACM Transactions on Information and
System Security, Vol. 4, No. 3, August 2001, Pages 224–
274.
 Sandhu, R., Ferraiolo, D., and Kuhn, R. 2000. The NIST
Model for Role-Based Access Control: Towards a Unified
Standard. In Proceedings of 5th ACM Workshop on RoleBased Access Control, Berlin, Germany, July 2000.
 Web Site do RBAC – NIST: http://csrc.nist.gov/rbac
Download

Controle de Acesso Baseado em Papéis