Quando é apropriado remover os privilégios setuid / setgid de um aplicativo?

2

Eu tenho andado de olho nas sugestões da NSA para fortalecer o Mac OS X, o Linux e notou este pequeno detalhe de informação:

Setuid programs run with the privileges of the file's owner (which is often root), no matter which user executes them. Bugs in these programs can allow privilege escalation attacks. To find setuid and setgid programs, use the commands:

find / -perm -04000 -ls
find / -perm -02000 -ls

After identifying setuid and setgid binaries, disable setuid and setgid bits (using chmod ug-s programname) on those that are not needed for system or mission operations.

Minha pergunta é: como identificar quais aplicativos podem ter seus bits setuid / setgid desativados? Por exemplo, estou assumindo que alguns aplicativos como su, sudo e login devem ter setuid. Por outro lado, algo como escrever provavelmente não precisa setuid. Existe uma boa maneira de descobrir se um aplicativo realmente precisa dele?

    
por Tom 19.05.2011 / 20:30

1 resposta

1

Essa é uma boa pergunta.

Normalmente, os aplicativos que precisam do bit setuid e setgid são aplicativos que precisam executar tarefas de administração por usuários não-root.

Tome por exemplo o programa passwd. É usado para alterar a senha. As senhas são armazenadas no arquivo / etc / shadow, que só é legível pelo root, daí o uso do bit setuid.

Geralmente, em distros populares do Linux, esses aplicativos são seguros de usar, porque são todos testados e sem erros.

Eu não sei como você pode descobrir se um aplicativo precisa desses bits ou não, mas você pode instalar um aplicativo como o snort ou o AIDE que verifica a integridade dos arquivos e pode alertá-lo quando algum arquivo foi alterado - particularmente aqueles com bits setuid e setgid.

    
por 19.05.2011 / 22:26