TA的每日心情 | 怒 3 天前 |
---|
签到天数: 100 天 [LV.6]常住居民II
三级逆天
- 积分
- 81483
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区
您需要 登录 才可以下载或查看,没有账号?立即注册
×
近年来,开源治理已经引起业界普遍关注,各个国家也出台政策指导开源安全管理。比如,2020年,为了让中国用户更好地理解和拥抱开源,中国信息通信研究院就正式发布了业内首个《开源生态白皮书(2020)》。
作为该白皮书的参与方之一,日前,新思科技(Synopsys)发布了《2021年开源安全和风险分析》报告(OSSRA),这也是新思连续第5年发布类似的报告。该报告由新思科技网络安全研究中心(CyRC)制作,研究了由Black Duck审计服务团队执行的对超过1,500个商业代码库的审计结果。报告重点介绍了在商业应用程序中开源应用的趋势,并且提供了见解,以帮助企业和开源开发者更好地了解他们所处的互联软件生态系统。这份报告也详细地介绍了非托管开源所带来的安全隐患,包括安全漏洞、过期或废弃的组件以及许可证合规性问题。
广告
2021年OSSRA报告发现了什么?
2021年OSSRA报告强调,开源是所有行业绝大多数应用程序的基础;但同时,他们也在费尽心思去管理开源风险。
[li]所有经过审计的营销科技类公司的代码库都包含开源,包括CRM客户关系管理系统及社交媒体。其中95%的营销科技代码库存在开源漏洞。[/li][li]98%的医疗保健行业代码库包含开源,其中有67%的代码库存在漏洞。[/li][li]97%的金融服务/金融科技行业代码库包含开源,其中超过60%的代码库存在漏洞。[/li][li]92%的零售和电子商务行业代码库包含开源,其中71%的代码库存在漏洞。[/li] 更令人担忧的是废弃开源组件仍在被广泛使用。例如高达91%的代码存在开源依赖项,这些开源组件在过去两年内没有任何开发活动——没有进行代码改进,也没有任何安全修复。
从下图可以明显的看出,在Black Duck审计服务团队2020年审计的1,500多个代码库中,有84%包含至少一个公开开源漏洞,这比2019年的75%增加了9%,成为自2017年以来的第二大增幅。同样,包含“高风险”开源漏洞的代码库百分比在2020年增长至60%,比2019年的49%大幅增加了11%。2020年的审计中再次发现了2019年在代码库中发现的几个十大开源漏洞,并且所有这些漏洞的百分比均有显著增加。
新思科技软件质量与安全部门软件应用安全解决方案工程师王永雷表示,新思选取的17个行业都与开源代码有着密切联系,比例最高的达到了100%,最低的也达到了48%。但其中,95%的营销科技代码库中包含开源漏洞;71%的被审零售和电子商务代码库包含漏洞;超过60%的金融服务/金融科技和医疗保健行业代码库中包含开源漏洞。而物联网、互联网和移动应用领域的漏洞比例则呈大幅下降趋势,这与相关行业日益关注安全的趋势相吻合。而在最近5年里(2016年—2020年),开源代码在应用程序中所占比例,则由不到40%增至超过70%。
“大象一直在房间里”
这是一个当前很流行的说法,借用“大象一直在房间里,个头虽然很大,但是没有人注意到”的比拟,意指大家关心的可能并不是一个正确的方向和事务。所以,2021年OSSRA报告中还提及了其它几个需要引起重视的开源风险,包括:
[li]商业软件中过时的开源组件已成常态。[/li] 85%的代码库含有至少四年未曾更新的开源依赖项。与废弃项目不同,这些过时的开源组件拥有活跃的开发人员,但是他们发布的更新及安全补丁却没有被下游商业消费者所采用。除了忽略应用补丁会带来的明显安全隐患之外,使用过时的开源组件还可能带来技术上的麻烦,包括与将来更新相关的功能问题和兼容性问题。
王永雷提到了Linus Law,也被称之为Linus法则。该法则的核心意思归纳起来,即只要有足够多的人参与到开源项目中,那么漏洞被发现的概率就高,代码的质量就会得到改善。但事实是,如果85%的代码库含有至少四年未曾更新的开源依赖项,那么今后大部分隐藏在冰山下的组件,包括OpenSSL漏洞就很难被发现。
于是,相关挑战也随即而来,一是我们毫无意识,二是缺乏手段将其探测出来,从而形成所谓的“供应链BOM清单挑战”。
为此,新思提出了覆盖多场景扫描需求的“多因子探测技术”和工程化的“端到端开源治理解决方案”。前者是一种自动化的扫描工具,可以覆盖包括构建识别、特征码识别、指纹识别、二进制识别在内的多种场景;而后者则在识别的基础上,帮助企业发现和修复开源漏洞,验证和遵从开源许可证的条款,并提供端到端的自动化集成开源治理规则解决方案。
“从用户的角度来看,他们希望软件工具具备四个特性:1. 具有很强的探测能力;2. 自动化;3. 易于集成;4. 要形成一整套自动化的落地机制。”王永雷说。
[li]超过90%经审计的代码库含有许可证冲突、自定义许可证或根本没有许可证的开源组件。[/li] 2020年审计的代码库中,65%包含存在许可证冲突的开源组件,通常涉及“GNU通用公共许可证”,26%的代码库采用没有许可证或定制许可证的开源代码。这三种问题有潜在的侵权和其它法律风险,通常需要进行评估,尤其涉及到合并和收购交易的时候。
如果按行业划分,存在开源许可证冲突的代码库比例最高的行业(86%)是能源和清洁科技以及制造业、工业和机器人行业。零售和电子商务行业中存在开源代码许可证冲突的代码库的比例最低,为47%。
[li]开源漏洞趋势朝着错误的方向发展。[/li] 2020年,包含存在漏洞的开源组件的代码库百分比为84%,较2019年上涨了9%。同样,包含高风险漏洞的代码库的百分比从49%上升至60%。2020年的审计中再次发现了2019年在代码库中发现的几个十大开源漏洞,并且所有这些漏洞的百分比均有显著增加。CVE-2019-10744在这两年的代码库审计中出现率均为29%,该漏洞被美国国家漏洞数据库(NVD)归为“严重”级别的lodash漏洞,对常用JavaScript库4.17.12之前的所有版本均有影响。
同时,大多数应用程序都依赖于数百个开源库——在2020年的审计中,每个代码库的平均开源库数为528个。软件组成分析工具自动生成的开源代码清单或物料清单可以提供应对安全风险所需的全面信息。
王永雷说,像CVE-2019-10774这样的漏洞存在着共同点,即大部分都是基于前端页面的组件,主要由远程攻击、远程操纵、跨站点脚本攻击、原型污染等通过网络交互产生。对此,他建议称,随着网络化、云化越来越普及,关注点首先应放在风险上,在具体的治理手段上,可以使用明文显示的模型,而不是采用一些没有原型的对象或者未知的数据去操作。
而在谈及半导体行业面临的开源风险正在不断加剧话题时,王永雷表示,随着摩尔定律的速度开始放缓,如何通过软件算法最大限度的挖掘硬件潜力,成为了行业热议的话题。而一旦软件使用比例开始上升,漏洞风险、供应链物料清单风险、合规风险都会相应增加,如果再考虑国际合作,那么产品算法还要符合相关出口法案安全规定,这些都需要相关企业加以认真思考。 |
|