Por que o X11 é um risco de segurança nos servidores?

11

Lembro-me de ler que os servidores não têm uma GUI porque o X11 é um risco de segurança. Por quê?

Orcris
fonte

Respostas:

8

A documentação da comunidade do Ubuntu explica os reais motivos pelos quais não é recomendável executar uma GUI em um sistema de servidor de produção:

A maioria dos desenvolvedores do Ubuntu Server não recomenda instalar o X em um servidor. Existem vários motivos para não instalar uma GUI.

Alguns motivos para não instalar uma GUI incluem:

  1. Você terá mais código sujeito a vulnerabilidades de segurança, mais pacotes que precisam de atualização e mais tempo de inatividade do servidor.
  2. Os pacotes X11 e desktop não são suportados pelo ciclo de vida completo de 5 anos da versão do servidor LTS.
  3. O desempenho pode sofrer porque os recursos (memória, espaço no disco rígido, CPU etc.) serão consumidos pela GUI.
  4. É uma prática recomendada instalar apenas o software necessário em um servidor de produção.
  5. A GUI pode incluir outros serviços de rede que são inadequados para um servidor.
    1. Um dos objetivos do Ubuntu Desktop Edition é facilitar o uso do Linux pelos usuários. Ao instalar alguns ambientes de área de trabalho, os serviços que você pode não querer especificamente serão instalados. Por exemplo, o avahi-daemon , usado para ajudar a configurar a rede, adiciona outra porta aberta e pode introduzir conflitos indesejados de DNS com um domínio .local.

Portanto, para o servidor mais seguro, é melhor não instalar uma GUI.

"ServerGUI" por "Contribuintes para a wiki de documentação do Ubuntu", reproduzido aqui conforme permitido pelo CC-BY-SA 3.0 .

Ao contrário do equívoco bastante comum, o X11 ser um servidor realmente não tem nada a ver com o motivo pelo qual a execução de uma GUI em um servidor de produção é considerada não ideal do ponto de vista da segurança. O X11 praticamente nunca é configurado por padrão para ficar mais acessível em uma rede, em qualquer sistema operacional. Nenhuma versão do Ubuntu já teve o X11 executando um servidor acessível em rede na configuração padrão. (Para acessar o X11 no Ubuntu via TCP, você deve encaminhar através do SSH ou reconfigurar manualmente o servidor.)

Além disso, mesmo se o X11 executasse um servidor acessível pela rede , isso não seria um motivo para não instalá-lo em um sistema de servidor de produção. Qualquer pessoa que esteja executando um servidor de produção provavelmente é capaz de configurá-lo para suas necessidades e auditá-lo para garantir que serviços indesejáveis ​​não estejam em execução. (Se não puderem, isso representará uma ameaça muito maior à segurança do que seria criado com a instalação de uma GUI.) Mesmo se o X11 tivesse que ter uma porta escutando em uma interface de rede física (o que não é o caso ), a porta pode ser facilmente bloqueado reconfigurando o built-in netfilterusando iptables(ou um frontend de nível superior ufw).

Por outro lado, os problemas listados acima não são tão fáceis de superar pela reconfiguração.

Eliah Kagan
fonte
1
O 10.04 teve uma vida útil de suporte diferente para servidor versus desktop, 12.04 e versões posteriores não. Além disso, uma GUI ociosa não consome nenhuma CPU, e a ram usada será trocada.
psusi 14/01
@psusi O ponto sobre a mudança no ciclo de vida do suporte é bom. Quanto aos problemas de CPU e RAM, (1) eu discordo da experiência de que uma GUI ociosa nunca consome CPU e (2) se uma GUI estiver em execução, quando alguém estiver trabalhando na máquina local, provavelmente a usará, seja eles querem ou não, e isso fará com que consuma mais recursos de CPU e memória. No entanto, os pontos 1, 4 e 5 são (e provavelmente sempre foram) os motivos mais significativos para considerar a não execução de uma GUI em um servidor de produção e são independentes dos problemas de ciclo de vida do suporte ou de utilização de recursos.
Eliah Kagan 15/01
Posso acrescentar que o Xorg também roda como root por padrão.
Wadih M.
5

Todo processo em execução é um risco à segurança. Especialmente aqueles que escutam em uma porta de rede (o X11 faz).

A boa prática geral é não executar nada em um servidor que não precise estar absolutamente lá, e o X11 certamente não precisa estar em um servidor no qual você fará o SSH.

Duvido que o artigo que você leu estivesse falando sobre uma vulnerabilidade específica no X11 (teria sido corrigido, se for o caso, as vulnerabilidades não tendem a permanecer sem correção por muito tempo), mas apenas como boas práticas gerais.

Césio
fonte
2
Na maioria das distribuições modernas de Linux (como Ubuntu), o servidor X, por padrão, não escuta em uma porta de rede, mas apenas aceita conexões locais por soquetes de domínio.
Florian Diesch 6/02/2012
@FlorianDiesch Even No desconfigurado do servidor?
Amith KK
Grande +1 por mencionar que o X11 é um servidor de rede.
Stefano Palazzo
2
Amith: Sim. xinit / startx usa -nolisten tcppor padrão
Florian Diesch
5

Isso ocorre porque o sistema X Window representa um sério risco de segurança se não estiver adequadamente protegido. Um "monitor" X11 é o servidor X11 em execução na área de trabalho e inclui a tela, o teclado e o mouse. Se o seu monitor X11 for inseguro, permitirá que um programa em execução em qualquer lugar da Internet se conecte a ele e a conexão poderá ficar completamente invisível para você. Uma vez conectado, esse programa tem acesso total ao seu monitor, o que significa que ele pode:

  • Veja e copie o conteúdo da tela, usando programas utilitários X11 padrão;
  • Monitore suas teclas;
  • Controle remotamente qualquer navegador Netscape na área de trabalho e pressione as teclas do Forge como se você estivesse digitando você mesmo (embora nem todos os aplicativos X11 sejam suscetíveis a isso).

Uma regra de polegar NÃO deve ser usada xhost +- desativa completamente a segurança do seu monitor.

Uma boa maneira é encaminhar X é através ssh


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

Amith KK
fonte
1
Este artigo tem cerca de 10 anos. As informações ainda são válidas?
Stefano Palazzo
1
Na maior parte, sim ... porque AFAIK temos o xhost +comando
Amith KK
xhost +não pode substituir -nolisten tcp, basta abrir você para qualquer conexão do host local.
Alanc
esses problemas seriam resolvidos iniciando um xserver para cada aplicativo individualmente?
31918 phil294
-6

A verdadeira razão é que os administradores podem se considerar super inteligentes executando coisas na linha de comando. Não há risco de segurança de executar uma GUI no servidor Ubuntu.

Rich Striker
fonte