Subgraph:这款注重安全的发行版是恶意软件最大的恶梦
按照设计,Linux是一款很安全的操作系统。实际上,我在使用20年的过程中只遇到过一次Linux机器被攻破的情况,那次服务器受到了rootkit的攻击。在桌面端,我还没有遇到过任何形式的攻击。
这倒不是说Linux平台上的漏洞和攻击就不存在,它们确实存在。只要想想Heartbleed和Wannacry,就明白Linux并非牢不可破。
由于Linux桌面的人气越来越高,可以确定桌面恶意软件和勒索软件攻击也会越来越多。这意味着多年来忽视这种威胁的Linux用户应开始考虑他们选择的平台可能受到攻击。
你平时做什么?
如果你是Linux桌面用户,可能会考虑采用像Subgraph这样的发行版。Subgraph是一个桌面计算和通信平台,旨在强有力地抵御网络攻击和恶意软件/勒索软件攻击。但是不像可能试图实现这类目标的其他平台,Subgraph在使这一切成为可能的同时,还保留了很高的易用性。由于GNOME桌面,Subgraph非常易于使用。
Subgraph有何不同之处?
这一切都始于操作系统的核心。Subgraph随带的内核是用grsecurity/PaX和RAP(旨在防止代码重用攻击内核以减轻当前开发技术)构建的,前者是一个面向整个系统的补丁,以缓解漏洞和权限提升,后者旨在防止对内核执行代码重用攻击,防范当代的攻击技术。想了解Subgraph内核的更多信息,请查看GitHub上的Subgraph内核配置(https://github.com/subgraph/subgraph-kernel-configs)。
Subgraph还在独特的环境(名为Oz)中运行暴露的、易受攻击的应用程序。Oz旨在将应用程序彼此隔离开来,只将资源授予需要资源的应用程序。组成Oz的技术包括如下:
- Linux命名空间
- 受限制的文件系统环境
- 桌面隔离
- Seccomp和Berkeley数据包过滤器(bpf)
其他安全功能包括如下:
- 大多数自定义的Subgraph代码是用内存安全的语言Golang编写的。
- 涵盖许多系统实用工具和应用程序的AppArmor配置文件。
- 安全事件监视工具。
- 桌面通知(即将发布)。
- Roflcoptor tor控制端口过滤器服务。
安装子图
有必要记住,Subgraph是alpha测试版,所以不应该把这个平台当作日常主力平台。由于它还是测试版,安装方面有几个问题要值得注意。我遇到的第一个奇怪的地方是,Subgraph无法作为VirtualBox虚拟机来安装。无论怎样,都行不通。这是已知的bug,但愿开发人员会修复这个缺陷。
第二个问题是,通过USB设备安装Subgraph非常棘手。你不能使用Unetbootin或Multiboot USB之类的工具创建可启动的闪驱。你可以使用GNOME Disks来创建USB驱动器,但最好的办法是使用dd命令。下载ISO映像文件(https://subgraph.com/sgos/download/index.en.html),将USB驱动器插入到电脑,打开终端窗口,找到刚插入的那个USB设备的名称(命令lsblk适用于此)。最后,用这个命令将ISO映像文件写入到USB设备:
dd bs=4M if=subgraph-os-alpha_XXX.iso of=/dev/SDX status=progress && sync
其中XXX是Subgraph版本号,SDX是USB设备的名称。
一旦上述命令完成,你可以重启机器,安装Subgraph。安装过程相当简单,个别地方麻烦点。首先是安装程序在安装之前会完全擦除整个驱动器。这是一个安全措施,避免不了。这个过程需要一段时间(图1),所以让它自行完成,你可以改而操心另外的任务。
图1:Subgraph安装过程包括擦除驱动器
接下来,你要为驱动器的加密创建一个密码(图2)。
图2:创建磁盘加密密码
你在启动设备时要用到这个密码。如果丢失或忘记密码,就无法启动进入到Subgraph。该密码也是对付窃取你数据后企图访问数据的那些人的第一道防线,所以要明智地选择。
Subgraph和另外大多数发行版之间的最后一个区别是,你没有机会创建用户名。你确实可以创建用户密码,该用户密码用于默认用户:命名用户。你始终可以通过命令行或GNOME Settings工具来创建新用户(一旦操作系统安装完毕)。
安装完成后,你的Subgraph系统会重启,提示输入磁盘加密密码。成功验证后,Subgraph将启动,并进入到GNOME登录屏幕。使用你在安装过程中创建的用户名和密码来登录。
具体用法
使用Subgraph时有两个重要的方面要记住。首先,正如前面提到,这款发行版处于测试开发中,所以还不完善。其次,所有应用程序都在沙箱中运行,网络通过Tor来处理,所以会碰到应用程序启动和网络连接速度不如平常的情况。
我惊讶地发现,Tor浏览器(默认也是唯一安装的浏览器)并不直接就被安装。相反,GNOME Dash上有一个启动器,首次启动时它会下载最新版本。这很棒,但我发现下载和安装失败了两次。如果我使用常规的网络连接,情况不会这么令人头疼。然而,由于Subgraph通过Tor来工作,我的网络连接速度慢得要命,所以Tor浏览器(26.8 MB程序包)的下载、验证和安装耗时约20分钟。当然,那不是Subgraph的过错,而是我连接的Tor网络的过错。在Tor浏览器安装和运行之前,Subgraph让我实际上能做的事情很有限。最终,Tor浏览器下载好后,一切按预期运行。
应用程序沙箱
不是每个应用程序都要经历首次启动时下载新版本的过程。实际上,Tor浏览器是我碰到唯一这么做的应用程序。当你打开一个新的应用程序,它会先启动自己的沙箱,然后打开相应的应用程序。一旦应用程序启动并运行起来,你会在顶部面板中看到一个下拉列表,列出了当前的每个应用程序沙箱(图3)。
图3:LibreOffice应用程序沙箱启动并运行,而Tor浏览器继续下载
你可以通过每个应用程序子菜单,将文件添加到特定的沙箱,或者关闭沙箱。关闭沙箱实际上关闭了该应用程序。这不是你应该关闭应用程序本身的方式,而是像平常那样来关闭应用程序,然后如果你用好应用程序,随后可以手动关闭沙箱(通过下拉菜单)。比如说如果你打开了LibreOffice,通过关闭沙箱来关闭它,就面临丢失信息的风险。
由于每个应用程序都在自己的沙箱中启动,应用程序打开不如其他方式来得快。这是你为使用Subgraph和沙箱作出的牺牲。有些人希望获得最高的桌面安全性,作这样的牺牲是值得的。
大有前景的发行版