使用Firejail、Landlock与bubblewrap加固系统安全

本文探讨了在Linux系统中使用Firejail、Landlock和bubblewrap等工具进行应用程序沙箱化与安全加固的技术实践,分析各自的权限模型与文件系统访问控制粒度差异,并分享了作者向非特权沙箱方案迁移的经验。

最近我一直在研究如何加固笔记本电脑的安全。默认情况下,每个程序都能访问一切:文件系统、网络以及其他程序。

首先,我开始研究Firejail。它允许指定程序可访问的路径,以及网络和其他特殊资源。它并不差,我使用了一段时间。

我不喜欢Firejail的地方在于它是setuid程序:它以root身份运行,设置沙箱,然后启动作为参数传入的程序。如果Firejail本身存在问题,它甚至可能扩大攻击影响范围。

后来我了解了Landlock。它是非特权(unprivileged)的,并且也允许限制网络访问。某个时刻,我找到了一个能轻松运行它的命令行工具。Landlock解决了权限问题:它在不具备更高权限的情况下限制进程。

Landlock的问题在于其文件系统限制有些过于粗略:如果一个目录被允许,那么其下的所有内容也都被允许。例如,授予对$HOME的读取权限,也就意味着授予了对chromium配置文件的读取权限。

现在我正在研究bubblewrap。它承诺以最佳方式结合Firejail和Landlock的优点:非特权运行,并且允许分层控制文件系统访问。

我仍在努力将我的点文件配置迁移到bubblewrap,这需要投入一些脑力。但它似乎将是一个很好的下一步。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计