Lista de controle de acesso - Access-control list

Em segurança de computador , uma lista de controle de acesso ( ACL ) é uma lista de permissões associadas a um recurso do sistema (objeto). Uma ACL especifica quais usuários ou processos do sistema têm acesso concedido aos objetos, bem como quais operações são permitidas em determinados objetos. Cada entrada em uma ACL típica especifica um assunto e uma operação. Por exemplo, se um objeto de arquivo tem uma ACL que contém(Alice: ler, escrever; Bob: ler), isso daria a Alice permissão para ler e gravar o arquivo e apenas a Bob permissão para lê-lo.

Implementações

Muitos tipos de sistemas operacionais implementam ACLs ou têm uma implementação histórica; a primeira implementação de ACLs foi no sistema de arquivos do Multics em 1965.

ACLs do sistema de arquivos

Uma ACL do sistema de arquivos é uma estrutura de dados (geralmente uma tabela) contendo entradas que especificam direitos de usuário ou grupo individuais para objetos específicos do sistema, como programas, processos ou arquivos. Estas entradas são conhecidas como entradas de controle de acesso (ACEs) no Microsoft Windows NT , OpenVMS e Unix-like sistemas operacionais , como Linux , MacOS e Solaris . Cada objeto acessível contém um identificador para sua ACL. Os privilégios ou permissões determinam direitos de acesso específicos, como se um usuário pode ler, gravar ou executar um objeto. Em algumas implementações, uma ACE pode controlar se um usuário, ou grupo de usuários, pode ou não alterar a ACL em um objeto.

Um dos primeiros sistemas operacionais a fornecer ACLs de sistema de arquivos foi o Multics . PRIMOS apresentava ACLs pelo menos já em 1984.

Na década de 1990, os modelos ACL e RBAC foram amplamente testados e usados ​​para administrar permissões de arquivo.

POSIX ACL

O grupo de trabalho POSIX 1003.1e / 1003.2c fez um esforço para padronizar ACLs, resultando no que agora é conhecido como "POSIX.1e ACL" ou simplesmente "POSIX ACL". Os rascunhos do POSIX.1e / POSIX.2c foram retirados em 1997 devido aos participantes perderem o interesse em financiar o projeto e se voltarem para alternativas mais poderosas, como NFSv4 ACL. Em dezembro de 2019, nenhuma fonte ativa do rascunho podia ser encontrada na Internet, mas ele ainda pode ser encontrado no Internet Archive .

A maioria dos sistemas operacionais Unix e semelhantes a Unix (por exemplo, Linux desde 2.5.46 ou novembro de 2002, BSD ou Solaris ) suportam ACLs POSIX.1e (não necessariamente rascunho 17). ACLs geralmente são armazenados nos atributos estendidos de um arquivo nesses sistemas.

NFSv4 ACL

As ACLs NFSv4 são muito mais poderosas do que as ACLs de rascunho POSIX. Ao contrário de ACLs POSIX de rascunho, as ACLs NFSv4 são definidas por um padrão realmente publicado, como parte do Network File System .

NFSv4 ACLs são suportados por muitos sistemas operacionais Unix e semelhantes ao Unix. Os exemplos incluem AIX , FreeBSD , Mac OS X começando com a versão 10.4 (" Tiger ") ou Solaris com sistema de arquivos ZFS , com suporte para ACLs NFSv4 , que fazem parte do padrão NFSv4. Existem duas implementações experimentais de NFSv4 ACLs para Linux: NFSv4 ACLs suporte para sistema de arquivos Ext3 e o Richacls mais recente , que traz suporte NFSv4 ACLs para sistema de arquivos Ext4 . Tal como acontece com POSIX ACLs, NFSv4 ACLs geralmente são armazenados como atributos estendidos em sistemas do tipo Unix.

As ACLs do NFSv4 são organizadas de forma quase idêntica às ACLs do Windows NT usadas no NTFS. NFSv4.1 ACLs são um superconjunto de ACLs NT e ACLs de rascunho POSIX. O Samba oferece suporte ao salvamento de ACLs NT de arquivos compartilhados por SMB de várias maneiras, uma das quais é como ACLs codificados por NFSv4.

ACLs do Active Directory

O serviço Active Directory da Microsoft implementa um servidor LDAP que armazena e dissemina informações de configuração sobre usuários e computadores em um domínio. O Active Directory estende a especificação LDAP adicionando o mesmo tipo de mecanismo de lista de controle de acesso que o Windows NT usa para o sistema de arquivos NTFS. O Windows 2000 então estendeu a sintaxe para entradas de controle de acesso de forma que elas pudessem não apenas conceder ou negar acesso a objetos LDAP inteiros, mas também a atributos individuais dentro desses objetos.

ACLs de rede

Em alguns tipos de hardware de computador proprietário (em particular, roteadores e switches ), uma lista de controle de acesso fornece regras que são aplicadas a números de porta ou endereços IP que estão disponíveis em um host ou outra camada 3 , cada um com uma lista de hosts e / ou redes autorizadas a usar o serviço. Embora também seja possível configurar listas de controle de acesso com base em nomes de domínio de rede , essa é uma ideia questionável porque os cabeçalhos TCP , UDP e ICMP individuais não contêm nomes de domínio. Conseqüentemente, o dispositivo que aplica a lista de controle de acesso deve resolver nomes separadamente para endereços numéricos. Isso apresenta uma superfície de ataque adicional para um invasor que está tentando comprometer a segurança do sistema que a lista de controle de acesso está protegendo. Os servidores e roteadores individuais podem ter ACLs de rede. As listas de controle de acesso geralmente podem ser configuradas para controlar o tráfego de entrada e saída e, neste contexto, são semelhantes aos firewalls . Assim como os firewalls, as ACLs podem estar sujeitas a regulamentações e padrões de segurança como PCI DSS .

Implementações de SQL

Algoritmos ACL foram portados para SQL e sistemas de banco de dados relacionais . Muitos sistemas baseados em SQL "modernos" (anos 2000 e 2010) , como sistemas de planejamento de recursos empresariais e gerenciamento de conteúdo , têm usado modelos ACL em seus módulos de administração.

Comparando com RBAC

A principal alternativa ao modelo ACL é o modelo de controle de acesso baseado em função (RBAC). Um "modelo RBAC mínimo", RBACm , pode ser comparado a um mecanismo ACL, ACLg , onde apenas grupos são permitidos como entradas na ACL. Barkley (1997) mostrou que RBACm e ACLg são equivalentes.

Em implementações SQL modernas, as ACLs também gerenciam grupos e herança em uma hierarquia de grupos. Portanto, as "ACLs modernas" podem expressar tudo o que o RBAC expressa e são notavelmente poderosas (em comparação com as "ACLs antigas") em sua capacidade de expressar a política de controle de acesso em termos da maneira como os administradores veem as organizações.

Para intercâmbio de dados e para "comparações de alto nível", os dados ACL podem ser convertidos em XACML .

Veja também

Referências

Leitura adicional