查看: 1988|回复: 13
收起左侧

[分享] 为什么好多人都说Linux不需要杀毒软件?

[复制链接]
Dizziness2929
发表于 2024-4-29 16:07:09 | 显示全部楼层 |阅读模式
本帖最后由 Dizziness2929 于 2024-4-29 16:10 编辑

开头先问一个问题:如果现在把你瞬移到丹麦,你会继续用在中国的生活经验吗?

答案显而易见:不会。

而这就是第一个原因:

Linux世界和Windows世界差异太大,两者的安全理念也完全不一样(注解:世界上不可能也不存在一样的事物,甚至可以说也不存在任何的“类似”,如果你觉得两者“类似”那说明你对两者都不了解)。

Linux的安全理念建立在“内核强制执行的访问控制”(SELinux、AppArmor……)、“修复存在的问题而非试图检测谁在利用这个漏洞+任何人都可以参与其中的流程”(开放自由的源代码)、“生态环境的多样性”(各种各样的发行版)……因此传统的恶意软件很难在这种世界生存。

基本上,一个成功的(被人记住名字的)Linux恶意软件都是APT(高级持续性威胁)或者类APT产物(例如XZ后门或者其他供应链污染)

Windows的安全理念则是反过来,我习惯叫“WinDOS”,Windows的安全理念并不是从根源上解决存在的漏洞,而是“寻找利用这个漏洞的人事物”,这是MS-DOS时代延续下来的做法(也是微软执着的东西)

这导致Windows的安全体系需要反恶意软件,而对于Linux则变成了可有可无的东西。

并不是大家所认为的“Linux因为用的人少而没有恶意软件”,这句话只能说是“现象”但不是“根本原因”——根本原因在于这两样东西是两回事不能一概而论(就好像你愤怒之极可以一拳打穿十米厚的钢板而我只能气死自己,干员之间亦有差异.png)






第二个原因,这也是有些人查英文资料时发现的:Linux发行版社区对反病毒软件有一种歧视(于是不会建议你安装并直言那都是垃圾)

嗯,这其实是一场真实发生过的事情:

2007年11月,甲级战犯Sophos给Linux内核计划组提交了一份喝了两瓶福尔马林后写出来的垃圾内核补丁(Kernel Patch),当场激怒了所有内核开发者。

这个垃圾内核补丁的目的是这样的:

On November 28, a message from an engineer at Sophos turned up on the kernel mailing list. It seems that Sophos has a security module (called "Talpa") which performs virus scanning; they would like for the LSM interface to remain so that this module can continue to be loaded. Of course, only free software modules are considered relevant for this discussion, but there is no problem with that: Talpa is available on SourceForge and has been since, well, November 23. Talpa was described this way:
11 月 28 日,Sophos 的一位工程师发来的一条消息出现在内核邮件列表上。Sophos 似乎有一个执行病毒扫描的安全模块(称为“Talpa”);他们希望保留 LSM 接口,以便可以继续加载此模块。当然,只有自由软件模块被认为与本次讨论相关,但这没有问题:Talpa 可以在 SourceForge 上使用,并且自 11 月 23 日以来一直可用。塔尔帕是这样描述的:

In essence, what our module does is it intercepts file accesses and allows userspace daemons to vet them. One of the means we implemented that is through LSM and although it is not a perfect match for such use we prefer to use an official interface. Unfortunately, with time it became impossible to use LSM on some distributions (SELinux) so we had to implement other intercept methods which are significantly less nice, and which may also become unworkable over time.
从本质上讲,我们的模块所做的是拦截文件访问并允许用户空间守护进程审查它们。我们实现的方法之一是通过LSM,虽然它不适合这种用途,但我们更喜欢使用官方界面。不幸的是,随着时间的流逝,在某些发行版(SELinux)上使用LSM变得不可能,因此我们不得不实现其他拦截方法,这些方法明显不那么好,并且随着时间的推移也可能变得不可行。

So Talpa creates a hook whereby a (presumably proprietary) user-space process can scan file contents for bad stuff and, when it is found, block access to that stuff.
因此,Talpa 创建了一个钩子,通过该钩子,(可能是专有的)用户空间进程可以扫描文件内容以查找不良内容,并在发现时阻止对该内容的访问。


这显然就是扯犊子,为了让你的产品能继续加载而强迫其他人必须为你保留某种旧版本接口(还是安全相关的接口,也就是LSM/Linux安全模块)?这合理吗?

而且最搞笑的,这份提交是发在自由与开源内核补丁邮件列表的,这个邮件列表只会考虑自由软件

愤怒的内核开发者直接口吐芬芳对着Sophos开发者来了这么两段话:

