Warum ist X11 ein Sicherheitsrisiko auf Servern?

11

Ich erinnere mich, dass ich gelesen habe, dass Server keine grafische Benutzeroberfläche haben, da X11 ein Sicherheitsrisiko darstellt. Warum?

Orcris
quelle

Antworten:

8

In der Community-Dokumentation von Ubuntu werden die wahren Gründe erläutert, warum es nicht empfohlen wird, eine GUI auf einem Produktionsserversystem auszuführen:

Die meisten Ubuntu Server - Entwickler nicht empfehlen X auf einem Server installieren. Es gibt mehrere Gründe, eine GUI nicht zu installieren.

Einige Gründe, eine GUI nicht zu installieren, sind:

  1. Sie haben mehr Code, der Sicherheitslücken ausgesetzt ist, mehr Pakete, die aktualisiert werden müssen, und mehr Serverausfallzeiten.
  2. X11- und Desktop-Pakete werden für den gesamten 5-Jahres-Lebenszyklus der LTS-Serverversion nicht unterstützt.
  3. Die Leistung kann darunter leiden, dass Ressourcen (Speicher, Festplattenspeicher, CPU usw.) von der GUI verbraucht werden.
  4. Es wird empfohlen, nur die erforderliche Software auf einem Produktionsserver zu installieren.
  5. Die GUI kann andere Netzwerkdienste enthalten, die für einen Server ungeeignet sind.
    1. Eines der Ziele von Ubuntu Desktop Edition ist es, Benutzern die Verwendung von Linux zu erleichtern. Bei der Installation einiger Desktop-Umgebungen werden Dienste installiert, die Sie möglicherweise nicht speziell möchten. Zum Beispiel fügt avahi-daemon , der zur Konfiguration des Netzwerks verwendet wird, einen weiteren offenen Port hinzu und kann zu unerwünschten DNS-Konflikten mit einer lokalen Domäne führen.

Für den sichersten Server ist es daher am besten, keine GUI zu installieren.

"ServerGUI" von "Mitwirkenden am Ubuntu-Dokumentations-Wiki", hier reproduziert, wie von CC-BY-SA 3.0 gestattet .

Im Gegensatz zu einem weit verbreiteten Missverständnis hat X11 als Server wirklich nichts damit zu tun, warum das Ausführen einer GUI auf einem Produktionsserver aus Sicherheitsgründen als nicht ideal angesehen wird. X11 ist praktisch nie mehr standardmäßig so konfiguriert, dass es über ein Netzwerk unter keinem Betriebssystem mehr zugänglich ist. In keiner Version von Ubuntu hat X11 jemals einen Netzwerkzugriffsserver in der Standardkonfiguration ausgeführt. (Um unter Ubuntu über TCP auf X11 zuzugreifen, müssen Sie es über SSH weiterleiten oder den Server manuell neu konfigurieren.)

Außerdem , selbst wenn X11 ein Netzwerk zugänglichen Server ausgeführt haben , wäre dies kein Grund sein , nicht zu haben , es auf einem Produktionsserver System installiert ist . Jeder, der einen Produktionsserver ausführt, ist vermutlich in der Lage, ihn für seine Anforderungen zu konfigurieren und zu überwachen, um sicherzustellen, dass keine unerwünschten Dienste ausgeführt werden. (Wenn sie nicht, dass eine weitaus größere Bedrohung für ihre Sicherheit darstellen , als dies , indem er ein GUI installiert erstellt werden.) Auch wenn X11 hatte einen Port lauscht auf einer physikalische Netzwerkschnittstelle haben ( was nicht der Fall ist ), der Hafen könnte leicht blockiert werden, indem das eingebaute System netfiltermit iptables(oder einem übergeordneten Frontend wie ufw) neu konfiguriert wird .

Im Gegensatz dazu sind die oben aufgeführten Probleme durch Neukonfiguration nicht so einfach zu überwinden.

