在隐私角度上,使用Windows 10上的Ubuntu虚拟机是否安全?

我的问题基本上就在标题中 - 我们都知道Windows 10带有的遥测废话以及NSA监视每个人的情况。考虑到所有这些事情,从隐私的角度来看,使用虚拟机来使用Linux是否安全? Windows能否从我的VM收集数据,还是与基本上将Linux作为主机操作系统一样?
这可能对你来说似乎非常偏执,但我觉得这是我必须问的事情,以确保安全。我不能只删除我的Windows安装并完全使用Linux,因为我需要在Windows上使用软件。我也不能(更好地说:不想)仅使用Windows,因为我不想被监视。所以我想走中间路线。
如果这方面很重要,我正在使用Vmware和最新的Ubuntu。

3这不是一个讨论论坛,所以这个问题不适合在这个网站上提问。而且它与Ubuntu的关系非常微弱。 - Pilot6
你可以选择双系统启动,而不安装像ext2read这样的程序,它允许Windows读取Linux格式的驱动器。这样一来,NSA就必须安装一个Windows驱动程序来读取Linux,这对他们来说更具挑战性。话虽如此,他们更感兴趣的是监视政治事务,以便向领导人提供"谈话要点",或者是逃税问题,或者是在当前无神论宗教潮流下不当的男女关系。你的问题措辞可能会导致其被关闭为"过于广泛"。如果你去掉"隐私"和"NSA",只使用"安全"这个词,可能会更好一些。 - WinEunuuchs2Unix
你有没有考虑分区你的硬盘,并且双重启动? - Shokhet
为什么你不在 http://security.stackexchange.com/ 上提问呢? - Mawg says reinstate Monica
3我们都知道Windows 10带有的遥测垃圾和NSA对每个人的监视。真的吗?不,我不知道。你有关于这方面的资源吗?我对这个话题很感兴趣。但是我找到的一切都带有阴谋论的偏见。 - Num Lock
非常戴锡纸帽子。 - Zan Lynx
你有没有考虑在Ubuntu上使用Windows虚拟机? - user253751
3个回答

就虚拟机而言,不行。在这种情况下,虚拟机用于将客户机与主机隔离开来,而不是相反。
就Windows监视你的情况而言,只要在虚拟机中运行,你就会安全。Windows几乎不可能安装一个ext2驱动程序或类似的东西来监视你的系统,更不用说它会做我下面描述的任何事情了,但我们要讨论理论上的风险,因为它们很重要,而且我们不能相信微软不会,甚至(从技术上来说)不会这样做。
主机对其操作的所有虚拟机都具有完全访问权限,包括原始内存(使加密无效)、原始虚拟硬盘、任何原始网络连接等。因为您不信任运行虚拟机的基本框架,所以您不能相信虚拟机本身没有被入侵。
主机可以访问所有虚拟机的内存。因此,主机可以:
  • 从内存中读取任何和所有的原始状态,包括加载的文件内容
  • 用于任何东西的加密/解密密钥,包括HTTPS和硬盘
  • 读取URI、系统状态等等
  • 执行DMA攻击并运行任意代码
  • 让你的生活变得完全痛苦

虽然Windows本身不太可能为了遥测而走这么远,但这仍然是一个可能的威胁,应该被确认和知晓。我们正在处理理论上的边缘情况,所以至少值得一提。

最好的替代方案是双启动,使用LUKS加密您的数据。这将允许Linux和Windows在同一裸机硬件上运行,但不共享资源。由于Linux的分区是加密的,即使Windows想要做任何事情,也无法做到。这种方法的限制是您必须重新启动系统才能更改操作系统。

如果这对您来说是个问题,考虑在虚拟机中使用Windows,但请注意可能存在虚拟机逃逸漏洞(类似CVE-2016-7461),可能会从Windows虚拟机中访问您的Linux分区。

好的,那很合理。我会研究如何进行双系统启动。另外,有没有办法直接将我在虚拟机中安装的程序和数据复制到双系统操作系统中? - byTommy
1@diatomym 你可以这样做,但是这个过程比较复杂,并且你不能保证数据没有被篡改。基本上,你需要找到虚拟机的驱动镜像并挂载它,然后大部分工作就是复制操作了。 - Kaz Wolfe
@KazWolfe 很好的回答 :) - WinEunuuchs2Unix

