使用 Wine 执行 Windows 恶意软件会损害 Linux 计算机吗?

信息安全 操作系统 视窗 linux 恶意软件 已知漏洞
2021-08-12 05:42:50

我是(Ubuntu)Linux 用户。有时,我必须使用 Wine 来运行 Windows 可执行文件。

我想知道 Windows 恶意软件(病毒、木马、蠕虫……),即在 Linux 上使用 Wine 执行时无意造成伤害的恶意软件,是否会对我的 Linux 系统造成伤害。我使用标准的 Wine 安装。Wine 永远不会以超级用户身份执行。

我猜它可以从我的文件夹中读取/写入/删除文件,并连接到 Internet。

我认为,但我不太确定,它不能安装软件。它会安装有害的(Firefox)插件​​吗?

3个回答

您访问文件系统和互联网是正确的,特别是因为默认情况下主文件夹映射为写入权限。这意味着它也可能会弄乱您的文档,例如将宏添加到 Open Office 文档、删除您的 mp3 文件或将有趣的文件发送给 Internet 上的某人。

是的,它可以写入您的 Firefox 配置文件并安装一个插件

连接到互联网意味着它可以从 C&C 服务器获取命令,将您的计算机变成无人机。

我猜一些男性软件将无法在标准 Windows 文件夹之外找到这些位置。但其他人只会扫描所有驱动器以寻找有趣的地方。

理论上,是的。

首先,介绍一下 Wine 的背景。Wine为运行 Windows 可执行文件提供了一个可执行加载程序。还可选地安装或使用了此处描述的 binfmt 处理程序,这是 linux 内核如何推断要执行的加载程序 - 例如,内核中内置的某处是用于 Linux 的 ELF 文件的 binfmt 处理程序。然后,Wine 运行时将来自这些可执行文件的函数调用转换为它们等效的 Linux 系统调用。Wine FAQ 处理了wine 作为模拟器的问题

那么,回到你的问题——Windows 恶意软件会感染 Linux 机器吗?我理论上说是的 - 以下是您面临的各种威胁:

  • 格式处理程序中的错误。如果一个特制的可执行文件导致 Wine 错误地加载 PE 文件,那么您很可能能够利用它。
  • Wine 函数翻译中的错误。这与说“Windows API 中的错误”相同,如果您愿意的话 - 如果在 Wine 中翻译的某些函数容易受到缓冲区溢出等的影响,那么它们就可以被利用。
  • 函数调用被翻译的事实。这一事实本身就意味着可能发生恶意活动。
  • Wine 安装的设置和限制。您映射了哪些文件系统?可执行文件可以逃脱这个“chroot”吗?

这里有一个关键的附带条件——意识到或计划感染 Wine。如果编写恶意软件时期望它可以在 Wine 上运行,那么它可以开始使用 Wine 特定的漏洞利用,可能检测到 Z: 映射到 / 并执行适当的操作。我上面列表中的前面几点是最不可能的,但如果它们发生,也是最具破坏性的。

然而,大多数恶意软件不是为 Wine 编写的。您几乎可以将 Wine 视为一个单独的构建目标,因为它实现 Windows API 的方式与 Windows 实现 API 的方式不同。大多数恶意软件都直接针对 Windows,所以我预计损坏只会发生在“Windows”安装上。事实上,有些恶意软件可能无法运行,Wine 开发人员假设严格使用 API 函数,而 Windows 允许不同的东西。

因此,长话短说,Wine 允许您执行任意 Windows 程序,从而大大增加了您的攻击面。适用于 Wine 的一般规则与适用于任何软件的一般规则相同:

  • 你需要它吗?如果没有,请不要安装它。
  • 它是最新的吗?如果没有,请更新它。
  • 小心你用它运行的东西。它不能替代小心下载、访问和运行的内容。

自从我完成 C 结构化异常(MS 特定但在 Wine 上模拟)以来已经有很长时间了,但语法接近于此。即使 Z 没有被映射,使用它的人也会有很多乐趣。

bool isLinux = 0;
__try {
    asm {
        mov AL, 172
        int 80h
    }
    isLinux = 1;
} __except {}
if (isLinux)
   asm {
      /* Linux shellcode here */
   }