Rischi per la sicurezza di PermitUserEnvironment in ssh


11

Ho letto alcuni post sull'uso PermitUserEnvironmente sul file ~/.ssh/environmentper passare le variabili env a una shell ssh. I documenti ufficiali sshd e alcune altre risorse alludono ad alcuni rischi per la sicurezza di farlo.

L'abilitazione dell'elaborazione dell'ambiente può consentire agli utenti di ignorare le restrizioni di accesso in alcune configurazioni utilizzando meccanismi come LD_PRELOAD.

Quali sono i probabili problemi di sicurezza dell'attivazione PermitUserEnvironment? Stavo cercando di conservare i dettagli della connessione DB in queste variabili d'ambiente, è consigliabile?


Ho presentato una segnalazione di bug al progetto OpenSSH, chiedendo loro di aggiungere qualche parola alla pagina man sshd_config, chiarendo questo problema: bugzilla.mindrot.org/show_bug.cgi?id=2317
Florin Andrei

Risposte:


16

Prima di tutto, se non stai provando a fare nulla di speciale con le restrizioni di accesso dell'utente, ovvero se stai offrendo l'accesso interattivo alla shell, probabilmente ci sono zero rischi di sicurezza aggiuntivi nel consentire l'uso del .ssh/environmentfile, dal momento che l'utente potrebbe realizzare con quel file potrebbe anche fare in modo interattivo nella propria shell.

L'abilitazione dell'elaborazione dell'ambiente può consentire agli utenti di ignorare le restrizioni di accesso in alcune configurazioni utilizzando meccanismi come LD_PRELOAD.

Se stai usando i comandi forzati SSH per limitare ciò che le persone possono fare tramite ssh (ad esempio, se stai limitando le persone a usare solo sftpo scp), consentire a qualcuno di impostare variabili di ambiente come LD_PRELOAD(o eventualmente anche PATH) consentirebbe loro di dirottare il tuo restrizioni sostituendo le chiamate di libreria di base con il proprio codice. D'altra parte, se stai creando .ssh/environmentper conto dei tuoi utenti e non sono altrimenti in grado di gestirlo, i tuoi rischi sono relativamente piccoli.

Senza sapere di più sul tuo particolare caso d'uso è difficile fornire una risposta definitiva.


Sto solo consentendo l'accesso al server da 2 o 3 parti attendibili (sviluppatori all'interno della nostra organizzazione) tramite le loro chiavi rsa. Quindi, da quello che stai dicendo, suona bene
Rob Squires,

Dalla tua risposta, ritengo che non dovrei perdere il sonno sulle implicazioni di sicurezza dell'abilitazione di questa opzione se tutti i miei account ssh forniscono un accesso bash completo (no sudo). Corretta?
Florin Andrei,

È corretto. Se si fornisce un accesso bash completo, le persone possono già impostare le variabili di ambiente che desiderano.
Larsks,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.