首页 > 其他分享 >2021年中国软件供应链安全分析报告

2021年中国软件供应链安全分析报告

时间:2023-01-06 12:33:06浏览次数:43  
标签:项目 开源 漏洞 供应链 2021 使用 软件 CVE

声明

本文是学习2021年中国软件供应链安全分析报告. 下载地址 http://github5.com/view/1216而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们

四、国内企业软件开发中开源软件应用状况

如前所述,现代软件的源代码绝大多数是混源代码,由企业自主开发的源代码和开源软件代码共同组成。本章内容将针对国内企业在进行软件开发工作时,使用开源软件的具体情况进行分析。主要回答两个问题:一是国内企业在软件开发中是否使用以及使用了多少开源软件?二是其使用的开源软件是否存在安全问题?

2020年全年,奇安信代码安全实验室对2557个国内企业软件项目中使用开源软件的情况进行了分析,这些软件项目的应用领域涉及政府、金融、能源等重要行业。分析发现,国内企业在软件开发中普遍使用存在已知漏洞的开源软件,存在巨大的软件供应链安全风险。具体分析数据如下。

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

32

3、开源软件运维风险分析

开源软件运维风险复杂多样,本报告主要从老旧开源软件的使用和开源软件多版本的使用角度进行分析。

(1)18年前的老旧开源软件版本仍在被使用

分析发现,许多软件项目中使用了十几年前发布的开源软件版本,存在很大的运维风险。被使用的老旧开源软件版本中,最老旧的一个是2003年3月3日发布的Apache Xalan 2.5.D1,已经有18年之久,但仍然被7个软件项目所使用。按老旧程度排名前5的开源软件如下表所示。

开源软件名称

版本号

版本发布日期

使用它的项目数量

Apache Xalan

2.5.D1

2003.03.03

7

XML Pull Parsing API

1.1.3.1

2003.06.17

273

JDOM

1.0-FCS

2004.09.03

25

SSLExt

1.2-0

2004.10.04

17

Jboss J2se

200504122039

2005.04.26

14

(2)开源软件各版本使用非常混乱

分析发现,各个项目中开源软件使用的版本非常混乱,并非使用的都是最新版本。Spring Data是被使用版本最多的开源软件,有162个版本在被使用。按照被使用版本的数量排序,排名前5的开源软件情况如下表所示。

开源软件名称

被使用的版本数量

Spring Data

162

Jackson-databind

141

Apache Tomcat

132

Jetty

126

Hibernate ORM

121

2021年中国软件供应链安全分析报告_软件开发

延伸阅读

更多内容 可以点击下载 2021年中国软件供应链安全分析报告. http://github5.com/view/1216进一步学习

联系我们

DB1306-T 154-2019 冬小麦田间杂草综合防治技术规程 保定市.pdf

标签:项目,开源,漏洞,供应链,2021,使用,软件,CVE
From: https://blog.51cto.com/u_15921434/5992990

相关文章

  • 如果软件正在占领全世界,为什么程序员得不到尊重?
    程序员收入不比其它职业差,但是程序员没有高富帅的血统。程序员的真正title是软件工程师。就像这世界上其它行业的的无数工程师一样,他们研究和设计房子、大桥、轮船、铁路、......
  • 总线工具软件TSMaster使用教程之UDS刷写流程
    今天给大家介绍基于TSMaster的UDS诊断刷写流程。基本流程主要分为基本参数配置、刷写流程两部分。一、基本参数配置1、新建工程打开TSMaster软件,选择创建新工程-诊断-UDS诊......
  • 软件测试和前端开发哪个发展更好?
    没有最好的,只有最适合自己的工作,但是不论是哪个岗位,都是需要不断地更新学习新的知识,这样才能让自己在岗位上立于不败之地。 首先测试和前端虽然都是身处互联网......
  • 软件测试行业的现状和发展趋势
    小编已经与测试行业打交道十多年了,在此期间目睹了测试行业的兴起,并目睹了最早的测试行业人员逐渐被取代,有很多感受。今天,让我们来谈谈测试行业的现状和发展,希望我能帮......
  • #ACM2021_23. 摘柿子 and#ACM2021_34. 幸运数字
    #ACM2021_23.摘柿子:一道很简单的排序题,估计是送分题(俺的做法:#include<stdio.h>#include<stdlib.h>#defineN100#defineM100intmain(){intn;//n为柿子个......
  • RFID条形码标签软件丨CODESOFT功能简介
    RFID和条形码标签软件,铺就企业成功的基石 1、先进的条形码标签创建与集成2、智能的用户界面3、稳健可靠的数据库连接4、100多种条形码符号体系5、集标签和文......
  • 有效提升软件产品质量,测试人员必备软件测试常用方法
    软件测试是软件产品生产周期中必不可少的一项重要活动,是确保软件质量的关键性环节。软件测试不仅仅是一种技术活动,它更是保证软件质量、提升软件产品的可靠性和功能性的......
  • IT专业人士的可靠远程桌面软件丨Radmin功能简介
    Radmin可提供即时的技术支持,并安全访问接入网络中的计算机Radmin是安全且可靠的远程访问软件产品,全球超过10万家企业选择Radmin为员工提供远程技术支持。政府、......
  • 软件测试之沟通能力
    沟通是一门艺术,良好的沟通有助于快速解决问题,奠定双方长期合作、相互信任的基础。常见沟通问题:1、与对方不在同一频道,多见于首次沟通或者了解深度不一致场景下......
  • 电脑手机互通协作软件
    功能需求:投屏、传声、设备存储/信息互通、摄像头投屏+互通(平台受限)MIUI+(内测:小米妙传)仅支持小米手机,且手机系统必须≥MIUI12.5https://www.mi.com/service/notebo......