作者:hacker 日期:2022-09-20 分类:网站入侵
引:关于软件的安全性问题,随着网络的流行越来越成为人们关注的焦点,事实上每年发生的大量的攻击事件,病毒、黑客、蠕虫,使人们对软件的安全性不得不重视。但是究竟是开源软件安全还是商业软件更安全呢?关于这个问题一直是仁者见仁智者见智。
关于软件的安全性问题,随着网络的流行越来越成为人们关注的焦点,事实上每年发生的大量的攻击事件,病毒、黑客、蠕虫,使人们对软件的安全性不得不重视。但是究竟是开源软件安全还是商业软件更安全呢?关于这个问题一直是仁者见仁智者见智。有人说开源软件由于源代码是开放的,因此即使有漏洞和BUG也极易被人们发现并及时进行修改和完善,但是商业软件却由于不开放源代码,仅有少数人知道源代码,因此在漏洞和BUG方面,可能发现的很晚,所以也极易造成破坏和损失。
不过商业软件商总是认为自己的软件的安全性是相当可靠的,是经过检验地,并且也称,即使是开源软件,如果BUG和漏洞被一些不法分子获悉,同样存在着安全隐患,而且因为它的源代码是开放的,这种获悉漏洞的机会将更大。可以说,彼此对对方的安全性都提出了质疑,甚至有些不屑。
那么究竟开源软件的安全性症结在哪里呢?开源软件的安全性是不是要比商业软件更好呢?事实证明,无论是一些软件使用者还是一些研究机构,对开源软件还是情有独衷的。从他们的使用和研究来看,开源软件的安全性确实要好一些,在很大程度上就是因为它的开放性和随时弥补性。
众所周知,即使再完善的软件也可能存在着安全隐患,也就是说也可能有漏洞,甚至可以毫不夸张地说,所有的软件都有漏洞,只是这些漏洞是不是能及时被发现并进行弥补。从某种程度上讲,商业软件所依赖的所谓的“安全性”其实更多的是臆想和希望,而不是现实。现在的软件市场极度依赖于所谓的“独立”测试和认证,但实际上,付钱资助那些进行软件测试和认证的机构的人同时就是这些软件公司。因此即使是微软这样的软件巨人,在自己的软件上每年要修正多少漏洞,这还仅仅是已经发现的漏洞,还有很多没有被发现的不是同样在侵蚀着我们的系统吗?
据普林斯顿大学二名研究人员最近发布的一份报告称,AOL、Adobe等大牌公司在编写安全的软件方面还可以做得更好。研究人员对包括AIM、Photoshop在内的许多流行的应用软件进行了研究,发现其中许多软件都针对操作系统进行了优化,使黑客能够绕过一些Windows安全机制。普林斯顿大学的这二名研究人员重点研究了Windows的访问控制系统,它控制着用户和应用软件能够在PC上执行哪种类型的操作。他们的结论是:许多软件要求过多的权限,为可能的黑客打开了大门。据美国系统网络安全协会(SANS Institute)称,在对Windows进行多年的攻击后,黑客越来越多地瞄准了在Windows上运行的应用软件。它将即时通讯、媒体播放、备份软件列为新的安全缺陷重灾区。
而开源软件在安全性方面做得相对就好多了,笔者并不是说开源软件就已经做到无懈可击,就已经绝对安全了,事实上也并不是这样,只要有软件存在,就可能出现安全性问题,这已经是业界达成共识的东西了。问题的关键是,它们是在全球进行使用和开发,因此开源软件总是能够站在安全性的最前沿。因为它的源代码是开放的,因此给人一种更放心的应用,对那些喜欢自己动手丰衣足食的人来说,开源软件能给自己一种信心。更何况现在的开源,很大程度上是一种全球的智慧,是全体软件人员共同的兴趣和爱好的结晶。
虽然我们不能避免开源软件就没有安全问题,但是因为它的开放性以及共享性,因此它出现问题之后的解决速度将更快,而且堆积了大部分人智慧的锤炼,它的漏洞相对来说也要少一些。这和商业软件是有本质的区别的,虽然商业软件号称是安全的,是不开放的,但是从发生的安全漏洞和受攻击的成功率方面来看,封闭并不意味着安全,相反,更容易激发那些黑客的兴趣,并不断地试探、攻击、骚扰着商业软件的安全度。而开放了源代码,彼此之间大家都可以知道源代码是什么?因此对可能存在的问题以及自己需要进行的工作都可以很容易地上手研究。这是开源的一个优势,也是网络时代共享精神的充分体现。很显然,对软件的安全性问题,笔者更看好开源软件的发展。
本文仔细地研究软件开源会不会容易受到攻击了开源软件的开发与软件安全的联系。关于微软Windows与基于Linux的操作系统哪个更安全的讨论席卷了互联网。讨论涉及许多人的既得利益和偏袒的利益。由于了解不够以及逻辑错误引发的误解导致了讨论的混乱软件开源会不会容易受到攻击,使得讨论趋于白热化。出于广告宣传策略的需求希望能使赞助方获得更多的关注软件开源会不会容易受到攻击,派性论文使用整理过的统计数据泡制过于明显的权威及客观,实际上等于用偏见和可疑的事实来支持讨论。 这场缺乏确切结论的大讨论看似永无休止的部分原因就在于对安全的评估过多的集中于一个附带现象上软件开源会不会容易受到攻击:软件开源会不会容易受到攻击他们只研究安全性能的表面现象,而没有深入的分析安全特性的原因。部分原因也在于,对于大部分拥有产权的软件厂商来说,开源软件的开发是神秘的全新的。因此,这些非开源软件厂家无法了解开源世界对于安全问题在背后所做的努力。 还有一部分原因是许多卷入讨论的人们是只对软件安全有很肤浅的了解的最终用户。即使IT专家有时也不能了解软件安全在软件结构和开发过程中所做的努力,因为IT专家就算对 网络和系统安全配置拥有很深的了解,其技术中也往往比包括对开源软件开发和软件结构的实际了解。 如果想要填补公众知识库中关于软件安全带来的影响的空白,可能要写上厚厚的几大本材料。但是从这广泛的题目中选择有限的几个题目进行粗略的介绍还是可能的,这就是本文 的目的所在。 最后,Linux与Windows的安全大讨论成为了一场实例的竞赛。这些包含了更多更基础的关于安全所带来的种种利益与损害的例子分别服务于开源与闭源开发模式。这不仅仅是一个 技术问题,同时还是一个社会事件,如果更仔细的研究这场讨论,则更象一个经济学家和游戏理论家的事件。到现在为止,在大部分讨论中两种开发方式中最容易遭到误解的是开 源研发方式。现在我们来看开源软件的开发如何考虑软件安全问题。 不公开即安全 有些直指开源软件安全的争论完全基于错误的推论。许多流传广泛是听起来也颇有道理反对开源软件的的莫过于被我们称为“不公开即安全”的谬论。一个最常见的说法是:“当 它和微软程序一样流行时,你才会看到它有多安全”,另外一个则是“任何老练的安全黑客都能看到源代码,因此就不够安全”。 “不公开即安全”的谬论限制了对于基于Linux的操作系统和Mozilla Firefox 浏览器的相对安全性的讨论。实际情况是“不安全即公开”并不能真正保提供功能性的安全。它只能 提供表面上看起来的安全,实际上,开源开发社区所仰仗的安全原则正好与次相反。这种原则也可称为“公开即安全”,它包括两个软件安全的基本原则:透明的安全以及普及带 来的安全。 透明的安全 开源软件开发的安全性经常因为任何人都能得到源代码而遭到质疑。这个理论认为打算进行安全进攻的人通过对源代码的研究能够找到代码中能够构成攻击弱点的缺陷,从而使得 针对这些弱点的进攻更容易完成。这个理论有一定的根据,但是并不是人们所想象的那种方式。 事实上用眼睛分析源代码查找缺陷、进行分类并进一步创建缺陷是一项艰苦卓绝的工作。如果真的如同他们所说的那样由于源代码的公开性,开源软件更容易遭受攻击,那么微软 公司以外的人就不可能发现任何IE的缺陷。事实上,对于任何不平凡的应用来说,即使这样艰苦的工作也要比通过反工程技术查找缺陷来得容易。这些技术需要试探某个运行中的 应用,输入畸形的信息或者故意错误的使用,然后检查应用的可扩展性以及输出,来确定程序的运行是如何以及在何时背离了应用运行的初衷。 可能终有一天我们能够将源代码输入另外一个程序来判断哪个部分有缺陷,而不必再使用反工程技术来查找缺陷,不过即使那一天到来,使用二进制可执行设备代码文件可以同样 轻松的完成任务,根本用不着源代码本身。毕竟,进行那种分析所需的并不是类似编程员给变量或方法命名所需的信息,而是分析的目标软件所采用的算法的构造方法。毕竟,设 备代码本身与输入编译器的源代码在功能上是统一的。唯一的不同是它对特定的编程人员的可靠性有所不同。 从统计学上来看,这一事实不能支撑开源软件天生具有更多缺陷的说法。例如,代码分析企业Coverity的一份报告显示,他们只在Linux的内核的570万行语句中发现了985个bug。 可以比较的是,卡耐基梅隆大学的CyLab实验室所进行的的一个研究显示,具代表性的商业性闭源程序每一千行语句平均带有20-30个bug。按照这个比率计算,570万行语句中可能 带有的bug数量就会超过11.4万,是Linux内核bug数量的114倍。 软件透明度在开源软件开发过程中的重要作用经常被称为同行评审。之所有有这个过程,是因为源代码的公开状态,以及编程人员不可能与单一的控制实体,如CEO的目标完全保持 一致的事实所促成的,开发源代码的人员需要互相管理彼此的行动。因此很少出现,却非常激烈的关于不坏好意的程序员可能在程序中预留“后门”的论调在同行评审的过程下不 攻自破。严格而谨慎的遵守质量标准的代码才会得到开源软件项目代码库的接纳。事实上,如果程序在公开审查中被发现带有木马病毒,就会被指出。而源代码不公开的具有产权 的软件也可以,有时的确具有特意加入的rootkit功能,只有发生意外时才有可能被发现,例如2005年下半年著名的Sonyrootkit事件。普及带来的安全 微软公司的Windows桌面操作系统和IE的普及性常被用来解释缺陷发生率以及破坏发生率。这里我要告诉你们一些真相。对于源代码封闭,具有产权的操作系统或者网络浏览器来说 ,更高的普及率无疑可能招惹恶意代码编写者和其他不速之客的注意。但是如果采用全新的以普及性为关键的开发方式,情况就会有所改观。 开源软件采纳特定软件片段的门槛很低。由于开源软件完全不受价格的影响,在我们不断发展的网络状的世界里,一个新的操作系统安装文件的成本可能不会超过一张空白CDR,只 需花费几分钟进行下载。安装方式不同,甚至购买CD的钱也可以省去。 开源软件很容易被广泛接受的特性使得它更容易吸引新的开发者加入某个开源软件项目。随着用户数量的增加,编程人员对项目的兴趣也会增加。来自开源软件的开发者汇成了用 户群,另外开源软件很好的利用了编程人员的业务时间,他们没有时间全力投入某个严肃的开发团队,但是可以利用业务时间搜索和修改各个缺陷和bug。 结果,这些查找最受欢迎的开源软件缺陷和bug的人数远远大于闭源软件有限的开发队伍。这一数字随着用户数量的增加而相应增加。查找新的缺陷以进行利用的人数被查找新的缺 陷以进行修正的人数所超越。即使找到缺陷的人自己不写代码进行修复,他们也会告诉会进行修复的人。 这一事态的结果显而易见,有据可查的微软对缺陷所做的最快反应,是今年早些时候的WMF库的补丁,按照微软安全响应中心总监Debby Fry Wilson的说法,用了大约9-10天。同时 , Mozilla基金会每次按期生产、测试和发布Mozilla Firefox网络浏览器的补丁的间隔不超过一星期,对于Linux内核的修补时间甚至不用天,而是用小时计算。 这主要归功于补丁测试广泛的群众基础:Debby Fry Wilson在讨论WMF补丁的快速发布时说,测试而非补丁的开发占用了很长一段时间。我们在闭源软件没有广泛测试能力的情况下 期望它能够跟上形势,以及在测试出现问题是经常收到来自测试者本身的传真是不合理的。开源开发社区拥有数千名测试者,而闭源软件只有几十位。 产权软件缺乏吸引力 产权软件厂商,如微软公司,也开始着手调查在工作过程中加入一些社会力量的可能性,希望这样可以增强他们的软件的安全性。他们发现碰了一些障碍,而且目前来看是无法克 服的。即使采用最大方的类似方法,如使公众能够看到源代码,或者为公众提供新版本和新补丁进行公开测试也无法达到开源软件所享受到的透明度。 原因很简单:用户群没有对软件本身进行相同的投入,软件是“别人的软件”,他们无法获得将来能从厂家获得回报的承诺。在软件开发和改进过程中投入的时间和精力完全归厂 家所有,因此极大的打击了积极性。 可见与隐藏的较量 开源开发社区所仰仗的软件安全哲学与闭源产权软件开发模式所使用的截然不同。隐藏源代码能够配合产权软件厂商将缺陷保守一定时间,以使编程人员有足够的时间开发补丁, 这样通过创立安全的形象保持了市场份额,可是这样经常导致在某个时间段中某个缺陷横行,而用户对他们所处危险状况一无所知。开源软件开发因透明而获得好处,而不是粉饰 可能发生的安全损失,直到有了补丁以后才为用户提供保护自己的武器。这些好处是产权软件无法完全获得的。
个人认为恰恰相反:
一、在建站程序无法猜测的情况下,网站是否安全只根代码,服务器配置,网站日常管理是否严谨有关系,与是否开源没有关系;
二、在建站程序被猜测或者探测到之后,开源程序代码是开放透明的,但是,请你相信,很少黑客是直接研究代码的,基本上都是运用工具探测可能的漏洞;
三、开源程序由于代码公开,反而公开漏洞之后解决方案也更快,甚至,如果有编程基础,使用者本人也可以暂时修补漏洞;
四、如果只是指一般的程序,不特指建站程序,开源程序还是相当安全的,微软office经常被曝出漏洞,更新补丁,开源的open office倒不是见得有这么多漏洞,至少,被攻击机会更小
已有4位网友发表了看法:
访客 评论于 [2022-09-20 15:56:05] 回复
陷重灾区。而开源软件在安全性方面做得相对就好多了,笔者并不是说开源软件就已经做到无懈可击,就已经绝对安全了,事实上也并不是这样,只要有软件存在,就可能出现安全性问题
访客 评论于 [2022-09-20 17:29:41] 回复
自己需要进行的工作都可以很容易地上手研究。这是开源的一个优势,也是网络时代共享精神的充分体现。很显然,对软件的安全性问题,笔者更看好开源软件的发展。开源软件安全性如何本文仔细地研究软件开源会不会容易受到攻击了开源软件的开发与软件安全的联系。关于微软Windows与基于Linux的操
访客 评论于 [2022-09-20 15:06:56] 回复
这二名研究人员重点研究了Windows的访问控制系统,它控制着用户和应用软件能够在PC上执行哪种类型的操作。他们的结论是:许多软件要求过多的权限,为可能的黑客打开了大门。据美国系统网络安全协会(SANS Institute)称,在对Windows进行多年的攻击后
访客 评论于 [2022-09-20 13:14:41] 回复
金会每次按期生产、测试和发布Mozilla Firefox网络浏览器的补丁的间隔不超过一星期,对于Linux内核的修补时间甚至不用天,而是用小时计算。 这主要归功于补丁测试广泛的群众