Curso Livre de Segurança de Sistemas/Tecnologia e Princípios de Segurança de Computadores/Controle de Acesso/Caderno Colaborativo

O controle de acesso é uma prevenção ao uso não autorizado de um recurso, ou seja, é controlado quem pode e quem não pode acessar determinada informação dentro de um sistema. Esse controle é muito importante para manter a segurança de um sistema, visto que libera acesso apenas a usuários autorizados.

Para esse controle, existem três entidades: a autenticação (verifica se o usuário é válido), a autorização (depois de validar, é buscado as permissões deste usuário, autorizando-o ou não a acessar o sistema como um todo ou partes específicas dele) e a auditoria (registra as atividades dos usuários).

Políticas de controle de acesso editar

São responsáveis por definir os tipos de acesso permitidos, sob quais circunstâncias e quem pode acessar. Elas são dividas em três categorias:

  • Controle de acesso discricionário - DAC: controla o acesso com base na identidade do usuário requisitante e nas autorizações que ele possui para acessar (ou não) um recurso. Essa política é denominada discricionária, pois uma entidade pode ter acesso a recursos que modificam o acesso de outras entidades para que possam acessar outros recursos.
  • Controle de acesso mandatório - MAC: essa política é baseado na comparação de rótulos de segurança com autorizações de seguranaça. É denominada obrigatória pois uma entidade que tem acesso a um recurso não pode alterar o acesso de outras entidades para que elas acessem esse recurso.
  • Controle de acesso baseado em papéis - RBAC: controle baseados nos papéis que os usuário desempenham no sistema e nas regras que definem os recursos que podem ser acessados pelos papéis.

Funções do Controle de Acesso editar

É uma aplicação, basicamente ele mostra se terá acesso ou não terá acesso, tendo como sua principal função assegurar informações de pessoas não autorizadas.

O controle de acesso é crucial para a segurança física de um certo local, destaca-se funções do sistema de controle de acesso; Dissuadir; Gerenciar; Detectar; Responder.

Dissuadir O controle de acesso, deve criar um ambiente seguro, capaz de dissuadir o impostor em potencial, criando um efeito capaz de desmotivar o invasor

Gerenciar Tendo como função gerenciar a movimentação, é capaz de, identificar o agente solicitante; conferir a permissão de acesso; bloquear o acesso de pessoas não autorizadas; autorizar o acesso ; registrar a movimentação caso autorizado; identificar, alertar e registar acesso não autorizado; permitir consulta de relatórios de acessos.

Detectar no que se refere a Segurança da tecnologia da informação, a presença de pessoas aleta e motiva na execução de atividades, somada a presença de dispositivos de controle de acesso, assim envia uma mensagem ao suposto criminoso, na qual não tem autorização, avisando que sua ação esta sendo detectada e será detido, esse risco de detecção reduz o nível de conforto e facilidade do criminoso.

Responder O controle de acesso deve ser munido de uma pronta resposta para agir em caso de tentativa de invasão, tendo como o objetivo de interceptar e neutralizar o "criminoso" o mais rápido possível.

Requisitos de controle de acesso editar

Diversos aspectos devem ser suportados por um sistema de controle de acesso, alguns deles são:

  • Entrada confiável: Um sistema de controle de acesso julga que um usuário é autêntico, por esse motivo é necessário haver um um mecanismo de autenticação como porta de entrada para um sistema de controle de acesso.
  • Políticas abertas e fechadas: Em uma política fechada, somente acessos especificamente autorizados são permitidos e em uma política aberta, as autorizações especificam quais acessos são proibidos.
  • Suporte para especificações mais detalhadas e menos detalhadas: O sistema deve suportar especificações mais detalhadas, permitindo que o acesso seja regulado no nível de registros individuais em arquivos, e campos individuais dentro de registros.
  • Privilégio mínimo: O controle de acesso deve ser implementado de modo que cada entidade de sistema receba a quantidade mínima de recursos de sistema e de autorizações necessárias para realizar o seu trabalho, limitando danos causados por erros ou atividades não autorizadas.
  • Políticas administrativas: São necessárias para especificar quem pode adicionar, eliminar ou modificar as regras de autorização.

Controle de Acesso Discricionário editar

O controle de acesso discrionário (DAC), garante que uma entidade possa ganhar direitos de acesso, isso permite com que a mesma, por sua própria vontade, possa acessar ou habilitar recursos de outras entidades. A matriz de acesso foi formulada inicialmente por Lampson e refinada por Graham e Denning, sendo uma abordagem geral para o DAC, em relação aos sistemas de gerenciamento e sistemas operacionais.

Uma das dimensões da matriz de acesso, é composta por sujeitos identificados, estes podendo ou não ter acesso aos recursos disponíveis. Esse eixo da matriz, consiste geralmente de uma lista de usuários individuais ou em grupo, com o acesso aos recursos podendo ser de forma controlada para equipamentos de rede, aplicações, terminas, sistemas, entre outros. Enquanto o outro eixo da matriz, representa os objetos acessíveis aos usuários, estes podendo ser campos de dados individuais, registros, arquivos, e databases. Cada valor novo na matriz referencia os direitos de acesso de um unico usuário e de um específico objeto [1:1].

