Pourquoi X11 est-il un risque pour la sécurité des serveurs?

11

Je me souviens avoir lu que les serveurs n'ont pas d'interface graphique car X11 est un risque pour la sécurité. Pourquoi?

Orcris
la source

Réponses:

8

La documentation de la communauté Ubuntu explique les vraies raisons pour lesquelles il n'est pas recommandé d'exécuter une interface graphique sur un système de serveur de production:

La plupart des développeurs d'Ubuntu Server ne recommandent pas d' installer X sur un serveur. Il y a plusieurs raisons pour ne pas installer une interface graphique.

Voici quelques raisons de ne pas installer d'interface graphique:

  1. Vous aurez plus de code sujet à des vulnérabilités de sécurité, plus de packages à mettre à jour et plus de temps d'arrêt du serveur.
  2. Les packages X11 et de bureau ne sont pas pris en charge pour le cycle de vie complet de 5 ans de la version du serveur LTS.
  3. Les performances peuvent en souffrir car les ressources (mémoire, espace disque dur, CPU, etc.) seront consommées par l'interface graphique.
  4. Il est recommandé d'installer uniquement les logiciels nécessaires sur un serveur de production.
  5. L'interface graphique peut inclure d'autres services réseau inappropriés pour un serveur.
    1. L'un des objectifs d'Ubuntu Desktop Edition est de faciliter l'utilisation de Linux par les utilisateurs. Lors de l'installation de certains environnements de bureau, des services que vous ne souhaitez pas spécifiquement seront installés. Par exemple, avahi-daemon , qui est utilisé pour aider à configurer la mise en réseau, ajoute un autre port ouvert et peut introduire des conflits DNS indésirables avec un domaine .local.

Donc, pour le serveur le plus sécurisé, il est préférable de ne pas installer d'interface graphique.

"ServerGUI" par "Contributeurs au wiki de documentation Ubuntu", reproduit ici comme autorisé par CC-BY-SA 3.0 .

Contrairement à une idée fausse quelque peu courante, X11 étant un serveur n'a vraiment rien à voir avec la raison pour laquelle l'exécution d'une interface graphique sur un serveur de production est considérée comme non idéale du point de vue de la sécurité. X11 n'est pratiquement jamais configuré par défaut pour être accessible sur un réseau, sur n'importe quel système d'exploitation. Aucune version d'Ubuntu n'a jamais eu X11 exécuter un serveur accessible par réseau dans la configuration par défaut. (Pour accéder à X11 sur Ubuntu via TCP, vous devez le transmettre via SSH ou reconfigurer manuellement le serveur.)

De plus, même si X11 exécutait un serveur accessible sur le réseau , ce ne serait pas une raison pour ne pas l'installer sur un système de serveur de production. Quiconque exécute un serveur de production est probablement capable de le configurer en fonction de ses besoins et de l’auditer pour s’assurer que les services indésirables ne fonctionnent pas. (S'ils ne le peuvent pas, cela constituera une menace beaucoup plus grande pour leur sécurité que ne le serait la création d'une interface graphique.) Même si X11 devait avoir un port d'écoute sur une interface réseau physique ( ce qui n'est pas le cas ), le port pourrait facilement être bloqué en reconfigurant le intégré à l' netfilteraide iptables(ou un frontend de niveau supérieur comme ufw).

En revanche, les problèmes répertoriés ci-dessus ne sont pas si faciles à surmonter par reconfiguration.

Eliah Kagan
la source
1
10.04 avait une durée de vie de support différente pour le serveur par rapport au bureau, 12.04 et les versions ultérieures ne le font pas. De plus, un gui inactif ne consomme aucun processeur, et le ram qu'il utilise sera échangé.
psusi
@psusi Le point concernant le changement de cycle de vie du support est bon. En ce qui concerne les problèmes de CPU et de RAM, (1) je ne suis pas d'accord avec l'expérience qu'une interface graphique inactive ne consomme jamais de CPU, et (2) si une interface graphique est en cours d'exécution, alors quand quelqu'un travaille sur la machine locale, il l'utilise probablement, que ce soit ils le veulent ou non, ce qui entraînera une consommation accrue de ressources CPU et mémoire. Cependant, les points 1, 4 et 5 sont vraiment (et ont probablement toujours été) les raisons les plus importantes pour envisager de ne pas exécuter d'interface graphique sur un serveur de production, et ils sont indépendants des problèmes de cycle de vie du support ou d'utilisation des ressources.
Eliah Kagan
Puis-je ajouter que Xorg fonctionne également en tant que root par défaut.
Wadih M.
5

Chaque processus en cours d'exécution représente un risque pour la sécurité. En particulier ceux qui écoutent sur un port réseau (X11 le fait).

La bonne pratique générale est de ne rien exécuter sur un serveur qui n'a pas absolument besoin d'être là, et X11 n'a certainement pas besoin d'être sur un serveur sur lequel vous allez SSH.

Je doute que l'article que vous avez lu parlait d'une vulnérabilité spécifique dans X11 (il aurait été corrigé si tel était le cas, les vulnérabilités n'ont pas tendance à rester longtemps sans correction), mais plutôt simplement de bonnes pratiques générales.

Césium
la source
2
Sur la plupart des distributions Linux modernes (comme Ubuntu), le serveur X par défaut n'écoute pas sur un port réseau mais accepte uniquement les connexions locales via les sockets de domaine.
Florian Diesch
@FlorianDiesch Même sur le serveur non configuré?
Amith KK
Big +1 pour avoir mentionné que X11 est un serveur réseau.
Stefano Palazzo
2
Amith: Oui. xinit / startx utilise -nolisten tcppar défaut
Florian Diesch
5

En effet, le système X Window présente un risque de sécurité grave s'il n'est pas correctement sécurisé. Un «affichage» X11 est le serveur X11 exécuté sur votre bureau et comprend l'écran, le clavier et la souris. Si votre écran X11 n'est pas sécurisé, il permettra à un programme exécuté n'importe où sur Internet de s'y connecter et la connexion peut être complètement invisible pour vous. Une fois connecté, ce programme a un accès complet à votre écran, ce qui signifie qu'il peut:

  • Affichez et copiez le contenu de votre écran à l'aide des programmes utilitaires X11 standard;
  • Surveillez vos frappes;
  • Contrôlez à distance n'importe quel navigateur Netscape sur votre bureau et appuyez sur les touches Forge comme si vous les tapiez vous-même (bien que toutes les applications X11 ne soient pas sensibles à cela).

Une règle générale n'est PAS à utiliser xhost +- Elle désactive complètement la sécurité de votre écran.

Un bon moyen est de transmettre X à travers ssh


Tiré de : http://www2.slac.stanford.edu/computing/security/xwindow/

Amith KK
la source
1
Cet article a environ 10 ans. Les informations sont-elles toujours valables?
Stefano Palazzo
1
Surtout, oui ... parce que AFAIK nous avons le xhost +commandement
Amith KK
xhost +ne peut pas remplacer -nolisten tcpcependant, ouvrez-vous simplement à toute connexion de l'hôte local.
alanc
ces problèmes seraient-ils résolus en démarrant un xserver pour chaque application individuellement?
phil294
-6

La vraie raison est que les administrateurs peuvent se considérer comme super intelligents en exécutant des choses à partir de la ligne de commande. Il n'y a aucun risque de sécurité d'exécuter une interface graphique sur le serveur Ubuntu.

Rich Striker
la source