AI智能总结
I摘要2024年国内企业自主开发软件的源代码高危缺陷密度为0.55个/千行,处于历年来较低水平。但整体缺陷密度为13.26个/千行,2024年,CVE/NVD、CNNVD、CNVD等公开漏洞库中新增开源软件相2024年,主流开源软件包生态系统中不活跃的开源软件项目数量为7453176个,占比高达74.5%,呈现出增高的趋势。2024年,国内企业软件项目中,平均每个项目使用了168个开源软件,几年来呈现出持续增长的态势。2024年,国内企业平均每个软件项目存在66个已知开源软件漏洞,较前两年明显减少;存在已知开源软件高危漏洞、超危漏洞、容易利用漏洞的项目占比分别为73.0%、57.4%和57.5%,均比去年有大幅下降。但整体风险仍处于高位,没有根本上的改变。2024年,国内企业软件项目中存在老旧开源软件漏洞的状况没有改善,多个项目中依然存在20年前的开源软件漏洞。通过对智能网联汽车和大语言模型(LLM)两个热点领域的固件和软件进行专题分析发现,这些领域均存在严重的软件供应链安全 持续升高。关漏洞10320个。风险,不容忽视。 II目录一、概述........................................................................................1二、国内企业自主开发源代码安全状况..........................................11、编程语言分布情况.................................................................22、典型安全缺陷检出情况..........................................................3三、开源软件生态发展与安全状况.................................................41、开源软件生态发展状况分析...................................................42、开源软件源代码安全状况分析................................................6(1)编程语言分布情况...........................................................6(2)典型安全缺陷检出情况....................................................73、开源软件公开报告漏洞状况分析............................................8(1)大型开源项目漏洞总数及年度增长TOP20......................8(2)主流开源软件包生态系统漏洞总数及年度增长TOP20..114、开源软件活跃度状况分析.....................................................14(1)近3/4的开源项目处于不活跃状态................................14(2)版本频繁更新的项目较去年增长超1/3..........................155、关键基础开源软件分析........................................................15 III(1)主流开源生态中关键基础开源软件数量为5485............16(2)近9成关键基础开源软件从未公开披露过漏洞..............18(3)关键基础开源软件存在较大的运维风险.........................19四、国内企业软件开发中开源软件应用状况.................................201、开源软件总体使用情况分析.................................................20(1)平均每个软件项目使用168个开源软件,持续增长.......20(2)最流行的开源软件被38.6%的软件项目使用.................212、开源软件漏洞风险分析........................................................22(1)各类已知开源软件漏洞的检出率明显下降......................22(2)项目的平均已知开源软件漏洞数明显减少......................23(3)影响最广的容易利用漏洞存在于1/4的项目中..............24(4)多个软件项目中依然存在20年前的开源软件漏洞.........253、开源软件许可协议风险分析.................................................26(1)最流行的开源许可协议在45.9%的项目中使用..............26(2)超、高危开源许可协议在21.2%的项目中使用..............274、开源软件运维风险分析........................................................29(1)近30年前的老旧开源软件版本仍在使用.......................29(2)开源软件版本的使用依然混乱.......................................30五、重点领域软件供应链安全风险专题分析.................................31 IV1、智能网联汽车关键部件软件供应链安全风险分析.................31(1)第三方组件及引入的漏洞情况.......................................31(2)常用第三方组件及其漏洞风险.......................................32(3)攻击实例验证分析.........................................................332、开源大模型推理框架软件供应链安全风险分析.....................34(1)开源软件及引入的漏洞情况...........................................35(2)常用开源软件及其漏洞风险...........................................36(3)攻击实例验证分析.........................................................37六、总结及建议...........................................................................39附录:奇安信代码安全实验室简介...............................................42 一、概述众所周知,目前软件供应链已成为网络安全攻击的重要渠道之一。基于对软件供应链安全领域的持续关注和相应技术能力的不断积累,奇安信代码安全实验室继续推出《2025中国软件供应链安全分析报告》。至此,该系列报告已连续发布5年。软件由自主开发的代码与开源代码等第三方代码集成后,形成混源代码,然后通过编译、连接等构建过程形成软件产品,交付给用户使用。在这一软件供应流程中,每个阶段的代码或工件都可能引入安全问题,从而导致最终软件供应链安全事件的爆发。基于此流程模型,本报告分析了过去一年中各阶段的代码安全问题对软件供应链安全性的潜在威胁,并总结了5年来的趋势和变化,相关阶段的分析内容分别呈现在后续各章节中。与往年相比,本报告第五章变更为专题分析,针对智能网联汽车关键部件的固件和开源大模型推理框架软件,分别进行了软件供应链安全风险分析和攻击实例验证分析。感兴趣的读者可以重点关注。二、国内企业自主开发源代码安全状况2024年全年,奇安信代码安全实验室对2344个国内企业自主开发的软件项目的源代码进行了安全缺陷检测,检测的代码总量为518742205行,共发现安全缺陷6882301个,其中高危缺陷289343 1 2个,整体缺陷密度为13.26个/千行,高危缺陷密度为0.55个/千行。与以往历年相比,整体缺陷密度持续升高,但高危缺陷密度与去年基本持平,较之前三年有较大幅降低。这说明开发者对高危缺陷类型的重点防范没有松懈。1、编程语言分布情况在2344个自主开发的软件项目中,共使用了12种编程语言,使用项目数排名前3的依然是Java、C/C++和Python,对应的软件项目数量分别为1631个、284个和159个,三者占比之和接近90%。由此可以看出国内企业在进行软件开发时对编程语言的喜好程度。编程语言的分布情况如下图所示。 2、典型安全缺陷检出情况对2344个软件项目的源代码缺陷检测结果进行分析和统计发现,注入、密码管理、日志伪造、跨站脚本、NULL引用、配置管理、输入验证、资源管理、路径遍历、API误用等10类典型安全缺陷的总体检出率(即含有某类缺陷的软件项目数占项目总数的比例)为69.8%,低于前两年水平。每类典型缺陷的历年检出率及对比情况如下图所示。 3 4可以看出,输入验证和跨站脚本类缺陷的检出率较高,依然排在前两位,特别是输入验证类缺陷,检出率超过50%并达到历年最高;配置管理和日志伪造类缺陷的检出率依然排在最后两位;密码管理类缺陷检出率有明显下降,可能与研发人员对此类问题的特别关注有关。三、开源软件生态发展与安全状况开源软件作为现代软件开发的基础已成为普遍共识。本报告依然从开源软件生态发展状况、开源软件源代码安全状况、开源软件公开报告漏洞状况、开源软件活跃度状况、关键基础开源软件状况等方面介绍开源软件生态的年度安全状况。1、开源软件生态发展状况分析根据奇安信代码安全实验室的监测和统计,2023年底和2024年底,主流开源软件包生态系统中开源项目总量分别为8089154和10010134,一年增长了23.7%,主流开源生态的项目数首次突破1000万;截至2024年底,主流开源软件包生态系统中平均每个开源项目有11.5个版本,与前几年基本持平。2024年开源软件生态继续繁荣。对Maven、NPM、Packagist、Pypi、Godoc、Nuget、Rubygems、Swift等8个典型开源软件包生态系统的具体分析如下:NPM和Godoc分别位列开源项目数量和增速第一。经历去年被NPM短暂超越后,Godoc再次成为开源项目增速最快的包生态系统。8个典型的开源软件包生态系统中开源项目数量和增长率情况如下图 5所示,开源项目数量最多的依然是NPM包生态系统,截至2024年底,其开源项目数量达到了5396835,远高于其他生态;开源项目数量增速最快的是Godoc,2024年一年间增加了33.6%,NPM和Pypi的项目数增长也很快,分列第二、三位。Maven包生态系统的开源项目开发者依然“最勤奋”,开源项目的平均版本数超过25个。截至2024年底,8个典型的开源软件包生态系统的开源项目数量和版本数量如下表所示。其中,Maven包生态系统平均每个开源项目有高达25.7个版本,高于去年和前年的23.6、21.9,再创新高;Nuget的开源项目平均版本数也从12.6增至14.6;其他生态的开源项目平均版本数与去年相差不大。序号包生态系统2024年项目数2024年版本数平均版本数1Maven8410132159085725.72NPM53968355467254210.13Packagist458329617549813.54Pypi687870