Riscos de segurança do PermitUserEnvironment no ssh


11

Eu li alguns posts sobre o uso PermitUserEnvironmente o arquivo ~/.ssh/environmentpara passar variáveis ​​env para um shell ssh. Os documentos oficiais do sshd e alguns outros recursos aludem a alguns riscos de segurança ao fazer isso.

A ativação do processamento do ambiente pode permitir que os usuários ignorem as restrições de acesso em algumas configurações usando mecanismos como LD_PRELOAD.

Qual é o provável problema de segurança da ativação PermitUserEnvironment? Eu estava procurando manter os detalhes da conexão com o banco de dados nessas variáveis ​​de ambiente, isso é aconselhável?


Arquivei um relatório de bug no projeto OpenSSH, pedindo que adicionassem algumas palavras à página de manual sshd_config, esclarecendo este problema: bugzilla.mindrot.org/show_bug.cgi?id=2317
— Florin Andrei

Respostas:


16

Antes de tudo, se você não está tentando fazer algo sofisticado com as restrições de acesso do usuário - isto é, se você está oferecendo acesso interativo ao shell - provavelmente há zero risco de segurança adicional ao permitir o uso do .ssh/environmentarquivo, pois qualquer coisa que o usuário pode realizar com esse arquivo que também pode executar interativamente em seu shell.

A ativação do processamento do ambiente pode permitir que os usuários ignorem as restrições de acesso em algumas configurações usando mecanismos como LD_PRELOAD.

Se você estiver usando comandos forçados do SSH para limitar o que as pessoas podem fazer via ssh (por exemplo, se você estiver restringindo as pessoas a usar apenas sftpou scp), permitir que alguém defina variáveis ​​de ambiente como LD_PRELOAD(ou possivelmente até PATH) permitiria que eles sequestrassem o seu restrições, substituindo as chamadas básicas da biblioteca por seu próprio código. Por outro lado, se você estiver criando o .ssh/environmentnome de seus usuários e eles não conseguirem gerenciá-lo, seus riscos serão relativamente pequenos.

Sem saber mais sobre seu caso de uso específico, é difícil fornecer uma resposta definitiva.


Estou permitindo apenas o acesso ao servidor de 2 ou 3 partes confiáveis ​​(desenvolvedores de nossa própria organização) por meio de suas chaves rsa. Assim, desde que você está dizendo que parece ok
— Rob Squires

Pela sua resposta, entendo que não devo perder o sono com as implicações de segurança de ativar essa opção se todas as minhas contas ssh fornecerem acesso completo ao bash (sem sudo). Corrigir?
— Florin Andrei

Está correto. Se você estiver fornecendo acesso completo ao bash, as pessoas já poderão definir as variáveis ​​de ambiente que desejarem.
— Larsks
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.