2025 软件供应链安全情报预警平台建设与实践

何为数字安全供应链情报?

所谓的数字供应链开源安全情报主要针对目标是开源数字应用资产。包括开源组件,中间件和操作系统。开源安全情报类型可以分为三大类:

1 第一类是传统的安全漏洞风险情报,开源漏洞情报数据获取主要有2种渠道:一种是公开的漏洞披露,包括官方的安全通告,安全社区以及权威的公开漏洞库。另一种获取渠道就是开源数字应用项目本身的comit代码和安全补丁的数据情报。

第二类是恶意代码投毒威胁。这种情报告的获取主要的来源是通过开源生态(Github、Python、NPM、…),以及一些在线社区(OpenSCA、Openwall、Twitter 、… )去获取。

第三类是数字应用资产的运营安全态势,包括资产的基础运营信息。例如维护者状态,代码更新频率,bug修复时效等等,此外还包括开源许可限制,许可变更以及冲突。还包括数字应用项目停服风险的预测分析。

数字供应链安全情报平台

悬镜安全自研的基于AI驱动的全球数字供应链安全情报预警服务平台悬镜云脉XSBOM,平台主要由情报数据采集、生产运营、和消费三大模块构成。平台内部通过融合多方渠道的开源安全情报数据,并结合数据生产策略、AI智能辅助分析判定、专家精细化运营以及风险评级模型,实现开源安全情报生产的快准全,帮助企业在安全开发、运维、采购、分发各个阶段提供情报数据解决方案。

在漏洞情报内容上提供了深度的漏洞原理分析,补丁信息、漏洞触发条件、漏洞影响范围等高可用的情报数据。在投毒情报上主要提供恶意代码技术细节分析,恶意行为标签以及IoC威胁信标等情报数据。在运营风险情报上主要提供开源许可的分析,包括许可变更和冲突以及项目停服风险预测的情报数据。

图3.悬镜安全云脉XSBOM数字供应链安全情报平台

►►►

开源漏洞情报生产

下面介绍一下悬镜安全在开源漏洞情报生产上的一些方案,主要思路是充分利用漏洞的commit代码来生成有价值的漏洞情报信息。通过commit代码,我们可以精确定位漏洞污点函数、挖掘漏洞原理、并完成漏洞复现。

要知道,传统基于人工的代码审计在大型项目上挺费时费力。而借助大模型进行辅助分析commit代码,可以快速提炼总结漏洞成因以及给出关键代码栈信息。通过这些信息可以极大提高人工漏洞审计研判的效率。

以上周刚披露的谷歌 Protobuf组件漏洞CVE-2024-7254为例,官方给的漏洞commit链接是个不包含任何安全代码修复的commit。最后我们通过大模型对commit内容进行分析,大模型可以给出漏洞相关类字段参数变动的提示。通过这个额外信息我们最终定位到真正进行漏洞修复的commit代码。

图4.开源漏洞情报生产之利刃:Commit代码

此外,通过收集分析公开的commit代码,还能发现一些未对外正式披露的在野漏洞。

举个例子,图5中显示的是某开源组件的版本迭代流程,只有在1.7.15版本中存在已知的公开漏洞,而在1.7.17版本中项目维护者通过commit修复一个安全漏洞,但并没有对外发布漏洞披露。在这种情况下,如果1.7.17之后的版本都不存在已知公开漏洞,相信很多项目使用者都不会主动更新版本。最终导致应用被无形暴露于这类在野漏洞威胁之下。

图5.某开源组件版本迭代过程中存在漏洞威胁

图6中是悬镜安全在JSON项目中发现的一个关于cJSON数据解析时发生堆内存溢出的漏洞commit。项目维护c者在最新版本中提交了这个commit修复该漏洞,但并没有对外公告披露,也没有对应的CVE编号。

图6.知名JSON项目存在堆内溢出漏洞

我们通过漏洞commit代码构造出对应payload,在处理以逗号结尾的json异常数据时,在parse_string函数中触发堆内存越界读漏洞(如图6所示)。

图7.在野(未正式披露)漏洞捕获

开源投毒情报生产

接下来介绍下,悬镜安全在开源组件投毒情报生产上的一些方案实现。首先来看下目前供应链投毒攻击的现状(图8所示)。根据sonatype 2023年的报告数据显示,2019年-2023年五年间共发现的软件供应链恶意软件包约为24.5万个,但仅仅2023年发现的软件供应链恶意软件包数量就是2019年以来的总和的两倍。其中,针对开源组件的恶意代码投毒是最为严重。

