É seguro executar um programa GUI como outro usuário?

7

Eu preciso executar um programa ( libreoffice ) como outro usuário. Percebi que o programa começou em segundo plano quando invocado como kdesudo -u otheruser libreoffice , possivelmente para evitar ataques de engenharia social.

(no texto abaixo, "usuário logado" refere-se a mim, não "otheruser")

  • É seguro executar um programa não confiável dessa maneira?
  • Isso afeta o usuário atualmente conectado? (acesso ao arquivo e processo no contexto do usuário logado)

Ataques de negação de serviço por fork-bombs, usando excesso de CPU, etc. são excluídos, pois podem ocorrer também se eu fizer o login diretamente no otheruser . Para maior clareza, estou procurando diferenças entre os programas em execução diretamente quando logado como otheruser e executando programas usando kdesudo , gksudo e sudo .

    
por Lekensteyn 01.06.2011 / 17:34

1 resposta

5

Por motivos de segurança, suponha que os programas que têm acesso ao seu monitor X podem fazer o que quiserem, incluindo bisbilhotar na área de transferência, enviar falsos pressionamentos de tecla para outro aplicativo e outras não-niceties. X simplesmente não foi projetado com isolamento em mente.

Para os curiosos ou paranóicos, leia o Secure Linux Desktop e Ataques passivos e ativos via X11. Wayland é melhor? . Para os extremamente paranóicos, confira Qubes , que é baseado em instâncias do Linux virtualizadas, cada uma executando seu próprio servidor X.

Se você estiver preocupado com a execução de aplicativos X não confiáveis, deverá executá-los em uma exibição X separada, além de executá-los como um usuário diferente (ou melhor, em uma máquina (virtual) diferente). Você pode executar um servidor X separado e exibi-lo em uma janela X aninhada de várias maneiras: através de uma máquina virtual ( VirtualBox , VMware ,…), com um servidor X remoto, como VNC que por acaso você conecta localmente, ou com um programa X-in-X de finalidade especial, como Xnest ou Xephyr .

Se você está preocupado com os ataques de engenharia social, esse é um problema diferente. A engenharia social tem como alvo o usuário; a única maneira de evitá-los é deixar o usuário de fora.

    
por Gilles 01.06.2011 / 23:02