Comment empêcher les programmes de renifler les frappes de touches vers su / gksu?

10

J'ai lu ici qu'il est possible pour n'importe quelle application utilisant le serveur X de flairer les frappes vers n'importe quelle autre application qui utilise également le serveur X, y compris su(sur un terminal) ou gksu. J'ai entendu parler de quelques façons de sécuriser le serveur X comme Xephyr , mais je ne sais pas lequel utiliser. Je veux juste empêcher toute application comme xinputde renifler facilement les frappes lorsque je tape un mot de passe dans le terminal ou gksu. J'utilise actuellement Debian Sid.

Magnus
la source
Ne tapez pas. pistes
Ignacio Vazquez-Abrams
1
toute application = toute application ayant accès à votre serveur X11 , consultez la documentation de sécurité de X.Org pour les premiers pointeurs. Notez également qu'il existe XACE, toute l'histoire semble un peu plus compliquée, avec des clients X11 fiables / non fiables. Aucune idée de la quantité utilisée dans les configurations récentes de Xorg.
sr_
1
J'ai installé Xephyr. Il est très lourd et nécessite une magie bash complexe, mais xinput exécuté à l'intérieur du serveur X imbriqué n'a pas pu détecter les pressions de touches en dehors de Xephyr (cependant, xinput exécuté à l'extérieur de Xephyr peut toujours détecter toutes les pressions de touches). J'ai essayé d'utiliser le sandbox SELinux mais je n'ai pas réussi à le faire fonctionner. Je laisserai toujours cette question ouverte au cas où quelqu'un aurait une meilleure idée.
Magnus
Ceci est un article récent lwn.netsur la sécurité de la pile graphique de GNU / Linux qui discute de manière assez approfondie la position des développeurs X sur la question.
sr_

Réponses:

1

Notez que Xephyr / Xnest / vnc-server fera parler l'application à un autre serveur X, mais ne lui interdira pas de parler à votre autre serveur X où vous exécutez gksu.

Le mieux est de l'exécuter sur un autre serveur X et en tant qu'utilisateur différent (ou d'utiliser un LSM pour empêcher l'application de se connecter au serveur X ou de lire votre fichier .Xauthority). Pour aller plus loin, vous pouvez le faire fonctionner dans une prison chroot, et pour aller encore plus loin, vous pouvez l'exécuter dans un conteneur, et pour le faire encore une fois, plus loin, l'exécuter dans un contrôle complet machine virtuelle (par exemple avec kvm -snapshot).

Si vous ne faites pas confiance à l'application, vous devrez probablement aller jusqu'au bout.

Stéphane Chazelas
la source
-1

Je crois, mais je ne sais pas comment le prouver, que toute application X11 qui vous empêche de taper ailleurs (comme les invites de mot de passe) ne peut pas être reniflée.

Essayez ceci: exécutez gksu, et lorsque l'invite de mot de passe s'ouvre, essayez d'ajuster le volume à l'aide de touches (si votre machine les possède), ou appuyez sur d'autres touches de raccourci (super, alimentation, etc.) et voyez si elles font quelque chose. S'ils ne le font pas, je pense que vous êtes en sécurité.

Je pense que ctrl-alt-f1 etc. fonctionne toujours.

ams
la source
2
En fait, xinput peut suivre les pressions sur les touches même dans gksu. J'ai essayé cela et bien qu'il n'ait pas montré les pressions sur les touches lors de la saisie du mot de passe, une fois la boîte de dialogue gksu disparue, les pressions sur les touches sont apparues.
Magnus
@Magnus: C'est décevant. :(
ams