Como posso evitar um escape do rbash usando o Control-C?

2

Eu atribuí uma conta ao shell de login /bin/rbash e encontrei uma vulnerabilidade que parece tornar rbash em grande parte inútil.

A conta .bash_login apenas executa .bashrc :

. $HOME/.bashrc

e .bashrc conjuntos PATH para um diretório contendo os únicos comandos permitidos:

PATH=/restrict/bin

Isso nominalmente funciona. No entanto, eu acho que se eu ssh na conta e bateu Control-C quase instantaneamente depois de digitar a senha, há uma chance modesta (talvez um em cinco) que rbash é interrompido e cai para o prompt do shell antes de executar .bashrc , onde PATH não foi alterado e o usuário termina com acesso irrestrito a /bin .

Por favor, diga-me que estou faltando alguma coisa, porque uma solução parece difícil, na verdade não consertando e recompilando bash . Eu também estou desconfiado da longa lista de comportamentos específicos rbash modifica para obter "segurança". Eu abandonaria bash para essa finalidade, exceto que bash scripting está firmemente enraizado em meus usuários.

    
por Curt 27.10.2016 / 03:59

1 resposta

1

Uma solução pode ser definir o caminho no arquivo .bash_login , ignorando completamente o carregamento de .bashrc

EDITAR :

Depois de voltar e ver isso, percebi que simplesmente definir a variável $PATH não realiza nada, já que o usuário pode apenas alterá-la para incluir outros diretórios que incluam binários restritos no sentido que você está tomando, nem impede de chamar diretamente o executável. Em shells compatíveis com POSIX, você pode definir uma variável como readonly ( readonly PATH=/restricted/bin ). Para resolver o problema, você teria que restringir o usuário / grupo a não acessar outros arquivos / pastas bin.

    
por 27.10.2016 / 05:57

Tags