Usuário dedicado vs selinux

Usuário dedicado vs selinux

Quais são as vantagens e desvantagens de executar um processo com um usuário dedicado (não root) em comparação com o SELinux (onde um usuário SE pode estar vinculado a um usuário Linux)?

Responder1

Resposta curta: a vantagem de usar um usuário selinux dedicado para cada serviço é o aumento da segurança/separação de privilégios que ele permite. Por outro lado, é uma mudança invasiva que não é aplicada por padrão na maioria das distribuições Linux.

Por esta razão, os serviços geralmente são executados com uma conta de usuário dedicada (ou seja: httpd) e são ainda mais restritos no que podem acessar/ouvir através de perfis selinux dedicados, mas sem envolver usuários/funções específicas do selinux (ou seja: httpd_texecutados com o system_uusuário padrão do sistema papel em vez de um papel dedicado). Isso é feito para aumentar a segurança do sistema sem ser muito invasivo na forma como os usuários normais trabalham.

Resposta longa:a principal diferença é aquela entreControle de acesso discricionário (DAC)eControle de acesso obrigatório (MAC)

O primeiro (DAC) é o tradicional sistema de permissão Unix, onde um usuário pode alterar a permissão de todos os arquivos de sua propriedade. Além disso, um aplicativo tem o direito de realizar qualquer operação concedida no nível de “usuário normal” (por exemplo, escutar em uma porta TCP alta). Embora muito intuitivo e razoável, o próprio DAC deixa aberta a porta para configuração incorreta por parte do usuário (ou seja: dar acesso inadvertidamente a um arquivo confidencial) ou software malicioso (ou seja: uma saturação de buffer que inicia um shellcode abrindo uma porta de escuta para controle remoto do hospedeiro alvo).

Entra no MAC, onde apenas o administrador do sistema determina as regras sobre o que pode ou não ser feito. Por exemplo, o administrador do sistema pode, via selinux, restringir quais arquivos o usuário (que possui os arquivos!) pode alterar, ou quais arquivos podem ser o conjunto de bits "outros". De maneira semelhante, um aplicativo pode ser impedido de escutar qualquer coisa que não seja um conjunto restrito de portas, independentemente do sistema de permissão padrão do Unix.

A partir daqui, é fácil ver como um sistema específico pode ser all-in em DAC ou MAC. No primeiro caso o usuário tem total controle sobre o que pode fazer, exceto as coisas tradicionalmente restritas ao root. Um sistema Linux "simples" (leia-se: sem selinux/apparmor/grsec/qualquer coisa) é um bom exemplo de configuração somente DAC. No outro extremo, em um sistema somente MACqualquero usuário pode ser potencialmente privilegiado sem realmente ter qualquer possibilidade de interagir com informações confidenciais (em tal sistema, apenas uma conta root "verdadeira" especificamente designada pode modificar as próprias políticas MAC).

Dito isto,DAC e MAC são efetivamente ortogonais: eles podem ser (e muitas vezes são) usados ​​ao mesmo tempo para fortalecer a segurança geral do sistema.Este é o principal raciocínio por trás da targetedpolítica selinux: como transformar o Linux em um sistema somente MAC seria muito invasivo (e realmente desnecessário em 99% dos casos), o RedHat fornece uma política queaplica seletivamente regras mais restritivas aos serviços mais sensíveis, deixando os usuários interativos praticamente inalterados.É por isso que os usuários são, por padrão, atribuídos ao unconfined_uusuário selinux, por sua vez, com funções system_re unconfined_rfunções.

Responder2

Usuário dedicado:

Um usuário dedicado é uma conta usada exclusivamente para uma finalidade ou serviço específico. Esse tipo de conta de usuário geralmente é criado para fornecer um ambiente seguro para uma função ou serviço específico, como executar um serviço ou aplicativo específico.

SELinux:

SELinux (Security-Enhanced Linux) é um módulo de segurança do kernel Linux que fornece um mecanismo para suportar políticas de segurança de controle de acesso, incluindo controles de acesso obrigatórios (MAC). Ele foi projetado para proteger o sistema e seus aplicativos contra danos maliciosos ou acidentais causados ​​por usuários, processos ou aplicativos. Também se destina a fornecer um ambiente seguro para administradores e usuários do sistema, restringindo o acesso aos recursos e aplicativos do sistema.

Vantagens de executar processos com usuário dedicado:

  • Maior segurança:Ao executar um processo com um usuário dedicado, você pode restringir o acesso do processo a recursos específicos e limitar o dano potencial que um processo comprometido pode causar.
  • Performance melhorada:Os usuários dedicados podem ajudar a melhorar o desempenho do sistema, reduzindo o tempo gasto pelos usuários root em tarefas relacionadas à segurança.
  • Manutenção simplificada:Usuários dedicados podem simplificar a manutenção do sistema fornecendo contextos isolados para cada processo, permitindo identificar e resolver rapidamente quaisquer problemas.

Desvantagens de executar processos com usuário dedicado:

  • Maior complexidade:A execução de um processo com um usuário dedicado pode adicionar complexidades à administração do sistema, pois você deve gerenciar as permissões e privilégios do usuário.
  • Capacidades limitadas:Os usuários dedicados podem não ter os recursos exigidos por alguns processos, como o acesso a recursos privilegiados do sistema.

Vantagens de executar processos com SELinux:

  • Maior segurança:SELinux fornece um poderoso mecanismo de controle de acesso que pode ser usado para isolar processos e limitar o dano potencial de um processo malicioso.

  • Performance melhorada:O SELinux pode ajudar a melhorar o desempenho do sistema, limitando a quantidade de tempo gasto em tarefas relacionadas à segurança.

  • Maior flexibilidade:O SELinux permite que os usuários vinculem um usuário SE a um usuário Linux, permitindo um controle mais refinado sobre acesso e privilégios.

Desvantagens de executar processos com SELinux:

  • Maior complexidade:O SELinux pode ser complexo e difícil de configurar, dificultando a administração do sistema.
  • Compatibilidade limitada:O SELinux não é compatível com todos os aplicativos, limitando sua utilidade em determinados contextos.

informação relacionada