Métodos de Controle de Acesso
Criada por: Frederico Madeira, última modificação em: Sun 20 of May, 2012 (15:21 UTC)
Introdução
O Controle de acesso a sistemas e a redes de computadores, são fundamentais para garantir a confiabilidade,integridade e disponibilidade destes. Estas três importantes características são conhecidas por CIA (Confidentiality, integrity, availability)
- Prevenir contra a modificação da informação por usuários não autorizados
- Prevenir contra a modificação (não autorizada ou não intencional) por usuários autorizados
- Preservação da consistência interna e externa da informação
Interna: os dados são consistentes, ou seja a quantidade de objetos indicados em um sistema, coincide com a quantidade de objetos existentes no mundo real
Externa: garante que os objetos indicados no sistema são exatamente os objetos existentes no mundo real
Os controles de acesso são importantes não apenas para evitar que invasores tenham acesso, mas também para limitar o acesso de usuários autorizados aos dados do sistema/rede.
Durante o planejamento/implementação do controle de acesso, deve ser considerado as em relação ao mecanismo adotado:
Neste cenário, definimos os termos acima da seguinte forma:
Controles
São implementados para mitigar o risco e reduzir o potência de perda. Os mecanismos podem ser:
A implementação destes controles pode ser administrativa, lógica ou técnica, onde:
Em geral, um grupo de processos que compartilham acesso ao mesmo recurso é chamado de domínio de proteção (protection domain)
Modelos de controle de acesso
Controlar a acessos de uma pessoa ou processo a um objeto (ex: um arquivo) necessita a configuração de regras de acesso. Estas regras são classificadas em três categorias ou modelo:
Baseado em labels que definem a autorização de acesso a informação dependendo de sua classificação ou criticidade. Um exemplo clássico deste método é a forma como os militares classificam seus documentos:
Um usuário no sistema só poderia ter acesso de leitura a um objeto se o seu clearance for maior ao igual à classificação do objeto. Para exemplificar, imagine que um usuário receba autorização para acesso a informações secretas e confidenciais, então ele terá acesso de leitura aos documentos que possuam a classificação secreta e a todos os níveis abaixo.
Para evitar que um usuário com uma classificação alta, altere a classificação indevidamente de um documento (SECRET -> CONFIDENTIAL) permitindo a leitura do mesmo por níveis inferiores, a escrita também é controlada, de forma que um usuário só poderá alterar uma informação se sua autorização for menor ou igual a classificação atual do documento. Desta forma, um usuário com classificação secreta, jamais conseguiria alterar a classificação para confidencial.
Este modelo prevê que usuários individuais não tenham escolha em relação a que permissões de acesso eles possuem ou a que objetos podem acessar.
Neste modelo, os usuários individuais não são considerados donos dos objetos, e não podem definir suas permissões – isso é realizado pelos administradores do sistema.
Neste modelo, o usuário possui autoridade, para definir quais objetos são acessíveis. Um exemplo dessa característica, seria a utilização de ACL's (access control lists).
Uma lista de acesso (ACL) é uma lista que possui as autorizações de usuários em relação aos objetos que se deseja controlar. Uma ACL contem os usuários que terão acesso aos objetos e quais privilégios terão sobre eles.
Neste modelo, os usuários individuais são “donos” do objetos, tendo controle (discreção) total em quem deve ter permissões para acessar o objeto. Um usuário transforma-se em dono do objeto ao criá-lo.
Atualmente, o DAC é o modelo mais popular de controle de acesso, pela sua utilização em grande escala em sistemas operacionais comerciais. Todas as variantes do UNIX, o Netware e a série Windows NT, 2000 e XP utilizam o modelo DAC como seu modelo básico de controle de acesso. Estes sistemas operacionais utilizam extensamente a técnica de listas de controle de acesso para conceber a implementar as suas checagens de autorização, dispondo também do conceito de grupos de usuários para facilitar na administração e concessão de permissões.
O modelo DAC possui uma fraqueza inerente: o fato de que informação pode ser copiada de um objeto para outro, de modo que acesso a uma cópia é possível mesmo que o dono do objeto original não tenha provido acesso ao original. Usuários que possuem acesso ao objeto original podem inadvertidamente permitir a realização de cópias não-autorizadas, ao executar um programa “cavalo de tróia” que faça a cópia dos dados do objeto sem a explícita autorização ou cooperação do usuário.
Essa fraqueza do modelo DAC tornou-o insuficiente para sistemas militares, em que a informação precisava ter um alto nível de controle e ser resistente a ataque por cavalos de tróia, fomentando a criação do modelo MAC.
Este modelo também é conhecido como Controle de acesso não discrecionário (Non-Discretionary Access Control), onde uma autoridade central determina/gerencia quais usuários podem ter acesso aos objetos controlados. A autorização é dada baseando-se no papel (role) que o usuário desempenha na organização (role-based) ou responsabilidades deste usuário na organização(task-based)
Em organizações em que temos mudanças constantes de funcionários, o modelo RBAC ajuda no sentido em que o perfil de acesso dos novos usuários será definido pelo titulo, papel ou responsabilidades deste usuária dentro da organização.
Papéis são criados para as várias funções de negócio da organização, e os usuários são associados a esses papéis de acordo com suas responsabilidades e qualificações. Usuários podem ser facilmente reassociados de um papel para outro. Papéis podem receber novas permissões de acesso à medida que novas aplicações ou funcionalidades são adicionadas ao sistema, e permissões podem ser revogadas sempre que necessário.
No modelo DAC temos que associar um usuário a cada um dos objetos, já no modelo RBAC, associamos o papel(role) ao objeto, tornando muito mais fácil e escalável a administração/gerenciamento do sistema de controle de acesso.
Referências
O Controle de acesso a sistemas e a redes de computadores, são fundamentais para garantir a confiabilidade,integridade e disponibilidade destes. Estas três importantes características são conhecidas por CIA (Confidentiality, integrity, availability)
- Confidencialidade
- Integridade
- Prevenir contra a modificação da informação por usuários não autorizados
- Prevenir contra a modificação (não autorizada ou não intencional) por usuários autorizados
- Preservação da consistência interna e externa da informação
Interna: os dados são consistentes, ou seja a quantidade de objetos indicados em um sistema, coincide com a quantidade de objetos existentes no mundo real
Externa: garante que os objetos indicados no sistema são exatamente os objetos existentes no mundo real
- Disponibilidade
Os controles de acesso são importantes não apenas para evitar que invasores tenham acesso, mas também para limitar o acesso de usuários autorizados aos dados do sistema/rede.
Durante o planejamento/implementação do controle de acesso, deve ser considerado as em relação ao mecanismo adotado:
- As ameaças (Threat) ao sistema
- As vulnerabilidades (Vulnerability) do sistema a essas ameaças
- O Risco (Risk) dessas ameaças realmente ocorrerem.
Neste cenário, definimos os termos acima da seguinte forma:
- Ameaças (Threat): um evento ou atividade que tem potencial para causar dano ao sistema de informação ou a rede
- Vulnerabilidade (Vulnerability): Uma fraqueza ou falta de proteção que pode ser explorada por uma ameaça causando dano ao sistema de informação ou a rede
- Risco (Risk): Medida da possibilidade de perda ou dano a um sistema de informação ou rede. Probabilidade que uma data vulnerabilidade se torne real
Controles
São implementados para mitigar o risco e reduzir o potência de perda. Os mecanismos podem ser:
- preventivos (preventive): a implementação do controle é feita par evitar/inibir ocorrências que causem algum dano ao sistema ou rede
- detectivos (detective): utilizado para descobrir ocorrências que causaram algum dano ao sistema ou rede
- corretivos (corrective): utilizado para restaurar o sistema que foi vitima de um ataque
A implementação destes controles pode ser administrativa, lógica ou técnica, onde:
- controles administrativos incluem politicas e procedimentos, treinamentos de segurança. checagens em background, verificações de hábitos de trabalho e aumento da supervisão
- controles lógicos ou técnicos estão relacionados a restrição de acesso a um sistema e a proteção da informação. Exemplos desses controles são: cifragem de dados, smart cards, utilização de ACL (access control lists) e protocolos de transmissão.
- Controles físicos estão relacionados a guarda e segurança de ambientes de forma geral, como por exemplo, trancar as portas, proteger a sala dos servidores ou notebooks, proteção de cabos, etc..
Em geral, um grupo de processos que compartilham acesso ao mesmo recurso é chamado de domínio de proteção (protection domain)
Modelos de controle de acesso
Controlar a acessos de uma pessoa ou processo a um objeto (ex: um arquivo) necessita a configuração de regras de acesso. Estas regras são classificadas em três categorias ou modelo:
- Mandatory Access Control (MAC) - Acesso de controle mandatório
Baseado em labels que definem a autorização de acesso a informação dependendo de sua classificação ou criticidade. Um exemplo clássico deste método é a forma como os militares classificam seus documentos:
- UNCLASSIFIED: não classificado
- CONFIDENTIAL: confidencial
- SECRET: secreto
- TOP SECRET: ultra secreto
Um usuário no sistema só poderia ter acesso de leitura a um objeto se o seu clearance for maior ao igual à classificação do objeto. Para exemplificar, imagine que um usuário receba autorização para acesso a informações secretas e confidenciais, então ele terá acesso de leitura aos documentos que possuam a classificação secreta e a todos os níveis abaixo.
Para evitar que um usuário com uma classificação alta, altere a classificação indevidamente de um documento (SECRET -> CONFIDENTIAL) permitindo a leitura do mesmo por níveis inferiores, a escrita também é controlada, de forma que um usuário só poderá alterar uma informação se sua autorização for menor ou igual a classificação atual do documento. Desta forma, um usuário com classificação secreta, jamais conseguiria alterar a classificação para confidencial.
Este modelo prevê que usuários individuais não tenham escolha em relação a que permissões de acesso eles possuem ou a que objetos podem acessar.
Neste modelo, os usuários individuais não são considerados donos dos objetos, e não podem definir suas permissões – isso é realizado pelos administradores do sistema.
- Discretionary Access Control (DAC)- Controle de acesso discrecionário
Neste modelo, o usuário possui autoridade, para definir quais objetos são acessíveis. Um exemplo dessa característica, seria a utilização de ACL's (access control lists).
Uma lista de acesso (ACL) é uma lista que possui as autorizações de usuários em relação aos objetos que se deseja controlar. Uma ACL contem os usuários que terão acesso aos objetos e quais privilégios terão sobre eles.
Neste modelo, os usuários individuais são “donos” do objetos, tendo controle (discreção) total em quem deve ter permissões para acessar o objeto. Um usuário transforma-se em dono do objeto ao criá-lo.
Atualmente, o DAC é o modelo mais popular de controle de acesso, pela sua utilização em grande escala em sistemas operacionais comerciais. Todas as variantes do UNIX, o Netware e a série Windows NT, 2000 e XP utilizam o modelo DAC como seu modelo básico de controle de acesso. Estes sistemas operacionais utilizam extensamente a técnica de listas de controle de acesso para conceber a implementar as suas checagens de autorização, dispondo também do conceito de grupos de usuários para facilitar na administração e concessão de permissões.
O modelo DAC possui uma fraqueza inerente: o fato de que informação pode ser copiada de um objeto para outro, de modo que acesso a uma cópia é possível mesmo que o dono do objeto original não tenha provido acesso ao original. Usuários que possuem acesso ao objeto original podem inadvertidamente permitir a realização de cópias não-autorizadas, ao executar um programa “cavalo de tróia” que faça a cópia dos dados do objeto sem a explícita autorização ou cooperação do usuário.
Essa fraqueza do modelo DAC tornou-o insuficiente para sistemas militares, em que a informação precisava ter um alto nível de controle e ser resistente a ataque por cavalos de tróia, fomentando a criação do modelo MAC.
- Role-Based Access Control (RBAC) - Controle de Acesso baseado em papéis
Este modelo também é conhecido como Controle de acesso não discrecionário (Non-Discretionary Access Control), onde uma autoridade central determina/gerencia quais usuários podem ter acesso aos objetos controlados. A autorização é dada baseando-se no papel (role) que o usuário desempenha na organização (role-based) ou responsabilidades deste usuário na organização(task-based)
Em organizações em que temos mudanças constantes de funcionários, o modelo RBAC ajuda no sentido em que o perfil de acesso dos novos usuários será definido pelo titulo, papel ou responsabilidades deste usuária dentro da organização.
Papéis são criados para as várias funções de negócio da organização, e os usuários são associados a esses papéis de acordo com suas responsabilidades e qualificações. Usuários podem ser facilmente reassociados de um papel para outro. Papéis podem receber novas permissões de acesso à medida que novas aplicações ou funcionalidades são adicionadas ao sistema, e permissões podem ser revogadas sempre que necessário.
No modelo DAC temos que associar um usuário a cada um dos objetos, já no modelo RBAC, associamos o papel(role) ao objeto, tornando muito mais fácil e escalável a administração/gerenciamento do sistema de controle de acesso.
Referências
- Krutz, Ronald; Vines, Russel. The Cissp Prep Guide. Wiley, 2004. 2a Edição. Capítulo 2.
- Mattos, Cristiano. Sentinel: um engenho Java para controle de acesso RBAC. Universidade Federal de Pernambuco. Centro de Informática, 2003
- Puryear, Dustin. Comparing Access Control in Windows and Linux. NetworkWorld Website, 2010
Comentários