Por que “AcceptEnv *” é considerado inseguro?

11

Em /etc/ssh/sshd_config , existe uma opção chamada AcceptEnv que permite ao cliente ssh enviar variáveis de ambiente. Eu preciso ser capaz de enviar um grande número de variáveis de ambiente. Essas alterações em todas as conexões do cliente, por isso, colocá-las em um script de login no servidor seria mais difícil.

Eu li que "AcceptEnv *" é inseguro. Eu gostaria de entender por que antes de tentar obter uma lista de todas as variáveis de ambiente que estão tentando ser configuradas para colocar lá.

Por que é considerado inseguro? Posso obter um exemplo?

    
por TheDauthi 14.09.2012 / 18:45

2 respostas

11

Enabling environment processing may enable users to bypass access restrictions in some configurations using mechanisms such as LD_PRELOAD.

Nem todas as versões das páginas man do sshd_config mencionam isso. Se suas variáveis de ambiente forem alteradas antecipadamente e determinados processos privilegiados forem executados com novas bibliotecas especificadas por isso, poderão ocorrer problemas.

Dê uma olhada no link e procure por "LD_PRELOAD Exploit". Desculpe, a página não tem links de âncora.

Veja também esta pergunta do StackOverflow, " Qual é o truque LD_PRELOAD? "

Definir as variáveis de ambiente após a conexão estar bem, mas quando essas variáveis são interpretadas pelo daemon ssh como definido por AcceptEnv, coisas ruins podem ocorrer.

    
por 14.09.2012 / 19:37
0

Não aceite variáveis de ambiente:

Veja a exploração Shellshock que saiu recentemente .. se você aceitar variáveis de ambiente, então você está abrindo uma façanha realmente desagradável.

    
por 25.09.2014 / 15:36