使用 Qubes 的安全桌面:简介

作者:Kyle Rankin

这是关于 Qubes OS 的多部分系列文章的第一篇,Qubes OS 是一个以安全为中心的操作系统,从根本上不同于我使用过的任何其他 Linux 桌面系统,并且是我在过去几个月中亲自切换使用的系统。在第一篇文章中,我概述了 Qubes 是什么,它所采用的一些方法与您在 Linux 桌面上可能习惯的方法完全不同,以及它一些特别有趣的安全功能。在未来的文章中,我将提供更多关于安装和配置它的操作指南,以及如何使用它的一些更高级的功能。

在 Linux 安全方面,服务器安全往往最受关注。当您强化服务器时,通常会尝试限制任何单个服务器的功能,并使用防火墙来限制服务器之间的访问,使其仅限于必要的访问。在现代环境中,服务器仅运行 SSH 以及可能一两个其他联网服务,攻击者只有几种方法可以进入。如果特定服务器确实被黑客入侵,理想情况下您可以检测到它,隔离该服务器并在环境的其余部分保持正常运行的同时应对紧急情况。

桌面 Linux 安全是一个完全不同的挑战,因为您在桌面上执行的不同操作实在太多了。您使用桌面计算机执行的每个操作都打开了一种新的被攻击方式。Web 浏览,特别是如果您仍然安装了某些有风险的插件(如 Flash),是桌面可能被攻陷的主要方式之一。电子邮件是另一种常见的攻击媒介,因为您只需要打开一个恶意电子邮件附件或点击一个恶意网络钓鱼链接,攻击就会成功。Linux 桌面通常也用作开发平台,这意味着用户可能会下载、构建和执行别人的代码,或者直接在他们的桌面上运行服务来测试自己的代码。尽管一些 Linux 用户在想到其他平台上的所有恶意软件时会沾沾自喜,但事实是,Windows 是唯一桌面操作系统的日子已经结束,如今,许多恶意软件是以跨平台方式编写的,以便它可以在许多不同的操作系统上运行。

桌面 Linux 安全的最大问题是,如果您真的被黑客入侵,风险是什么:您的所有个人数据。这可能包括从用户名和密码到重要帐户(如您的银行或信用卡帐户、您的社交媒体帐户、您的域名注册商或您过去购物过的、缓存了您的信用卡数据的网站)的任何内容。攻击可能会暴露您的所有个人照片或访问私人电子邮件消息。攻击者可能会留下一个远程访问木马,让他们随时可以返回您的机器,同时,他们可以使用您的网络摄像头和麦克风窥探您。他们甚至可能攻陷您的 SSH、VPN 和 GPG 密钥,从而打开通往其他计算机的通道。

Qubes 提供安全性的核心思想是一种称为分舱隔离的安全方法。这种方法侧重于通过将您的活动及其相关文件分离到单独的虚拟机 (VM) 来限制攻击者可能造成的损害。然后,您根据 VM 呈现的风险级别为每个 VM 分配一定的信任级别。例如,您可以创建一个不受信任的 VM,用于进行通用的、未经身份验证的 Web 浏览。然后,您可能会有一个单独的、更受信任的 VM,您仅使用它来访问您的银行。您可以决定创建第三个高度信任的 VM,它完全没有网络访问权限,您可以使用它来管理离线文档。如果您也从个人计算机工作,您可以为个人活动与工作活动创建单独的 VM,其中工作 VM 更受信任。如果您使用不受信任的 Web 浏览器浏览到恶意网站,攻击者将无法访问您的银行凭据或个人文件,因为您将这些文件存储在不同的 VM 上。Qubes 甚至提供了一次性 VM:一次性使用的 VM,在应用程序关闭后会从磁盘上完全删除。

Qubes 如何工作

虽然您当然可以使用任何虚拟机技术在您的常规 Linux 桌面上设置多个 VM,但这种安排最终可能会变得非常笨拙,特别是如果您不希望多个桌面环境在其自己的窗口中运行。在这种设置中,您也可能会犯各种错误,从而消除您可能获得的任何安全优势。例如,您应该如何在 VM 之间安全地共享文件或复制和粘贴,以及如何使所有这些 VM 都保持最新的安全补丁?

传统的 Linux 发行版使您可以轻松获取所有想要使用的软件,而无需下载和编译所有软件,Qubes 提供了许多额外的工具,可以轻松管理包含不同信任级别的不同虚拟机的桌面。Qubes 还在各个方面都以安全为先的方法来处理桌面,并在整个操作系统中使用安全默认设置。通过这样做,Qubes 使您更难以(但并非不可能)搬起石头砸自己的脚。

Qubes 使用 Xen 来提供所有虚拟化(如果您想知道为什么 Qubes 选择它而不是其他技术,请参阅 Qubes 网站上的 FAQ)。Qubes 没有让每个 VM 都拥有自己的完整桌面环境,而是使用更特权的 dom0 Xen VM 作为桌面环境的主机(目前 Qubes 让您可以选择 KDE 或 XFCE,尽管社区贡献了其他桌面环境),而其他 VM 在 dom0 的桌面环境中显示各个应用程序窗口。

