Um mecanismo de isolamento semelhante ao plegde está sendo desenvolvido no FreeBSD

Foi revelado que uma implementação foi proposta um mecanismo de isolamento de aplicativos para FreeBSD, que é uma reminiscência das chamadas de sistema fold and desvelar desenvolvidas pelo projeto OpenBSD.

O isolamento no plegde é feito proibindo o acesso a chamadas do sistema que não são usadas pelo aplicativo e divulgando abrindo seletivamente o acesso apenas a determinados caminhos de arquivo com os quais o aplicativo pode trabalhar. Para a aplicação, é formada uma espécie de whitelist de chamadas de sistema e caminhos de arquivo, sendo proibidas todas as outras chamadas e caminhos.

A diferença entre dobrado e revelado, desenvolvido para FreeBSD, tudo se resume a fornecer uma camada extra que permite isolar aplicativos com nenhuma ou mínima alteração em seu código. Lembre-se que no OpenBSD o plege e o unlock visam a integração total com o ambiente base e são implementados adicionando anotações especiais ao código de cada aplicação.

Para simplificar a organização da proteção, os filtros permitem evitar detalhes no nível de chamadas de sistema individuais e manipular classes de chamadas de sistema (entrada/saída, leitura de arquivo, gravação de arquivo, soquetes, ioctl, sysctl, início de processos, etc.) . As funções de restrição de acesso podem ser chamadas no código do aplicativo à medida que determinadas ações são executadas, por exemplo, o acesso a soquetes e arquivos pode ser fechado após a abertura dos arquivos necessários e o estabelecimento de uma conexão de rede.

O autor da porta de dobra e revelação para o FreeBSD destinado a fornecer a capacidade de isolar aplicações arbitrárias, para o qual se propõe o utilitário cortina, que permite aplicar às aplicações regras definidas em arquivo separado. A configuração proposta inclui um arquivo com configurações básicas que definem as classes de chamadas do sistema e caminhos de arquivos típicos específicos para determinadas aplicações (trabalho com som, redes, logs, etc.), além de um arquivo com regras de acesso para aplicações específicas.

O utilitário cortina pode ser usado para isolar a maioria dos utilitários, processos de servidor, aplicativos gráficos e até mesmo sessões inteiras de desktop que não foram modificadas. A cortina de compartilhamento com os mecanismos de isolamento fornecidos pelos subsistemas Jail e Capsicum é suportada.

também é possível organizar o isolamento aninhado, quando os aplicativos iniciados herdam as regras definidas pelo aplicativo pai, complementando-os com restrições separadas. Algumas operações do kernel (ferramentas de depuração, POSIX/SysV IPC, PTY) são adicionalmente protegidas por um mecanismo de barreira que impede o acesso a objetos do kernel criados por processos diferentes do processo atual ou pai.

Um processo pode configurar seu próprio isolamento chamando cortinactl ou usando as funções plegde() e desvelar() fornecidas pela biblioteca libcurtain, similar ao OpenBSD. O sysctl 'security.curtain.log_level' é fornecido para rastrear bloqueios enquanto o aplicativo está em execução.

O acesso aos protocolos X11 e Wayland é habilitado separadamente especificando as opções "-X"/"-Y" e "-W" ao iniciar a cortina, mas o suporte para aplicativos gráficos ainda não está suficientemente estabilizado e tem uma série de problemas não resolvidos ( problemas aparecem principalmente ao usar o X11, e o suporte Wayland é muito melhor). Os usuários podem adicionar restrições adicionais criando arquivos de regras locais (~/.curtain.conf). Por exemplo,

A implementação inclui o módulo do kernel mac_curtain para controle de acesso obrigatório (MAC), um conjunto de patches para o kernel do FreeBSD com a implementação dos drivers e filtros necessários, a biblioteca libcurtain para uso do plegde e funções reveladas em aplicativos, a cortina de utilitários, mostra a configuração arquivos, um conjunto de testes e patches para alguns programas de espaço do usuário (por exemplo, para usar $TMPDIR para unificar o trabalho com arquivos temporários). Sempre que possível, o autor tenta minimizar o número de alterações que exigem a correção do kernel e dos aplicativos.

Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir.


Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.