[ 登录 ][ 注册 ] 天极传媒: 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
您现在的位置: IT专家网 > 安全子站 > 评论分析

开源软件的开发与软件安全之间的联系

作者: 佚名,  出处:互联网, 责任编辑: 郭秋爽, 
2008-06-18 09:37
  本文仔细地研究了开源软件的开发与软件安全的联系。

  本文仔细地研究了开源软件的开发与软件安全的联系。关于微软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事件。

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅


    • 解析Windows密码安全问题(第三部分)评论
      在前两部分文章中,我们讨论了Windows密码政策的问题以及它是如何在Active Directory环境被控制等问题,大家应该还记得在默认情况下密码政策和相关的设置位于默认域策略中(Default Domain Policy)。另外同样探讨了可以使用哪些技术破获windows密码,以及每种攻击方式的限制问题。那么,在本文中,我们将讨论如何让windows密码变得更加安全,以及如何能够解决在前两部分文章中出现的所有问题。本文将涉及Windows2002/2003/2008Active Directory默认安装带来的可能性以及其他能够整体提高密码安全的技术。
    • IDC创新和安全白皮书:合作或竞争评论
      业务创新是业务发展战略非常重要的一部分,并而日益成为公司保持竞争优势的决定性因素。由于创新的战略重要性,导致了我们越来越关注信息安全机制在抑制甚至扼杀业务创新方面起到的作用。IDC认为公司不仅是需要找到业务创新和有可能扼杀这种创新的信息安全机制,而且需要在这两者之间找到一个简洁的平衡来满足自己的业务需求。成功的企业能够在商业竞争中占有优势,是因为他们懂得去合理的利用两者使之成为一种具有杠杆作用的机制,而其它的企业只是单单强调其中的一个。
    • 预防企业数据丢失的6种最佳实践评论
      根据“私有权清算中心”(一家非赢利性消费者信息和倡导组织)的统计,自2005年1月以来,有将近2200万条记录遭到破坏。数据失窃和丢失案件数量惊人,这不仅是因为安全入侵事件正在以惊人的速度持续增长,数据丢失引发的财产损失事件也同样在飞速增加。根据美国政府的估计,所谓的“企业数据丢失”在去年使商业界损失了近1050亿美元。根据波尼蒙研究所(Ponemon Institute)的统计,仅仅内部人士导致的数据受损一项,每年给商业界造成的损失为平均每家公司3-4百万美元。产业分析公司Gartner集团估计,恢复数据的开销可以达到每条破坏记录150美元之高——这一数字还没有包括重拾客户信任和重建品牌价值、可能的罚款以及法律诉讼代理费的资金投入。在企业数据丢失案件有增无减的同时,公司也正在不断搜集更多数据,以求优化商业流程,改善客户服务,以及提升与合作伙伴的关系。更多的数据转化为相关数据在整个企业中数量不断增多的信息系统之间更广泛的传播。其结果就是——随着公司内外越来越多的用户获得接入系统的权限,敏感数据遭到破坏的风险也在不断增大。
    • RSA白皮书:管理银行的信息风险评论
      信息是银行的基础,但直到现在,金融机构还往往满足于以业务封闭式的方式管理风险。然而,行业的压力促使银行开始对这种战略展开思考。