作者丨万佳
当今,开源软件渐渐的变成了软件世界的重要组成部分。依据 Gartner 计算,99% 的安排在其 IT 体系中运用了开源软件。
本年 3 月,安全公司 WhiteSource 发布了一份《开源安全年度陈述》。陈述标明,2019 年,揭露发表的开源安全缝隙数量再创新高,总数为 6100 个。与 2018 年比较,开源安全缝隙的数量增加近 50%。这份陈述标明,开源软件的安全问题十分严峻。
更要害的是,开源软件的安全不只联系本身,并且影响整个现代软件开发。“能够说,现代软件大多数是被‘拼装’出来的,不是被‘开发’出来的”。事实上,现代软件开发越来越像工业生产和制作,原材料便是开源软件,加上自己写的事务代码,最终“拼装”出一个软件体系。
在奇安信代码安全事业部总经理黄永刚看来,开源软件渐渐的变成了构建网络空间最根底的“砖头瓦块”,无处不在。“开源软件渐渐的变成了信息体系开发和建造的中心根底设施,开源软件安全问题应该上升到根底设施安全的高度来对待。”他说。
两个严峻发现
发现 1:每 1000 行开源软件代码中就有 14 个安全缺点,每 1400 行开源软件代码中就有 1 个高危安全缺点。
发现 2:开源软件之间的相关依靠,导致开源软件的缝隙办理十分杂乱。
2015 年,奇安信代码安全事业部主张“开源项目检测方案”。现在,该项目现已对 3000 多款开源软件进行了安全检测,并协助许多开源项目修正了代码安全缺点,包含 Google、Facebook、腾讯、阿里等旗下的开源项目。
据悉,通过开源项目检测方案,团队发现开源软件的安全问题的确十分严峻。相关数据剖析和计算显现,开源软件的代码安全缺点密度是 14.22/KLOC,高危安全缺点密度为 0.72/KLOC。换句话说,每 1000 行开源软件代码中就有 14 个安全缺点,每 1400 行开源软件代码中就有 1 个高危安全缺点。
黄永刚说,“另一个发现是,开源软件之间的相关依靠,导致开源软件的缝隙办理十分杂乱。假如不必体系化的东西来做这件事,简直不可能完结。”
2019 年,其团队检测了 935 个最新的物联网设备固件,并针对这些固件中所运用的开源软件和安全问题进行了剖析。通过剖析,他们发现:最新出厂的物联网设备中,还有 5% 的设备运用了存在 Heartbleed(心脏出血)缝隙的 OpenSSL 版别,5 年前的超级缝隙,仍然存在于最新的物联网设备中。
因而,对开源组件的整理和缝隙剖析,必定需求体系化的办法和自动化的东西,才干做到可办理、可继续,不留死角。
而开源软件最值得注重的安全问题是其扩大效果。简言之,一个开源软件呈现缝隙,会导致依靠它的其他开源软件受必定的影响,并且层层相关依靠,这就导致十分荫蔽和杂乱的进犯面。
举个比方,Log4j 有一个安全缝隙——CVE-2017-5645。由于直接依靠 Log4j 的开源软件有 4000 多个,那么这 4000 多个开源软件也会遭到 CVE-2017-5645 缝隙的影响。更恐惧的是,还有 46000 多个直接依靠 Log4j 的开源软件,它们则是更荫蔽的受害者。
OpenSSL“心脏出血”缝隙
2014 年,开源软件 OpenSSL Heartbleed(心脏出血)缝隙席卷全球。该缝隙不只让整个我国互联网为之一颤,并且导致全球超越三分之二的网站“心脏出血”,可谓影响深远。据悉,这个 bug 十分严峻,导致全球互联网许多私钥和其他加密信息处于露出危险下,受影响严峻的体系还能够从服务器中直接获取用户暗码。
2017 年,美国征信巨子 Equifax 发作数据走漏,触及近 1.45 亿用户。过后,该公司不只被重罚 7 亿美元,并且 Equifax CEO 也引咎辞职。据悉,这起数据走漏事情的原因是黑客运用 Struts 开源软件的缝隙施行进犯。
无论是 OpenSSL“心脏出血”缝隙,仍是 Equifax 数据走漏,都是由于开源软件呈现安全问题。近年来,开源软件缝隙构成的安全事情渐渐的变多,影响巨大,让人们开端认识到开源软件安全的严峻性。
奇安信代码安全事业部总经理黄永刚表明,从另一个视点看,职业客户对安全的考虑越来越体系化,许多客户开端注重信息体系全生命周期的安全。“安全开端左移,咱们开端注重从源头上做好安全作业。开源软件是软件开发的原材料,是咱们进行信息体系开发和建造要把住的第一道安全关口。”他说。
三大原因
在软件开发上,无论是技能方面,仍是流程和办理方面,任何一点忽略都会导致开源软件呈现安全问题。
具体说来,奇安信代码安全事业部总经理黄永刚总结出三方面的原因:
怎么进步开源软件的安全性?黄永刚以为,从技能上,开源项目需求更体系地引进保证运用安全的流程、办法和东西,比方根据 SDL 的流程和理念办理开源项目的开发进程,并对开源项目开发者进行安全开发常识的遍及。其次,运用源代码静态剖析、动态安全测验、交互式安全测验等东西,并对开源项目开发者提交的代码进行全面的安全测验等。
从非技能视点来说,“我觉得,开源技能社区和安全技能社区能够加强沟通和协作,构成互动和反应,互相促进。开发和安全的良性互动,是处理软件安全问题很重要的条件。”他说。
五条安全主张
针对软件开发者和企业,黄永刚主张从引进操控、财物整理、危险辨认、缝隙告警和合理修正五个方面加强开源软件的安全管理。
点个在看少个 bug