separação de privilégios - Privilege separation

Na programação de computadores e segurança do computador , a separação de privilégios é uma técnica em que um programa é dividido em partes que são limitados aos específicos privilégios de que necessitam, a fim de executar uma tarefa específica. Esta é utilizada para minimizar o dano potencial de uma vulnerabilidade de segurança do computador.

Um método comum para implementar a separação de privilégios é ter um programa de computador garfo em dois processos . O programa principal cai privilégios , eo programa menor mantém privilégios, a fim de executar uma determinada tarefa. As duas metades, em seguida, comunicar via uma tomada par. Assim, qualquer ataque bem sucedido contra o programa maior terá acesso mínimo, embora a par de programas será capaz de executar operações privilegiadas.

Separação privilégio é tradicionalmente realizada por distinguir um verdadeiro ID de utilizador / grupo de identificação do eficaz ID ID de utilizador / grupo, utilizando o SETUID (2) / setgid (2) e afins chamadas do sistema , que foram especificados pela POSIX . Se estes são posicionadas de forma incorrecta, lacunas pode permitir a penetração da rede generalizada.

Muitos rede de serviços daemons tem que fazer uma operação privilegiada específico, como um aberto socket raw ou um soquete Internet nas portas bem conhecidas vão. Administrativas utilitários pode exigir privilégios particulares em tempo de execução também. Esse tipo de software tende a separar privilégios, revogando-los completamente depois da seção crítica é feito, e alterar o usuário é executado sob a alguma conta sem privilégios depois de fazê-lo. Essa ação é conhecida como caindo raiz sob Unix-like sistemas operacionais . A parte sem privilégios geralmente é executado no âmbito do " ninguém utilizador" ou uma conta de usuário separada equivalente.

Separação de privilégios também pode ser feito através da divisão funcionalidade de um único programa em vários programas menores, em seguida, atribuindo os privilégios estendida para partes específicas usando as permissões do sistema de arquivos . Dessa forma, os diferentes programas têm de se comunicar uns com os outros através do sistema operacional, de modo que o escopo das vulnerabilidades potenciais é limitado (uma vez que um acidente na parte menos privilegiada não pode ser explorado para obter privilégios, apenas para causar uma negação de serviço ataque ).

Separação de privilégios é uma das principais características de segurança do OpenBSD . A implementação do Postfix foi focada na implementação de separação de privilégios abrangente. Solaris implementa um conjunto separado de funções para bracketing privilégio .

Veja também

links externos