Sicherheitsrisiken von PermitUserEnvironment in ssh

11

Ich habe einige Beiträge über die Verwendung PermitUserEnvironmentund die Datei gelesen ~/.ssh/environment, um env-Variablen an eine ssh-Shell zu übergeben. Die offiziellen sshd-Dokumente und einige andere Ressourcen weisen auf einige Sicherheitsrisiken hin.

Durch Aktivieren der Umgebungsverarbeitung können Benutzer in einigen Konfigurationen mithilfe von Mechanismen wie LD_PRELOAD Zugriffsbeschränkungen umgehen.

Was ist das wahrscheinliche Sicherheitsproblem bei der Aktivierung PermitUserEnvironment? Ich habe versucht, DB-Verbindungsdetails in diesen Umgebungsvariablen zu speichern. Ist dies ratsam?

Rob Squires
quelle
Ich habe einen Fehlerbericht beim OpenSSH-Projekt eingereicht und sie gebeten, ein paar Wörter zur Manpage sshd_config hinzuzufügen, um dieses Problem zu klären: bugzilla.mindrot.org/show_bug.cgi?id=2317
Florin Andrei

Antworten:

16

Erstens, wenn Sie nicht versuchen, mit Benutzerzugriffsbeschränkungen etwas Besonderes zu tun - das heißt, wenn Sie interaktiven Shell-Zugriff anbieten -, gibt es wahrscheinlich keine zusätzlichen Sicherheitsrisiken , wenn Sie die Verwendung der .ssh/environmentDatei zulassen Benutzer könnten mit dieser Datei erreichen, was sie auch interaktiv in ihrer Shell tun könnten.

Durch Aktivieren der Umgebungsverarbeitung können Benutzer in einigen Konfigurationen mithilfe von Mechanismen wie LD_PRELOAD Zugriffsbeschränkungen umgehen.

Wenn Sie erzwungene SSH-Befehle verwenden, um die Möglichkeiten von Personen über ssh einzuschränken (z. B. wenn Sie Personen auf die Verwendung von sftpoder beschränken scp), können Personen Ihre Umgebungsvariablen wie LD_PRELOAD(oder möglicherweise sogar PATH) festlegen, um sie zu entführen Einschränkungen durch Ersetzen grundlegender Bibliotheksaufrufe durch eigenen Code. Wenn Sie das .ssh/environmentim Auftrag Ihrer Benutzer erstellen und diese sonst nicht in der Lage sind, es zu verwalten, sind Ihre Risiken relativ gering.

Ohne mehr über Ihren speziellen Anwendungsfall zu wissen, ist es schwierig, eine endgültige Antwort zu geben.

Larsks
quelle
Ich erlaube nur 2 oder 3 vertrauenswürdigen Parteien (Entwicklern innerhalb unserer eigenen Organisation) den Zugriff auf den Server über ihre RSA-Schlüssel. Also von dem, was Sie sagen, klingt es in Ordnung
Rob Squires
Aus Ihrer Antwort gehe ich davon aus, dass ich wegen der Sicherheitsauswirkungen dieser Option keinen Schlaf verlieren sollte, wenn alle meine SSH-Konten vollständigen Bash-Zugriff bieten (kein Sudo). Richtig?
Florin Andrei
Das ist richtig. Wenn Sie vollständigen Bash-Zugriff bereitstellen, können Benutzer bereits die gewünschten Umgebungsvariablen festlegen.
Larsks