关于Unix / Linux中恶意软件的神话


142

我的Linux机器是否可能被恶意软件感染?

我还没有听说过发生在我认识的任何人身上的情况,而且我已经听说过很多次这是不可能的。真的吗?

如果是这样,Linux Anti-Virus(安全)软件怎么了?


1
看看这个定额答案:goo.gl/UVCsgz,它涵盖了Linux / Unix与Windows相比在被恶意软件随机感染方面与Windows不同的主要原因。
arielf 2015年

2
我发现另一篇文章颇有启发性,尽管不如@arielf链接:linuxmafia.com/~rick/faq/#virus
Wildcard

Answers:


135

首先,在Unix和类似Unix的操作系统(例如Linux)下肯定有可能感染病毒。术语计算机病毒的发明者Fred Cohen 在4.3BSD下进行了他的第一个实验。尽管自2003年以来似乎没有进行过任何更新,但仍存在一个用于编写Linux病毒的操作方法文档。

其次,sh脚本计算机病毒的源代码已经流行了20多年。参见汤姆·达夫(Tom Duff)于1988年发表的论文和道格·麦克罗伊(Doug McIllroy)于1988年发表的论文。最近,为会议开发了独立平台的LaTeX病毒。在Windows,Linux和* BSD上运行。自然,在Windows下它的效果更差...

第三,已经出现了至少(至少)针对Linux的一些真实的,实时的计算机病毒,尽管尚不清楚是否有2或3种(RST.a和RST.b)被“野外发现”。

因此,真正的问题不是Linux / Unix / BSD可以感染计算机病毒吗?但是,考虑到Linux台式机和服务器的数量庞大,为什么这些人没有Windows所吸引的那种惊人的病毒瘟疫?

我怀疑原因与传统Unix用户/组/其他自由保护所提供的适度保护以及Linux支持的零散软件基础有关。我的意思是,我的服务器仍在运行Slackware 12.1,但带有自定义编译的内核和许多重新编译的软件包。我的桌面运行的是Arch,这是一个滚动版本。即使它们都运行“ Linux”,它们也没有太多共同之处。

