Modelos de Segurança

Toda organização que se preocupa com segurança (o que deveria ser consenso em todas as empresas) possui uma política de segurança. A política de segurança determina o que pode ou não pode ser feito pela empresa e seus empregados quanto aos dados e informações que são manipulados.

Um modelo de segurança mapeia os objetivos abstratos de uma política de segurança em algo concreto e explícito, na forma de uma estrutura de dados e técnicas, para efetivar o determinado na política. Geralmente os modelos de segurança são representados como modelos matemáticos ou lógicos, sendo a partir desses modelos construídos os mecanismos de controles necessários para garantir o determinado na política de segurança. Existem vários modelos de segurança disponíveis e que podem auxiliar na implantação dos controles necessários. Ao longo desse artigo irei falar de alguns modelos de segurança disponíveis na literatura.

Modelo Bell-LaPadula

O modelo de segurança Bell-LaPadula possui foco em garantir a confidencialidade dos dados. Foi desenvolvido na década de 70 para prevenir com que informações secretas fossem acessados de forma descontrolada. Esse modelo foi criado pelo governo norte-americano para auxiliar sistemas computacionais a armazenar e utilizar de informações sensíveis. Um sistema que implementa o modelo de segurança Bell-LaPadula utiliza um sistema de segurança multinível, pois o modelo estabelece diferentes credenciais (clearances) para uso do sistema, sendo que o sistema processa os dados de acordo com diferentes níveis de classificação da informação.

Existem três principais tipos de propriedades de acesso que são definidos pelo modelo de segurança Bell-LaPadula e que podem ser utilizados de acordo com a conveniência:

  • Propriedade simples: dado um usuário de determinado nível, esse não poderá ler dados de níveis de acessos superiores. “no read up“. Se determinado usuário precisar acessar dados de um nível acima, o usuário deverá primeiro ter sua classificação de acesso modificada.
  • Propriedade estrela: dado um usuário de determinado nível, esse não poderá alterar dados de níveis de acesso inferiores. “no write up“.
  • Propriedade de estrela discricionária: nesse nível de acesso o usuário poderá realizar operações de leitura e escrita apenas no nível de classificação da informação que esteja.

Modelo Biba

No modelo de segurança Biba o foco é na integridade dos dados. Ele não foca na confidencialidade dos dados, mas apenas em mantêm-los íntegros de modificações não autorizadas. O proposto pelo modelo de segurança Biba é evitar com que níveis inferiores de acesso possam afetar a integridade de níveis superiores.

Da mesma forma que no modelo Bell-LaPadula existem propriedades que podem ser utilizadas para diferenciar os acessos conforme a seguir:

  • Propriedade de axioma simples: um usuário não pode escrever dados a um objeto de um nível de integridade superior (“no write up“). Ou seja, Bob não poderá contribuir na edição de um documento de Alice, pois Alice possui um nível acima que Bob.
  • Propriedade * de integridade axioma: um usuário não pode ler dados de um nível de integridade inferior (“no read down“). Nesse caso, Bob não poderá sequer ler um documento de nível inferior para não potencializar a quebra de integridade de seu próprio nível.
  • Propriedade de invocação: um usuário não pode requisitar por um serviço em um nível de integridade superior. Isso evita com que Bob faça uma requisição para um serviço que possa possuir nível para alterar dados que Bob não poderia.

Modelo Clark-Wilson

O modelo de segurança Clark-Wilson foi desenvolvido com o propósito de garantir a integridade de dados, da mesma forma que o modelo Biba. No entanto utiliza de outra abordagem para isso. Esse modelo utiliza dos seguintes elementos:

  • Usuários: são os agentes ativos.
  • Procedimentos de transformação (TP – Transformation procedures): são as operações para realizar as ações de leitura, escrita e modificação de dados.
  • Dados restritos (CDI – Constrained data itens): dados classificados e que podem ser alterados apenas com o uso de TPs.
  • Dados não restritos (UDI – Unsconstrained data itens): dados não classificados ou de acesso irrestrito e que podem ser alterados diretamente pelos usuários.
  • Procedimentos de verificação de integridade (IVP – Integrity verification procedures): verifica a consistência dos dados restritos.