So you are going to try to force us to take something into the Linux kernel due to the security inadequacies of a totally different operating system? You might want to rethink that argument.
因此,由于完全不同的操作系统的安全不足,您将试图迫使我们将某些东西带入 Linux 内核?你可能要重新考虑这个论点。

Various people had been asking for _years_ to define what the hell are you trying to prevent. Not only there'd been no coherent answer (and no, this list of requirements is _not_ that - it's "what kind of hooks do we want"), you guys seem to be unable to decide whether you expect the malware in question to be passive or to be actively evading detection with infected processes running on the host that does scanning.
多年来,各种各样的人一直在要求定义你到底想阻止什么。不仅没有连贯的答案(不,这个要求列表_不是_那个 - 而是“我们想要什么样的钩子”),你们似乎无法决定你是否希望有问题的恶意软件是被动的,还是主动逃避检测在执行扫描的主机上运行的受感染进程。


不幸的是,几个星期后,这个脑残补丁由被提交了——Sophos找来了大腿Red Hat,Red Hat要求这个接口无论如何都得被加入到Linux内核中

被激怒的Linux内核开发组成员忍不了了,将其一顿魔改后变成了一个新的内核接口:fanotify。

然而,在那之前就有一个专门的内核接口,可以让反病毒软件实现不需要挂钩Linux内核就可以实现监视整个文件系统:Introduce credentials API

这件事让Linux开发者直接认为反病毒软件厂商除了扒特征码其实啥都不会,只会在那用着陈旧过时的思路和技术去做他们的“好东西”(而后来这些人和反病毒软件厂商实际接触后更是加深了这一观点)

这就是Linux社区对反病毒软件普遍没有好感的历史故事。





那么结论是?

我认为如果你真心觉得Linux必须要安全软件(指反病毒软件之类的),你可能需要回到Windows,你在那里的经验是可以继续用的。

否则我认为你需要学习一下SELinux/AppArmor怎么用、如何在Linux下自动更新系统、验证软件的PGP签名和尽量使用开放源代码的软件等等。

这是入乡随俗的一部分(确信)。





参考资料:

https://lwn.net/Articles/292986/

https://lwn.net/Articles/293835/

https://lwn.net/Articles/292872/

https://lwn.net/Articles/339399/

https://lwn.net/Articles/260918/

https://lwn.net/Articles/306804/

评分

参与人数 1人气 +1 收起 理由
Picca + 1

查看全部评分