图8.供应链投毒攻击现状

对攻击者来说,与挖掘0day漏洞相比,针对开源组件的恶意代码投毒是一种成本低、收益高的攻击方式。攻击者往往采用广撒网的方式在各大主流开源组件平台上发布恶意组件包,诱骗开发者安装下载。开发者一旦使用这类恶意包就会遭受数字供应链攻击,甚至可以借此突破网络边界打入企业内网。仅2024年前3个季度,悬镜云脉XSBOM数字供应链安全情报平台在主流仓库中就捕获到超过1.5W+个恶意组件包。

我们结合静态规则扫描、源代码审计、动态行为监控等方式进行多方位分析,总结统计投毒组件的攻击方式和恶意行为标签。发现开源组件投毒常见的恶意行为主要归为四大类:

第一类是恶意shell命令执行,利用包管理器特性,在安装组件包过程中直接执行恶意shell命令;在组件代码库文件中内嵌shell命令,加载组件时执行恶意shell命令。

第二类是敏感信息外传,获取系统环境信息、读取敏感文件内容,通过HTTP(s)、DNS、FTP、Webhook等方式进行数据外传。

第三类是恶意代码下载执行,恶意代码远程下载并写入文件系统后再执行;恶意代码远程加载到内存中直接执行。

第四类是恶意代码释放执行,从组件安装包的某些数据文件(图片、PDF、压缩包等)中释放出恶意程序并执行。

对于开源组件的恶意代码投毒检测,我们的检测流程可以分为四个步骤(如图9)。首先是实时监听开源组件仓库,实时拉取最新发布的组件包进行静态代码扫描和动态行为监控分析。对于命中检测规则的恶意组件包将被推送带XSBOM情报运营平台,进行半自动化的投毒代码分析、恶意标签标注以及IoC恶意信标提取,并最终录入到安全情报数据库中。

图9.开源组件投毒检测方案

针对开源组件投毒的静态代码扫描包括正则特征匹配和源码语义分析两种方式。正则特征匹配用于快速筛选出包含高频黑名单特征的恶意代码,包括一些攻击者常用的恶意域名和敏感的文件路径等。正则特征匹配速度快、效率高,但缺点是匹配规则局限性大,攻击者很容易通过字符编码绕过检测。源码语义分析是从组件包入口代码开始,解析程序语义,通过指定的污点输入源、污点汇聚点,结合常见的投毒恶意行为模型,通过判定恶意API调用链来检测投毒行为。

图10显示的是一种基于开源静态代码分析引擎Semgrep的检测方案。Semgrep的优势是支持多语言,并且具备高扩展性。此外检测规则采用yaml定义,检测语法简单直观。这里给出一段Python恶意文件远程下载执行的检测规则。规则中将一些系列常见的下载接口定义为污点函数,写文件和执行文件接口调用链被定义为污点汇聚点。该规则可以准确捕获到右侧中的文件下载执行的恶意代码。

Semgrep存在一定局限性:比如很难进行跨文件级别的控制流和数据流分析。因此在我们的静态检测方案中还会引入了悬镜自研的白盒代码检测引擎,实现更加深层和隐蔽的恶意代码投毒行为。

图10.基于开源静态代码分析引擎Semgrep检测方案

当然,为了躲避静态代码扫描,攻击者在投毒攻击中通常会加入各种混淆、加密等对抗手段。这种情况下纯静态扫描能力就会出现瓶颈,需要引入动态行为监控进一步分析。动态行为监控的实现方式通常在沙箱环境中模拟安装和加载恶意组件,通过主动触发恶意代码,监控沙箱环境的网络、进程和文件访问行为,根据行为判断是否为恶意投毒攻击。

目前我们主要采用的方案是应用层API监控,通过对高风险API进行插桩,收集恶意API的调用栈信息来对组件安装加载过程中的恶意行为进行检出捕获。图11中是我们在7月份捕获到的一个混淆NPM恶意包,通过静态代码扫描或者人工代码分析其实都充满挑战,而借助动态行为监控,可以很轻松获取组件在加载过程中执行的恶意行为。

图11.动态行为监控捕获到的一个混淆NPM恶意包

数字供应链开源安全情报应用实践

基于高效精确的开源数字供应链安全情报,我们就可以从数字供应链的源头对数字应用进行科学安全的治理。在开发阶段,可以对引入的开源数字应用进行安全风险检测,在运营阶段可以对开源数字应用进行持续监控和威胁预警。

