1、开源软件总体使用情况分析
- 1)国内企业软件项目 100%使用开源软件
在被分析的 2557 个国内企业软件项目中,无一例外,均使用了 开源软件。最多的项目使用了 3878 个开源软件,平均每个项目使用 126 个开源软件。使用开源软件最多的 5 个项目情况如下表所示。
项目名称 | 使用的开源软件数量 |
---|---|
项目 1 | 3878 |
项目 2 | 3838 |
项目 3 | 3536 |
项目 4 | 3062 |
项目 5 | 2637 |
经过后续的调研和访谈,我们还发现,软件项目中使用的开源软 件数量大大超出了软件项目管理者和程序员自身的认知。由于开源软 件之间的依赖关系错综复杂,且软件开发中依赖包的管理通常通过包 管理器程序自动管理,软件开发者常常意识不到自己使用了数量巨大 的开源软件,因此当某个开源软件曝出安全漏洞时,软件开发者常常 “躺枪”而不自知,这中间隐含了巨大的软件供应链安全风险。 |
- 2)流行开源软件被近 1/4 的软件项目使用
一些流行开源软件会被很多软件项目所使用,这些开源软件一旦 出现安全漏洞,影响面将会非常巨大。对于大型企业来说,企业内部 可能就有数以百计的软件开发项目,更加需要对流行开源软件保持足 够的关注和重视,应该做到对其在本单位内的使用情况心中有数。经 统计,在我们分析的 2557 个国内企业软件项目中,被使用最多的开 源软件为 Apache Commons Lang,被 622 个项目所使用,占比达 24.3%。 被使用最多的前 5 名开源软件如下表所示。
开源软件名称 | 使用它的项目数量 | 被使用率 | |
---|---|---|---|
Apache Commons Lang | 622 | 24.3% | |
Apache Commons Collections | 620 | 24.2% | |
dom4j: flexible XML framework for Java | 563 | 22.0% | |
Simple Logging Facade for Java (SLF4J) | 510 | 19.9% | |
Javax Inject | 472 | 18.5% | |
2、开源软件漏洞风险分析 |
- 1)近 9 成软件项目存在已知开源软件漏洞
分析发现,在 2557 个国内企业软件项目中,存在已知开源软件 漏洞的项目有 2280 个,占比高达 89.2%;存在已知高危开源软件漏 洞的项目有 2062 个,占比为 80.6%;存在已知超危开源软件漏洞的 项目有 1802 个,占比为 70.5%。
- 2)平均每个软件项目存在 66 个已知开源软件漏洞
在 2557 个国内企业软件项目中,共检出 168604 个已知开源软件 漏洞(涉及到 4166 个唯一 CVE漏洞编号),平均每个软件项目存在 66 个已知开源软件漏洞,最多的软件项目存在 1200 个已知开源软件漏 洞。存在已知开源软件漏洞数量排名前 5 的项目情况如下表所示。
项目 | 存在开源软件漏洞数量 |
---|---|
项目 1 | 1200 |
项目 2 | 1013 |
项目 3 | 649 |
项目 4 | 517 |
项目 5 | 426 |
- 3)影响最广的开源软件漏洞存在于 44.3%的软件项目中
从漏洞的影响度来分析,影响范围最大的开源软件漏洞为 CVE- 2020-5421,影响了 44.3%的软件项目。影响度排名前 5 的开源软件 漏洞情况如下表所示。
漏洞名称 | CVE 编号 | 影响项 目数量 | 影响度 | |
---|---|---|---|---|
Spring Framework 安全漏洞 | CVE-2020-5421 | 1132 | 44.3% | |
Google Guava 访问控制错误漏洞 | CVE-2020-8908 | 1021 | 39.9% | |
Apache Log4j 信任管理问题漏洞 | CVE-2020-9488 | 1020 | 39.9% | |
FasterXML Jackson-databind 代码问题漏洞 | CVE-2020-8840 | 905 | 35.4% | |
FasterXML Jackson-databind 代码问题漏洞 | CVE-2020-25649 | 866 | 33.9% |
- 4)15 年前的开源软件漏洞仍然存在于多个软件项目中
分析发现,部分软件项目中存在十几年前公开的古老开源软件漏 洞,最古老的漏洞是 2005 年 11 月公开的 CVE-2005-3510,仍然存在 于 31 个项目中。部分古老开源软件漏洞的影响情况如下表所示。
漏洞名称 | CVE 编号 | 发布日期 | 影响项 目数量 | |
---|---|---|---|---|
Apache Tomcat 目录列表拒绝服务漏洞 | CVE-2005-3510 | 2005.11.06 | 31 | |
Jetty URL 编码的反斜杠源代码泄露漏洞 | CVE-2005-3747 | 2005.11.22 | 41 | |
Apache Tomcat 跨站脚本攻击漏洞 | CVE-2005-4838 | 2005.12.31 | 32 | |
Apache Struts ActionForm 拒绝服务漏洞 | CVE-2006-1547 | 2006.3.30 | 32 | |
Apache Struts 特定参数安全绕过漏洞 | CVE-2006-1546 | 2006.3.30 |
泛获取开源软件信息和漏洞信息,帮助客户掌握开源软件资产状况, 及时获取开源软件漏洞情报,降低由开源软件带来的安全风险,奇安 信开源卫士目前可识别 4500 多万个开源软件版本,兼容 NVD、CNNVD、 CNVD等多个漏洞库。奇安信代码卫士和奇安信开源卫士目前已经在 数百家大型企业和机构中应用,帮助客户构建自身的代码安全保障体 系,消减软件代码安全隐患,并入选国家发改委数字化转型伙伴行动、 工信部中小企业数字化赋能专项行动,为中小企业提供软件代码安全 检测平台和服务。
本文主要学习 2021年中国软件供应链安全分析报告进行整理的笔记,如有错误,请随时联系