Jestem ciekawy bezpieczeństwa pozostawiania powłoki root działającej w odłączonej sesji ekranowej. Zazwyczaj nigdy tego nie robię.
Poza potencjalnym zagrożeniem dla mojego konta użytkownika innego niż root (narażone na hasło, złamanie klucza ssh itp.), Czy istnieją inne wektory wejścia do oddzielnej, chronionej hasłem sesji ekranowej, o którą powinienem się martwić, lub może odłączony ekran sesję można uznać za obojętną?
security
gnu-screen
root
Michael
źródło
źródło
sudo
.sudo
dezaktywuje się, podczas gdy prawdziwa powłoka root pozostaje otwarta.Odpowiedzi:
Myślę, że to kwestia bezpieczeństwa, ponieważ „Oprócz możliwości naruszenia bezpieczeństwa konta użytkownika innego niż root” może być dość duża.
Ale są jeszcze inne zwiększone zagrożenia. Na przykład, otworzyłeś się teraz na teoretyczny exploit, który pozwala zmienić uprawnienia w katalogu gniazda ekranu (
/var/run/screen
w moim systemie, ale czasami/tmp
jest używany). Exploit ten ma teraz ścieżkę do rootowania, czego inaczej by nie zrobił.sudo
ma inne zalety, jeśli możesz nauczyć się używać go do każdego polecenia, a nie do robieniasudo su -
. Rejestruje działania (które, chyba że logujesz się zdalnie, nie zwiększają znacząco bezpieczeństwa, ale dają ci ślad po tym , co zrobiłeś). Pomaga także zapobiegać wypadkom, wymagając celowej eskalacji dla każdego polecenia, zamiast przełączania się na sesję całkowicie uprzywilejowaną.źródło
Jeśli masz sesję root w sesji ekranowej (odłączona lub nie, chroniona hasłem lub nie), a Twój
screen
plik wykonywalny nie jest ustawiony na setxid, osoba atakująca, która uzyska twoje uprawnienia, może wykonywać polecenia w tej powłoce. Jeśli nic więcej, mogą to zrobić, śledząc proces ekranu.Jeśli screen jest ustawiony jako setuid lub setgid, a sesja jest odłączona i chroniona hasłem, to w zasadzie hasło ekranowe wykonuje polecenia w tej powłoce. Jeśli ta zasada obowiązuje, ktoś, kto naruszył twoje konto, musiałby zainstalować trojana i czekać na wpisanie hasła. Jednak powierzchnia ataku (tj. Liczba miejsc, w których może się nie udać z powodu błędu lub błędnej konfiguracji) jest niewygodnie duża. Oprócz podstawowych funkcji bezpieczeństwa systemu ufasz:
„Jakaś inna cecha, żeby cię nie ugryźć”: tak, to jest niejasne. Ale zawsze jest to kwestia bezpieczeństwa. Możesz mieć ochotę odrzucić to jako zwykłe pobożne życzenie, ale czy naprawdę myślałeś o wszystkim? Na przykład…
Tak długo, jak możesz pisać na urządzeniu końcowym, możesz wstrzykiwać dane do danych wejściowych tej powłoki. W obszarze domyślnej konfiguracji ekranu na moim komputerze:
To wstawia
␛]lfoobar␛l
do strumienia wejściowego powłoki.\ek
to sekwencja kontrolna, która pozwala aplikacji (lub cokolwiek, co może zapisać na urządzeniu końcowym) ustawienie tytułu okna (patrz sekcja „Nazewnictwo okien” w podręczniku ekranowym ) i\e[21t
sprawia, że terminal zgłasza swój tytuł na standardowym wejściu aplikacji ( ekran nie dokumentuje tę sekwencję, ale nie wdrożyć go, można go znaleźć podCSI Ps ; Ps ; Ps ; t
w liście sekwencji sterujących xterm w rzeczywistości, przynajmniej pod ekranie 4.0.3, wszystkie znaki sterujące są usuwane z omawianym tytule, więc powłoka czyta.lfoobar
(zakładając, że␛]
nie jest związany z poleceniem edycji) i nie ma nowego wiersza. Atakujący nie może faktycznie wykonać polecenia w ten sposób, ale może wypchnąć polecenie takie jakchmod u+s /bin/sh
po którym następuje dużo spacji i prawdopodobnie wyglądający monit.Screen implementuje kilka innych podobnych ryzykownych sekwencji kontrolnych, nie wiem jaka jest ich potencjalna podatność na luki. Ale mam nadzieję, że do tej pory widać, że ochrona oferowana przez hasła sesji ekranu nie jest tak świetna. Dedykowane narzędzie bezpieczeństwa, takie jak sudo, znacznie rzadziej zawiera luki w zabezpieczeniach.
źródło
Rury utworzone przez ekran są dostępne tylko dla właściciela, dlatego nie powinno to stanowić problemu z bezpieczeństwem.
źródło