对不起,如果这是一个愚蠢的问题,但有时我会看到复活节彩蛋和像Aptitude这样的程序.(Debian的包管理器)
可能吗 是否有更多险恶的功能进入开源软件?
它可能但更难,因为源代码存在.作者指望在运行之前没有人费心去阅读源代码,这对很多人来说都是如此.我知道我不打算阅读我运行的开源程序的源代码.在一个更大的项目中,它更难,因为代码经常被审查,但如果只有一个作者,那么它变得容易多了.
这当然是可能的,但它更复杂.我不知道任何实际的恶意软件,但人们犯了类似的错误.(我知道已发现的错误;显然,我不知道有多少错误.)
如果将恶意软件置于闭源软件中,找到它的唯一方法是检测效果并分析二进制文件.有些人非常善于分析二进制文件.
在开源软件中,任何人都可以查看源代码.对于大多数包裹而言,并不是很多,但是被发现的可能性要高得多.一旦发现,任何人都可以修补软件,做好事情而不是坏事.此外,大多数开源软件都有公开可用的存储库,这意味着任何人都可以追踪代码的历史记录,并且(至少是化名)谁做了什么.在开源中也存在生成更易读的代码的倾向,因此更改将更加突出.
当然,需要注意的是,我们大多数人真的不知道在软件安全方面要寻找什么.如果我运行压缩程序,它将我的文件压缩到看起来像乱码的较短版本,我可以得到原来的,我知道这是有效的.如果它将其更改为声称已加密的乱码,我不知道如何判断它是否已加密.
任何软件都可能包含恶意部分(有意或无意).开源的优点是你可以检查它(如果你愿意并有时间这样做).
是的,有可能,请参阅Debian OpenSLL崩溃的一个很好的例子:http: //www.metasploit.com/users/hdm/tools/debian-openssl/
虽然这不是病毒/间谍软件/恶意软件,但它清楚地显示了开源软件可能出现的问题.
我无法相信没人提到Ken Thompson的编译病毒.
访问源代码可以提供合理的保证,即程序不会恶意行为.但是,除非你检查过以下之一:
编译器的二进制输出
编译器本身的二进制代码
编译器的源代码(以及它的编译器,它的编译器等)以及用于编译它的编译器的二进制代码.
你最终可能会在编译后的二进制文件中找到从未出现在源代码中的恶意代码.不可否认,这是一种非常不可能且极其困难的攻击形式,但理论上可能会以源代码(项目或编译器)无法检测到的方式将恶意代码引入开源项目.
如果您不是为CIA(或其他政府的同等机构)工作,编译器安全可能不是您必须担心的事情.但这是一个非常酷的概念.