图12.数字供应链开源安全情报贯彻整个开发流程

悬镜安全提供的针对数字供应链开源组件的风险检测方案(图13),主要是利用SCA软件成分分析技术和SBOM清单,充分结合数字供应链开源安全情报服务,对应用系统中引入的第三方组件及依赖进行安全审查和监测,实现精准检测开源组件中潜藏的各类安全漏洞、恶意代码投毒以及开源协议风险。

图13.基于数字供应链开源安全情报的组件风险检测

目前悬镜安全旗下全球开源数字供应链安全社区OpenSCA已全面集成该方案,OpenSCA是国内用户量较多,应用场景较广的开源SCA平台。OpenSCA通过软件码纹分析、依赖分析、特征分析、引用识别与开源许可合规分析等综合算法,深度挖掘开源供应链安全风险,智能梳理数字资产风险清单,并以SaaS化方式向开源社区提供数字供应链安全检测服务。

OpenSCA SaaS将自动更新漏洞状态,并对用户做出精确的个性化情报推送,团队成员可以在第一时间获取到与项目资产相关的情报信息并采取措施,减少安全风险。企业在OpenSCA SaaS页面上轻松地查看并管理团队内所有项目的组件资产和对应的安全风险。具体包括:

1组件资产

提供了一个集中视图,便于项目经理和安全人员统计所有项目的资产列表信息。

2 组件详情

检出路径:查看组件检出路径以及依赖关系。

组件漏洞:组件涉及的所有漏洞,含严重、高危、中危、低危。

分析关联:受到影响的项目及其检测目标信息。

3漏洞风险

同样是以集中视图,统一展示团队内所有漏洞风险列表。

4 漏洞详情

漏洞详情包括漏洞类型、利用难度、攻击类型、CVSS评分等,团队小伙伴们可基于这些信息快速评估和修复组件漏洞。

统计受此漏洞影响的组件以及相关项目,包括组件名称、版本号、发布厂商、风险等级,协助修复优先级。

目前悬镜安全OpenSCA SaaS免费提供这些能力和服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/979157.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

红蓝对抗之常见网络安全事件研判、了解网络安全设备、Webshell入侵检测

文章目录 ​​研判(入侵检测)​​ ​​设备​​ ​​经典网络​​​​云网络​​ ​​异常HTTP请求​​​​Webshell分析​​ ​​Webshell 的分类​​​​Webshell 的检测​​ ​​主机层面​​​​流量层面​​ ​​附录​​ ​​常见端口漏洞…

【Python系列】Python 连接 PostgreSQL 数据库并查询数据

???欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老…

DeepSeek赋能智慧社区:提升社区治理,优化资源配置,带来全新变革

在数字化浪潮的推动下,智慧社区正逐渐成为城市发展的重要方向。作为一款先进的人工智能大模型,DeepSeek凭借其强大的多模态数据分析和智能决策能力,正在为智慧社区的建设注入新的活力。 标准规范及顶层设计指南、供应商整体解决方案合集、供应…

代理服务器与内网穿透/打洞

内网穿透 简单来说内网穿透就是让一个在私人IP的设备,能在公网上被别的主机访问到资源。 中间经过服务器将获取的数据转发给主机。 内网打洞 内网打洞,也叫 P2P 穿透或 NAT 穿越,是一种用于实现位于不同内网中的设备之间直接建立连接的技…

本地大模型编程实战(26)用langgraph实现基于SQL数据构建的问答系统(5)

本文将将扩展上一篇文章完成的 langgraph 链,继续使用基于 langgraph 链 ,对结构化数据库 SQlite 进行查询的方法。该系统建立以后,我们不需要掌握专业的 SQL 技能,可以用自然语言询问有关数据库中数据的问题并返回答案。主要完善…

Geek卸载软件安装使用教程

文章目录 一、Geek下载二、使用步骤 一、Geek下载 Geek Uninstallers最新版是一款高效、快速、小巧、免费的软件卸载与清理工具,旨在帮助用户删除系统上安装的程序。不同于其他的卸载程序,Geek Uninstaller执行深入扫描进程,并清除软件卸载后…

BIO、NIO、AIO解析

一、基础概念 1、IO的含义 IO,Input/Output,即输入/输出。从计算机结构来看,IO描述了计算机系统和外部设备之间通讯的过程。从应用程序角度来看,一个进程的地址空间划分为 用户空间(User space) 和 内核空…

抖音生活服务加强探店内容治理,2024年达人违规率下降30%

