众人之眼--开源软件的安全状况

本文讲的是 众人之眼--开源软件的安全状况,开源社区最引以为豪的透明、公开、众人参与等特性,也许很大程度上只是起到了掩饰开源生态系统中弱点的作用。那种人人以为开源才保持不间断的警醒氛围,实际上非常虚幻。

近期备受瞩目的多个漏洞让人开始怀疑“众人之眼”的正确性,但也实实在在地推动了开源生态系统在安全性上的实质性进展。

若说世上有直面开源安全挑战的标杆式人物,那可能得数维尔纳·科赫——编写了GnuPG并辛勤维护了这一开源软件生态系统支柱18年的德国开发者。

自1999年初版发行以来,GnuPG已成为世界上应用最广泛的开源安全工具之一,保护着每个人的电子邮件通信,从普通政府官员到爱德华·斯诺登。

不过,科赫发现自己最近几年很难做到收支相抵。自2001年起大约年均2.5万美元的捐款并不足以支撑他的工作。据独立的非盈利新闻工作室ProPublica报道,这位53岁的开发者在爱德华·斯诺登的中情局泄密事件震惊全球之时几乎已经游走在放弃GnuPG的边缘了,但泄密事件反而令他决定迎难而上,继续坚持下去。“我太理想主义了。”他说。

维尔纳·科赫

这件事结局还不错。ProPublica的报道出来后,全世界的捐赠者纷纷慷慨解囊援助科赫。他很容易就收到了比原定维持工作所需的13.7万美元还多的捐款,让他可以雇个兼职开发人员帮忙。Linux基金会的核心基础设施计划也给了他一笔6万美元的一次性拨款。脸书和在线支付处理商Stripe都承诺每年给科赫的项目注资5万美元。

资金不足的项目,就像之前的GnuPG一样的,组成了空前庞大的开源生态系统的一部分。开源代码的广泛重用支撑着今天技术的飞速发展,但巨大的代码量阻碍了安全审查。直到最近我们才开始直面这个问题,通常总在安全漏洞逼使业界采取行动之后。

码农也是要吃饭的

让科赫数年间处于困境的情况并不少见。

在谷歌研究员尼尔·梅塔揭示了OpenSSL组件的严重远程利用漏洞“心脏滴血”后,软件社区惊恐地发现这一项目很大程度上是Linux基金会执行理事吉姆·泽姆林所称的“两个名为史蒂夫的家伙”在负责。史蒂芬·亨森和史蒂夫·马奎斯博士利用业余时间更新代码,所得资金支持仅仅来自于每年几千美元的自愿捐款。

倚赖开源的技术经销商们很快介入,将OpenSSL项目导向正轨。给了GunPG的创造者6万美元拨款的核心基础设施计划是几个月前成立来资助亨森和其他人在OpenSSL上的工作的。财政支持由亚马逊、Adobe、思科、脸书和谷歌等硅谷巨头提供。

千万人盯着也有眨眼的时候

心脏滴血不是第一个杀手级开源漏洞。比如说,在它之前一年的阿帕奇Struts漏洞的严重程度就至少跟它一样。

不过,多亏了媒体炒作,心脏滴血可能永久性搞臭了埃里克·雷蒙德关于开源特性的名言:“只要有足够的眼睛盯着,所有的漏洞都很表浅。”绝大多数安全专家认为这句话更多在激励而非描述。

安全公司Sonatype首席技术官约书亚·柯曼说:“我从没喜欢过‘众人之眼’这个概念。‘很多眼球’并不意味着这些眼球都有足够的动力和能力去看去发现安全漏洞。”

例如破壳漏洞。它的代码被认为是经过仔细审查了的,但实际上根本不是那么回事。因为人人都假定它被人认真检查过了,因此没人再愿意去费力做重复工作。

