当今,开源软件已经成为软件世界的重要组成部分。根据 Gartner 统计,99% 的组织在其 IT 系统中使用了开源软件。
今年 3 月,安全公司 WhiteSource 发布了一份《开源安全年度 告》。 告表明,2019 年,公开披露的开源安全漏洞数量再创新高,总数为 6100 个。与 2018 年相比,开源安全漏洞的数量增长近 50%。这份 告表明,开源软件的安全问题非常严重。
更关键的是,开源软件的安全不仅关系自身,而且影响整个现代软件开发。“可以说,现代软件大多数是被‘组装’出来的,不是被‘开发’出来的”。事实上,现代软件开发越来越像工业生产和制造,原材料就是开源软件,加上自己写的业务代码,最后“组装”出一个软件系统。
在奇安信代码安全事业部总经理黄永刚看来,开源软件已经成为构建 络空间最基础的“砖头瓦块”,无处不在。“开源软件已经成为信息系统开发和建设的核心基础设施,开源软件安全问题应该上升到基础设施安全的高度来对待。”他说。
两个重大发现
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 的流程和理念管理开源项目的开发过程,并对开源项目开发者进行安全开发知识的普及。其次,使用源代码静态分析、动态安全测试、交互式安全测试等工具,并对开源项目开发者提交的代码进行全面的安全测试等。
从非技术角度来说,“我觉得,开源技术 区和安全技术 区可以加强交流和合作,形成互动和反馈,互相促进。开发和安全的良性互动,是解决软件安全问题非常重要的前提。”他说。
五条安全建议
针对软件开发者和企业,黄永刚建议从引入控制、资产梳理、风险识别、漏洞告警和合理修复五个方面加强开源软件的安全治理。
?
#开源软件#
#系统#
#潍坊头条#
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!