与运行本机 Windows 程序相比,适用于 Linux 的 Windows 子系统是否提供额外的安全性(类似于 VM 的隔离)?

信息安全 恶意软件 linux windows-10 隔离 wsl
2021-09-08 10:05:01

在 Windows 10 机器上,使用适用于 Linux 的 Windows 子系统运行浏览器的 Linux 版本比运行 Windows 版本更安全吗?

我之所以问,是因为我已阅读有关 Windows Subsystem for Linux (WSL)Wikipedia 文章,但我不确定它是如何在安全方面工作的。它说

WSL 提供由微软开发的兼容 Linux 的内核接口(不包含 Linux 内核代码),然后可以在其上运行 Linux 用户空间

WSL 使用的资源比完全虚拟化的机器少

这个 Linux 用户空间与 Windows 用户空间是否完全分开?也就是说,WSL 是一种虚拟机,与系统的其余部分隔离吗?假设我使用 Linux 版本的 Firefox 访问一个完全破坏它的恶意网站,恶意软件的有效性是否会因为被限制在这个 WSL 中而降低,或者结果是否与原生 Firefox for Windows 被破坏一样?
或者,换一种说法:如果我想要一个可以用来访问可能不安全的站点的隔离系统,那么使用 WSL 就足够了,还是我需要一个成熟的虚拟机?

我发现了一个类似的问题,但它是关于攻击面的,即系统受到攻击之前。相反,我要问的是,WSL 是否意味着在系统受到威胁后有任何缓解措施。而且,这个问题是在 WSL 发布之前被问到的,当时还不清楚一些细节。

2个回答

简而言之,WSL 只是一个 Linux ABI兼容层,即将 Linux 系统调用转换为 Windows 内核能够执行的操作的一组库。

总的想法是让这个兼容层尽可能薄,以确保 Linux 二进制文件在 Windows 下运行的速度几乎与本机一样快。因此,它与虚拟机相去甚远。例如,为方便起见,所有 Windows 文件系统都安装在 WSL/mnt中,依此类推。除了在一定程度上限制攻击面(正如您已经指出的那样),WSL 不提供任何安全隔离。

根据这项研究,就当前的安全工具而言,这实际上很糟糕

任何 Linux 二进制文件都直接与内核驱动程序交互,而无需通过安全软件通常拦截的正常 Win32 或 NT API。它们也不会出现在 Win32 进程表中,因此可见性较低......