Eliah Kagan
quelle
1
10.04 hatte eine andere Support-Lebensdauer für Server als Desktop, 12.04 und höher nicht. Außerdem verbraucht eine inaktive GUI keine CPU, und der verwendete RAM wird ausgetauscht.
Psusi
@psusi Der Punkt über die Änderung des Support-Lebenszyklus ist gut. Was CPU- und RAM-Probleme betrifft, (1) bin ich aus Erfahrung nicht der Meinung, dass eine inaktive GUI niemals CPU verbraucht, und (2) wenn eine GUI ausgeführt wird, wird sie wahrscheinlich von jemandem verwendet, der auf dem lokalen Computer arbeitet, unabhängig davon, ob Sie wollen oder nicht, und das wird dazu führen, dass mehr CPU- und Speicherressourcen verbraucht werden. Allerdings Punkte 1, 4 und 5 wirklich sind (und wahrscheinlich waren immer) die wichtigsten Gründe zu prüfen , nicht eine GUI läuft auf einem Produktionsserver mit, und sie sind unabhängig von Support Lifecycle oder Ressourcenauslastung Fragen.
Eliah Kagan
Darf ich hinzufügen, dass Xorg standardmäßig auch als root ausgeführt wird.
Wadih M.
5

Jeder laufende Prozess ist ein Sicherheitsrisiko. Insbesondere diejenigen, die einen Netzwerkport abhören (X11 tut dies).

Es wird allgemein empfohlen, nichts auf einem Server auszuführen, der nicht unbedingt vorhanden sein muss, und X11 muss sich sicherlich nicht auf einem Server befinden, auf dem Sie SSH ausführen.

Ich bezweifle, dass der Artikel, den Sie gelesen haben, über eine bestimmte Sicherheitsanfälligkeit in X11 sprach (es wäre behoben worden, wenn dies der Fall wäre, Sicherheitsanfälligkeiten bleiben nicht lange unverändert), sondern nur über allgemeine bewährte Methoden.

Cäsium
quelle
2
Bei den meisten modernen Linux-Distributionen (wie Ubuntu) überwacht der X-Server standardmäßig keinen Netzwerkport, sondern akzeptiert nur lokale Verbindungen über Domain-Sockets.
Florian Diesch
@FlorianDiesch Auch auf dem nicht konfigurierten vom Server?
Amith KK
Big +1 für die Erwähnung, dass X11 ein Netzwerkserver ist.
Stefano Palazzo
2
Amith: Ja. xinit / startx verwendet -nolisten tcpstandardmäßig
Florian Diesch
5

Dies liegt daran, dass das X Window System ein ernstes Sicherheitsrisiko darstellt, wenn es nicht ordnungsgemäß gesichert ist. Ein X11 "Display" ist der X11-Server, der auf Ihrem Desktop ausgeführt wird und Bildschirm, Tastatur und Maus enthält. Wenn Ihr X11-Display unsicher ist, kann ein Programm, das an einer beliebigen Stelle im Internet ausgeführt wird, eine Verbindung herstellen, und die Verbindung ist für Sie möglicherweise vollständig unsichtbar. Sobald die Verbindung hergestellt ist, hat dieses Programm vollen Zugriff auf Ihr Display. Dies bedeutet, dass es:

  • Anzeigen und Kopieren des Bildschirminhalts mithilfe von Standard-X11-Dienstprogrammen.
  • Überwachen Sie Ihre Tastenanschläge.
  • Steuern Sie alle Netscape-Browser auf Ihrem Desktop und Forge-Tastenanschläge fern, als würden Sie sie selbst eingeben (obwohl nicht alle X11-Anwendungen dafür anfällig sind).

Eine Daumenregel ist NICHT zu verwenden xhost +- Sie deaktiviert die Sicherheit Ihres Displays vollständig.

Ein guter Weg ist, X weiterzuleiten ssh


Entnommen aus : http://www2.slac.stanford.edu/computing/security/xwindow/

Amith KK
quelle
1
Dieser Artikel ist ungefähr 10 Jahre alt. Sind die Informationen noch gültig?
Stefano Palazzo
1
Meistens ja ... weil AFAIK wir den xhost +Befehl haben
Amith KK
xhost +kann aber nicht überschreiben -nolisten tcp, öffne dich einfach für jede Verbindung vom localhost.
Alanc
Würden diese Probleme gelöst werden, indem für jede Anwendung ein xserver einzeln gestartet wird?
Phil294
-6

Der wahre Grund ist, dass Administratoren sich selbst als super klug betrachten können, indem sie Dinge über die Befehlszeile ausführen. Es besteht kein Sicherheitsrisiko, wenn eine GUI auf einem Ubuntu-Server ausgeführt wird.

Reicher Stürmer
quelle