你的问题不够具体。简短回答是:这取决于你想要保护什么。详细回答如下。
更详细的解释:在隐私方面,我想到了一些你可能想要保护免受Windows/Microsoft的影响的事情。还有其他危害隐私的因素,比如在你的系统上运行的专有软件、间谍软件等。但既然你特别问到了Windows/Microsoft,我就不会涉及这个问题。
1. 本地数据
问题:Ubuntu安装在虚拟磁盘上。Windows没有原生支持EXT3格式,但谁知道呢。
解决方案:当然,你可以在安装过程中加密你的Ubuntu主目录或整个“驱动器”。这应该可以防止主机系统上运行的任何软件读取你的VM内部的数据。然而,由于解密密钥理论上也可以被主机系统访问,因此使用主机系统完全控制的解密密钥可以解密数据。我认为,使用加密可以隐藏你的使用和文件生成的统计信息,但是如果有人控制主机操作系统对你/你的计算机进行有针对性的攻击,所有的加密都将变得无用。
2. 网络流量
问题:您很可能使用Ubuntu浏览网页、访问文件服务器、阅读电子邮件等。其中一些连接将被加密,而另一些则不会。那些未加密的连接将作为明文通过虚拟机主机系统(Windows 10)传输。理论上,如果在您的Windows 10中安装了监视/嗅探网络流量的软件,它至少能够读取部分您的网络流量。此外,加密也无法阻止该软件确定您正在与谁进行通信以及对方是谁。仅靠加密只能隐藏内容。
解决方案:如上所述,由于加密流量已经在虚拟机内部加密,并且仅在通过主机系统的网络接口传输时才可读,因此主机系统无法轻易地读取加密流量。您可以通过与您信任的服务器建立VPN连接来强制对来自虚拟机的所有流量进行加密。顺便提一下:这也可以是您网络中的路由器。但要小心,与问题1中使用驻留在主机内存中的加密密钥的有针对性攻击相同的攻击也可能发生在这里。除去有针对性的攻击,您的网页浏览不会被微软自动分析。
3. 通过USB端口传输的数据
问题:当您在虚拟机内使用USB设备(例如打印文档)时,数据最终必须通过主机系统传输,因为虚拟机无法直接访问物理USB端口。因此,主机系统“看到”所有流向您的USB设备的信息。这也适用于输入设备,即键盘和鼠标。因此,即使在使用Ubuntu时进行加密等操作,Windows仍会记录您的每个按键,并可以将其用于“改善用户体验”或其他与数据相关的操作。
解决方案:没有。除非USB设备支持端到端加密,否则我真的看不到任何解决方案。
4. 您的硬件签名
问题:您的硬件配置很可能非常独特。操作系统可以从您的硬件中获取许多信息,例如制造商、制造日期、型号号码,在网络接口的情况下还包括MAC地址等。Windows实际上会计算您的硬件指纹,并将其与您用于安装Windows的密钥关联起来。当您更换系统中的硬件时,您可以看到这种效果,Windows会提示您重新验证安装。因此,从微软的角度来看,当您在虚拟机中使用Ubuntu时,您仍然会被视为一个用户。
解决方案:虚拟机并没有真正的解决方案。
如果你对隐私、开源和Ubuntu很认真,那么你应该考虑至少在一个独立的分区/驱动器上安装它,并进行双系统启动。这样就能解决我提到的所有问题,除了第一个问题。

9对解决方案1的反驳:如果您加密数据,系统会将解密密钥加载到内存中。您的主机可以完全访问虚拟机的内存,如果愿意,可以轻松获取密钥。网络或USB也是如此,它可能进行中间人攻击或直接读取内存,但我严重怀疑仅凭Windows会这样做。除此之外,赞同您提出的观点。 - Kaz Wolfe
1@KazWolfe 哎呀,你说得对。 - Potaito
1加密Ubuntu的主目录或整个驱动器相比于非加密,有一个优势:它可以抵御(或至少延缓)通过复制整个虚拟机文件并发送给(NSA等)进行离线阅读的攻击手段。他们在此之后必须解密它。 - ypercubeᵀᴹ
1@KazWolfe 这是否也适用于#2加密的网络流量? - Hatshepsut
是的。对于主机操作系统来说,要找到客户操作系统内存中的加密密钥可能需要付出很大的努力,但如果将整个客户操作系统内存拍摄下来并稍后读取,那么肯定是可读的。 - daboross
点1、2和3(讨论USB设备的端到端加密)都存在同样的缺陷。主机可以读取任何它想要的东西。这可能是加密密钥,也可能是在数据解密后从内存中读取数据,无论是什么。唯一安全的情况是你既不解密数据也没有访问密钥,但在这种情况下,数据对你来说并没有太大用处(而且只使用Windows也同样安全)。 - Chris Hayes
我更新了关于可能攻击并访问系统内存的答案。 - Potaito

除了之前的回答之外,如果你关心隐私(而且你应该关心),除非你从未将安装了Windows操作系统的计算机连接到互联网,否则你根本不应该运行MS Windows操作系统。
由于主机和客户机之间的关系,无论你在Windows操作系统主机上运行哪个虚拟机都没有区别。
你可以阅读我之前对这两个问题的两个被接受的回答以获取更多细节:
1. [Windows遥测的隐私和安全影响是什么?](What are the privacy and security implications of Windows Telemetry) 2. [Windows 10如何允许微软监视你?](How does Windows 10 allow Microsoft to spy on you?)
你还可以阅读微软博客上的最新文章:[Microsoft承认Windows 10存在严重问题](Microsoft Admits Windows 10 Has A Serious Problem)。