当我们都倾向于假定开源代码完整性很高的时候,Sonatype的数据却揭示了相反的结果。这家公司对其托管代码库中开源组件的分析显示,开源组件中已知漏洞的修复率仅为41%,柯曼在Usenix杂志《;login:》中写道。而那些已修复的问题,平均修复时间是异常漫长的390天。

不过,即使抛开商业谈论“开源”,专有软件也是有误导性的。开源软件和专有软件之间或许曾经泾渭分明,但时至今日大多数应用程序已变成第三方软件组件集合体,所谓第三方,其中大多数来自开源项目。

代码安全为重中之重

该怎么做?不管怎样,答案在很大程度上是文化意识上的。安全漏洞披露平台HackerOne首席策略官和前微软高级安全策略师凯蒂·墨索利斯说。“我们必须打造安全思维。这对每个软件项目都很重要——无论是不是开源项目。”

墨索利斯的公司提供基于Web的平台用以整合漏洞披露,手段还包括了漏洞赏金计划。她提到,HackerOne已经向大量开源项目提供了漏洞赏金赞助,比如PHP、Ruby on Rails、Python和OpenSSL,他们为漏洞报告提供报酬。

开源项目需要对安全问题采取更为认真和系统化的方法,她说:“你至少得尝试将安全构建进去。”

Sonatype的柯曼建议采用更为严格的解决方案:类似于以高品质和高责任感著称的生产厂商所采用的供应链。

柯曼用福特生产线作为类比,说这家公司清楚其成车上每一块部件的来源,问题可以被追溯至特定的供应商、设备,甚至生产批次。

然而,当今的软件开发组织里,并没有这样的系统。几乎每个商业软件应用都利用了第三方公司出售的开源组件和专有组件,但软件公司对所有这些代码的品质和源头可能只有个粗略的概念。通常,只有在遭遇了灾难之后才会发现漏洞并感受到漏洞的威力。

比如说,Shellshock这个案例里,有问题的代码可追溯到1989年,且影响了很多不同种类的应用——从基于CGI(公共网关接口)的网页服务器到Qmail邮件服务器,到某些DHCP(动态主机配置协议)客户端。针对这一漏洞的攻击在漏洞曝光的数小时内就开始了。

跟着大咖走

孤儿项目(没人照看缺乏维护的项目)和松懈的检查不应该遮掩掉某些业界重要人物已踏上迈向安全代码的良性道路的事实。

商业Linux公司,如Canonical、红帽和谷歌,已在开源代码安全性和完整性上大举投入。有钱又亲开源的公司,如网飞(Netflix)和脸书,也已将可观的资源导向能改善开源代码质量的项目了。

在Mozilla,据其工程经理贾森·迪尔称,安全责任分属三个团队承担。一个团队在发现安全问题时对问题进行鉴别分类。第二个团队对编译代码进行“模糊测试(黑盒测试以找出漏洞)”,第三个团队则负责开发类似Mozilla内容安全策略的安全和隐私特性。

迪尔称,早自6年前在他到Mozilla之前,模糊测试和对代码的严格检测就已成为Mozilla软件开发文化的中流砥柱了。但随着对开源威胁认识的加深,Mozilla也对其他开发惯例作出了调整。

“我们已经调整了各种各样的开发惯例以适应敌人正紧盯我们公共代码库的每一次代码提交这一事实。”迪尔说。举个例子,Mozilla代码的安全补丁在版本更新发布之前就着手在做了,给攻击者留下更短的实施攻击的窗口期。重大新特性在发布之前都需要经过安全团队的审查。

在发行乌邦图(Ubuntu)Linux的Canonical,一支快速壮大的安全团队负责审计Canonical的代码——总共3.5万个通过各种渠道作为乌邦图的一部分进行发布的软件包。Canonical的云解决方案产品经理达斯汀·柯克兰如此说道。

与Mozilla类似,Canonical的安全动作横跨多个不同领域,从特性研发到代码审查。针对柯曼的观点,柯克兰认为供应链风险是需要重点关注的问题。Canonical投入了大量资源评估与其核心操作系统捆绑的开源组件的可行性。

