答案1
实际上,这个问题是可以解决的,但不能被动解决。随着时间的推移,Ubuntu 和 Linux 总体上已经变得更加安全,可以防止病毒。该网站发现这里解释了大多数可能影响 Ubuntu 的木马、病毒和蠕虫。此网站更新到最新版本,因为正如您所说,当今的病毒大多是针对 Windows 和 Mac OS X 设计的。让 Ubuntu 感染病毒是可能的,但这样做真的不值得。
答案2
病毒感染系统的方式主要有两大类:
利用漏洞
病毒感染系统的一种方式是利用漏洞。假设系统已实施各种安全措施,但如果您按顺序执行 x、y 和 z(未预见到会出现问题的顺序),则可以以 root 身份运行一段代码。
这种病毒可能非常严重。但是,你对此的问题永远无法得到永久的答案。对于这种病毒,你的任何答案都只是描述了一个可利用的漏洞,最终会很快得到修复、修补并使其无法被利用。
我们在Linux上没有看到这种病毒主要有两个原因:
- 黑客们努力寻找系统中的漏洞,并因此感到很开心。对于 Windows,他们除了利用漏洞编写病毒之外,没有太多事情可做。对于 Linux,他们可以发送补丁来修复漏洞,并获得额外的名声奖励。如果你关注新闻,你偶尔会听说一个研究小组在某些免费软件(不仅仅是 Linux,例如心血) 并对其进行修复,但您从未听说黑客在 Windows 中发现漏洞,尽管 Windows 病毒的数量表明这些漏洞很多。
- GNU/Linux 发行版通常具有出色的软件包管理器。所有软件都会经常更新,错误也会很快被消除。在 Windows 上,许多不懂技术的用户可能会因为更新太烦人而禁用更新(您重新启动了吗?您重新启动了吗?您重新启动了吗?正在关机,请无限期等待),即使他们不这样做,更新也只针对 Windows 的核心,而不会针对其他内容。任何利用此类错误的病毒都有更高的几率在 Windows 上存活很长时间,从而传播得更远。
剥削用户
病毒感染系统的另一种方式是欺骗用户。从互联网上下载一些应用程序,运行它,你就会把病毒带上钩。GNU/Linux 发行版使用包管理器来确保可执行文件是由受信任的打包程序从源代码构建的,除非打包程序是恶意的,否则可以防止任何病毒泄露。在 Windows 上,你必须从不同的网站下载每个应用程序,其中一些网站不提供 HTTPS,也不提供可执行文件的哈希值。病毒可以通过多种方式进入,我们知道它们确实存在。
但是,如果用户没有 root 访问权限,那么这本身不会造成太大的问题。在 Windows 上,这通常是默认设置:第一个(通常也是唯一一个)用户拥有管理权限。这就像在 Linux 上以 root 身份登录一样。但是在 Linux 上,任何涉及您的应用程序的操作(例如,驻留在 中/usr/bin
)都会提示您输入 root 密码,因此没有病毒可以在您不知情的情况下“潜入”。
对于这种病毒,你的问题的答案就是编写一个非开源的病毒,以做其他事情为借口请求 root 权限,然后说服大量人他们需要这个仅以二进制形式提供的应用程序并授予其 root 权限。
这实际上已经不再是病毒了。它很可能只是给那些什么都不懂的人提供的“格式化硬盘的说明”。
最成功的漏洞是那些既利用漏洞又利用用户的漏洞。想象一下在 Windows 上这有多容易:
- 以打开 Y 类型文件的应用程序 X 为例。确保应用程序无法自行更新(考虑到 Windows 对软件更新的支持很差(实际上并非如此),很容易找到没有附带更新程序的应用程序)。您甚至可以简化操作,使用一些开源软件,例如 inkscape。
- 查找应用程序中可让您执行代码的错误。例如缓冲区溢出,这甚至可以打开不可执行的文件(例如图像)并仍然能够控制软件。
- 将病毒传播到所有可以传播的地方,因为你很可能拥有所有东西的 root 访问权限。这包括有缺陷的软件本身,这样它就可以自动感染未来的文件,甚至可以确保软件永远无法自我更新。
- 病毒最终会被检测到,但由于有缺陷的软件从未更新,因此会继续蔓延。
现在将这种情况与 Linux 进行比较。您发现的漏洞可能不会存在很长时间,因为一旦发现病毒,漏洞软件就会得到修补和更新。此外,即使您确实掌握了软件,您所能造成的最大损害也只是感染用户文件,而不是系统文件。在病毒附着在图像上的例子中,软件本身不会被感染,唯一的传播方式是用户传播图像本身。这并不意味着病毒不可能存在,而是病毒会相当脆弱和无聊。没有人会吹嘘自己编写了一个无聊的病毒。