发布 | 大力财经 2月27日,抖音生活服务发布《2024抖音生活服务消费者权益保护年度报告》(以下简称“报告”)。报告显示,过去一年,抖音生活服务针对消费者反感的虚假、夸张探店内容,开展了专项治理。通过一…

Apollo Cyber 学习笔记

目录 0 Introduction What Why Advantage 1 Example 2 Concept 3 Flow Chart 4 Module 4.1 Transport 4.1.1 Share Memory 4.1.1.1 Segment 4.1.1.1.1 State 4.1.1.1.2 Block 4.1.1.1.3 Common 4.1.1.2 Notifier 4.1.1.2.1 ConditionNotifier 4.1.1.2.2 Multi…

企业如何挖掘数据资产价值?

本期推荐:挖掘数据资产价值,赋能企业发展,共28页ppt。 关注WeChat Subscription Account【智慧城市指北】,回复关键字“20250228数据资产”,获取获得本文电子版材料的方式(非无偿)~ 篇幅限制,…

FastExcel vs EasyExcel vs Apache POI:三者的全面对比分析

一、核心定位与历史沿革 Apache POI(1990s-) 作为Java生态中最古老的Excel处理库,提供对.xls/.xlsx文件的全功能支持。其核心价值在于对Excel规范的完整实现,包括单元格样式、公式计算、图表操作等深度功能。但存在内存消耗大&…

千峰React:Hooks(下)

useLayoutEffect useLayoutEffect在useEffect之前触发 这样会闪屏,因为是异步的,两次都渲染了 import {useEffect,useState } from react;function App() {const [msg,setMsg] useState(hello App)useEffect(() > {setMsg(hello useEffect)});retu…

盛京开源社区加入 GitCode,书写东北开源生态新篇章

在数字化转型与开源技术蓬勃发展的浪潮下,开源社区已成为推动技术创新的核心力量。盛京开源社区(SJOSC)作为沈阳地区的开源交流平台,始终致力于连接开发者、企业及高校,构建区域技术生态圈。 现在,盛京开源…

Unity:实时查看和调试日志信息(In-game Debug Console插件)

在Unity中使用In-game Debug Console插件可以方便地在应用内实时查看和调试日志信息。 1、导入插件 从Packages:My Assets导入In-game Debug Console插件,导入后,插件会自动添加到项目的Packages文件夹中。(需要先下载该插件) 2、…

SQL Server的安装和简单使用

目录 一、SQL Server 1.1、简介 1.2、安装包 二、安装SQL Server 2.1、双击安装包 2.2、选择自己想要安装的位置 2.3、点击安装 2.4、安装完成之后会出现以下页面,按照序号依次点击 2.5、不用管密钥,点击下一步 2.6、选择【我接受】 2.7、是否…

Cursor+pycharm接入Codeuim(免费版),Tab自动补全功能平替

如题,笔者在Cursor中使用pycharm写python程序,试用期到了Tab自动补全功能就不能用了,安装Codeuim插件可以代替这个功能。步骤如下: 1. 在应用商店中搜索扩展Codeuim,下载安装 2. 安装完成后左下角会弹出提示框&#x…

<tauri><rust><GUI>基于tauri,实现websocket通讯程序(右键菜单、websocket)

前言 本文是基于rust和tauri,由于tauri是前、后端结合的GUI框架,既可以直接生成包含前端代码的文件,也可以在已有的前端项目上集成tauri框架,将前端页面化为桌面GUI。 环境配置 系统:windows 10平台:vis…

【官方配图】win10/win11 安装cuda 和 cudnn

文章目录 参考资料1.安装cuda toolkit1. 下载安装包2.安装验证 2. 安装cudnn下载cudnn安装包安装cudnn安装后的配置 参考资料 官方nvidia安装cuda官方nvidia安装cudnn 1.安装cuda toolkit 1. 下载安装包 下载地址 https://developer.nvidia.com/cuda-downloads?target_osW…

【监督学习】K 邻近算法步骤及matlab实现

K 邻近算法 (三)K 邻近算法1.算法步骤2. MATLAB 实现参考资料 (三)K 邻近算法 K 近邻算法(KNN,K-Nearest Neighbors)是一种简单且直观的监督学习方法,可用于分类和回归任务。它的工…

音视频-WAV格式

1. WAV格式说明: 2. 格式说明: chunkId:通常是 “RIFF” 四个字节,用于标识文件类型。(wav文件格式表示)chunkSize:表示整个文件除了chunkId和chunkSize这 8 个字节外的其余部分的大小。Forma…