当我在虚拟终端中输入 root 密码时,X 上的另一个程序能否捕获我的 root 密码?

当我在虚拟终端中输入 root 密码时,X 上的另一个程序能否捕获我的 root 密码?

通常我只在我的 Linux 机器上安装开源程序,因为我不信任闭源应用程序。最近我不得不使用 Dropbox 来完成一个大学项目。我创建了一个名为的单独的 Linux 帐户工作并运行(如工作无需安装的保管箱通过 python 脚本。该脚本还在系统托盘中创建了一个符号,为 Dropbox 的某些功能提供 GUI。

有一天,我必须做一些维护,所以我打开了一个虚拟终端(KDE 上的 konsole)并输入了我的 root 密码

Dropbox 应用程序是否有可能捕获我的 root 密码?

我使用 Fedora 20 和 KDE 4.14.3。

答案1

简短回答:是的。

在“过去”,可以通过抓取特定输入来有效地阻止任何其他 X 应用程序读取该输入。虽然直到今天仍然可以这样做,XI2协议规范似乎表明不能再这样做了(参见第 2220 行周围原始事件的描述)。因此,仅在 X 下您不再安全 - 至少在通常的简单设置中不安全。另请参阅下面的讨论我的答案如何让守护进程提示输入密码(在 Xsession、keyloggersafe 中)?那里引用了 AskUbuntu 问答。不用说,实际上没有终端在这样做 - 这就是为什么像 OpenSSH 或 GnuPG 这样的应用程序带有自己的 UI 助手,可以抓取键盘(尽管如上所述,现在它并没有多大帮助)。

不过,您可以做的是在不同的 X 服务器下运行应用程序,例如嵌套的 X 服务器,例如Xephyr或者Xnest,或基于 VNC 之类的Xvnc。 Wayland 协议还应该提供一些针对窃听的保护。

除此之外,应用程序还可能尝试利用系统中未修补的安全漏洞,从而获得提升的权限。或者做一些更简单的事情,比如在系统路径之前将susudo包装器放入路径中,从而拦截密码(感谢@Joshua 的评论)。

相关内容