因此,在 Qubes 中启动 Firefox 的行为与您在任何其他桌面发行版中期望的行为非常相似。然而,主要区别在于 Qubes 允许您根据信任级别对每个 VM 进行颜色编码,范围从红色(不受信任)到黑色(最终受信任),中间有许多不同的彩虹色。

当您从应用程序 VM(在 Qubes 术语中为 appVM)启动应用程序时,如果 VM 之前未启动,则会启动 VM,然后应用程序会显示一个窗口边框,该边框根据您为其 appVM 分配的颜色进行着色。因此,如果您在桌面上同时有两个 Firefox 实例,您可以区分不受信任的 Web 浏览器和您的银行 Web 浏览器,因为不受信任的浏览器可能是红色的,而您的银行浏览器可能是绿色的。图 1 提供了 Qubes 文档中的屏幕截图,演示了这一点。

图 1. 具有不同颜色的多个窗口

由于 dom0 VM 具有对 Xen 中其他 VM 的数据的特权访问权限,因此 Qubes 会采取额外措施来保护它,方法是仅让桌面环境从它运行,并删除 dom0 的所有网络访问权限。我们鼓励您在 dom0 中尽可能少地执行操作,而是应该使用 appVM 来运行任何您想要运行的应用程序。与在 appVM 之间复制文件相比,Qubes 甚至有意使复制文件到 dom0 或从 dom0 复制文件变得更加困难。在 dom0 桌面环境的应用程序菜单中,每个 VM 都有自己的子菜单,您可以在其中启动其每个应用程序(图 2)。Qubes 提供了工具,因此所有这些子菜单都不会变得过于笨重,您可以选择哪些应用程序出现在哪个 appVM 的菜单下。

图 2. Qubes 应用程序菜单

在 AppVM 之间共享信息

但是,当您打开多个窗口时,这会引发如何复制和粘贴的问题?一种不安全的方法可能是在所有窗口之间共享剪贴板,但这样做的风险是,如果您通过从密码管理器复制和粘贴密码来登录受信任的 Web 浏览器中的网站,则任何其他恰好正在运行的 appVM 都可以读取该密码。相反,Qubes 提供了一种两层剪贴板方法。每个 appVM 都有自己的剪贴板,您可以在该 appVM 中像往常一样复制和粘贴。如果您想从一个 appVM 复制并粘贴到另一个 appVM,一旦您将数据放入一个 appVM 的剪贴板中,您就可以按 Ctrl-Shift-c 将其放入全局剪贴板中,然后突出显示您要粘贴到的窗口,并按 Ctrl-Shift-v 将该数据粘贴到该 VM 的剪贴板中,并从全局剪贴板中擦除它。然后,您可以像往常一样在该应用程序中粘贴。这绝对是一个额外的繁琐步骤,但您会惊讶于您适应的速度:Ctrl-c、Ctrl-Shift-c、更改窗口、Ctrl-Shift-v、Ctrl-v。它绝对有助于您防止意外地将信息粘贴到错误的窗口中。

Qubes 还提供了一个命令行工具和 GUI 文件管理器中的右键单击菜单选项,因此您可以在 appVM 之间复制或移动文件。当您尝试这样做时,您会在 appVM 不控制的黑色边框窗口中收到提示,以便您可以接受此文件传输。即便如此,文件也不会出现在您在目标 VM 上想要的任何位置(否则攻击者可能会用后门版本覆盖重要文件)。相反,文件会显示在您的主目录中的 QubesIncoming 目录中。

TemplateVM、持久性和后门保护

Qubes 为桌面用户提供额外保护的另一个领域是它如何处理持久性。如果攻击者攻陷了普通桌面,他们可以安装带有后门的实用程序版本,例如 ls 或 bash,或者添加在启动时触发启动的额外程序。使用 Qubes,appVM 基于 TemplateVM,默认情况下具有 Fedora、Debian 或 Whonix 的基本安装(社区为其他流行的发行版提供了模板)。当您创建新的 appVM 时,您可以选择它基于哪个模板,当您启动它时,该 appVM 会获得该模板的只读版本的根文件系统。尽管 appVM 内的用户仍然可以安装软件或更改根文件系统,但当该 appVM 关闭时,所有这些更改都将被擦除。只有 /rw、/usr/local 和 /home 目录会持久存在。这意味着您的浏览器历史记录和设置将保留下来,但如果攻击者确实攻陷了您的浏览器并试图在 bash 或 Firefox 中安装后门,那么下次您重新启动该 appVM 时,后门将消失。

此外,默认情况下,appVM 不会自动启动任何常见的 init 服务,如 cron。这意味着攻击者也无法只添加一个启动后门的用户 cron 条目。虽然攻击者确实可以在您的 appVM 的主目录中存储恶意程序,但下次您重新启动 appVM 时,该程序将不再运行,并且他们将无法再次自动启动它。

那么,您如何安装软件?由于每个 appVM 都使用基于其 TemplateVM 的根文件系统,因此当您想要安装新软件时,您可以从 TemplateVM 启动软件管理器,并使用 yum、apt-get、GUI 等效项或您通常用于安装软件的任何其他方法来安装应用程序。然后,Qubes 会检测到您添加的任何新的应用程序菜单项,并使它们可用于基于该模板的 appVM。