O modelo Clark-Wilson foca em transações bem definidas e separação de funções para garantir a integridade de dados. Uma transação bem definida são as operações necessárias para transformar um dado de uma forma para outra. Ou seja, se um usuário precisa realizar uma alteração de dados restritos, apenas será possível efetivar a mudança através de uma TP. O fluxo sempre ocorrerá para dados restritos da seguinte forma:

usuário -> programa (TP) -> objeto (CDI)

Esse fluxo é chamado de access triple. Sempre que o objeto for CDI é necessário ocorrer. No entanto, caso seja requerido o acesso à dados não restritos (UDI), o usuário poderá realizar as ações diretamente a esses.

Considerando que se trata de um modelo focado no serviço de segurança integridade, o IVP garante que todas as operações sigam os fluxos corretos.

Modelo de Não Interferência

Esse é um modelo multinível que propõe um ambiente em que ações tomadas em diferentes níveis não interfiram uma com as outras. Esse modelo não é focado especificamente no fluxo dos dados, mas o que os usuários possuem de conhecimento sobre o ambiente e impedir que níveis diferentes interajam. Como o nome do modelo sugere, o proposto é a divisão efetiva entre os diferentes níveis. O foco deve modelo é atuar contra covert channels.

Modelo Brewer and Nash

O modelo Brewer and Nash, também chamado de Modelo Chinese Wall, determina que um usuário poderá escrever à um objeto apenas se, e apenas se, o mesmo usuário não puder acessar a outro objeto. Ou seja, é um sistema de controle de acesso dinâmico que propõe evitar conflitos de interesses. Um exemplo seria um funcionário de uma empresa que atende a diferentes outras empresas de um mesmo segmento de mercado. O funcionário não poderá ter acesso á dados de funcionários que trabalhem na prestação de serviços das demais empresas do mesmo segmento.

Modelo Graham-Denning

O modelo de segurança Graham-Denning pretende ser mais específicos que os anteriores. Todos os modelos até então apresentados são bastante abstratos e não fazem alusão de como os controles efetivamente serão implementados em um sistema real. O modelo de segurança Graham-Denning propõe algo mais específico e mais próximo a implementação de controles reais. Para tanto possui oito primitivas básicas:

  • Como seguramente criar um objeto.
  • Como seguramente criar um usuário.
  • Como seguramente remover um objeto.
  • Como seguramente remover um usuário.
  • Como seguramente prover direitos de acesso de leitura.
  • Como seguramente prover direitos de acesso.
  • Como seguramente prover direitos de acesso para remoção.
  • Como seguramente transferir direitos de acesso.

Essas primitivas podem parecer óbvias ou insignificantes, mas na construção de sistemas críticos todas devem ser consideradas. Se alguma dessas funcionalidades não for adequadamente construídas nos softwares poderá expor o ambiente a riscos.

Modelo Harrison-Ruzzo-Ullman (HRU)

No modelo de segurança Harrison-Ruzzok-Ullman (HRU) foca nos direitos de acesso de um usuário a realizar ações específicas. Um usuário pode realizar apenas um conjunto finito de operações em objetos. Quanto mais simples mais fácil efetivar a segurança do ambiente. Ou seja, o risco é menor se for possível construir regras de acesso onde um usuário pode enviar apenas um conjunto limitado de comandos determinados. No entanto em alguns ambientes não será possível um conjunto pequeno de permissões de acesso, o que necessariamente aumentará a complexidade e poderá resultar em acessos não devidos.

O modelo HRU é utilizado por designers de softwares para mapear acessos e verificar se não há vulnerabilidades nos acessos concedidos.

Por fim…

Essencialmente todos os modelos de segurança são formas abstratas de fluxos e primitivas. Nenhum deles propõe uma solução direta aos problemas de segurança no desenvolvimento de aplicações, mas todos fornecem orientações de como poderá ser o meio para a implementação dos recursos.

Qualquer dúvida ou necessidade de maior esclarecimento os comentários estão à disposição.

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *