Linux让我不快乐,哪怕我从Ubuntu换到Arch,再换到Gentoo。现在我用的是另一个不太知名的操作系统,它有一些更超前的想法。
Linux给不了我需要的安全保证。我想要一种全新的思路。这样的系统目前还没有稳定版本,但我确实找到了一个能解决我问题的替代方案,而且它甚至不需要我放弃Linux。
![]()
Linux有个小问题
Linux从来就不是为安全而生的,它是一个任何人都能用的自由开放系统。它一直在演进,但要真正修补它的缺陷,需要架构上的根本转变,以及一套完全不同的安全模型。
首先,它是宏内核,这意味着几乎所有服务(比如驱动和模块)都运行在内核空间,也就是ring 0。你用的应用和代码运行在ring 3,包括libc。ring 0的代码对硬件有完全访问权,TPM和管理引擎除外。ring 0里出一个bug,就意味着彻底沦陷。Linux体量巨大,有成千上万个模块,全都带着ring 0权限在跑。
另一个大缺陷是它基于环境权限的思路。你听说过的几乎所有现代操作系统都是这样:一个主体(进程)根据它的身份或角色获得权限。用户启动一个进程,这个进程就继承了用户账户的权限,这些权限是凭它所在的“环境”被赋予的。这里没有什么被隐藏,只是被限制。叠加在上面的额外权限系统会执行这些限制,但主体从来不是一无所知的。在Linux上,自主访问控制(DAC)在大多数情况下让系统的大片区域暴露在外。一次提权攻击往往就意味着彻底沦陷。
很多操作仍然需要root。Docker容器里的root通常也能拿到宿主机的root。这让系统距离彻底失效只差一两个缺陷。更麻烦的是,Linux这些年实现了许多拖慢攻击者的手段,包括ASLR、PIE/PIC、栈金丝雀、chroot、seccomp、NX和SELinux,这些全都是在事后打补丁。
Linux上的安全是不充分的,是事后才想起来的。
我现在的方案
折腾了几年之后,我得出结论:再怎么调Linux都没用。你可以用容器或者bwrap,但内核仍然把系统暴露在外。连SELinux也救不了你。Linux是一个开放、复杂的平台,上面加了一层规则,总会有松掉的线头。就目前而言,Qubes是完美的方案,因为它把Linux的便利和强得多的安全架构揉在了一起。
这话说出来可能有争议,但Qubes用的东西类似基于能力的安全模型。在这样的系统里,主体(比如虚拟机,传统上是进程)对自己的运行环境一无所知,只知道被明确授予了什么。就像一间黑屋子,只有必需资源从投信口递进来。Qubes并不是这个模型的真正代表,但沙箱化的原则是适用的。
在这个世界里,Qubes不在乎Linux的那些问题,因为几乎每一次攻击都会被圈住。当我们按风险划分生活,比如网银和日常浏览,我们就把恶意入侵限制在不存放重要东西的域里,在转账、管理社交账号或处理业务时大幅降低危险。比如,我给自己的邮件域加了防火墙,只允许访问一个远程服务商,附件则在另一个断网的虚拟机里打开。
未来会怎样
Qubes是第一代“通过隔离实现安全”的操作系统,但它不会是最后一个。Spectrum OS是个新来者,试图改进Qubes的一些短板,比如资源占用。它的不同之处在于,它想把每个应用都包进一个微虚拟机,比传统虚拟机轻得多。它构建在Cloud Hypervisor之上,理论上能在短短100毫秒内启动这样的客户机。目前,Spectrum OS还是把应用包进一个完整的虚拟机里。
另一个未来平台是Sculpt OS,一个用Genode框架构建的操作系统,它是真正基于能力的。它不用虚拟机,Sculpt OS里的每个组件都跑在一个迷你沙箱里,而这些沙箱是分层的。父进程生成子进程,就像浏览器生成插件一样,每个子进程都有自己的黑屋子。父进程传入关键资源,别的什么都不透露。一个恶意PDF很难攻陷一个它一无所知的系统。更重要的是,Sculpt OS启动的是源自NOVA的微内核,Genode也支持seL4,后者使用的是经过数学验证的代码库(程度不一)。微内核(与Linux相反)把几乎所有模块都移到ring 3,让提权难得多。
Spectrum OS和Sculpt OS(Genode)都是长期项目,还没到能挑大梁的时候。但Qubes可以,你今天就能用。
Linux不可或缺,所以Qubes是合理的折中
Linux很方便,只要操作系统还存在,它就会一直存在,但它不是安全方面的最佳思路。如果安全是你的目标之一,那就别掉进试图靠配置解决问题的陷阱里(像我那样),直接把它塞进虚拟机就行。这样你既得到了Linux的便利,又得到了强沙箱的安全。Qubes只是帮你把这件事变简单了。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.