A matriz de acesso utiliza decomposição, podendo ser implementada de duas maneiras distintas, são eles, listas de controle de acesso e rótulos de capacidade.

  • Listas de Controle de Acesso (ACLs): Dado o objeto, a ACL lista os invdivíduos e os direitos de acesso permitidos pelo mesmo a esse objeto. A ACL contém entrada pública ou padrão, de forma a permitir que usuários que não estão na lista, possuam um direito de acesso especial, seguindo a regra de somente leitura ou do privilégio mínimo. Não é adequado utilizar as ACLs, quando é necessário determinar direitos de acesso disponíveis a determinado usuário.
  • Rótulos de capacidade: Dado o usuário, os rótulos de capacidade determinam os objetos e operações permitidas pelo mesmo. Onde cada indivíduo em particular possui uma quantidade de rótulos, e este rótulo pode ou nao ser permitido o compartilhamento. Possuem diferenças de segunça maiores do que se utilizada a abordagem das ACLs, pois podem estar espalhados no sistema. Os rótulos, por definição, não devem ser fasificáveis, e devem ser protegidas e garantidas. Para esse trabalho, geralmente o sistema operacional (SO) é escolhido, de forma que o SO mantenha os rótulos em nome dos usuários, contidos em uma região inacessível aos indivíduos. Outra forma de implementação, consiste em acrescentar um token não fasificável, contendo uma código criptográfico ou uma senha longa e aleatória. Assim esse token é verificado toda vez em que o recurso é convocado. Não é adequado utilizar os rótulos de capacidade, quando é necessário determinar a lista de usuários com certos direitos de acesso a determinado recuso.

Controle de acesso baseado em papéis editar

O conceito de controle de acesso baseado em papéis surgiu junto com os primeiros sistemas computacionais multiusuários interativos, por volta da década de 70. Esse modelo possibilita o gerenciamento do controle de acesso por meio da adição de um componente que realiza a intermediação entre usuários e permissões. Esse modelo leva em consideração quatro componentes básicos, que são:

  • Usuário: Pode ser pessoas ou agentes autônomos, como por exemplo, robôs, computadores ou agentes de software.
  • Permissões: É a possibilidade de poder executar uma ou mais ações ou operações mediante os objetos do sistema. Podendo ser esse objetos arquivos, conexões de redes ou banco de dados e a permissões são variadas conforme a semântica dos objetos.
  • Papéis: São funções distintas dentro do sistema ou ambiente organizacional, por exemplo Administrador.
  • Sessão: Tempo ou período em que ocorre a operação.

Os papéis têm a função de ser o intermediários entre os usuários e as permissões, como citado anteriormente. Eles ao invés de disponibilizar a permissões diretamente para o usuário, as permissões são concedidas a esses papéis. Os usuários são associados a um ou mais desses papéis. Assim que um usuário acessa um sistema, é inicializado uma sessão, e durante ela, geralmente há um ou mais papéis ativos. Esse modelo possibilita que restrições sejam impostas na inicialização de papéis, assim impedindo que haja a ativação de papéis que possuam conflito de interesses ou impossibilita que o próprio usuário possua papéis conflitantes.

Como a relação entre um usuário e os papéis de 1 para * (muitos) e a relação entre papéis e permissões, um usuário pode possuir vários papéis, que por sua vez, pode possuir várias permissões. Essa utilização de relação dentre esses componentes básicos permite que o sistema possua flexibilidade e granularidade, garantindo que um usuário não consiga mais acessos a recursos. Um usuário utiliza uma sessão e essa sessão determina quais papéis ele possui, que são somente os papéis que ele necessita para realizar uma tarefa.

Hierarquias de Papéis editar

Uma hierarquia de papéis é um modelo para atribuir uma relação hierárquica entre papéis. Nesse sentido, papéis com privilégios mais altos possuem maiores autoridades para acessar recursos. Um papel de nível inferior/subordinado possuem um conjunto específico de privilégios em relação ao papel superior.

Esse modelo utiliza o conceito de herança para que um papel de nível superior a outro papel possua todos os privilégios de seu papel subordinado e atribuir privilégios específicos para o mesmo. Além do mais, um papel pode possuir vários papéis subordinados, que por sua vez garantem a ele seus privilégios.

A utilização de hierarquia de papéis acarreta na simplificação de definir relações entre permissões, permitindo que usuários que possuem papéis diferentes possuam um conjunto de permissões iguais.

O modelo NIST define dois tipos de hierarquia de papéis:

  • Hierarquias Gerais: Permite que um papel herde permissões de vários papéis subordinados e que papéis subordinados possam ser herdados de diferentes papéis superiores.
  • Hierarquias Limitadas: Restringe papeis superiores a herdarem somente de um único papel subordinado.

Restrições - RBAC2 editar

