4.2 Sistemas de Controle de Acesso
4.2.1 DAC – Controle de Acesso Discricion´ario
Os modelos de controle de acesso discricion´ario e obrigat´orio tiveram sua origem no meio militar. Em 1983, o departamento de defesa dos Estados Unidos (DoD) publicou
os princ´ıpios desses dois modelos em um documento denominado “Trusted Computer
O DAC baseia-se na id´eia que os usu´arios ou sujeitos do sistema s˜ao propriet´arios
de objetos e, portanto, tˆem controle total sobre quem deve ter acesso aos objetos. No DAC um usu´ario torna-se dono do objeto ap´os cri´a-lo. Ele pode fornecer o direito de acesso
ao recurso para outros usu´arios e retir´a-lo quando entender necess´ario. Essas operac¸˜oes acontecem sem a intervenc¸˜ao do administrador do sistema.
O DAC restringe o acesso aos objetos do sistema baseado na identidade dos
usu´arios, grupos ou de ambos. A maneira mais comum de implementar uma pol´ıtica de controle de acesso no modelo discricion´ario ´e atrav´es de listas de controle de acesso
(ACL) localizadas junto aos objetos protegidos. Quando um sujeito tenta efetuar uma operac¸˜ao em um objeto, o monitor de referˆencia verifica na lista de controle de acesso do
objeto se existe alguma autorizac¸˜ao que concede o privil´egio. Existindo a autorizac¸˜ao, o acesso ´e concedido e, caso contr´ario, ele ´e bloqueado.
Uma ACL representa uma maneira eficaz de implementar uma matriz de controle
de acesso. A Tabela 4.2 exemplifica uma matriz de controle de acesso. Nela cada linha representa um sujeito do sistema e as colunas s˜ao utilizadas para designar os objetos. A
intersecc¸˜ao de uma linha e uma coluna informa quais as operac¸ ˜oes que o sujeito pode re- alizar sob determinado objeto. Caso esta intersecc¸˜ao esteja vazia (sem valor), n˜ao existe
nenhum tipo de acesso permitido sob o objeto para o sujeito em quest˜ao. O maior pro- blema encontrado nesse tipo de construc¸˜ao ´e que para um sistema muito grande, a tabela
torna-se extensa e parcialmente completa.
Arquivo 1 Arquivo 2 Arquivo 3 Processo 1
Jo˜ao Ler, Escrever — Escrever —
Maria — Executar — Suspender
Fernando — Ler Ler —
Rodrigo Ler — — —
Tabela 4.2: Exemplo de uma matriz de controle de acesso
Quando utiliza-se listas de controle de acesso, as colunas da matriz de acesso tornam-se listas de usu´arios com capacidades de efetuar operac¸˜oes sob o objeto apontado
em cada linha. A principal vantagem dessa organizac¸˜ao ´e a facilidade de verificar quais
usu´arios possuem acesso a determinado objeto, assim como as operac¸ ˜oes que eles podem realizar sob esse objeto. Outra vantagem ´e que a lista de permiss˜oes para cada recurso
n˜ao precisa ser muito longa; basta unir os usu´arios com caracter´ısticas afins em grupos e utiliz´a-los no processo de autorizac¸˜ao. A Tabela 4.3 exp˜oe como s˜ao organizadas as
permiss˜oes em uma ACL.
Objeto
Arquivo 1 Jo˜ao: Ler, Escrever Rodrigo: Ler
Arquivo 2 Maria: Executar Fernando: Ler
Arquivo 3 Jo˜ao: Escrever Fernando: Ler
Processo 1 Maria: Suspender
Tabela 4.3: ACL – Lista de Controle de Acesso
Outro modo de representar uma matriz de controle de acesso ´e atrav´es do uso de
capabilities. As capabilities s˜ao qualidades ou habilidades que determinado sujeito pos-
sui para realizar alguma tarefa. A Tabela 4.4 mostra o funcionamento desse esquema.
Observa-se que cada usu´ario possui sua pr´opria capability, representada atrav´es de uma lista que cont´em todos objetos e os direitos de acesso correspondente ao sujeito. A
principal vantagem desse m´etodo ´e a facilidade de visualizac¸˜ao e revogac¸˜ao de direitos atribu´ıdos a um usu´ario. Por´em, ´e dif´ıcil verificar todos os sujeitos que possuem acesso a
um objeto em particular. ´E complicado revogar o acesso a determinado objeto para todos os usu´arios, pois seria necess´ario um exame completo de todas as capabilities do modelo.
O modelo de controle de acesso discricion´ario tornou-se muito popular por sua utilizac¸˜ao em grande escala pelos sistemas operacionais. Os sistemas Unix e a s´erie Win-
dows NT, 2000 e XP utilizam o modelo DAC como seu modelo b´asico de controle de acesso [dAM 03]. O mecanismo de controle de acesso encontrado nos sistemas operaci-
onais Unix ´e denominado “bits de protec¸˜ao” (protection bits) [FER 03].
O esquema de bits de protec¸˜ao ´e similar `as ACLs; no entanto, ao inv´es de associar usu´arios e operac¸ ˜oes aos objetos, bits s˜ao associados com eles. Nesse modo de protec¸˜ao os
Sujeito
Jo˜ao Arquivo 1: Ler, Escrever Arquivo 3: Escrever Maria Arquivo 2: Executar Processo 1: Suspender
Fernando Arquivo 2: Ler Arquivo 3: Ler
Rodrigo Arquivo 1: Ler
Tabela 4.4: Lista de capabilities
usu´arios s˜ao divididos em trˆes categorias: propriet´ario do arquivo, grupo e outros (todos
os demais). Para cada categoria s˜ao designados trˆes bits, representando as operac¸˜oes de leitura, escrita e execuc¸˜ao. Um arquivo que possui a permiss˜ao (rwx) (r--) (---)
possibilita ao seu propriet´ario realizar qualquer operac¸˜ao sobre ele. Ao grupo apenas ´e permitido o acesso de leitura e nenhum acesso ´e fornecido aos demais usu´arios.
O modelo DAC possui algumas fraquezas importantes. A principal delas ´e que as pol´ıticas discricion´arias n˜ao controlam a disseminac¸˜ao da informac¸˜ao [ROS 04]. Por
exemplo, quando um usu´ario A permite que o usu´ario B tenha acesso de leitura ao arquivo, ningu´em impede B de copiar o conte´udo desse arquivo para outro objeto, do qual possui
total controle (ele ´e o propriet´ario). O usu´ario B pode agora fornecer o acesso a essa informac¸˜ao sem o pr´evio consentimento do usu´ario A.