Windows Defender 将 WSL 标记为威胁

Windows Defender 将 WSL 标记为威胁

每次我打开 Windows Subsystem for Linux 1(WSL1)时,都会出现一些烦人的事情,那就是我都会收到来自 Windows Defender 的以下通知(我使用的是 Windows 10)。

它说检测到了一个名为 的威胁SettingsModifier:Win32/HostsFileHijack。这只在我开始使用 WSL1 时发生(即当我打开 Windows 终端时)。它说受影响的项目是C:\Users\MYUSERNAME\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\etc\hosts

每次我开始使用 WSL1 时,有没有办法让它停止抱怨?我尝试将文件添加SettingsModifier:Win32/HostsFileHijack到 Windows Defender 中的排除项中,但当我这样做时,它告诉我You can't open this location using this program

答案1

WSL 通常会自动生成/etc/hosts,并且它似乎使用以下几个来源来实现:

  • 一些以编程方式生成的条目localhost和别名
  • Windows 主机文件的内容
  • 对于 IPv6 和多播来说,一些“最好有”的功能localhost

奇怪的是,您的 WSL/etc/hosts触发了 Windows Defender,但 Windows 却没有。您是否已添加C:\Windows\System32\drivers\etc\hosts到 Windows Defender 排除项?您是否用它来抑制 Windows 遥测或类似的东西?

编辑/更新:评论中的结论是 Spybot Anti-Beacon 可能是添加反遥测主机条目的罪魁祸首。这会触发 Windows Defender 警告SettingsModifier:Win32/HostsFileHijack,该警告已排除在 Windows 主机文件之外。但是,由于 WSL/etc/hosts是自动生成的,因此无法找到/打开它以将其排除。

至少我们可以关闭自动生成,您可以尝试创建自己的。要关闭自动生成,请执行以下操作:

  • 在 WSL 实例中,创建或编辑/etc/wsl.conf
  • 添加以下部分:
    [network]
    generateHosts = false
    
  • 退出会话
  • 运行wsl --terminate <distroname>(其中 是您的实例的名称)
  • 重启 WSL
  • 创建您自己的/etc/hosts(最好以 root 身份在 下sudo),至少包含以下内容:
    127.0.0.1    localhost
    127.0.1.1    Yourwindowshostname.local   Your_windows_machine_name
    
    以及您需要的 Windows 文件中的任何其他内容hosts(如果有),当然不包括任何遥测阻止条目。

希望这可以解决错误。

相关内容