7月24日,奇安信集团对外发布《2023中国软件供应链安全分析报告》(以下简称《报告》),深入分析了过去一年来国内软件供应链中开源软件应用的安全状况并附以典型案例加以说明,总结了开源软件供应链风险的趋势和变化。
软件供应链安全事件影响广、危害大,仍然是各界的聚焦点。开源软件安全是软件供应链安全的重中之重。本《报告》是该系列年度分析报告的第三期,新增了开源项目维护者对所反馈安全问题的修复和确认情况、不同行业软件项目使用开源软件的风险分析、超危和高危开源许可协议的使用情况、开源软件“老漏洞”发挥“0day漏洞”攻击作用实例分析等部分,值得重点关注。
《报告》显示,2022年开源软件生态依然繁荣。2021年底和2022年底,主流开源软件包生态系统中开源项目总量分别为 4395386个和 5499977个,一年间增长了 25.1%;截至 2022 年底,主流开源软件包生态系统中平均每个开源项目有 12.6个版本,较前两年报告的 11.8个和 10.2个呈持续增长的趋势。
开源软件风险管控是软件供应链安全的重中之重
奇安信代码安全实验室通过数据分析发现,与前两年相比,开源软件自身的安全状况持续下滑,国内企业软件开发中因使用开源软件而引入安全风险的状况更加糟糕,开源软件供应链安全风险管控依然任重道远。
过去一年,开源软件漏洞数量持续增长,2022年新增的开源软件漏洞为 7682个。根据“奇安信开源项目检测计划”的实测数据显示,三年来开源软件的总体缺陷密度和高危缺陷密度呈现出逐年上升的趋势,均处于较高水平,2022年全年,共对2098个开源软件项目的源代码进行了安全检测,代码总量为 173174712行,共发现安全缺陷 3646486个,其中高危缺陷 222640个,整体缺陷密度为 21.06个/千行,高危缺陷密度为 1.29个/千行。
2022年,奇安信代码安全实验室对 2631个国内企业软件项目中使用开源软件的情况进行分析发现:平均每个项目使用 155个开源软件,远高于之前的 126和 127个。同时,存在已知开源软件漏洞的项目有 2411个,占比达 91.6%;存在已知高危开源软件漏洞的项目有 2268个,占比为 86.2%;存在已知超危开源软件漏洞的项目有 2032个,占比为 77.2%;存在容易利用的漏洞的项目有 2089个,占比为 79.4%,这四个比例均比去年有所提高。平均每个项目存在 110个已知开源软件漏洞。
十类典型缺陷的总体检出率为 72.3%,与去年 73.5%相当,远高于前年的 56.3%。总体来看,开源软件自身的安全问题愈发严峻。
重视不够、修复不及时,开源运维风险突出
《报告》指出,开源项目维护者对安全问题的重视度和修复积极性较低。2022年,“奇安信开源项目检测计划”共向各被测开源项目的维护者反馈 1484个安全问题,仅有 547个得到确认并修复,其他 937个反馈不修复、未反馈,或无人处理,安全问题的修复率仅为 36.9%。另据统计发现,一个安全问题从提交到维护人员反馈确认并修复,时间较长的可长达一年甚至更久。
并且从开源软件活跃度角度看,不活跃的开源软件,一旦出现安全漏洞,难以得到及时的修复。如果将超过一年未更新发布过版本的开源软件项目定义为不活跃项目,数据显示,2022年全年,主流开源软件包生态系统中不活跃的开源软件项目数量 3967204个,占比高达 72.1%,与去年的 69.9%和前年的 61.6%相比,呈现出逐年升高的趋势。
对八个典型的开源软件包生态系统进行分析和比较发现,除Nuget外,其他各包生态系统中不活跃项目的占比较去年报告数据均有小幅升高,Nuget则从去年的 68.1%大幅下降至 54.3%。NPM的不活跃项目数量最多,达 1693287个,Rubygems的不活跃项目比例仍为最高,占比高达 90.5%。
开源软件“老漏洞”依然发挥着“0day 漏洞”的攻击作用
《报告》分析发现,与前两年结果一致,部分软件项目中仍然存在很久之前公开的古老开源软件漏洞。其中,最古老的漏洞是2002年3月15日公开的 CVE-2002-0059,距今已 21年,仍然存在于 11个项目中。在开源项目版本管理方面,近30年前的老旧开源软件版本仍然在使用,同一开源软件各版本的使用依然混乱。这些开源软件的“老漏洞”发挥了“0day 漏洞”的攻击作用。
典型案例如Zimbra Collaboration Suite(ZCS)这款开源协同办公套件,目前应用于全球140个国家的20多万个组织中,CVE-2022-41352是影响 ZCS 8.8.15和 9.0的一个超危历史漏洞。分析验证发现,目前依然可以利用该历史漏洞,通过ZCS 8.8.15 patch34和9.0.0 patch27在系统上实现任意文件上传的软件供应链攻击。
再如,CVE-2020-12695是UPnP协议的一个高危历史漏洞,又被称作CallStranger漏洞,攻击者可利用它绕过内网的数据防泄漏(DLP)系统,实现数据逃逸,从而导致敏感数据泄露;还可以对设备所在内网进行扫描,甚至还能劫持设备进行分布式拒绝服务(DDoS)攻击。该漏洞影响产品的范围非常广泛。在某国际知名厂商生产的企业级千兆无线路由器中,该路由器的固件使用开源工具MiniUPnPd来实现 UPnP 服务,当UPnP服务功能开启时,UPnP协议漏洞会影响该路由器,对路由器所在内网进行扫描,由此引发软件供应链攻击。
需加速落地开源软件供应链的系统化安全治理措施
《报告》提到,近年来国外各组织机构推进和出台了一系列针对开源治理的措施和解决方案。然而,国内还未形成统一的规范和流程,缺少统一的开源治理体系架构、指南和公共服务平台支撑,为此提出三方面的建议:
一是制定具有普遍共识的开源治理框架和指南;
二是建立开源治理平台和漏洞响应机制,方便各方开展开源软件资产风险监测;
三是提升针对开源软件供应链的“五防”能力,即防漏洞、防投毒、防侵权、防停服、防断供。