linux上病毒的状态实际上可能是正常平衡。Windows上的情况可能是“龙王”,这确实是不寻常的情况。Windows API是疯狂的巴洛克式,Win32,NT本机API,神奇的设备名称(如LPTCONAUX可以在任何目录下工作,没人能理解的ACL,单用户,否,单根用户,机器,标记文件的传统通过使用文件名(.exe)的一部分可执行文件,所有这些都可能导致Windows上恶意软件的状态。


35
您忽略的一个值得考虑的问题是Windows ABI多年来一直保持稳定。(或者,MS在支持透明地发布的所有各种ABI方面遇到了很多麻烦。例如,WoW64。)这意味着在Windows 3.1上运行的可执行文件很可能在Windows 7上运行。单一文化中的单一文化:恶意软件编写者不必像在Linux中那样经常为每个版本的Windows重建其程序。
沃伦·杨

50
我认为在Unix / Linux和Mac系统中病毒水平较低的另一个原因是存在全局软件包管理系统,默认情况下配置了受信任的存储库。Windows可以在线搜索以从谷歌搜索时找到的直接恶意供应商那里下载软件,而在Unix / Linux / mac上,您可以使用内部软件浏览存储库,如果发现问题,可以在其中审查并删除新条目。
haylem 2010年

33
同样,Windows是专有软件的代名词(尽管在其他平台上也会发生,我正在研究Mac OS),人们倾向于为此平台寻找破解软件的可能性要大于其他软件。在线进入黑暗小巷与现实生活中进入黑暗小巷没有什么不同:预料到麻烦。您如何信任毒品贩子提供他们的广告?并以未修改的形式?那么,您如何信任破裂的软件经销商提供他们的广告呢?并且无需修改软件?
haylem 2010年

5
另外,数据与代码和配置文件(var&home; bin&usr;等)分开。在Windows-程序文件-二进制文件,配置文件,数据(MS SQL)中查找。您可以在没有exec的情况下挂载目录。应用程序不会执行您向其发送的每个文件(邮件客户端文字处理程序)。打开代码进行审查。快速解决问题(在内核中发现威胁后检查RedHat和Debian家伙的响应时间)。当发现-发行版的一个问题推了一些更新(我不知道对于示例- KDE正在寻找在桌面上的快捷方式+ x标志例如执行这些功能,它在某一点缺失)

1
Haylem上面的评论是正确的,有趣的是,这对于减少OSX Mac的“非常安全”的形象是否正在“改变游戏规则”,现在几年后……我几乎每天都看到OSX上的不良情况,因为用户已经下载并安装了破解软件(普通人甚至不回避执行在终端中打开的“ file.sh”并输入管理员密码!)
forgotstackxpassword

49

它有助于防止病毒在Windows中传播


请记住,Linux以多种方式使用,例如文件和电子邮件服务器。

这些服务器中的文件(MS Office文件,Outlook消息,EXE程序)可以感染一起存储。

即使它们不影响服务器本身,也可以将服务器配置为在存储时检查每个文件,以确保该文件是干净的并防止将来将它们移回到Windows计算机时传播。

当朋友要我检查为什么他们的Windows计算机不工作时,或者当我将笔式驱动器插入Windows计算机时,我自己安装了它。


39
+1在Linux上存在AV软件的真正原因并不是扫描可能影响系统的问题,而是扫描可能影响其他系统(例如Windows)的问题。
xenoterracide 2010年

1
这应该是一个公认的答案。我家其他人都使用Windows。我觉得将外部闪存驱动器插入我的Linux桌面,进行扫描,然后声明它们可以安全地连接到家庭中的其他计算机,是比较安全的。
2013年

这是一个很酷的观点。许多人都这样使用Linux(usb),但可能从未真正意识到可能还会有基于应用程序的Linux病毒扫描。
forgotstackxpassword

1
我不经常从Linux USB驱动器重新启动Windows PC,以便可以运行AV扫描。
杰西·奇斯霍尔姆

23

从原则上讲,Linux病毒是可能的,并且已经存在一些病毒,但是在野外,还没有广泛的Linux病毒。Linux用户群很小,在Linux下,病毒造成更大危害的难度要大得多,因为与Windows XP相比,用户模型的限制性很强。因此,病毒作者通常以Windows为目标。

有Linux反病毒软件,例如McAfee的软件,但据我所知没有Linux用户使用该软件。到目前为止,仅安装来自可信赖来源的软件并通过及时安装安全更新来使您的系统始终保持最新是更为重要的。


3
我想补充一点,即使您成功感染了病毒(在我使用Linux的10年中我从未见过),最糟糕的情况是您的用户文件夹将受到威胁。
Patkos Csaba

37
不,最坏的情况是完全破坏系统。大约六周前,内核人员刚刚在内核中关闭了一个巨大的漏洞,这将使任何GUI程序将其特权提升到根级别。进行一些谷歌搜索,您会发现过去这种性质的其他漏洞。的确,与Windows相比,Linux在许多方面都具有更好的安全性,但是与数百万行代码的任何其他代码库一样,您可以确保它中还有其他漏洞正在等待发现。我也主张提倡修补系统而不是安装防病毒软件,但也要保持头脑清醒。
沃伦·杨

6
我不得不以“用户群很小”为理由。第一个真正广泛传播的PC病毒是1988年的“大脑”。2010年,Linux肯定比1988年的MS-DOS拥有更多的桌面用户。为什么Linux没有更多的病毒,实际上,为什么Linux没有更多的病毒?广泛的“脑”病毒?
Bruce Ediger

7
大约在1988年左右,PC赢得了明显的平台主导地位。
沃伦·杨

6
echox是正确的。用于Linux的AV软件实际上并不是用来保护Linux系统本身的。它在那里可以扫描linux服务的文件。这就是为什么这些AV中的大多数仅查看它们定向扫描的文件,而不查看系统上已访问或更改的任何文件的原因。
xenoterracide 2010年

21

作为历史记录,第一个Internet蠕虫Morris Worm通过Unix实用程序中的漏洞进行传播。它早于Linux,但表明基于Unix的系统有可能被感染。


2
但是,莫里斯蠕虫不是病毒。病毒必须附加到其他软件上,而罗伯特·莫里斯(Robert Morris)编写的软件在这种意义上是独立的。它既可以自我复制,又可以自我维持,因此是蠕虫而不是病毒。
CVn

@MichaelKjörling恶意软件呢?
Braiam

6

我认为,除了在其他答案中提到的那些理由之外,还有另一个原因是Linux平台没有太多病毒。Linux几乎所有组件的源代码都是免费提供的。

假设由5名成员组成的团队开发了一个应用程序。我们在列表中包括测试人员和其他几个人员,最多10人会知道该代码。在这十个中,有一些可能对代码没有足够的详细了解。因此,知道代码足以指出错误,安全漏洞的人数很少。

现在,如果将此代码设为免费/开放源代码,那么对其进行审核的视线会大大增加。因此,发现安全漏洞的可能性也增加了。

这些新的贡献者带来了他们的经验,并且通常新鲜的眼睛能够注意到漏洞,这些漏洞最初是开发人员忽略/认为是理所当然/遗漏的。

该应用程序越受欢迎,其贡献者就越多。我认为这种自由/开放有助于减少Linux平台的漏洞数量。


5
我真的很讨厌这么说,但是开放源代码或封闭源代码的性质可能只会影响达到特定错误状态的速度。请参阅:“牛奶或酒”安迪Ozment(andyozment.com/papers/...)和罗斯·安德森的“开放和封闭系统是等价”(cl.cam.ac.uk/~rja14/Papers/toulousebook.pdf
布鲁斯Ediger

感谢Bruce分享了链接。一定会经历他们的。
Andrew-Dufresne

3
哪个Linux用户在发出sudo make install?之前检查了所有源代码?
Calmarius 2012年

5

已经有了不错的答案,但我仍然想贡献一点。

包括即使在所有时间之后仍比Windows更好的简单安全实践以及所有这些病毒,我也认为这些问题在很大程度上与社会有关。

我认为主要因素是发行版的多样性。这增加了确保病毒具有需要传播的工作量。这与不大可能(imho)单击不可靠电子邮件或通常使自己处于危险之中的linux用户的人口统计信息结合在一起,意味着进一步抑制了病毒的成功。

人们也可以说更有动力去攻击窗户。


4

是的,虽然有一些针对Linux的病毒,但您不必太担心它们。他们很少见,可能会完全想念您。

您可以而且应该担心的是蠕虫。这些程序与通常需要用户交互才能感染的病毒不同,它们会在服务器之间自行传播,从而利用服务和平台中的漏洞。蠕虫会搜索更多服务器以进行感染,将其安装在易受攻击的计算机上,并经常修改其行为-例如,将病毒提供给访问Windows的客户端。


3

简单的答案是,没有操作系统是100%安全的,除非它在启动时从只读介质读取自身是100%安全的。

但是,Windows具有更多的感染媒介,这些媒介更易于访问,一旦被感染,危害就更大。通过阅读“ RootKit Arsenal”或其他书籍,可以轻松看出这一点。

任何计算机上的漏洞利用数量大致与(使一台计算机生根获得的收益)*计算机数量/(生成生根恶意软件的成本)成正比。

由于漏洞利用的数量与计算机的数量成正比,因此在Windows上恶意软件的数量会更多。

但是,假设唯一原因是愚蠢的。Windows有更多的病毒是因为有更多计算机在运行它。请注意,在Linux中,感染恶意软件的成本要比Windows便宜得多,因为其破坏力更大。相反,通过生根获得的数量较小。还请注意,由于我在第一段中提到的原因,生根的成本较高。

请记住,到目前为止,这是正确的。在这一点上,Linux是比Windows更好的体系结构。但是,有力量说我们需要更快速地开发用户友好功能。这可以导致更容易存在错误和创建病毒。我已经发现Ubuntu几乎和Windows一样容易出错。


只读启动媒体只会减少攻击面,不会阻止恶意软件。
symcbean'8

回复:Windows has more ... computers running it. 嗯,更多的最终用户计算机正在运行它。我相信,运行Windows XP的* Nix(Unix变体,Linux变体)形式的无头服务器要多于Windows。DOS和Windows的早期安全性为零是该平台成为目标的重要因素。
杰西·奇斯霍尔姆

1

其他答案为Unix和Linux上的病毒提供了良好的历史参考。更多现代示例包括“ Windigo”“ Mayhem”恶意软件活动。这些已经感染了成千上万的系统。据报道,Mayhem正在使用Shellshock漏洞进行传播。

至于Linux恶意软件检测软件,您有开源和商业替代品。在我看来,最有效的是Second Look。它使用内存取证和完整性验证来检测Linux恶意软件。我是Second Look的开发人员。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.