Técnicas de controle de acesso de usuários

As sete premissas da segurança da informação para Daswani, Kern e Kesavan são: autenticação, autorização, confidencialidade, integridade, auditoria, disponibilidade e não-repúdio[DKK07]. Embora todos estes pontos sejam importantes os dois primeiros são cruciais para garantir que os demais possam ser implementados com exito. Em especial o segundo ponto (autorização) é primordial para que os usuários tenham permissões de acesso apenas aos dados e recursos que lhe são devidos.

As sete premissas de um sistema de segurança

Um sistema de segurança completo, conforme Daswani, Kern e Kesavan relatam, é composto pelos pontos chave descrito a seguir.

Autenticação

Autenticação é o ato de verificar a identidade de alguém. Verificar se alguém é quem diz ser[HUNT09]. Os métodos mais comuns para fazer a autenticação são os baseados no que o usuário sabe, no que o usuário é, no que o usuário possui. Em uma visão minimalista poderiamos classificar, respectivamente, em: Senhas, biometria e cartões ou tokens.

Autorização

Autorização é o ato de verificar se um determinado usuário tem permissão para executar alguma tarefa. Uma vez que o usuário já foi autenticado, nós devemos verificar quais ações dentro do sistema este usuário pode fazer[DKK07]. Por exemplo, em um sistema de controle de recursos humanos, se o usuário pertence ao grupo de empregados ele poderá verificar o seu contra-cheque, verificar e marcar suas férias etc. já se o usuário pertence ao grupo gerencia, além das atividades de qualquer usuário ele poderá alterar os valores do contra-cheque, autorizar ou revogar férias etc. Estes controles de acesso utilizam mecanismos (ACM) que podem ser baseados em listas (ACLs) e em modelos.

Confidencialidade

Confidencialidade é a a garantia de que somente pessoas autorizadas poderão acessar determinado recurso. Um pessoa que tente acessar algum recurso o qual não tenha permissão não deverá conseguir exito. Uma das formas de se garantir este ponto é usando técnicas de criptografia[DKK07].

Integridade

Integridade é a garantia de que o recurso que esta sendo acessado não foi violado e encontra-se completo e consistente[BIDG06]. Uma das formas de se garantir a integridade é utilizações hashs de assinatura digital tal como MD5, SHA1 etc.

Auditoria

Auditoria é a capacidade de poder verificar todos os eventos relacionados ao uso e funcionamento de dado recurso. E determinar quem foi o responsável por determinada ação[DKK07].

Disponibilidade

Disponibilidade é a garantia de que o recurso estará pronto para a acesso a qualquer momento que seus interessados necessitem[BIDG06]. Uma das formas de garantir a disponibilidade é manter a redundância dos serviços e evitando pontos únicos de falha[DKK07].

Não repúdio

Não-repudio é a garantia de que um usuário que tenha acessado dado recurso não poderá de forma alguma contestar a auditoria afirmando que não tenha sido ele quem efetivamente realizou alguma operação sobre certo recurso o qual ele tenha privilégios de acesso[BIDG06]. Embora Bidgoli afirme que a biometria não é um meio confiável para se garantir o não-repudio, por hora este é o meio mais eficaz de fazê-lo.

Modelos de controle de acesso

No que concerne a autorização do usuário a executar determinadas tarefas e/ou acessar dado recurso de um sistema faz-se necessário o uso de algum mecanismo de controle de acesso. Os modelos de controle de acesso são categorizados em discricionários e obrigatórios [WIKI09a] e embora possam usar listas de controles de acesso (ACL) como parte de seu mecanismo interno, em geral eles podem ser considerados uma evolução destas listas.

Listas de controle de acesso (ACL)

Lista de controle de acesso (ou ACL) é um conjunto de usuários e um conjunto de recursos que eles são autorizados a acessar. As ACLs oferecem controle sobre quais objetos dado usuário podem acessar[RHI07]. Se a considerarmos esta lista de forma tabular teríamos uma tabela com as colunas “usuário”, “recurso” e “privilégio” onde para cada dado recurso um usuário poderia ter um privilégio de acesso distinto. De forma mais sofisticada ainda as ACLs poderiam ser aplicadas por papeis ou grupos onde a citada tabela acima teria as colunas “papel”, “recurso” e “privilégio” (note a substituição da coluna “usuário” pela coluna “papel”) e em uma segunda tabela teríamos uma associação entre os usuários e seus papeis.