作为有20年开源经验的老鸟以及20多个开源项目发布的维护者,柯克兰说:“对于开源技术,我们关心的是直接采用它更好,还是复制然后开发并扩展它更好。”Canonical公司在选择复制现有开源代码时候遭到了来自开源社区内部的谴责,但柯克兰认为复制恰是开源的一大优势。

“我们不打算创建自己的OpenSSL和GPG。但拥有备选的加密库非常重要。多样性是必须的,尤其是在我们认识到其中一些组件是多么脆弱的时候。”

开源时代

走回头路太痛苦了,所以专家们说,还是向前看吧。黑鸭子软件公司开源战略高级总监比尔·温伯格职业生涯的很大一部分时间里,他都作为所谓的“信仰守护者”与来自如微软之类的商业软件厂商对开源运动的诋毁做斗争。他说,曾经分隔“开源”与“闭源”的墙壁早在很久以前就被推倒了。

“已经没有所谓的专有软件这种东西了,因为几乎所有软件都或多或少地依赖于开源代码。某种形式上,整个世界都进入了‘社区开发’软件时代。”

“我真心认为这是大家共同的责任。只要想到我们大家有多依赖于那堆庞大的开源软件,你就不由得希望安全问题成为大家共同的责任而不是将之留给Linux基金会和红帽公司。”

换句话说,我们会对心脏滴血之类的漏洞咬牙切齿怒不可遏,但在2015年,所有生产、使用或倚赖软件的公司都是事实上的开源软件公司,无论他们自己有无意识到这一点。而这,令他们成为了开源安全问题及其解决方案的一部分。

时间: 2024-10-03 15:51:40

众人之眼--开源软件的安全状况的相关文章

众人之眼——开源软件的安全状况

开源社区最引以为豪的透明.公开.众人参与等特性,也许很大程度上只是起到了掩饰开源生态系统中弱点的作用.那种人人以为开源才保持不间断的警醒氛围,实际上非常虚幻. 近期备受瞩目的多个漏洞让人开始怀疑"众人之眼"的正确性,但也实实在在地推动了开源生态系统在安全性上的实质性进展. 若说世上有直面开源安全挑战的标杆式人物,那可能得数维尔纳·科赫--编写了GnuPG并辛勤维护了这一开源软件生态系统支柱18年的德国开发者. 自1999年初版发行以来,GnuPG已成为世界上应用最广泛的开源安全工具之一

想知道 GitHub 上各开源项目的生存状况如何?这个软件告诉你!

这是一个针对 GitHub 资源库的交互式数据分析与可视化工具,能方便地对各开源算法库的活动.状态.人气进行比对,包括新 commits 和 pull requests.开发者可用它来考察开源项目大趋势,以及筛选感兴趣的项目.顺便说一句,它免费使用. 它基于 GitHub 和谷歌去年公开的 3TB GitHub 项目数据. 据雷锋网了解,操作它不需要写代码,界面简洁.因此,即便是新手也能轻松使用,用它来挖掘 GitHub 项目信息,在时间轴上与趋势进行交互.另外,数据范围也可任意调节. Data

全球开源软件发展趋势分析

开源软件发展已经有几十年的历史,虽说在服务器端,Linux已成为事实上的主流操作系统,Linux在金融.电信及石油勘探等高端市场的核心业务得到了大规模的应用.但在桌面领域,Linux的市场占有率还比较低.纵观开源软件多年的发展和软件领域发近期的变化,我认为开源软件将会表现出以下的发展趋势. 一.在全球金融危机背景下,开源软件将获得更多的市场机会 自从2008年年末在全球经济衰退的形势下,各国政府纷纷推出开源政策,减少开支降低成本.开源解决方案将成为各国政府所有电子政务的发展趋势. 为什么开源软件

开放源码是开源软件吗?

