web-dev-qa-db-fra.com

Est-il sûr d'exécuter un programme GUI en tant qu'autre utilisateur?

J'ai besoin d'exécuter un programme (libreoffice) en tant qu'autre utilisateur. J'ai remarqué que le programme a démarré en arrière-plan lorsqu'il a été appelé en tant que kdesudo -u otheruser libreoffice, peut-être pour éviter les attaques d'ingénierie sociale.

(dans le texte ci-dessous, "utilisateur connecté" fait référence à moi, pas à "autre utilisateur")

  • Est-il sûr d'exécuter un programme non approuvé de cette manière?
  • Cela affecte-t-il l'utilisateur actuellement connecté? (accès aux fichiers et aux processus dans le contexte de l'utilisateur connecté)

Les attaques par déni de service par des bombes fourchues, l'utilisation d'un excès de CPU, etc. sont exclues car elles peuvent également se produire si je me connecte directement sur otheruser. Pour plus de clarté, je recherche des différences entre l'exécution de programmes dans directement lorsque vous êtes connecté en tant que otheruser et l'exécution de programmes à l'aide de kdesudo, gksudo et Sudo.

7
Lekensteyn

Pour des raisons de sécurité, supposez que les programmes qui ont accès à votre écran X peuvent faire ce qu'ils veulent, y compris espionner votre presse-papiers, envoyer de fausses frappes à une autre application et d'autres non-subtilités. X n'a ​​tout simplement pas été conçu avec l'isolement à l'esprit.

Pour les curieux ou les paranoïaques, lisez Secure Linux Desktop et Attaques passives et actives via X11. Wayland est-il meilleur? . Pour les extrêmement paranoïaques, consultez Qubes , qui est basé sur des instances Linux virtualisées, chacune exécutant son propre serveur X.

Si vous souhaitez exécuter des applications X non fiables, vous devez les exécuter sur un écran X distinct, en plus de les exécuter en tant qu'utilisateur différent (ou mieux, sur une autre machine (virtuelle)). Vous pouvez exécuter un serveur X distinct et l'afficher dans une fenêtre X imbriquée de différentes manières: via une machine virtuelle ( VirtualBox , VMware ,…), avec un serveur X distant comme VNC auquel vous vous connectez simplement localement, ou avec un programme X-in-X à usage spécial tel que Xnest = ou Xephyr .

Si vous êtes préoccupé par les attaques d'ingénierie sociale, c'est un problème différent. L'ingénierie sociale cible l'utilisateur; la seule façon de les éviter est de laisser l'utilisateur de côté.

5
Gilles