Discretionary Access Control - DAC

A evolução do controle de acessos, que em sistemas operacionais mais antigos era nenhuma, permitiu o surgimento de várias abordagens para resolver os problemas de segurança de acesso não autorizado. Uma dessas abordagens que surgiu foi a DAC [BELL 1975] (Discretionary Access Control). Controle de acesso discricionário é um tipo de controle de acesso definido no Trusted Computer System Evaluation Criteria, mais conhecido como Orange Book [NSA 1985], que depois foi substituído em 2005 pela norma ISO/IEC 15408:2005, também chamado de Common Criteria [ISO 2005].

Figure Figura 1.3:: Orange Book
\includegraphics[width=10em]{orangebook.eps}

A principal característica da DAC é que um recurso possui um ou mais donos e grupos, que especifica quem pode ou não acessar um recurso específico [LAMPSON 1971]. Apesar de o Orange Book não especificar o conceito de ``dono'' (owner) de um objeto que controla os seus acessos, na prática isso ocorre, provavelmente porque muitos sistemas que implementam DAC usam esse conceito de ``dono''. Nesse modelo, se um usuário é dono de um objeto (um arquivo, por exemplo), ele pode conceder a outros usuários a permissão de acessá-lo em um modo qualquer de operação. Posteriormente, essa permissão pode ser revogada, a qualquer momento.

Com DAC existem apenas duas grandes categorias de usuários: Administradores e Não-administradores. Para alguns serviços e programas rodarem com nível elevado de privilégio, as escolhas são poucas e muitas vezes opta-se pelo completo acesso de administrador. Para os serviços e programas funcionarem de maneira segura, é usado o princípio de dar privilégios mínimos para sua execução. Mesmo assim, essa abordagem não consegue atender as necessidades de segurança de maneira satisfatória, pois ainda assim ela é muito permissiva. Por exemplo, um programa para navegação na internet não precisaria ter acesso a leitura ou escrita arquivos fora do diretório home do usuário, ou até mesmo um servidor web como o apache, não precisaria ter acesso a arquivos sensíveis para o sistema. Isso vai contra o principio de menor privilégio que o DAC tenta aplicar em serviços, expondo a sua fraqueza na aplicação de segurança de programas e serviços. Ainda existem os serviços que devem rodar como super usuário; caso alguma vulnerabilidade nesses serviços seja descoberta e não corrigida, pode comprometer um sistema inteiro.

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, 2003, XP e Vista utilizam o modelo DAC 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.

Todos os mecanismos DAC possuem uma falha fundamental que é de não reconhecer a diferença entre usuários humanos e programas de computador, portanto o DAC não está fornecendo ao usuário a habilidade de usar o acesso, ao invés disso, está passando essa habilidade aos softwares. Por exemplo, quando um usuário executa um programa qualquer, o software executado herda todos os poderes de acesso do usuário que o executou. O DAC assume que está em um ambiente em que todos os programas são confiáveis em sem falhas, o que é bem distante do atual mundo real. Além disso, a informação pode ser copiada de um objeto para outro, e a informação pode ser acessada nesse segundo, mesmo que o dono do objeto original não tenha concedido permissão. Com essas fraquezas, o modelo DAC tornou-se insuficiente para sistemas militares, onde os sistemas precisavam ter um alto nível de controle e ser resistente a diversos tipos de ataques. Este foi o principal fator motivador da criação do modelo MAC.

Jeronimo Zucco 2008-04-26