6

Przeczytałem sporo postów dotyczących użycia PermitUserEnvironment i pliku ~/.ssh/environment w celu przekazania zmiennych env do powłoki ssh. Oficjalne sshd docs i kilka innych zasobów nawiązują do niektórych zagrożeń bezpieczeństwa to robi.Zagrożenia bezpieczeństwa związane z PermitUser Environment w ssh

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

Jaki jest prawdopodobny problem z aktywacją numeru PermitUserEnvironment? Chciałbym trzymać szczegóły połączenia DB w tych zmiennych środowiskowych, czy to jest wskazane?

dzięki

Odpowiedz

3

To dla przypadków, gdzie ograniczają użytkownika w jakiś sposób za pomocą niestandardowego Shell - jeśli użytkownik jest w stanie ustawić LD_PRELOAD wtedy mogli wykonać kod jako użytkownik na zdalnej maszynie, przechwytując standard wywołanie biblioteki.

Prostym przykładem może być wyłączenie logowania dla użytkownika korzystającego wyłącznie z SFTP poprzez ustawienie ich powłoki na dynamicznie powiązane/bin/false - jeśli są w stanie zmodyfikować ~/.ssh/environment lub ~/.ssh/authorized_keys potem można dodać LD_PRELOAD = nefarious.so

+0

Więc ma to żadnego wpływu na zwykłych logowania powłoki gdzie daję użytkownikowi regularne konto atakujących? (Bez sudo) –

+1

Zgadza się, to tylko kwestia, czy starasz się ograniczyć swoją skorupę. Jeśli ufasz już, że wykonają dowolny kod, to ustawienie czasu LD_PRELOAD podczas logowania nie jest problemem bezpieczeństwa – Peter