Por que a propriedade do grupo ssh-agent não é raiz

5

Tentando entender por que o ssh-agent tem o sgid bit e achou esta postagem ssh -agent tem sgid

Eu tenho outra pergunta, porque a propriedade do grupo do ssh-agent não é ninguém root? Qual é a razão por trás disso? Ainda funcionará se a propriedade do grupo for raiz?

    
por Ask and Learn 07.07.2014 / 09:00

2 respostas

7

Se fosse setgid root, o agente seria executado como grupo root , o que provavelmente tem permissões mais amplas do que o usuário iniciado como. Isso poderia ser um risco de segurança; no mínimo, executando algo como raiz desnecessariamente é uma bandeira vermelha (até mesmo o grupo) e requer atenção extra.

A definição da propriedade do grupo para nobody , que é um grupo que não deve ter permissões ou arquivos significativos, significa que ssh-agent não recebe mais direitos do que o usuário iniciou com . Como a pergunta vinculada diz, a razão pela qual ela é configurada é evitar o uso do programa, em vez de precisar de permissões diferentes. No tópico de discussão ligado a partir da outra questão , uma das notas dos desenvolvedores:

it would seem that the group is of no consequence. It's the fact that the binary is setgid anygroup that's important.

nobody é um grupo útil para usar quando você quer apenas um efeito colateral de setgid, não o comportamento em si.

Eu imagino que ainda funcionaria com o root setgid. Eu apenas tentei isso aqui, e ele não se queixou de nada e pareceu funcionar em testes superficiais. Dito isso, não consigo pensar em nenhum motivo real para alterá-lo para isso - parece que todos estão em melhor situação executando o grupo nobody do que o grupo root .

Eu não sugiro alterar as permissões dos arquivos instalados pelo seu gerenciador de pacotes, em qualquer caso, porque eles tendem a ficar chateados com quaisquer modificações nos arquivos que eles controlam.

    
por 07.07.2014 / 09:11
3

O objetivo de tornar ssh-agent setgid é aumentar a segurança tornando o processo impossível de depurar, de forma que até mesmo um processo executado como o mesmo usuário não possa despejar chaves da memória.

ssh-agent não deve ter privilégios adicionais. Caso haja uma vulnerabilidade em ssh-agent , se for setgid para algum grupo, isso confere ao usuário os privilégios daquele grupo. A execução de ssh-agent setgid, portanto, aumenta o risco de segurança ... a menos que o grupo que ssh-agent é executado, como de fato não tem privilégios - em particular, nenhuma permissão de gravação em qualquer arquivo.

A melhor maneira de executar um programa setgid sem causar impacto em outros programas é usar um grupo dedicado. É o que o Debian faz, por exemplo: ssh-agent é executado como o grupo ssh . O Fedora usa o grupo nobody , que é mais complicado, mas ainda está bem, já que nenhum arquivo deve pertencer ao grupo nobody . O grupo root seria uma má ideia porque possui muitos arquivos.

    
por 08.07.2014 / 02:15