dg1vg4
发表于 2024-5-4 15:06:28 | 显示全部楼层
这事的矛盾核心难道不是事实上有企业能控制Linux内核的发展方向么?
这要换成龙芯,那就是现阶段Linux内核组坚决拒绝龙芯将旧世界代码并入Linux内核,逼得龙芯方面只能按照Linux内核组要求重写新世界代码进行适配。怎么到了Red Hat这里居然可以随意要求Linux内核组加入陈旧的屎山代码呢?
mikana
发表于 2024-4-29 16:55:06 | 显示全部楼层
只要前置条件足够多,每个操作系统都可以不再需要杀毒软件了(
Linux 不需要杀毒软件根本原因是它的用户都是计算机知识相对丰富的开发者,应用场景更多是安全措施完善的服务器。暂时没有碰到大量而需求复杂的桌面客户端“小白”用户。

使用低权限用户、从可信来源获取软件、验证软件签名、严格遵守并使用系统底层安全机制,放在开发者手中毫无疑问是利器,甚至我可以说在 Windows 遵守这些也可以把杀软卸载了。但面对大量对计算机毫无了解的普通用户来说就是不可能的事情,你要是强制限制他们做到,那么最坏的情况就是变成必须从专有应用商店下载,不允许安装第三方应用,不允许高危操作、不允许卸载系统软件、不允许定制系统,就像现在的很多国产 OS 正在逐渐践行的一样,禁用 root,严控第三方软件、严控各种权限。
Dizziness2929
 楼主| 发表于 2024-4-29 17:04:58 | 显示全部楼层
本帖最后由 Dizziness2929 于 2024-4-29 17:10 编辑
mikana 发表于 2024-4-29 16:55
只要前置条件足够多,每个操作系统都可以不再需要杀毒软件了(
Linux 不需要杀毒软件根本原因是它的用户都 ...

然而,一些事是注定不会有效的,这就是为什么对于Windows而言杀毒软件是必须的。

Windows的安全理念导致她不是去实际的从根源上解决问题,而是……

举个例子:这栋房子有个破洞,Linux/BSD/Android之类的想法是堵上这个破洞,而Windows的想法却是在破洞这里装个摄像头。
顺带:你提到的各种国产Android发行版的操作,其实就是Android本来就有的东西。

我甚至可以说你说的这些也是Windows的安全理念下的产物,因为“小白”用户也是一种漏洞——他们需要的是高品质的计算机教育(哪怕只是合格的、与时俱进的基础教育),而不是各种各样的宣称可以让他们放弃脑子的“方案”。
00006666
发表于 2024-4-29 17:14:34 | 显示全部楼层
至少无人值守的网站服务器需要安全软件,不然诸如  服务器安全狗  云锁  等软件就不会出现了
Dizziness2929
 楼主| 发表于 2024-4-29 17:27:11 | 显示全部楼层
本帖最后由 Dizziness2929 于 2024-4-29 18:03 编辑
00006666 发表于 2024-4-29 17:14
至少无人值守的网站服务器需要安全软件,不然诸如  服务器安全狗  云锁  等软件就不会出现了

https://lwn.net/Articles/293835/

参考资料里的这篇可以视为辅助你的说法:

The value of a file scanning interface is not in stopping active
attacks.  Its in making the Linux platform a more difficult location for
the storage and propagation of bad data.  I think its reasonable to
think that we all agree we don't want to be the preferred hosting
platforms for trojan binaries intended to attack other non-Linux
systems.  Why would one want consciencely choose to leave Linux as a
safe haven for the existence of malware?  Even though the malware is not
attacking the Linux platform do we as the Linux community really want to
be a breeding and hosting ground as long as the costs are not too high?
(yes Ted, I'm talking directly to you here)
文件扫描接口的价值不在于阻止主动攻击。它使 Linux 平台成为存储和传播不良数据的更困难的位置。我认为我们都同意我们不想成为旨在攻击其他非 Linux 系统的特洛伊木马二进制文件的首选托管平台是合理的。为什么人们会良心地选择离开 Linux 作为恶意软件存在的避风港?即使恶意软件没有攻击 Linux 平台,我们作为 Linux 社区真的想成为滋生和托管的场所,只要成本不是太高?(是的,泰德,我在这里直接和你说话)

Picca
发表于 2024-4-29 19:35:48 | 显示全部楼层
虽然看不懂文章,但还是想问问大佬是怎么看待 kaspersky os和qubes os的?
kaspersky os   https://os.kaspersky.com/  
qubes os   https://www.qubes-os.org/
当然我感到这两个OS的用途可能不太重合,但作为一个完全的小白还是想忍不住问问,请问对于它们两个的维持安全性的基础与Linux的是否存在异同,还是说它们处于完全不同的领域
Dizziness2929
 楼主| 发表于 2024-4-29 19:43:18 | 显示全部楼层
本帖最后由 Dizziness2929 于 2024-4-29 19:46 编辑
Picca 发表于 2024-4-29 19:35
虽然看不懂文章,但还是想问问大佬是怎么看待 kaspersky os和qubes os的?
kaspersky os   https:/ ...

Kaspersky OS不算Linux,她和黑莓的QNX操作系统属于同一个定位:自主研发的实时操作系统,用于要求高可靠性的严苛环境。

Qubes OS是Linux发行版,但她的定位是:通过底层的隔离(使用Xen虚拟化)每个操作环境来进行某些敏感活动(举个例子:比如你希望上网聊天不会影响到网上银行,那么Qubes OS里创建两个虚拟机模板即可)。
这两个不是一回事()

评分

参与人数 1人气 +1 收起 理由
Picca + 1 感谢解答: )

查看全部评分

Xopii
发表于 2024-5-1 13:53:41 | 显示全部楼层
严格来说Linux都不存在家庭用户(也许有)但是很少,如果说假设每个人都去用Linux 那其实还不如Windows呢,因为,其实不是Windows需要安全软件 是 人需要  如果让现在用Windows的都去用LINUX  。而不是说只有几个(程序员 甚至说Linux开发者那还不如Windows呢  到时候 什么理念都没用了。 都是市场问题
cnsoloer
发表于 2024-5-2 02:45:57 | 显示全部楼层
windows 主要还是桌面端用的多,面向的大多是个人用户,所以安全问题从用户操作方面去入手更直接有效还经济。
linux则是用在服务器居多,功能单一,同时为了稳定和高效,安全问题一般移到网关和防火墙等。服务器功能单一就注定病毒定制针对性会比较高,这类病毒注重的是伪装,要么服务器管理员一眼就能识别,要么就是很难发现;所以很多是从关联网络行为比如IP、域名发现的,而且这些IP或域名参与了其他病毒行为或者APT。
其实病毒也是软件,一堆代码,没啥特别的。一些杀毒软件全盘扫你文件,甚至收集上传系统信息和特征文件和病毒行为没啥区别。
selenajoni
头像被屏蔽
发表于 2024-5-2 18:44:51 | 显示全部楼层
提示: 该帖被管理员或版主屏蔽
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-5-20 10:10 , Processed in 0.129508 second(s), 19 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表