最近我一直在研究如何加强笔记本电脑的安全性。默认情况下,每个程序都可以访问所有资源:文件系统、网络以及其他程序。
首先,我开始研究Firejail。它允许指定程序可以访问的路径,以及网络和其他特殊权限。这个工具还不错,我使用了一段时间。
我不喜欢Firejail的地方在于它是setuid程序:它以root权限运行,设置好沙盒环境,然后启动作为参数传入的程序。如果Firejail本身存在问题,甚至可能扩大攻击影响范围。
后来我了解了Landlock。它是非特权运行的,并且也允许限制网络访问。在某次探索中,我找到了一个便于操作的命令行界面。Landlock解决了权限问题:它能在没有更高权限的情况下限制进程。
Landlock的问题在于其文件系统限制过于粗粒度:如果允许访问某个目录,那么该目录下的所有内容也都被允许访问。例如,授予对$HOME目录的读取权限,同时也意味着可以读取Chromium的用户配置文件。
现在我正在研究bubblewrap。它承诺以最佳方式结合Firejail和Landlock的优点:非特权运行且支持分层文件系统访问控制。
我仍在努力将我的配置文件迁移到bubblewrap中,这需要花费一些精力。但这似乎是迈向更好安全防护的合理下一步。