在全球范围内,开源软件(open source software)得到了越来越广泛的应用,互联网、IT、金融无不涉及。据国家互联网应急中心实验室数据统计,超过80%的商业专有软件(proprietary software)使用开源软件或开源组件。
首先我们来看一组数据,由网站监测服务提供商Pingdom给出的关于世界排名前10000的网站中,有74.6%使用的是开源的Web服务器,这一数字仍在逐年递增。
再来看另外一组数据,据Black Duck(开源代码审计和管理服务商)调研发现,78%的企业组织正在使用开源软件,承载部分或全部业务,五年前的这一数字仅为42%;66%企业表示在考虑专有软件之前会先考虑开源软件;并且在未来2-3年内,云计算、大数据、操作系统和物联网领域会受到开源代码的影响。
下面我们来看一些我们熟悉的身影:
- 大数据
Hadoop、Hypertable、Spark
- 云计算
OpenStack、Cloud Foundry
- 操作系统
Redhat、Ubuntu
- Web服务器
Apache、Nginx
- 开发工具
Bugzilla、Eclipse
- 容器
DNN、Joomla!
包括谷歌、Facebook、IBM、亚马逊、阿里巴巴、百度在内的企业都使用了以上一项或多项开源应用软件,其涉及领域广,应用范围大。
- 安全现状
开源软件安全性问题近两年成井喷式爆发,包含多起严重的安全漏洞事件,打破了我们传统观念中的开源=安全的概念。
-
- OpenSSL:2014年爆发心血漏洞,我国大概有3万台服务器受影响,全球大约4000万台服务器受影响。2016年再爆水牢漏洞,全球约400万台服务器受影响。据不完全统计,仍有约10%左右的应用在使用包含漏洞的版本。
- Struts:作为一个应用极其广泛的开源架构,仅2017年内就已曝出漏洞或与其相关漏洞8个,其中更是不乏严重漏洞,S2-045和S2-046的连续发布,令人至今都心有余悸。
- 大数据:今年国家互联网应急中心实验室对国内外主流的开源大数据软件项目(20个)进行了安全性测试,总计发现133个高危缺陷,662个中危缺陷。
- 安全指标
开源(open source software)和专有软件(proprietary software)的安全性问题一直以来都是见仁见智的,没有定论。前文中也提到,当前很多专有软件同样会使用开源组件,这就使得影响面进一步扩大,其安全性问题也变得格外重要。
开源软件的定义是其源码可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制。由定义不难看出,开源软件的源代码开放是其与专有软件的根本区别,因此源代码开放产生的安全优劣势就成为了开源软件安全性的重要指标:
- 代码缺陷与漏洞
- 漏洞发现
通常而言,开源软件由于源代码开放的原因,始终宣称即使存在漏洞和程序BUG,也能及时被软件开发者发现并进行修复。但是其在快速迭代过程中,安全开发规范的执行与开发人员安全开发能力得不到保障,成为潜在的安全隐患。
- 漏洞利用
漏洞利用情况相对于专有软件更易被利用,其处于完全的白盒状态,整个运行模式及运行流程被掌握,攻击者越多的了解这些信息,完成漏洞POC也就越容易。
- 漏洞修补
有别于专有软件的定期发布补丁,开源软件在漏洞被发现后修补的周期要更短,大量的开发人员可以对漏洞进行修复及代码优化。以Linux为例,其对漏洞的平均修复时间从早期的122天缩短到现在的6天。
Synopsys公司在2014年发布的报告中显示,开源软件的代码质量已经超过专有软件,其通过Coverity的分析发现,开源C/C++项目的代码平均缺陷密度为0.59,而企业项目的C/C++代码平均缺陷密度为.72。(缺陷密度,既每1000行代码的缺陷量,是常用的软件质量衡量标准)
- 安全开发文档
早期的开源软件规模与影响较小,开发文档重视程度及安全开发成熟度都不高。
现今成熟的开源软件都会有在线及离线的文档,其中一些会有Wiki系统,方便使用者学习及反馈,创建完善的文档管理模式,这也是开源软件影响安全的因素之一。
- 安全手段
对于应用开源软件的机构组织,为保证自身所使用的开源软件安全,可以遵循以下建议,提高安全水平:
- 开源代码扫描——利用扫描工具或者开源软件扫描服务提供商进行源代码扫描。
- 源代码人工审计——采取更为精确的人工代码审计工作以提高开源软件安全性,且将成果向开源社区反馈。
- 安全版本——建议采用更安全的开源软件版本,有重要漏洞修复,及时更新。
参考文献:
- http://royal.pingdom.com/2012/05/22/75-percent-top-10k-websites-served-by-open-source-software/
- https://www.blackducksoftware.com/about/news-events/releases/78-companies-run-open-source-yet-lack-formal-policies
- http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=struts
- http://lab.cert.org.cn/download/%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E9%A1%B9%E7%9B%AE%E6%BA%90%E4%BB%A3%E7%A0%81%E5%AE%89%E5%85%A8%E7%BC%BA%E9%99%B7%E5%88%86%E6%9E%90%E6%8A%A5%E5%91%8A.pdf
- https://news.synopsys.com/2014-04-15-Coverity-Scan-Report-Finds-Open-Source-Software-Quality-Outpaces-Proprietary-Code-for-the-First-Time