我使用 Qubes 的原因:普通 Linux 发行版无法匹敌的 3 个安全理由
我不知道你是怎么想的,但在使用普通的 Linux 或 Windows 安装一段时间后,我会对自己在此过程中接触到的东西变得非常敏感。我经常为了安心而重新安装系统。像文件、软件缺陷,甚至是写得很糟糕的网页应用程序都可能让你遭遇巨大的问题。Qubes 改变了游戏规则,并且一直感觉像是一个全新的系统——以下是它让我安心的三个原因。
Qubes 有什么不同
由于其独特性,Qubes 对大多数 Linux 用户来说仍然是一个谜。然而,大多数人熟悉虚拟机(VM),这也是它的主要防御机制。Qubes 要求用户将生活划分为安全域;每个域用于特定任务,例如工作、银行业务和一般网页浏览。这些界限让用户将风险较高的活动与更重要的活动分开,从而在发生攻击时限制损害。
Qubes 的一个独特功能是一次性虚拟机(disposable VM)。这是一个一次性使用的域,它会启动一个干净的 Linux 系统,并在停止后将其销毁——擦除对其的所有更改,包括任何潜在的安全威胁。在使用标准 SSD 时,这些域启动仅需 4-5 秒,因此速度很快。典型的使用场景是进行较高风险的操作,例如打开不可信的 PDF 文件。听起来有些笨重,但这正是 Qubes 的价值所在:提供一系列工具,使这些繁琐的任务更容易承受。
简而言之,安全边界根据风险划分活动;一次性虚拟机用于那些高风险的活动,会重置所有更改。
任意代码执行就是终结
任意代码执行(ACE)是指通过软件中的漏洞在受害者的机器上执行代码。例如,一个错误处理数据的网页浏览器可能会破坏应用程序的内存,导致其表现异常——有时甚至会执行恶意代码。这属于编程和计算机安全中的内存安全领域,而导致漏洞的最大原因之一是内存不安全的语言(如C或C++)。
不安全内存语言占据了超过50%的顶级开源项目,以及绝大多数的Linux和libc代码库。这两个组件是系统的核心,每个应用程序都以某种方式与它们交互。因此,在某种程度上,一切都通过不安全内存系统进行处理。
人们不喜欢听到他们心爱的 Linux 可能存在漏洞,但这是事实。虽然它有严格的审查过程,但它并非无懈可击——Windows、Firefox、Chromium、Android 或 iOS 也一样。
因为 ACE 允许攻击者执行他们想要的任何代码,这基本上意味着游戏结束。在 Qubes 上,这种情况仍可能发生,但由于我已经设置了独立的安全域,损害会被限制在只有不重要数据的域中。例如,我不会在我的银行虚拟机中打开陌生文件,而是会在一个低优先级或一次性使用的域中打开,从而确保被窃取的信息不重要,并且在关闭该域后问题将消失。
随机文件不太可靠
如前所述,ACE 漏洞可能影响任何处理不当不受信任输入的软件。PDF、图像和文档阅读器都是此类应用的例子,其文件长期以来一直是常见的攻击载体。
PDF 特别讨厌,因为它们可以运行自定义的 JavaScript(JS)。除了其通常的功能外,它还可以构建更复杂的漏洞利用来突破现有的限制。Adobe 的 PDF 阅读器有着丰富的安全事件历史,因此在打开这些不受信任的文件类型时,我会三思而行。
再次,Qubes 的安全域来救场。它们限制了攻击的范围,并在重启时抹除系统级别的更改。你还可以方便地配置 xdg-open 命令,在一次性虚拟机中打开特定文件类型,从而迫使你的电子邮件附件或浏览器下载文件在安全域内自我隔离。这使得错误发生的可能性很低,而且在 Qubes 4.3 中,有待命的一次性虚拟机会加快这一过程。
XSS 无效
如果你不知道,网络浏览器是非常不安全的。它们就像一艘有千疮百孔的船,还有成千上万的水手拿着成千上万的桶,一次修补一点点地把船舀起来。浏览器之所以能够漂浮,是因为持续不断的努力,但不得不承认,由于其极其复杂,它们充满了危险。
跨站脚本攻击(XSS)就是这样的一种漏洞:将JS代码注入网页以执行恶意操作或窃取信息。来源包括恶意制作的URL、消息、SVG以及其他许多方式。然而,它已经不像以前那样肆无忌惮了,因为XSS仍然需要一个糟糕编写的网页应用才能生效。无论如何,盲目信任它们是天真的,因为人们经常犯错误,有时甚至根本不在意。我们正在进入一个奇怪的世界,有些人根本不查看他们的生产代码,这是极不负责任的行为。
为了保护用户免受 XSS 攻击,有许多保护措施,比如 HttpOnly Cookie 或内容安全策略(CSP)。然而,其中许多都是需要用户主动启用的技术。
你可能不希望我做徒劳无功的事,我相信你可以猜到 Qubes 是如何保护我的。当 XSS 漏洞突破已经存在的多重防护时,它会落入一个没有任何价值的安全域。对于我非常关心的安全域(例如银行),我只会为一个目的使用它们,并且我访问的任何网站,我都会完全信任。
这些只是 Qubes 保护我的一些方式,我没有涉及隐私方面的问题,比如将我的在线身份分开、通过不同的通道发送流量,或者保护我的系统免受易受攻击的网络设备的影响——这些我在另一篇文章中已经涉及过。
这并不适合所有人,但我无法想象没有它的网络会是怎样。它为我解决了一个大问题,因为每次我启动一个安全域时,我都知道这是一个像我安装当天一样新鲜的系统。
我鼓励你考虑 Qubes。如果你感兴趣,可以访问他们的网站获取更多信息,并查看他们的硬件兼容性列表,看看是否支持你的硬件。