唯一需要注意的是,新安装的应用程序在这些 appVM 重新启动之前不可用于 appVM。由于攻陷 TemplateVM 会攻陷基于它的每个 appVM,因此 Qubes 通常鼓励您关闭 TemplateVM,不要从它们运行通用应用程序,并且仅在添加受信任的软件时才打开它们。虽然这确实在您想要安装软件时增加了一些额外的工作,但它也提供了一个很好的好处,即当您需要应用安全更新时,您只需要更新 TemplateVM,当您重新启动每个 appVM 时,它就会获得更新。

使用 netVM 的网络安全

Qubes 提供安全性的另一种方式是通过分舱隔离网络。安装后,Qubes 将创建一些特殊的系统 VM,称为网络 VM (netVM),命名为 sys-net、sys-firewall 和 sys-whonix。sys-net netVM 被分配主机上的任何网络硬件,因此任何其他 VM 都无法使用它。由于此 netVM 是唯一一个在外部网络上具有 IP 的 VM,因此它被认为不受信任并标记为红色。您可以使用 Network Manager 为此 netVM 配置连接到无线网络所需的任何凭据,并且其 Network Manager 小程序会像往常一样显示在您的桌面上。sys-firewall VM(技术上归类为 proxyVM)标记为绿色,并连接到 sys-net 以进行网络访问。默认情况下,您创建的任何 appVM 都使用 sys-firewall 进行网络访问。

为什么这么复杂?首先,sys-firewall 充当所有 appVM 的真正防火墙。虽然默认情况下所有 appVM 都可以无限制地与 Internet 通信,但 Qubes 提供了一个 GUI 工具,可以轻松锁定单个 appVM,以便它们只能访问网络上的某些主机。例如,您可以限制您的银行 appVM,使其只能与您的银行网站上的端口 443 通信,或者限制电子邮件 appVM 只能与您的远程邮件服务器通信。您甚至可以限制其他 VM,使其只能与您内部网络上的主机通信。任何想要攻击您的 appVM 之一的人都必须通过 sys-net 和 sys-firewall。这也意味着,如果攻击者确实攻陷了 appVM,他们就无法直接访问网络硬件,因此他们无法例如自动连接到不同的无线接入点。

sys-whonix VM 的作用类似于 sys-firewall,只不过它会自动设置安全的 Tor 路由器。任何使用 sys-whonix 而不是 sys-firewall 或 sys-net 进行网络的 appVM 都会自动通过 Tor 路由其所有流量。Qubes 还默认提供了一个 anon-whonix appVM,它使用以安全性和匿名性为中心的 Whonix 发行版,并且它包括 Tor 浏览器,并且默认情况下通过 sys-whonix 路由所有流量。

我相信您已经可以看到 Qubes 在安全性方面比您在普通 Linux 桌面中发现的安全性更高的许多领域。希望您对 Qubes 采用的方法与您可能习惯的方法有何不同有所了解。使用 Qubes,您会发现自己更多地思考应该如何隔离文件和信息,以及如果攻击者成功攻陷您的 appVM 之一,他们会获得什么。即使是额外的复制和粘贴以及文件复制步骤也迫使您面对您是否在不受信任的 VM 和受信任的 VM 之间传输信息,并思考其中的含义。我发现额外的安全措施实际上让我比其他情况下更放松一些,因为例如,我知道我在一次性 VM 中打开的电子邮件附件对我没有多大危害,或者我的不受信任的 Web 浏览器中的恶意网站无法访问任何有价值的东西。

在本文中,我仅触及了 Qubes 中的一些更高级别的安全功能。在我的下一篇文章中,我将描述如何下载和安装 Qubes,解释如何将 Qubes 用作桌面操作系统,包括 Qubes VM Manager 和其他 Qubes 特定工具的一些基本功能,并给出一些关于您可能如何在 appVM 之间组织您的日常桌面使用的示例。我将跟进一篇文章,描述更高级的 Qubes 功能,包括 split-GPG(一种允许 appVM 使用您的 GPG 私钥而无需直接访问它的方法)、如何使用默认应用程序处理程序更安全地管理链接、如何自动在一次性 VM 中打开电子邮件附件,以及如何创建一个 usbVM,为您隔离所有 USB 设备(以及您为什么要这样做)。

Kyle Rankin 是 Linux Journal 的技术编辑和专栏作家,也是 Purism 的首席安全官。他是 Linux Hardening in Hostile NetworksDevOps TroubleshootingThe Official Ubuntu Server BookKnoppix HacksKnoppix Pocket ReferenceLinux Multimedia HacksUbuntu Hacks 的作者,也是许多其他 O'Reilly 书籍的贡献者。Rankin 经常就安全和开源软件发表演讲,包括在 BsidesLV、O'Reilly Security Conference、OSCON、SCALE、CactusCon、Linux World Expo 和 Penguicon 上。您可以在 @kylerankin 上关注他。

加载 Disqus 评论