Wolfgang Meiners <
Wolfgang...@web.de> wrote:
> Ja. Jetzt habe ich dein Argument glaube ich verstanden. Der Remote-user
> hat meinen Cookie von mir bekommen.
Genauer: Den Keks des X-Servers, vor dem Du gerade sitzt. Der ist
nicht personalisiert (wird aber ggf. fuer jede X-Session neu erzeugt,
da bin ich mir gerade nicht sicher).
> Dann kann er
> - sich auf meinem Rechner einloggen und mit meinem Cookie auf meinen
> XServer zugreifen, oder
Fuer "einloggen = nicht ueber den Bildschirm, der vom X Session
Manager controlliert wird, sondern auf andere Weise (telnet, serielle
Schnittstelle, ...)": Ja.
> (wenn mein XServer an TCP lauscht)
> - direkt über DISPLAY=Mein_Rechner:Mein_Display auf meinen XServer
> zugreifen, oder
Ja.
> - sich auf meinem Rechner aus der Ferne anmelden (z.B. mit ssh) und
> wieder auf meinen XServer zugreifen, oder
Ja.
> (und das hat jetzt wohl mit ssh zu tun)
> - sich auf dem entfernten Rechner anmelden und über localhost:10.0 auf
> meinen XServer zugreifen. Habe ich noch was vergessen?
Das geht so nicht. X11-Forwarding ueber ssh setzt auf dem Zielrechner
DISPLAY auf Werte wie "localhost:10.0" und sorgt dafuer dass die
entsprechende Verbindung, die fuer Programme wie eine lokale Verbindung
aussieht, getunnelt wird.
Wenn sich der Remote-user also nur auf dem Remote-Rechner anmeldet,
gibt es kein ssh und keine getunnelte Verbindung. Und selbst wenn man
eine solche aufbauen wuerde, benutzt die einen ganz andere Keks, als
der, der ihm verraten wurde.
Das Problem mit X11-Forwarding ist ein ganz anderes:
X11 forwarding should be enabled with caution. Users with the
ability to bypass file permissions on the remote host (for the
user's X11 authorization database) can access the local X11 dis‐
play through the forwarded connection. An attacker may then be able
to perform activities such as keystroke monitoring if the
ForwardX11Trusted option is also enabled.
Sprich, ein Benutzer Q an Rechner A macht eine ssh-Verbindung nach
Rechner B mit X11-Forwarding auf. Die Idee ist, dass nur die Prozesse
von Benutzer Q auf Rechner B diese Verbindung benutzen (damit er an
Rechner A deren Fenster sehen kann). Wenn aber auf Rechner B ein
Benutzer R mit Root-Rechten sitzt, kann er den Keks fuer die
getunnelte Verbindung von Benutzer Q klauen (weil er die .Xauthority
auf Rechner B von Benutzer Q lesen kann), und selbst den Tunnel
benutzen. Damit kann Benutzer R den Benutzer Q auf Rechner A
ausspaehen, obwohl R eigentlich nur die Root-Rechte auf Rechner B hat,
und nicht auf Rechner A.
Wenn man so will, ist das die Umkehrung des Falles, den ich mit
"Sicherheitsluecke, wenn der Keks von Rechner B verraten wird" meinte:
Derjenige auf Rechner A, der ssh benutzt, kann nicht jemand anders
ausspaehen, sondern wird selbst ausgespaeht.
Auf jeden Fall eine ganz andere Baustelle.
- Dirk