I 目录 一、概述1 1、软件供应链安全攻击手段依然花样百出1 2、国内企业软件供应链安全状况有所改善4 二、国内企业自主开发源代码安全状况6 1、编程语言分布情况6 2、典型安全缺陷检出情况7 三、开源软件生态发展与安全状况8 1、开源软件生态发展状况分析9 2、开源软件源代码安全状况分析11 (1)编程语言分布情况11 (2)典型安全缺陷检出情况12 3、开源软件公开报告漏洞状况分析13 (1)大型开源项目漏洞总数及年度增长TOP2013 (2)主流开源软件包生态系统漏洞总数及年度增长TOP2016 4、开源软件活跃度状况分析19 (1)68.7%的开源软件项目处于不活跃状态,比例下降19 (2)版本频繁更新的项目较去年增长21.6%20 5、关键基础开源软件分析21 (1)主流开源生态关键基础开源软件TOP5021 (2)关键基础开源软件的漏洞披露情况未见改善24 (3)关键基础开源软件的整体运维风险有所改观25 6、NPM生态中恶意开源软件分析26 (1)超95%的恶意开源组件以窃取敏感信息为目标26 (2)典型恶意开源组件及恶意行为剖析27 四、国内企业软件开发中开源软件应用状况29 1、开源软件总体使用情况分析30 (1)平均每个软件项目使用166个开源软件,再创新高30 (2)最流行的开源软件被37.2%的软件项目使用31 2、开源软件漏洞风险分析32 (1)存在容易利用的开源软件漏洞的项目占比大幅下降32 (2)平均每个项目包含的已知开源软件漏洞数明显回落33 (3)影响最广的开源软件漏洞的影响范围有所减小35 (4)20多年前的开源软件漏洞仍然存在于多个软件项目中36 3、开源软件许可协议风险分析37 (1)最流行的开源许可协议在46.9%的项目中使用37 (2)超1/5的项目使用了含有超、高危许可协议的开源软件.384、开源软件运维风险分析40 (1)多个二三十年前的老旧开源软件版本仍在使用40 (2)开源软件各版本使用依然混乱41 五、典型软件供应链安全风险实例分析42 1、多款主流操作系统供应链攻击实例分析42 2、PHP软件供应链攻击实例分析43 3、某国产数据库供应链攻击实例分析45 六、总结及建议47 附录:奇安信代码安全实验室简介51 一、概述 当前,软件供应链安全依然是网络安全中备受关注的方向,基于自研产品的技术能力和第一手实测数据,奇安信代码安全实验室继续推出《2024中国软件供应链安全分析报告》,即�系列年度分析报告的第四期。 软件由自主开发的代码与开源代码等第三方代码集成后,形成混源代码,然后通过编译、连接等构建过程形成软件产品,交付给用户使用。在这一软件供应链模型中,每个阶段中的代码或工件都可能引入安全问题,从而导致最终软件供应链安全事件的爆发。 �期报告仍以此模型为基础,分析各阶段的代码安全问题对软件供应链安全性的潜在威胁,分析内容分别在后续的国内企业自主开发的源代码安全状况、开源软件生态发展与安全状况、国内企业软件开发中开源软件应用状况、典型软件供应链安全风险实例分析等章节中呈现。在此基础上,�报告还总结了趋势和变化。与往年报告相比, �期报告在开源软件生态发展与安全部分新增了对NPM生态中恶意开源软件分析的内容;在典型软件供应链安全风险实例部分,通过实例再次验证了因软件供应链的复杂性,“外来”组件的“老漏洞”发挥“0day漏洞”攻击作用的状况。感兴趣的读者可重点关注。 1、软件供应链安全攻击手段依然花样百出 攻击手段依然花样百出。 2023年10月,安全人员分析发现了一种新型供应链攻击。整个 9月,某黑客组织都在使用域名仿冒(Typosquatting)和星标劫持 (Starjacking)技术向开源包管理器PyPi植入一系列恶意包,并引诱开发人员使用,而这些恶意包与Telegram、AWS和阿里云等热门通信和电子商务平台所使用的流行软件包高度对应,被认为是故意攻击这些平台的特定用户。攻击者可以攻陷平台用户设备,窃取金融和个人信息、登录凭据等敏感数据,可能影响数百万人。 2023年12月,AI安全公司LassoSecurity的研究人员,在GitHub和HuggingFace平台上发现了1500多个不安全的API访问令牌,可用来访问772个组织机构的仓库,包括谷歌、微软、VMware等公司。其中部分令牌可帮助攻击者获得Meta公司Bloom、Meta-Liama、Pythia等大语言模型(LLM)仓库的完全读写权限,攻击者可利用该漏洞实施LLM训练数据投毒、模型和数据集窃取等恶意行为,从而将使用这些仓库把LLM能力集成到应用和运营中的组织置于供应链风险中,危及数百万下游用户的安全。 2024年2月,Cycode研究团队披露了谷歌重要的开源构建和测试工具Bazel的一个供应链安全漏洞的详细信息。Bazel所依赖的CI\CD平台GitHubActions的工作流程中存在命令注入漏洞,可导致攻击者将恶意代码植入Bazel代码库、创建后门并影响Bazel用户的生产环境。该漏洞可能影响数百万个依赖于Bazel的项目和平台,包 和谷歌自身等。 2024年3月初,安全研究人员发现,机器人平台Top.ggDiscord托管在GitHub上的源代码遭受到大规模严重供应链投毒攻击,该平台拥有超17万成员。分析发现,攻击者劫持了Top.gg的GitHub账户,上传了至少14个伪造的恶意Python流行软件包,并通过这些恶意软件窃取用户Chrome、Edge等浏览器中的敏感数据,包括浏览历史记录、信用卡详细信息等,并通过出售信息实现盈利。攻击者还试图窃取Telegram会话数据以侵犯用户隐私。这些攻击同时也影响到了大量与平台相关的开发人员。 2024年3月底,某开发人员在调查SSH性能问题时发现了涉及XZUtilѕ工具库的供应链攻击,溯源发现SSH使用的上游liblzma库被植入了恶意后门漏洞(CVE-2024-3094),满足一定条件时会解密流量里的C2命令并执行,从而使攻击者能够破坏SSHD身份验证并远程获得对整个系统的未经授权访问。XZ是一种由Tukaani项目开发的高压缩比数据压缩格式,几乎应用于每个Linux发行版中,包括社区项目和商业产品发行版,liblzma是一个用于处理XZ压缩格式的开源软件库。庆幸的是,该漏洞主要影响的XZ5.6.0和5.6.1版�尚未被Linux发行版广泛集成,而且大部分是在预发行版�中。 2024年5月,攻击者通过与英国国防部核心网络链接的一个外部系统,即由英国国防部的一家提供薪资处理服务的外部承包商维护的薪资处理系统,访问了部分军队支付网络,造成严重的信息泄露。据统计,攻击者访问了超过22.5万名英国陆军、海军和皇家空军现 役军人、退役军人和预备役军人的姓名、银行账号详情等个人信息。第三方承包商未能充分的保护系统是这次事件的主要诱因,而这一事件是在不到一年的时间内发生的第二起因外部承包商而导致的英国军队数据遭泄露事件。 OpenSSH可以在CS架构中提供网络安全信道,被众多企业用于远程服务器管理和数据安全通信。2024年7月初,网络安全公司Qualys发现,OpenSSH服务器进程存在“regreSSHion”漏洞 (CVE-2024-6387),攻击者可利用其以root权限在基于glibc的Linux系统上实现未认证的远程代码执行,从而实施系统完全接管、恶意程序安装和后门创建等攻击行为,严重程度堪比Log4Shell。具不完全统计,互联网上有1400多万台易受攻击的OpenSSH实例,仅Qualys公司自身的客户中就有约70万个暴露在互联网上的系统可能易受攻击。 2、国内企业软件供应链安全状况有所改善 奇安信代码安全实验室通过数据分析发现,与以往历年相比,2023年,国内企业自主开发软件的源代码高危缺陷密度明显下降,并且因使用开源软件而引入安全风险的状况有所改善。尽管如此,软件供应链安全风险的管控依然值得持续关注,需要更多的投入。 1)国内企业自主开发软件的源代码高危缺陷密度明显下降 通过对2023年国内企业自主开发源代码的分析发现,虽然整体 缺陷密度达到12.76个/千行,高于以往各年,但高危缺陷的密度为 审计工具的使用持续推广。 2)国内企业因使用开源软件而引入安全风险的状况有所改善 2023年,奇安信代码安全实验室对1763个国内企业软件项目中 使用开源软件的情况进行分析发现,平均每个项目使用了166个开源 软件,数量再创新高。但另一方面,平均每个项目存在83个已知开源软件漏洞,含有容易利用的开源软件漏洞的项目占比为68.1%,以上两项指标与去年相比降幅较大;此外,存在已知开源软件漏洞、高危漏洞、超危漏洞的项目占比分别为88.0%、81.0%和71.9%,与去年相比均有所下降。其他方面,如项目中存在古老开源软件漏洞、老旧开源软件版�使用、同一开源软件各版�使用混乱等方面的状况基�与之前历年持平。总体而言,国内企业使用开源软件的安全状况有所好转。 虽然从趋势来看,上述的软件供应链安全问题有一定程度的缓解,但另一方面,这些指标数据仍处于高位,软件供应链的安全问题并没有得到根�性的改变。值得高兴的是,越来越多的机构和企业开始关注并实施软件供应链的安全,一些机构和企业基于规范的流程和实践,落地了相应的解决方案和检测平台。但就目前的形势而言,这些经验、方法和工具还需要进一步的持续完善、推广和应用。 源代码的安全是软件供应链安全的基础。2023年全年,奇安信代码安全实验室对1858个国内企业自主开发的软件项目的源代码进 行了安全缺陷检测,检测的代码总量为408909802行,共发现安全缺 陷5216473个,其中高危缺陷211355个,整体缺陷密度为12.76个/ 千行,高危缺陷密度为0.52个/千行。与以往历年相比,整体缺陷密度升高较快,但高危缺陷密度有较大幅度的降低。这应该与开发者对高危缺陷类型的重点防范及相应安全编码规范的使用有关。 1、编程语言分布情况 在1858个国内企业自主开发的软件项目中,共使用了17种编程语言,使用项目数排名前3的分别为Java、C/C++和Python,对应的软件项目数量分别为1258个、246个和118个,Python取代NodeJS 再次回到第三的位置。Java语言项目占比达67.7%,但低于去年的76.1%。国内企业在进行软件开发时,Java语言仍然最受欢迎。编程语言的分布情况如下图所示。 2、典型安全缺陷检出情况 对1858个软件项目的源代码缺陷检测结果进行分析和统计发现,注入、密码管理、日志伪造、跨站脚�、NULL引用、配置管理、输入验证、资源管理、路径遍历、API误用等十类典型安全缺陷的总体检出率(即含有某类缺陷的软件项目数占项目总数的比例)为71.1%,与去年的74.1%基�持平。每类典型缺陷历年的检出率及对比情况如下图所示。 可以看出,输入验证类和跨站脚�类缺陷的检出率较高,依然排在前两位,特别是输入验证类缺陷,检出率依旧高达49%;同时,配置管理类和日志伪造类缺陷的检出率依然排在最后两位;与过去历年相比,NULL引用类缺陷的检出率有较大下降,这可能与研发人员对此类问题的特别关注有关;其他类型缺陷的检出率在正常的波动范围内。国内企业在自主开发软件时,应继续关注针对这些缺陷类型的代码修复问题。 三、开源软件生态发展与安全状况 开源软件在现代软件开发中持续发挥着基础支持的作用。�期报告除了延续开源软件生态发展状况、开源软件源代码安全状况、开源软件公开报告漏洞状况、开源软件活跃度状况、关键基础开源软件分析五部分内容外,在对2023年开源软件生态发展与安全状况进行综合分析时,还增加了针对NPM生态中恶意开源软件的分析。 1、开源软件生态发展状况分析 根据奇安信代码安全实验室的监测和统计,2022年底和2023年底,主流开源软件包生态系统中开源项目总量分别为5499977和7959049,一年间增长了44.7%,增速迅猛;截至20