Grupos e papeis podem ter uma ligeira semelhança mas seus conceitos de existência são bem diferentes. Enquanto grupo é um aglomerado de usuários, O papel é um conjunto de permissões que poderá ser atribuído tanto à um usuário, quanto à um grupo destes[NIST07].

Controle de acesso discrecionário (DAC)

O modelo mais simples é o DAC (Discretionary Access Control – Controle de acesso discrecionário) que define o controle de acesso para objetos do sistema com base na discrição do dono do objeto através da identidade do usuário ou do grupo que tenta acessar algum recurso. Consequentemente o sucesso ou falha no acesso a dado recurso dependerá das suas permissões de acesso[RHI07].

Controle de acesso obrigatório (MAC)

O modelo MAC (Mandatory Access Control – Controle de acesso obrigatório) é um mecanismo que limita o nível de controle dos usuários sobre os objetos que eles próprios criaram. Ao contrário do que ocorre com o DAC, onde os usuários tem pleno controle sobre seus objetos[RHI07].

Controle de acesso baseado em papéis (RBAC)

O modelo considerado o mais seguro atualmente é o RBAC (Role-based Access Control – Controle de acesso baseado em papeis). Este modelo, proposto em 1992 por Ferraiolo e Kuhn, e que evoluiu ao longo dos anos seguintes, foi concebido como forma de integrar os recursos que haviam em algumas aplicações especificas e consolidar um modelo de controle de acesso baseado em papeis que fosse genérico[NIST07].

Conclusão

As sete premissas de um sistema de autenticação serão encontradas de alguma maneira em qualquer sistema que necessite escalonar privilégios para os seus usuários. Embora possa haver uma enfase maior em uma outra parte e é imprescindível a existência de todas elas.

Os métodos de controle de acesso se resumem a basicamente nos três apresentados (DAC, MAC, RBAC) mas apesar de existir vários sistemas que usam os dois primeiros modelos, o uso do modelo RBAC para gerenciar privilégios de usuários é aceito como uma boa prática e por conta disso sistemas mais novos como por exemplo Microsoft Active Directory, SELinux, Solaris, Oracle DBMS, PostgreSQL 8.1, SAP R/3 o implementam de alguma forma[ALL][WIKI09b].

Referências

[ALL] All Experts. Role-Based Access Control. Disponível em <http://en.allexperts.com/e/r/ro/role-based_access_control.htm>. Acesso em 13-08-2009.

[BIDG06] Bidgoli, Hossein. Hadbook of Information Security. 2006. Vol. 3. ed. John Willey & Sons inc. California, US. Disponível em <http://books.google.com.br/books?id=0RfANAwOUdIC&printsec=frontcover&source=gbs_v2_summary_r&cad=0#v=onepage&q=&f=false>. Acesso em 13-08-2009.

[DKK07] Daswani, Neil; Kern Christoph; Kesavan, Anita. Foundations of Security: What Every Programmer Needs to Know. ed. 1. 2007. Springer Verlag NY. ISBN: 1590597842. Disponível em <http://books.google.com.br/books?id=zwAT_dcL84YC>. Acesso em 13-08-2009.

[HUNT09] Huntington, Guy. The Business of Authentication. 27-Jun-2009. disponível em <http://www.authenticationworld.com/>. Acessado em 29-07-2009.

[RHI07] Red Hat Inc. Red Hat Enterprise Linux 5. Deployment Guide: Access Control Mechanisms (ACMs). ed. 3. 2007. Disponível em <http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/selg-overview.html>. Acesso em 13-08-2009.

[NIST07] National Institute of Standards and Technology. Role Based Access Control – Frequently Asked Questions. Oct. 2007. Disponível em <http://csrc.nist.gov/groups/SNS/rbac/faq.html>. Acesso em 15-08-2009.

[WIKI09a] Wikipedia. Controle de Acesso. Jul. 2009. Disponível em <http://pt.wikipedia.org/wiki/Controle_de_acesso>. Acesso em 13-08-2009.

[WIKI09b] Wikipedia. Roled-based Access Control. Jul. 2009. Disponível em <http://en.wikipedia.org/wiki/Role-Based_Access_Control>. Acesso em 13-08-2009.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.