发者在享受开源软件的便利时应该注意两点:合规性以及安全性。未按照开源许可证约定使用开源组件会引发潜在的法律纠纷。另外,开源软件可能存在安全漏洞。开发者在使用开源组件的时候需要注意漏洞的识别,也应采取相应的代码安全审计。
美国新思科技公司 (Synopsys, Nasdaq: SNPS)近日发布了《2018 年开源代码安全和风险分析》(OSSRA)报告。该报告分析了2017年经过审计的1,100多个商业代码库中的匿名数据,研究的行业包括汽车、大数据、网络安全、企业软件、金融服务、 医疗保健、物联网(IoT)、制造业和移动应用市场。该报告的审计数据由黑鸭子软件公司(Black Duck Software)收集和整合。新思科技已于2017年12月完成对黑鸭子软件公司的收购。
该报告突出显示了开源代码的使用量持续大幅增长,其中96% 被扫描应用中存在开源组件。数据还显示在每个代码库中平均有 257个开源组件,比2017年的报告数据增长了75%。现在许多应用中包含的开源代码多于专有代码。令人担忧的是,78% 被检查的代码库中至少包含一个漏洞,每个代码库平均包含 64个漏洞。这些代码库的漏洞中,超过 54% 被认为属于高风险漏洞。17%的代码库包含某种 常见漏洞,如 Heartbleed、Logjam、 Freak、Drown 和 Poodle。
黑鸭子软件公司技术专员Tim Mackey表示:“现在的软件和基础设施在很大程度上依赖开源技术,对使用的组件有一个清晰的认知是企业管理的关键。报告清楚地表明随着开源代码使用量的增长,企业必须确保他们拥有能够在开源组件中检测漏洞的工具,并且管理使用开源代码过程中可能需要的任何许可证合规性。”
在每个行业的应用中都发现了存在漏洞的开源组件。互联网和软件基础设施垂直行业的应用存在高风险开源漏洞的比例最高,为67%。比较讽刺的是,网络安全行业仍然被发现存在很高比例的高风险开源漏洞,高达41 %,导致该垂直行业处于风险第四高的位置。
除此之外, 被审计代码库中发现包含 Apache Struts(用于创建 Web 应用的开源框架),而在这之中,有 33%含有导致 Equifax 入侵事件的Struts 漏洞。报告明确指出越来越多的漏洞在企业代码库中积累。平均而言,审计中发现的漏洞大约在 6 年前已经被披露。
黑鸭子软件公司负责OSSRA报告的产品市场经理Evan Klein表示:“当Equifax由于Apache Struts漏洞被入侵发生重大数据泄露时,开源安全性管理需求成为 2017 年的头版新闻。尽管它在2017年3月被披露,许多企业显然仍未检查他们的应用程序是否存在Struts漏洞。”
调查结果显示, 74% 被审计代码库中包含存在许可证冲突的组件,其中最常见的是 GPL (GNU 通用公共许可证)许可证违规。存在许可证冲突的应用在各个行业分布情况不尽相同:零售和电子商务行业为61%,而在电信和无线行业则很高 —— 100% 被扫描代码都存在某种形式的开源许可冲突。
下载OSSRA报告,请点击:https://www.synopsys.com/content/dam/synopsys/china/software-integrity/reports/2018-ossra-sc.pdf