X11下的快照的安全性

随着快照达到16.04 LTS,着名的Linux内核贡献者和核心操作系统开发人员Matthew Garrett 发表了一篇博文 ,他说:

…快照无限制运行,几乎可以访问整个系统

如果拥有快照是为了强制应用程序与整个系统隔离,为什么他们能够访问系统并且无限制地运行? 是否应提交错误报告? 是否会采取任何措施来解决这个问题?

这特别涉及使用X11的快照。 换句话说,快照不是无限制地运行,但如果快照的限制包括对X的访问,那么是的:它可以访问X.它不涉及不使用unity7x11接口的unity7 。 该博客文章中描述的问题是X的一个众所周知的限制,并且是开发替代技术的原因之一(例如Mir)。

Gustavo Niemeyer撰写了一篇很好的博客文章来讨论这个问题 。 我会在这里引用后人和完整性:

有安全意识的人会发现X11实际上并不是一个安全的协议。 当我们递交应用程序此权限时,可能会出现许多系统滥用行为。 其他接口(如home)可以快速访问用户$ HOME目录中的每个非隐藏文件(那些不以点开头的文件),这意味着恶意应用程序可能窃取个人信息并通过网络发送(假设它还定义了一个网络插件)。

有些人可能会对此感到惊讶,但这是对Snaps和Snappy作为软件平台的作用的误解。 当您从Ubuntu存档安装软件时,这是对Ubuntu和Debian开发人员的信任声明。 当您从各自的档案中安装Google的Chrome或MongoDB二进制文件时,这是对这些开发人员的信任声明(这些开发人员在您的系统上具有root权限!)。 Snappy并没有消除对这种信任的需求,因为一旦你让一个软件访问你的个人文件,网络摄像头,麦克风等,你需要相信它不会恶意使用这些限制。

Snappy在该图片中的限制点是,除了在Linux世界中我们都学会欣赏的相同程序护理之外,还能够以一种清晰,可观察的方式实现能够准确控制所允许的内容和软件生态系统的软件生态系统。 ,而不是它。 阻止人们使用系统中的所有相关资源只会迫使他们在不太安全的机制上使用相同的软件,而不是解决问题。

而我们今天所拥有的只是开始。 这些接口很快会变得更加丰富和细粒度,包括资源选择(例如哪个串口?),其中一些将完全消失,有利于更安全的选择(例如,Unity 8)。

问题不在于快照,而在于X11,这是一项30年前的技术设计,没有太多安全考虑。

要“解决问题”,你只需要摆脱X11。 没有它的系统,例如服务器,现在可以从快照隔离中受益。 新的Mir将取代xserver,希望能够更快地取代xserver,应该解决X11的安全问题。

欢迎您阅读Matthew Garrett的博文,以满足您的好奇心。 它说:

这里的问题是X11窗口系统。 X没有不同级别的应用程序信任的真实概念。 任何应用程序都可以注册以接收来自任何其他应用程序的击键。 任何应用程序都可以将假密钥事件注入输入流。 由强安全策略限制的应用程序可以简单地键入另一个窗口。 无法访问任何私有数据的应用程序可以等到会话空闲,打开无限制终端,然后使用curl将数据发送到远程站点。 只要Ubuntu桌面仍然使用X11,Snap格式就会为您提供非常有意义的安全性。