Brak nasłuchu podczas sesji X
Napisał: Patryk Krawaczyński
10/01/2010 w Bezpieczeństwo Brak komentarzy. (artykuł nr 219, ilość słów: 283)
W
iększość osób ignoruje bezpieczeństwo systemu X w nadziei, że w ich przypadku nie spowoduje to zagrożenia całego systemu. W systemach wykorzystujących środowiska graficzne X, do których należy większość używanych komputerów, podsystem graficzny ma dostęp do wszystkich danych wprowadzanych przez użytkowników przy użyciu klawiatury oraz wyświetlanych na ekranie.
Co więcej, (póki, co) serwer ma ustawiony bit set-UID wskazujący na użytkownika root. Wrogi proces może połączyć się z buforem systemu X i przechwycić hasło użytkownika podczas wprowadzania go za pomocą klawiatury. Jeśli nie posiada się odpowiednich zabezpieczeń, bardzo trudno się przed tym problemem uchronić. Dobrym rozwiązaniem jest zwyczajne, całkowite wyłączenie nasłuchiwania przez serwer X na porcie 6000. W tym celu podczas wywołania programu serwera należy dodać odpowiedni argument. Prostym sposobem jest dodanie do
pliku $HOME/.xserverrc poniższego wiersza:
X -nolisten tcp :0
W Slackware możemy także edytować bezpośrednio plik /usr/bin/startx i w zmiennej defaultserverargs dodać w/w frazę:
defaultserverargs="-nolisten tcp"
Dla graficznego menedżera Gnome jest to plik /etc/X11/gdm/gdm.conf:
[server-Standard] command=/usr/X11R6/bin/X -nolisten tcp
Natomiast KDE /etc/X11/xdm/Xservers:
:0 local /usr/bin/X11/X -nolisten tcp
W celu sprawdzenia czy takie ustawienie rzeczywiście spowoduje zablokowanie możliwości utworzenia połączenia z portem 6000, należy użyć polecenia: netstat -tan | grep 6000. Innym z możliwych rozwiązań jest blokada za pomocą firewalla portów z zakresu 6000 – 6063. W przypadku niektórych systemów, dysponujących najwyższymi zabezpieczeniami właściwe mogłoby być rozważenie zupełnej rezygnacji z używania systemu X lub wręcz całkowite usunięcie go z systemu serwera. Tym niemniej niektórzy ludzie nie potrafią sobie dobrze radzić bez środowiska graficznego… To samo tyczy się serwera czcionek – XFS (X Font Server) – jeśli korzystamy z jego usług na lokalnej maszynie – możemy z pewnością wyłączyć jego nasłuch poprzez dodanie wyrażenia: no-listen = tcp do jego pliku konfiguracyjnego zazwyczaj znajdującego się w: /usr/lib/X11/fs/config.
Więcej informacji: man X, man startx