As restrições acabam fornecendo um modo de se adaptar o RBAC as politicas administrativas e de segurança de uma organização, no que diz respeito a restrições, elas são uma relação definida entre papeis ou uma condição vinculada a papeis. Das restrições conhecidas, temos: Papeis mutuamente exclusivos, Cardinalidade e papeis com pré-requisitos, que serão abordados a seguir

Papeis mutuamente exclusivos editar

A simples modo, papeis mutuamente exclusivos dizem respeito a papeis tais que um usuário só pode ser designado para um único papel do conjunto de papeis, esta limitação pode ser estática ou dinâmica no que diz respeito a um usuário ser designado a somente um dos papeis do conjunto de possibilidades no decorrer da sessão. A restrição mutua exclusiva diz respeito ao provimento de suporte a uma separação de deveres e capacidades dentro da organização. Esta separação pode ser melhorada ou reforçada através do uso de designações mutuamente exclusivas de permissão. Com este adicional no quesito restrição, as propriedade de um conjunto de papeis mutuamente exclusivos são:

  • Um usuário só pode ser designado a um papel do conjunto, pode ser durante a sessão ou de modo estático;
  • Qualquer permissão/direito de acesso só pode ser concedida a um único papel no conjunto.
Cardinalidade editar

Consiste em estabelecer um numero máximo de papeis, como exemplo temos a designação de um numero máximo de usuários vinculados a um papel, outro exemplo, diz respeito ao sistema poder impor uma restrição ao numero de papeis dos quais um usuário é designado, ou também um numero de papeis que um usuário pode acessar durante uma sessão.

Papeis com pré-requisitos editar

Diz respeito a que um usuário só pode ser designado a um papel se estiver vinculado a outro papel especificado. este tipo de restrição é muito utilizado para o estabelecimento de hierarquias nos sistemas organizacionais empresariais.

Controle de acesso baseado em atributos editar

No Controle de acesso baseado em atributos (ABAC), o acesso não é concedido com base nos direitos do sujeito atribuídos a um usuário após a autenticação, mas com base nos atributos do próprio usuário. O usuário deve fornecer ao mecanismo de controle de acesso as chamadas declarações sobre seus atributos. Uma política de controle de acesso baseada em atributos especifica os requisitos que devem ser atendidos para conceder acesso a um objeto. Por exemplo, a reivindicação pode ser "maior de 18 anos". Qualquer usuário que possa demonstrar esse direito tem acesso concedido. Os usuários podem ser anônimos quando a autenticação e a identificação não forem estritamente necessárias.

Sistema de arquivos Unix editar

O sistema de arquivos Unix é um método lógico de organizar e armazenar grandes quantidades de informações de uma maneira que o torna fácil de gerenciar. Um arquivo é a menor unidade na qual as informações são armazenadas. O sistema de arquivos Unix possui vários recursos importantes. Todos os dados no Unix são organizados em arquivos. Todos os arquivos são organizados em diretórios. Esses diretórios são organizados em uma estrutura semelhante a uma árvore chamada sistema de arquivos.

Os arquivos no sistema Unix são organizados em uma estrutura de hierarquia de vários níveis conhecida como árvore de diretórios. No topo do sistema de arquivos está um diretório chamado “root” que é representado por um “/”.

No Unix, um arquivo é uma sequência de bytes sem estrutura. Qualquer estrutura necessária é adicionada pelos programas que manipulam os dados no arquivo. O próprio Linux não conhece a estrutura interna de um arquivo de banco de dados - tudo o que ele faz é retornar bytes.

O Unix faz o possível para tratar cada dispositivo conectado a ele como se fosse uma lista de bytes. Portanto, tudo, incluindo placas de rede, discos rígidos, partições, teclados, impressoras e arquivos simples são tratados como objetos semelhantes a arquivos e cada um tem um nome no sistema de arquivos:

A memória do seu computador é /dev/mem. Seu primeiro disco rígido é /dev/sda. Um terminal (teclado e tela) é /dev/tty1.

Inodes Unix editar

Como acontece com a maioria das coisas relacionadas ao computador, as coisas no sistema de arquivos não são armazenadas no disco por nome, elas são armazenadas usando uma estrutura de dados numerada chamada de número de índice ou inode .

Tudo em um sistema de arquivos Unix tem um número de inode exclusivo que gerencia o armazenamento e os atributos para aquela coisa: cada arquivo, diretório, arquivo especial, etc. Arquivos e diretórios são gerenciados com inodes.

Um inode Unix gerencia o espaço de armazenamento em disco para um arquivo ou diretório. O inode contém uma lista de ponteiros para os blocos de disco que pertencem a esse arquivo ou diretório.

Os blocos de disco armazenam os dados para o inode. Quanto maior for o arquivo ou diretório, mais ponteiros de bloco de disco serão necessários no inode.

Também armazenados no inode estão os atributos do arquivo ou diretório: permissões, proprietário, grupo, tamanho, tempos de acesso / modificação, etc.



[1]

  1. STALLINGS, William. BROWN, Lawrie. Segurança de Computadores. 2ed.