Как предотвратить прослушивание программ программами su / gksu?

10

Я читал здесь, что любое приложение, использующее X-сервер, может прослушивать нажатия клавиш для любого другого приложения, которое также использует X-сервер, включая su(на терминале) или gksu. Я слышал о нескольких способах обеспечения безопасности X-сервера, таких как Xephyr , но я не уверен, какой из них использовать. Я просто хочу запретить любому приложению, например, xinputлегко прослушивать нажатия клавиш, когда я набираю пароль в терминале или gksu. В настоящее время я использую sid Debian.

Магнус
источник
Не печатайте. работает
Игнасио Васкес-Абрамс
1
любое приложение = любое приложение с доступом к вашему серверу X11 , см. документацию по безопасности X.Org для первых указателей. Также обратите внимание, что XACEв целом история выглядит немного сложнее с доверенными / ненадежными клиентами X11. Не знаю, сколько из этого используется в последних установках Xorg.
2012 г.
1
Я установил Xephyr. Это очень громоздко и требует сложной магии bash, но xinput, работающий внутри вложенного X-сервера, не может обнаружить нажатия клавиш вне Xephyr (однако, xinput, работающий вне Xephyr, все еще может обнаружить все нажатия клавиш). Я пытался использовать песочницу SELinux, но не смог заставить ее работать. Я все еще оставлю этот вопрос открытым, если у кого-то есть идея получше.
Магнус
Это недавняя lwn.netстатья о безопасности графического стека GNU / Linux, в которой довольно подробно обсуждается, как разработчики X решают эту проблему.
sr_

Ответы:

1

Обратите внимание, что Xephyr / Xnest / vnc-server заставит приложение взаимодействовать с другим X-сервером, но не запретит ему общаться с другим X-сервером, на котором вы запускаете gksu.

Лучше всего запускать его на другом X-сервере и под другим пользователем (или использовать LSM, чтобы приложение не могло подключиться к X-серверу или прочитать ваш файл .Xauthority). Чтобы продвинуться на один шаг вперед, вы можете запустить его в изолированной тюрьме, и сделать еще один шаг вперед, вы можете запустить его в контейнере и сделать еще один шаг, далее запустить его в полностью контролируемом режиме. виртуальная машина (например, с помощью kvm -snapshot).

Если вы не доверяете приложению, вам, вероятно, придется пройти весь путь.

Стефан Шазелас
источник
-1

Я верю, но не знаю, как доказать, что любое приложение X11, которое не позволяет вам печатать где-либо еще (например, ввод пароля), не может быть прослушано.

Попробуйте это: запустите gksu, и, когда откроется запрос пароля, попробуйте отрегулировать громкость с помощью клавиш (если они есть на вашем компьютере) или нажмите другие горячие клавиши (супер, питание и т. Д.) И посмотрите, что они делают. Если они этого не сделают, я думаю, что вы в безопасности.

Я думаю, что Ctrl-Alt-F1 и т. Д. Всегда работают, хотя.

военно-картографическая служба
источник
2
На самом деле, xinput может отслеживать нажатия клавиш даже в gksu. Я попробовал это, и хотя он не отображал нажатие клавиш при вводе пароля, как только диалоговое окно gksu исчезло, появились нажатия клавиш.
Магнус
@Magnus: Это разочаровывает. :(
Амс