Open Source的来历 1997年,埃里克·雷蒙(Eric Raymond)出版其著作<大教堂和市集>,探讨黑客社区与自由软件原则.1998年初,该论文受到极大的关注,为促成网景通讯公司将其受欢迎的互联网套装软件<网景通讯家(Netscape Communicator)>释放成为自由软件的因素之一.这些代码即为今日大家熟悉的Mozilla Firefox与Thunderbird. 网景的行动激起雷蒙及其伙伴深入研究如何将自由软件基金会的自由软件概念及优点带入商业软件产业.他们

开源软件和 OpenSSL 的真实故事,到底谁才是真正的隐形战友

前几天,在朋友圈看到转来的原发于"界面"关于OpenSSL和开源项目的"隐形战友" 一文.开始觉得不过是炒冷饭,"心脏出血"这个OpenSSL严重漏洞,从去年(2014)4月初被公众知道,到现在已有将近一年了,这件事已经算告一段 落.尽管这篇文章充满了误解.硬伤和企业宣传,我也没太在意.结果,今天看到界面的网站上竟然还在用支付宝给OpenSSL募捐,这就荒唐了.之前有一些 朋友说,无论怎么样,多一些关注总是好的,从现在的结果看,界面的文章造成的坏

《开源思索集》一如何看待陈皓在微博上对闭源和开源软件的评论?

如何看待陈皓在微博上对闭源和开源软件的评论? 开源思索集 忍不住要深深地叹息一声,各位,这个观点真的一点都不新鲜,而且早就被批得一钱不值了. 在1998年,微软的万圣节文件被泄露,然后流到了Eric S. Raymond的手上,他是<大教堂与集市>的作者. ESR以极其尖锐的语言,点评了这批文件,我只打算摘录与陈皓观点相关的部分. 微软的文件中说:"当向JimAll描述这个问题的时候,它提供了漂亮的模拟"追逐后灯".要使一大批半组织的暴民合作,必须要向他们指出一个

开源软件真正能够用起来还在于执行力

曾经有一段时间,许多人都认为开源的希望在中国.特别是在2001年的时候,中国开展的第一次软件正版化政府采购在北京进行,全面采购了基于开源软件发展起来的国产基础软件,包括国产Linux和国产http://www.aliyun.com/zixun/aggregation/17181.html">办公软件,微软产品全部出局.这一事件在全球引起很大震动,当时许多人更是认为,在桌面领域打破微软垄断的希望就在中国.此后,我国政府继续通过政策.财政和科技攻关项目等加强对开源软件的支持力度,经过几年的发展

开源软件通吃世界的十大理由

开源软件以前只是技术发烧友们的最爱,现如今却正在席卷整个软件世界.根据Gartner的报告,到2016年,开源软件将会进入几乎所有全球2000强企业的关键任务软件中.而据开源管理软件厂商黑鸭子软件(Black Duck Software)称,目前全球已有超过百万个开源软件项目.这里是小编们总结出的开源软件之所以能够迅速普及的十大缘由. 质量 根据本年度的<黑鸭子开源软件之未来>的调查报告,质量是受访者选择开源的最主要的原因.这是一个巨大的变化.2011年,质量原因仅占据第5位.随着开源项目获得

IBM推出开源软件开发工具Quarks,助力企业开发物联网应用

IBM新推出一款全新的开源软件开发工具Quarks,帮助制造商和程序员充分利用物联网传感器数据,进而开发高效应用. Quarks建立在IBM Streams系列产品(IBM Streams是处理移动数据的企业工具)的基础上,现在专为程序员和制造商提供开源工具,方便他们开发应用.目的很纯粹,就是为了让程序员们不费吹灰之力就直接使用设备中的移动数据. 比如,你可以通过可穿戴式设备来观测一个糖尿病患者的身体状况,或者让矿工和石油工人戴上传感器头盔,来检测他上工时的健康情况. 以上类似情景都需要通过传感