我的问题不是我的Linux是否应该获得防病毒。我完全理解为什么AV很重要。
我想了解是否存在概念上的(技术上的)差异,这些差异使Linux不如Windows脆弱(例如Ubuntu 14和Windows 7)。
#1 楼
Windows大量使用防病毒产品的原因有很多。 (我指的是即用型(OOTB)体验)。Windows用户默认是本地管理员,因此在Windows上进行的任何社交工程通常都可以导致执行软件。现代Linux将用户设置为低特权本地用户。 Windows需要尝试简化尽可能多的事情,包括安全性,并回顾其历史,安全控制的屠夫(Windows Vista有人吗?)使他们的用户群麻木。Windows试图简化尽可能多的事情,包括安全性。对软件的不断误报。谚语“您要安装此软件吗?您真的要安装此软件吗?”导致单击或禁用UAC。
软件存储库与独立安装:
Linux永远拥有软件存储库,它们为安装软件提供了良好的机制。这些通常是经过签名,批准的软件,受遵循安全标准的安全预算公司保护。 (我知道过去对存储库的破坏,但这通常很好)。 Windows用户习惯于从任何地方获取源代码并在其系统上进行安装,无论是否未经签名。
用户通常具有不同的心态:
Windows是一种通用的,全用户平台。它通常试图解决每个人的问题,因此OOTB不能像应有的那样保护用户。这就是Microsoft如此努力地迫使每个软件都由“受信任的签名者”签名的原因。关于这一点,有很多争论,但是从安全角度来看,通常这是明智的。微软恰好有一个往事记录,让人无法信任。
Linux用户通常是技术人员,系统通常是服务器系统。这就是软件通常带有GPG密钥和/或SHA / MD5哈希表进行比较的原因,因为这些是从Linux管理员的角度来看的,事实上是安装软件的过程。我知道许多Linux用户都忽略了这一点,但是我还没有看到Windows管理员考虑过这一点。
它的确超出了市场份额。
扩展:
我将在评论中讨论一些要点(具有正确之处)。
资源库:
从OOTB的经验来看,现代Linux发行版具有签名的软件包,它们不仅可以识别软件包是否可以与发行版一起使用,而且还可以证明是一种安全的验证方法。
已经讨论了其他软件包管理系统,例如pip和npm,它们独立于软件包。本身就是发行版,是为特定编程语言安装特定软件包的服务器。可以争辩说,在这些系统上没有固有的验证方法。这是主要的,因为Linux的哲学是程序可以做一件特定的事情,并且要做好。这就是通常使用多种工具(例如使用GPG或PGP来确保完整性)的原因。
脚本下载
cURL |提到了sh,实际上与下载文件后单击.exe没什么不同。要指出的是,cURL是用于传输数据的CLI工具。它可以进行身份验证,但不能专门进行验证。
UAC vs sudo
最后,以下是这两个安全功能的一些说明。
UAC是用于不可信软件安装的批准过程。拥有简单本地管理员权限的用户将获得“是”或“否”(行为可以更改,但这不是默认设置)。我仍在查看Windows 8+上的这种行为是否已更改,但是我什么都没看到。
Sudo是一个细粒度的权限提升系统。默认情况下,它与UAC本质上是相同的,但是它具有更多的功能来配置以限制可访问性。
评论
您提出了一些很好的观点,但是我想稍微扩展一下:Windows用户不再是默认管理员,至少在实际上不是root的意义上(UAC有点像wheel / sudoers)。如果Linux存储库是可维护的存储库(例如来自发行版的存储库),则它们的性能要好得多-例如,使用Launchpad PPA具有与Windows中相同的问题。另外,在过去的几个月中,我发现(仅限周末)Windows计算机上的许多漏洞比(主要是工作和编码)Ubuntu笔记本电脑更早修复,因此过去发生了一些变化。
– Rens van der Heijden
15年8月5日在20:24
我同意你的一些观点,其他观点则不多。如果Linux用户执行开发之类的事情(例如ruby,node,python等),则始终会从不受信任的存储库中提取信息。现在也有许多安装例程遵循“ curl | sh”模型,以至于它们都有一个tumblr curlpipesh.tumblr.com。我也同意@RensvanderHeijden关于本地管理员的事情,可以肯定UAC的前景不好,但是那是很多年前的事,当前的实现还不错,当然并不比sudo差。
–罗里·麦库恩(Rory McCune)
15年8月5日在20:55
@RоryMcCune我认为您不能仅将node / ruby / python存储库标记为不可信。没错,它们的可信度(比官方发行版存储库低)不那么可靠,但是它们比从网络上获取随机的二进制文件或脚本更容易验证(始终包含源代码),并且更好。
– Rens van der Heijden
15年8月5日在20:58
@RensvanderHeijden他们不验证他们存储开发人员。在许多情况下(例如npm),文件中的文件名无虚词,而且我个人的恶意软件(eicar)在其存储库中坐了好几个月了……这不是我所说的值得信赖的东西。至于阅读源代码,。老实说,没有人在下载JavaScript源代码时会读取100KLOC
–罗里·麦库恩(Rory McCune)
2015年8月5日在21:07
@RоryMcCune就是我说我同意他们不那么可信赖时的意思。有很多改进的余地,但是比从网站复制粘贴脚本要好得多!
– Rens van der Heijden
15年8月5日在21:10
#2 楼
其原因往往是历史性的。与现代Windows台式机相比,现代台式机Linux没有理由特别应具有更强的恶意软件抗性。Windows台式机用户的Windows病毒数量比Linux多得多。受各种因素的影响,例如各个平台的用户数量以及Windows平台的历史弱点,例如一直以管理员身份运行。
因此,从市场角度来看,原因是Windows防病毒软件的客户比Linux防病毒软件的客户多,因此,会有更多的供应商进入该市场。
评论
我是否可以得出结论(从体系结构的角度来看),Linux与Windows一样容易受到病毒感染?
–user69377
15年8月5日在19:17
很好,您需要定义哪个linux和哪个版本的Windows,但是我想说的是,假设您在谈论Windows 10和现代台式机linux,则没有任何迹象表明Windows比linux更容易受到感染。但是,由于存在更多针对Windows的恶意软件,Windows用户面临更大的感染风险。
–罗里·麦库恩(Rory McCune)
15年8月5日在19:19
只要用户能够安装和运行软件,系统就会容易受到攻击。除非您找到一种方法来可靠地认证软件并且仅允许经过认证的软件。 Android和iOS都在尝试做到这一点(并限制了App可以做的事情),但仍然遥不可及。
–迈克尔
2015年8月5日在22:41
@KagueiNakueka从体系结构的角度来看也存在差异,因此不会那么脆弱。但是,仅仅由于社会,市场和历史因素比单纯的技术差异具有更大的影响,就说差异是由建筑因素引起的,这仍然是错误的。
– Peteris
2015年8月5日23:43
@Michael Well,坦率地说,Mac OS X确实也提供了应用程序沙箱,但正在Linux / Gnome版本上完成了一些工作(例如,请参阅2月份的博客文章:blogs.gnome.org/alexl/2015/02/ 17 /…),然后您仍然拥有Chrome操作系统,据我所知,它是迄今为止最好的沙箱(老实说,如果有人可以认真破解已禁用NaCl的chromebook(即使启用了NaCl,这还是值得怀疑的,我会感到非常惊讶)至少有可能))。
– David Mulder
15年8月6日在21:14
#3 楼
我认为,导致台式机Windows系统病毒感染的最关键因素肯定是软件分发和安装的文化和纪律。一般Linux用户打开软件包管理器并由供应商构建软件包(并且在90%的情况下不会离开官方存储库查找软件),Windows的普通用户(非IT用户)会打开浏览器的标签,而Google会显示“ install 7-zip”甚至“ install file archiver” ,并且经常不经意地导航到经过恶意软件填充的网站,该网站经过精心设计和搜索引擎优化以捕获此类用户。
每个初学者Windows管理员都会向您讲述很多有关“ ZipViewer.exe”和“ ArchiveUnpacker.exe”的故事,这些故事在受感染的计算机中找到并由用户下载。当然,经验丰富的用户可以在地址栏中键入“ 7-zip.org”,然后从受信任的网站下载安装包,但这只是指出了一个事实:缺少用于Windows软件的中央存储库,并且需要只是要记住受信任的网站列表仍然会造成Windows历史上已知的最大漏洞。
我知道很多人根本不安装防病毒软件,只是因为他们知道在哪里安装。获取原始软件以及如何配置常规数据备份。
评论
这基本上是正确的答案。我要补充一点,Linux安全模型对从Internet手动下载并安装的安装程序(例如.deb软件包)没有提供任何保护-这些安装程序具有root特权,几乎可以对系统执行任何他们喜欢的操作。甚至用户空间恶意软件也可能犯下严重的恶作剧,例如安装浏览器插件来窃取信用卡详细信息。因此,如今的Linux安全性严格地取决于这样一个事实,即Linux用户长期以来一直被限制只能从安全来源进行安装。
–布雷克·沃尔什(Blake Walsh)
15年8月7日在10:44
@BlakeWalsh好吧,不完全是这样。我认为这主要是因为用户本身通常更具技术性,针对该平台的恶意软件也少得多(主要是由于市场份额)。就架构差异而言,是的,与Windows相比,Linux具有最大的安全优势。
– reirab
15年8月7日在16:44
@reirab好吧,我认为低市场份额是“默默无闻的安全”的一种形式,我的观点更多是在个人的层面上,他们可能是精明的或不是精明的,并且这不会随着他们使用的操作系统而改变。现在可以说,Ubuntu比Windows更易于使用,因此对非技术人员没有更多障碍。迁移到(例如)Ubuntu的Windows用户如果保持Windows习惯,就无法免受恶意软件的侵害(有时您必须用“ Use the Software Center,dammit!”打头顶新的Ubuntu用户,因为旧的搜索下载-安装习惯死了)
–布雷克·沃尔什(Blake Walsh)
15年8月7日在18:08
@BlakeWalsh我同意这是出于默默无闻的安全性,但这仍然是主要原因。另外,说非技术人员没有更多障碍是非常有争议的。如果其他人完成了系统的所有设置和配置,则可能是这样,但如果他们自己进行安装,则不是这样,尤其是当他们碰巧在硬件配置上很不幸时。存在是有原因的。
– reirab
2015年8月7日在18:15
值得注意的是,Windows 10中的应用商店是Microsoft努力提供类似于官方Linux存储库的用户保护。
– Ghillie Dhu
15年8月8日在21:10
#4 楼
在Windows单一文化环境中,每个正常运行的Windows恶意软件都可能导致流行病感染。世界上有数亿个Win 8.1盒子,例如Acrobat Reader已安装。它是一种单一文化。另一方面,Linux较少是一种单一文化。有很多不同的PDF查看器:Evince,Okular,mupdf,xpdf ...有很多窗口管理器:Gnome,KDE,i3,lxde ...有很多不同的发行版。所以,如果您能够感染一种口味的Linux,但这不一定适用于其他安装。
Linux软件通常是开源的。如果您想成为软件开发人员,则必须坚持很长时间才能获得对正在运行的项目的git / svn / cvs的写权限。您不能只向发行版提供二进制文件,您需要提供源代码,如果它不是从源代码编译的,则您的软件已淘汰。因此很难分发恶意软件。
我在这里写的只是猜测,我不了解软件安全性。
评论
就Windows本身与Linux本身而言,每个内核只有一个。可以肯定的是,与Windows相比,在Linux上运行的内核版本将更加广泛(Windows在安全性方面既有优点也有缺点)。
– reirab
2015年8月7日在16:48
@reirab:不仅是Linux内核的版本,还包括变体。您正在使用gentoo补丁集吗? GRSecurity或SELinux或其他功能系统?
– Ben Voigt
15年8月7日在21:30
尽管不属于安全领域,但这是一项非常合理的技术分析:软件的单一文化来源与多样性。生活和技术只能与多样性一起生存!
– dan
15年8月8日在18:30
#5 楼
这里有一些很好的答案。我只想补充几点。论点有一个历史的组成部分,即Linux的脆弱性不如Windows。当提到现代Windows实现时,此建议的某些依据并不像以前那样有效。
最大的差异可能最初是由于体系结构上的差异。传统上,基于* nix的系统在用户空间和内核空间之间有着明显的分隔。这种分离限制了用户运行的进程可以访问/更改。早期的Windows没有清晰的分隔,这意味着诸如影响低级代码或驱动程序的用户代码之类的可能性更大。 Windows的更高版本已努力将系统和用户空间进行类似的分离。举例来说,一次,由于用户运行的恶意代码或仅是用户级别错误的代码,用户空间进程可能会对诸如视频子系统之类的低级服务产生不利影响。在这方面,系统和用户空间的这种分离的好处是减少了对恶意代码和错误代码的暴露,这可能会使系统不稳定。
正如其他人所提到的,Windows传统上也允许用户帐户也是系统管理员帐户。这类似于以root用户特权运行Linux用户帐户-本质上允许进程绕过由用户和系统分离提供的任何保护。
我认为区分病毒和恶意软件也很有用。解决此问题的一种方法是将病毒视为自我填充-病毒可以在没有用户交互/输入的情况下从一个系统迁移到另一个系统。另一方面,恶意软件要求用户执行某些操作,例如打开附件,安装更新,通过偷渡漏洞等访问网站。尽管病毒仍然是一个问题,但到目前为止,这些天来真正的威胁来自恶意软件。由于恶意软件需要用户交互,因此真正的威胁现在更多地与社交工程有关,而与技术平台无关。在此级别上,Windows和Linux潜在相似,因为这两个系统在体系结构re:用户和系统空间上都越来越相似(处于较高的抽象概念级别)。您可以为任何一个系统开发恶意软件,并且恶意软件的工作范围类似(假设现代Windows做法是不让用户帐户隐式包含管理员权限)。
这通常意味着,真正的区别主要在于由于市场份额。由于Linux的市场份额要小得多,因此潜在的受害者群体也较小。如果您要开发一些恶意软件,您将进入最大的市场-这意味着Windows。但是,我们开始看到Linux的恶意软件,如果Linux桌面市场份额增加,则Linux的恶意软件问题可能会增加。关键是,社交工程现在是恶意软件分发的关键,而平台的相关性也较低。如果我们还发现基于跨平台技术(例如JavaScript)的恶意软件数量增加,我们甚至有可能在Linux上看到更多恶意软件。
实际上有一点令人担忧,那就是人们坚信Linux可以抵抗病毒和恶意软件。这种信念会使人们感到自己不必担心保护自己的正常最佳实践,例如不要单击不可靠的电子邮件,打开可疑附件,从未知或不受信任的来源安装软件等。人们会建议Linux更安全,因为许多软件是开源的,您可以检查该源是否为恶意软件。这有点误导。首先,检查软件以确保可以正常运行实际上非常困难-这需要相当多的技术技能和对所使用语言的熟悉。另一个问题是,大多数人会假设其他人已经这样做了,事实并非如此。考虑具有重要安全漏洞的重要库和应用程序的数量,这些漏洞和安全漏洞已经有相当长的一段时间了,例如openssl,libc和ghost等。
此时Linux较不易受攻击,主要是因为它代表了如此小的用户市场细分。如果市场增长或竞争对手将安全性提高到难以实施恶意软件的地步,那么我们很可能会看到Linux威胁的增加。威胁越来越依赖于社会工程来传递其有效负载。在某种程度上,我们可能正在达到现代系统中可能的技术保护极限。如今,最易受攻击的组件是用户。这意味着底层技术变得越来越不相关,我们真正需要关注的是用户的教育和意识。
评论
您忘记了Linux,其中大多数用户空间都是开源的。
–user2284570
2015年8月7日19:00
@ user2284570-不,我没有忘记它。正如我所说的,许多人认为基于开源,这是更安全的。但是,我认为这在实践中并非如此。它假定“某人”正在审查源,并且具有理解源的技能。情况不一定如此-开源中存在有意和无意的安全威胁。现实情况是,很少有足够的开源软件受到足够的审核/审查。可以说,对源的访问使发现漏洞更加容易,从而降低了安全性。考虑openssl或libc漏洞及其存在的时间
– Tim X
15年8月8日,0:29
同样,Linux仍然是基于经典Turing的计算机的OS(通常意味着手动内存管理)。它还使用经典文件系统(层次结构通常看起来像60年代数据库的层次结构)。通过这样说,我正在考虑使用AS / 400。
–user2284570
2015年8月8日在9:17
@ user2284570我看不出这有什么关系。这两个系统的文件层次结构和内存管理在原理上是相同的。从抽象的角度来看,它们都是“基于图灵的经典机器”。每个系统都有各种方案来帮助检测和防止堆栈破坏或超出范围的内存访问等,但是这些不会改变基本体系结构。底层物理架构是相同的。操作系统的融合远不止于分歧。通常,在概念层面上,一个实施的好主意会被另一个抄袭。类似的概念,只是不同的实现
– Tim X
15年8月9日,0:54
AS / 400直接使用关系数据库而不是传统的文件系统层次结构,并且完全用托管代码编写,其语言不使用类似于Java的内存管理(好的,它仍然是命令式语言,并且仅IBM)。解释器是CPU微代码。我目前尚不了解在广泛使用/现代的模糊CPU设计上的单个自定义微代码。但是您是正确的问题是关于linux vs Windows。
–user2284570
2015年8月9日在1:14
#6 楼
Windows的安全模型借口(可能是最大的借口)的一个基本问题是,用户允许程序执行几乎所有可安装程序可能需要做的某些事情的唯一方法是授予程序无限的权限以做任何想做的事。 Windows是否可以说“该程序想在每个用户的开始菜单中添加一个名为'FredMagic123'的文件夹并向其中添加图标;您要让它执行此操作吗?”,如果单击“是”,将授予该程序执行该操作的权限但没有其他提升的特权,则用户可以确定程序何时寻求权限来做他们无正当理由要做的事情。更糟糕的是,Windows使程序难以启动具有普通权限,然后稍后请求提升的权限。因此,如果安装程序曾经希望能够以所有用户都可以访问的方式安装程序,则它通常需要先获得提升的权限,然后才能执行其他任何操作。因此,正常的行为是,安装程序需要完全的管理权限才能执行任何操作,而不是只允许本地用户安装程序而不需要提升的权限,并且仅在安装时才需要特殊权限才能在系统范围内使用。即使在典型安装中,它们的任何动作都根本不需要任何提升的权限。
#7 楼
让我们在这里找出一些答案。Linux病毒较少,因为它缺乏市场份额。
错误。尽管Linux在台式机中的市场份额较少,但在服务器安装中占有较大份额。与机会目标相反,服务器更有可能被视为特定目标。
如果正确配置和管理,现代操作系统基本上都是安全的。
不对。 Windows带有许多遗留的旧代码,这些旧代码在编写时都没有安全方面的顾虑,以保持兼容性。 Linux在最初的设计中更加注重安全性,并且拥有多个纯粹的安全性项目,这只会使事情变得更好。尽管Windows比以前要好得多,但是它还有更多的改进空间。
公平地说,让我们揭穿另一个神话:“ Linux本身足以保证安全性”。所有操作系统中的最大弱点是
密码薄弱
配置错误
此时,最令人担忧的僵尸网络完全由linux驱动启用了默认密码和远程管理的路由器。
#8 楼
比较Windows和Linux就像在结构上比较苹果和橘子。配置在保护方面起着比任何特定的OS体系结构更大的作用,并且从物理安全性一直到维护和维护。可以在所有操作系统中删除所有安全性实施措施,并且可以在维护和安全性方面减少用户操作计算机的方式。因此,就恶意软件安装而言,所有操作系统均具有相同的风险等级,因为该风险在很大程度上受到用户的影响。大多数平台上的病毒,恶意软件,特洛伊木马等都可以通过以下方式安装:拥有足够特权的人。如果该人具有足够的特权以允许该应用程序升级其自己的权限,则该应用程序可能很难清除。例如,如果用户在Windows或Linux上以“管理员”身份运行,则可以在不小心的情况下允许安装恶意软件。如果该用户无意中安装了他们不想要的东西,它可能会接管他们的机器,将自己隐藏在操作系统中,并且使其很难移除,有时甚至在发生EFI注入之类的情况下甚至需要更新固件。 Mac。
拥有门锁后,防病毒就像安全系统。如果您将门锁视为内置的操作系统安全性,那么它将防止发生一些事情,而无需用户进行诸如将门解锁的操作。因为它存在,所以它可能会阻止潜在的攻击者。门锁使诚实的人诚实。诸如防病毒软件之类的安全系统会警告用户可能的入侵。如果用户确认警告并及时停止入侵,则可以防止盗窃或闯入。如果用户没有适当的安全系统,则只有克服了操作系统(或门锁)的内置保护后,他们才能查看闯入的后果。
话虽这么说,并不是所有的安全系统都能解决所有问题,也不是所有的防病毒引擎都能解决所有病毒,但是如果您有任何值得远程保护的东西,那么就值得正确保护。
Linux可以在某些种类中在安装方面需要更多的维护。它不是所有人都容易使用的,它是由不在大型公司工作的人(红帽除外)创建的。 Windows,
可以更容易地进行配置和维护,但是,在两种情况下,用户都可以使操作系统在防御方面毫无用处。
任何给定时间的市场都不会影响任何给定操作系统的未来安全性。如果应用了所有软件补丁程序,则只要负责维护该软件的各方是最新的,用户就可以了解其已知漏洞。但是,在没有补丁的情况下,总会有更多的零日攻击和针对未公开漏洞的攻击。<br />
评论
他们这样做的原因与营销有很大关系。更多Windows用户=>更多Windows恶意软件=>更多Windows AV产品。现代Windows系统非常安全。微软过去有很多问题。他们进行了更改,发明了安全开发生命周期,现在生产了非常可靠的软件。今天,几乎没有病毒感染针对Windows。它们针对Acrobat,Flash,Java,MS Office等。但是,作为Windows用户,从互联网上下载随机可执行文件并运行它们是正常的。另外,没有针对软件的集中更新机制,因此您将拥有旧的,易受攻击的软件。这使Windows用户不安全,但它本身并不是Windows缺陷。
我认为可以操作linux的人可以安全地操作Windows。
在另一个线程上查找我的答案,它已经完全覆盖了。 Linux桌面的安全性比Windows桌面低一个数量级,但是它们的针对性也较弱,并且应用程序分发模型不太容易使未受过教育的用户运行不受信任的应用程序。无论如何,如今您应该比浏览器恶意软件更担心浏览器恶意软件。
“ Linux桌面的安全性比Windows桌面低一个数量级” [需要引用]