昨天,当我通过 wine 运行一个程序后,我机器上的所有 *.exe 文件都被 Win32.Neshta 病毒感染。我用 修复了机器rm -rf ~/.wine
,但无论如何都不好。
因此,我决定在所有 *.exe、*.com... 文件上设置所有者 root:root 和模式 644。但目录的所有者仍然是我。因此,我(以及病毒)可以自由地重命名/删除 *.exe 文件。这不好。
如何保护 *.exe 文件不被病毒修改/重命名/删除?
现在我有两个想法:
chattr +i
将所有 *.exe 硬链接到单独的根目录
答案1
你应该知道葡萄酒不是沙箱。 Wine 下运行的程序不限于 Windows API;理论上,Wine 感知病毒可以轻松检测到它正在 Wine 下运行,并转而使用主机(例如 Linux)API 来造成与 Linux 恶意软件一样多的破坏。
最可靠的隔离方式是完整的虚拟机。不太完整(但可能更实用)的方法是在 chroot 或容器内的 Wine 下运行程序,但这仍然会使主机内核暴露。
答案2
只需使用使用 VirtualBox 的 Windows 虚拟机即可代替 Wine。我在学校就用过这个方法,效果非常好。如果虚拟机感染了病毒,只需将其删除并创建一个新的即可。