Qubes OS简介
Qubes OS和 Tails Linux 都是面向安全设计开发的操作系统,但是有着显著不同:
Qubes OS主要假设攻击来自互联网,并没有像Tails假设你是用的笔记本会被物理接触破解(Tails 不保存任何本地数据,用后即焚),所以主要通过虚拟机来隔离不同的使用场景,以确保某个场景被攻破后依然保持操作系统的其他部分安全
假设不存在完美无缺的桌面系统
当某个组件受到攻击,恶意程序只能访问该环境中的数据( Apple App Sandbox 也是这样的假设,不过是基于类似容器的沙箱,对数据和设备的访问需要授权,另外内核只有一个导致内核漏洞会影响全局 )
Qubes OS的隔离分为两个维度:
硬件控制器可以隔离到功能域(如网络域、USB控制器域)
用户不同使用场景制定为不同信任级别的安全域
备注
学术界将Qubes OS这样的操作系统称为 融合多机安全 Converged Multi-Level Secure (MLS)
系统

Qubes OS架构
Xen hypervisor 和 domains
XEN hypervisor为托管的虚拟机(在Xen中称为 domain
)提供隔离:
Xen启动的第一个domain是特权管理domain,称为
dom0
管理域
dom0
:设置不同的信任级别,所有的窗口都显示在一个统一桌面环境,并使用不同的颜色窗口边界来区分不同的安全级别
每个Qubes运行时通常基于一个独特的底层操作系统模版:
模版提供了一个单一的、不可变的根文件系统,可以由多个Qubes共享
对给定魔棒的更新会自动被所有Qubes继承
共享模版可以大大减少存储需求
用户domains: qubes
应用
qube
提供安全、隔离的标准用户应用程序执行,例如 Web 浏览器、电子邮件客户端或文本编辑器。应用 qube 的运行由 Qube 管理器控制: 管理器启动独立的应用qube,并将其应用程序作为普通进程窗口呈现在 dom0 的桌面上
遵循沙盒的理念: 在运行应用程序、查看文档等操作后,整个一次性资源将在关机时销毁。
Qubes OS将所有应用 qube 集成到一个通用的桌面环境中:
每个应用 qube 针对特定进程的身份由一个不可伪造的彩色窗口边框提供,该边框在应用 qube 的属性中定义
通过允许多个应用 qube 共享一个以只读模式维护的通用“模板”根文件系统映像,可以最大限度地减少 dom0 中的磁盘使用量。
网络域
由于网络机制最容易受到安全攻击,所以被单独隔离在一个独立的、非特权的domain中,称为
network domain
防火墙域是另外一个独立Linux内核虚拟机,所以即使网络域被攻破,防火墙域仍受到隔离和保护