2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
项目背景:近年来,云计算、AI人工智能、大数据等信息技术的不断发展、各行各业的信息电子化的步伐不断加快、信息化的水平不断提高,网络安全的风险不断累积,金融证券行业面临着越来越多的威胁挑战。特别是近年以来,开源生态的不断完善与发展,越来越多的企业引入了开源。对于金融证券行业而言,开源生态共建与安全威胁也呈现了“共生共存”的状态。同时,某某证券正在进行数字化转型能力建设,众多业务都在从传统开发到敏捷式开发转变,迭代速度的加快与发版周期的缩短带来了一系列安全问题:
漏洞难以发现:在开发过程中缺乏安全知识、代码规范等,导致开发出的系统或者容器存在SQL注入、密码重置、XSS、XXE、命令执行等漏洞难以被发现,可能对整个应用系统框架乃至整个公司造成不可估量的影响。
缺乏安全工具:DevOps平台以CI/CD流水线为基础,无论上线前,还是上线后,整个流程中缺乏SAST、IAST、PTE、SCA、RASP等安全工具,同时安全部门也希望引入相关安全工具,完善整个安全体系。
整体安全缺失:公司内安全部门更侧重人工渗透,根据以往测试结果来看,应用安全和组件安全漏洞检测结果已经表现极为突出,需要针对这个现状进行改善。
管理规范落地艰难:目前制定的安全流程规范停留在纸面,难以执行,研发过程难以监控、度量、改进,同时漏洞修复工作推动也是困难重重。
DSO体系搭建概念空洞:现有的业务系统,并结合已有流程、安全人员赋能,还不足以保证业务系统安全运营。
项目方案:
- 总体架构
图1 某某证券DevSecOps开发安全一体化管控项目框架
该证券公司DevSecOps开发安全一体化管控项目分为源头治理阶段、研发过程治理阶段、上线运营治理阶段。
源头治理阶段主要针对供应商提供的合作开发或者直接提供的产品进行管控。依托二进制SCA能力及软件采购规范、SBOM要求、供应商管理规范、风险控制模型等管理制度,配合软件SBOM审查、组件/许可风险审查、供应链安全审查等工作实现软件源头引入安全。
研发过程治理阶段,针对SDLC的开发、测试与交付环节,通过引入SAST(静态应用安全测试)、SCA(软件成分分析)、IAST(交互式应用安全测试)等安全扫描工具提升左移代码安全扫描的能力,通过工具与CI/CD自动化流程的对接配合质量门禁管理实现自动的发版质量控制,进而融入devops,建立标准的devsecops体系。
ASOC平台的引入可以有效支持实现漏洞数据的统一分析及整体关联全程治理。首先,通过对接安全工具链、OA、电子邮箱、即时通讯,对各安全场景进行工作流编排定制和统一管理,配合统一的质量红线控制,实现对安全活动过程透明化、管理自动化管理。其次,整合SCA、SAST、IAST等检测结果,进行互相风险验证和整合关联,实现业务部门聚焦真实风险,降低漏洞管理工作量,提升验证修复效率。
- 主要能力与关键技术特点
- 供应商开源安全管控
图2 供应商开源安全管控效果图
对于供应商提供的合作开发的产品,可以通过源码或者二进制检测对其中的软件成分进行分析,发现其中的安全漏洞风险和许可证合规风险。上线后通过运行时监控,随时对开源组件进行监控管理。
对于供应商直接提供的产品,要求对方在交付时除提供安装包外,还需提供相应的SBOM清单。通过二进制SCA对安装包扫描生成SBOM,并于供应商提供的SBOM清单做一致性比对审查差异,实现源头管控。
- 研发过程的入口管控,数字供应链防火墙
图3 入口管理与数字供应链防火墙
针对研发过程管控,首先要针对入口进行管控。就好比针对水库进行水污染治理一定要先从进水口的污染封堵开始,后续的治理才有意义。通过建立私服库、数字供应链防火墙可以实现这一目标:本地仓库在拉取中央仓库时需要经过供应链防火墙,对有风险的组件拉取行为进行阻断,禁止进入内网;开发侧进行本地引入组件本地开发时,经过防火墙对有风险未及时清退的组件进行拦截;安全管理人员根据企业实际情况和使用阻断记录等信息,对防火墙策略进行及时调整。
- 研发过程管控之DevSecOps落地
图4 devsecops实施图
上图说明如下:
通过私服制品仓库的建立、数字供应链防火墙与门禁规则配合,严格控制第三方和开源组件的来源;研发人员需要安装SCA与SAST工具提供的IDEA、VisualStatio等IDE插件,在编码过程中经常使用插件进行代码质量扫描,此时的修复成本是最低的;针对代码仓库提供发版触发SCA与SAST工具进行扫描,通过质量门禁进行发版质量管控与阻断。同时针对代码仓库进行定时全量回扫,严格保障代码仓库的清洁;测试阶段通过引入IAST工具实现安全测试左移,在测试人员进行功能测试、性能测试的同时完成低侵入自动化渗透测试。由于IAST可以精确定位到漏洞的具体位置到代码行和相关参数,并且提供相应的修改建议和代码示例,可以帮助研发人员更早期发现安全漏洞,更低成本地解决安全漏洞,降低因安全问题导致返工的概率;建立安全编码规范和安全测试标准:建立编码规范、对安全人员进行安全培训、引用相对安全的开发框架。建立统一的测试标准(测试项),尽可能覆盖各种类型的安全漏洞;通过ASOC进行总体调度,将开发安全、漏洞管理、开源组件安全、供应链安全进行统一管理,实现漏洞数据的统一分析及整体关联全程治理。
- 构建供应链上完整的SBOM信息
图5 构建供应链上完整的SBOM信息
通过明确识别和详细记录软件组件及其相互关系以提升软件透明度,可以增强软件供应链的安全可控能力。
- 数字供应链安全情报的支撑
图6 构建供应链上完整的SBOM信息
依托悬镜数字供应链安全情报预警平台能力,建立开源风险情报响应机制,应用漏洞事件预警、供应链投毒事件、开源许可纠纷事件等开源组件风险情报,实时预警企业行业内安全事件,提前响应及防护。
单独的漏洞信息实际很难被应用,只有围绕漏洞所能导致的真实风险来提供漏洞情报,才是抵御漏洞威胁的突破口。悬镜数字供应链安全情报预警平台聚合全面的多维度漏洞信息,通过漏洞复现、标签标定、补丁验证、POC/Exp测试等一系列流程,形成精准可靠的漏洞情报,实时赋能在相关产品上。
项目亮点:
智能代码疫苗技术:本项目的实践应用基于智能代码疫苗技术。智能代码疫苗技术作为数字供应链安全的核心关键技术,旨将智能风险检测和积极防御逻辑注入到运行时的数字应用中,如同疫苗一般与应用载体融为一体,突破性地实现对潜在风险的自发现和对未知威胁的自免疫。基于智能情境感知的代码疫苗单探针技术,统一融合了IAST(交互式应用安全测试)、SCA(软件成分分析)、RASP(运行时应用自保护)、DRA(数据风险治理)、API分析、APM监控(应用性能管理)等能力,仅需一次部署解决应用面临的组件漏洞、敏感数据泄漏、运行异常、0Day攻击等风险,减轻多探针运维压力的同时,为应用植入“疫苗”,实现并推动应用与安全的共生。
基于DSDX SBOM格式做统一安全评估标准:本项目是率先支持DSDX(国内首个自研SBOM软件物料清单格式)的DevSecOps开发安全一体化管控项目。作为DevSecOps敏捷安全的落地治理条件之一,DSDX能够统一软件信息接口,对采购软件和自研软件风险评判进行标准统一。关于SBOM信息数据的组成,可通过安全检测工具链接实现,因此通过引入的悬镜源鉴SCA工具和悬镜SAST工具,支持管理过程中必要的技术控制卡点和SBOM输出。
基于大数据的VPT漏洞关联分析和漏洞自动化编排:本项目采用自动化的安全编排方法,灵活调用并获取各类型应用安全检测工具的检测结果,将各阶段的检测结果进行统一归化、关联、操作并统一分析,多维度对漏洞优先级进行划分,实现了安全度量指标化及统一威胁可见,有效解决不同检测工具检测的漏洞数据难以统一评估、管理、分析的问题;同时对接效能平台,自动推送漏送信息和接收漏洞处理结果,轻松地设置跨团队的工作流,跟踪漏洞处理状态,方便闭环安全风险、大幅提高处理风险效率。
项目效果:本项目满足了银保监会和证监会等行业监管机构针对开发安全管理规范、重要信息系统上线前执行程序和源代码安全审查的建设要求,在响应国家政策号召的同时,实现了企业开发安全管理能力水位的提升。
本项目通过将SAST(静态应用安全测试)、SCA(软件成分分析)、IAST(交互式应用安全测试)能力无缝嵌入到DevOps全流程中,同时经过ASOC平台自动化编排及统一管理,实现全生命周期漏洞闭环管理,研发和测试人员在完成应用功能测试的同时即可透明实现深度业务安全测试,有效覆盖95%以上的中高危漏洞,包括各种复杂的Web漏洞、第三方开源组件漏洞及业务逻辑漏洞等,高效实现应用上线前的安全审查,防止应用带病上线,从而有效避免了应用发布后因漏洞风险造成业务中断等直接经济损失。
本项目基于自动化安全工具,不增加现有团队的工作量、不改变工作流程,漏洞修复周期缩短50%,并帮助安全人员将漏洞检测及修复工作前置左移,从软件开发源头发现安全问题,大幅减少上线运营后的修复成本,显著提升开发人员的安全编码水平和工作效率,帮助人员工作效能实现最大化。
本项目通过二进制文件检测、CI/CD流水线检测、系统运行时检测、仓库扫描检测、第三方平台接入数据同步、手动导入等,完整覆盖公司所有开源与第三方组件,以及成品软件资产信息,在供应链使用排查、0day漏洞爆发应急处置、监管单位要求信息报送方面实现最快速高效工作方式。
相关文章:

2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
项目背景:近年来,云计算、AI人工智能、大数据等信息技术的不断发展、各行各业的信息电子化的步伐不断加快、信息化的水平不断提高,网络安全的风险不断累积,金融证券行业面临着越来越多的威胁挑战。特别是近年以来,开源…...
Linux安装jdk、tomcat
1、安装jdk sudo yum install -y java-1.8.0-openjdk-devel碰到的问题:/var/run/yum.pid 已被锁定 Another app is currently holding the yum lock; waiting for it to exit… https://blog.csdn.net/u013669912/article/details/131259156 参考&#…...

WebRTC通话原理与入门难度实战指南
波煮的实习公司主要是音视频业务,所以最近在补习WebRTC的相关内容,会不定期给大家分享学习心得和笔记。 文章目录 WebRTC通话原理进行媒体协商:彼此要了解对方支持的媒体格式网络协商:彼此要了解对方的网络情况,这样才…...

N元语言模型 —— 一文讲懂!!!
目录 引言 一. 基本知识 二.参数估计 三.数据平滑 一.加1法 二.减值法/折扣法 编辑 1.Good-Turing 估计 编辑 2.Back-off (后备/后退)方法 3.绝对减值法 编辑4.线性减值法 5.比较 三.删除插值法(Deleted interpolation) 四.模型自适应 引言 本章节讲的…...

.NET 9中的异常处理性能提升分析:为什么过去慢,未来快
一、为什么要关注.NET异常处理的性能 随着现代云原生、高并发、分布式场景的大量普及,异常处理(Exception Handling)早已不再只是一个冷僻的代码路径。在高复杂度的微服务、网络服务、异步编程环境下,服务依赖的外部资源往往不可…...

Mac 安装git心路历程(心累版)
省流版:直接安装Xcode命令行工具即可,不用安Xcode。 git下载官网 第一部分 上网初步了解后,打算直接安装Binary installer,下载完安装时,苹果还阻止安装,只好在“设置–安全性与隐私”最下面的提示进行安…...

计算机网络第2章(下):物理层传输介质与核心设备全面解析
目录 一、传输介质1.1 传输介质的分类1.2 导向型传输介质1.2.1 双绞线(Twisted Pair)1.2.2 同轴电缆(Coaxial Cable)1.2.3 光纤(Optical Fiber)1.2.4 以太网对有线传输介质的命名规则 1.3 非导向型传输介质…...
Qt Creator 11.0创建ROS2 Humble工程
Qt Creator 11.0创建ROS2 Humble项目工程 安装ROSProjectManager插件创建ROS2项目在src下添加packagegit clone ROS2功能包编译运行安装ROSProjectManager插件 安装ROSProjectManager的主要流程参考官方的流程,地址(ros_qtc_plugin)。 此处采用二进制安装: sudo apt inst…...

C# 类和继承(扩展方法)
扩展方法 在迄今为止的内容中,你看到的每个方法都和声明它的类关联。扩展方法特性扩展了这个边 界,允许编写的方法和声明它的类之外的类关联。 想知道如何使用这个特性,请看下面的代码。它包含类MyData,该类存储3个double类型 的…...
机器学习复习3--模型的选择
选择合适的机器学习模型是机器学习项目成功的关键一步。这通常不是一个一蹴而就的过程,而是需要综合考虑多个因素,并进行实验和评估。 1. 理解问题本质 这是模型选择的首要步骤。需要清晰地定义试图解决的问题类型: 监督学习 : 数据集包含…...

MySQL复杂SQL(多表联查/子查询)详细讲解
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 MySQL复杂SQL(多表联查/子查询&a…...

STM32使用土壤湿度传感器
1.1 介绍: 土壤湿度传感器是一种传感装置,主要用于检测土壤湿度的大小,并广泛应用于汽车自动刮水系统、智能灯光系统和智能天窗系统等。传感器采用优质FR-04双料,大面积5.0 * 4.0厘米,镀镍处理面。 它具有抗氧化&…...
在C++中,头文件(.h或.hpp)的标准写法
目录 1.头文件保护(Include Guards)2.包含必要的标准库头文件3.前向声明(Forward Declarations)4.命名空间5.注释示例1:基础头文件示例2:包含模板和内联函数的头文件示例3:C11风格的枚举类头文件…...
Axios学习笔记
Axios简介 axios前端异步请求库类似JQuery ajax技术, ajax用来在页面发起异步请求到后端服务,并将后端服务响应数据渲染到页面上, jquery推荐ajax技术,但vue里面并不推荐在使用jquery框架,vue推荐使用axios异步请求库。…...
Langchain学习笔记(十一):Chain构建与组合技巧
注:本文是Langchain框架的学习笔记;不是教程!不是教程!内容可能有所疏漏,欢迎交流指正。后续将持续更新学习笔记,分享我的学习心得和实践经验。 前言 在LangChain的发展过程中,API设计经历了重…...
【判断既约分数】2022-4-3
缘由既约分数,除了辗转相除法-编程语言-CSDN问答 void 判断既约分数() {int a 1, b 2020, aa b, y 2, gs 0;while (aa){while (a < b){while (y < a && y < aa)if (a%y 0 && aa%y 0)a, y 2;elsey;if (a < b)gs; else;a, y 2;…...

Windows平台RTSP/RTMP播放器C#接入详解
大牛直播SDK在Windows平台下的RTSP、RTMP播放器模块,基于自研高性能内核,具备极高的稳定性与行业领先的超低延迟表现。相比传统基于FFmpeg或VLC的播放器实现,SmartPlayer不仅支持RTSP TCP/UDP自动切换、401鉴权、断网重连等网络复杂场景自适应…...
深圳SMT贴片工艺优化关键步骤
内容概要 深圳SMT贴片工艺优化作为现代电子制造的核心环节,聚焦于提升生产精度与稳定性。其技术框架围绕三大核心维度展开:温度动态调控、设备协同适配与工艺缺陷预判。通过精密温度曲线控制系统,实现回流焊环节的热能梯度精准匹配ÿ…...

从 JDK 8 到 JDK 17:Swagger 升级迁移指南
点击上方“程序猿技术大咖”,关注并选择“设为星标” 回复“加群”获取入群讨论资格! 随着 Java 生态向 JDK 17 及 Jakarta EE 的演进,许多项目面临从 JDK 8 升级的挑战,其中 Swagger(API 文档工具)的兼容性…...
配置git命令缩写
以下是 Git 命令缩写的配置方法及常用方案,适用于 Linux/macOS/Windows 系统: 🔧 一、配置方法 1. 命令行设置(推荐) # 基础命令缩写 git config --global alias.st status git config --global alias.co che…...
Redis 缓存问题及其解决方案
1. 缓存雪崩 概念:缓存雪崩是指在缓存层出现大范围缓存失效或缓存服务器宕机的情况下,大量请求直接打到数据库,导致数据库压力骤增,甚至可能引发数据库宕机。 影响:缓存雪崩会导致系统性能急剧下降,甚至导…...

使用 Coze 工作流一键生成抖音书单视频:全流程拆解与技术实现
使用 Coze 工作流一键生成抖音书单视频:全流程拆解与技术实现(提供工作流) 摘要:本文基于一段关于使用 Coze 平台构建抖音爆火书单视频的详细讲解,总结出一套完整的 AI 视频自动化制作流程。内容涵盖从思路拆解、节点配…...

【发布实录】云原生+AI,助力企业全球化业务创新
5 月 22 日,在最新一期阿里云「飞天发布时刻」,阿里云云原生应用平台产品负责人李国强重磅揭晓面向 AI 场景的云原生产品体系升级,通过弹性智能的一体化架构、开箱即用的云原生 AI 能力,为中国企业出海提供新一代技术引擎。 发布会…...
vue中的派发事件与广播事件,及广播事件应用于哪些场景和一个表单验证例子
在 Vue 2.X 中,$dispatch 和 $broadcast 方法已经被废弃。官方认为基于组件树结构的事件流方式难以理解,并且在组件结构扩展时容易变得脆弱。因此,Vue 2.X 推荐使用其他方式来实现组件间的通信,例如通过 $emit 和 $on 方法&#x…...
DeepSeek 赋能智能养老:情感陪伴机器人的温暖革新
目录 一、引言二、智能养老情感陪伴机器人的市场现状与需求2.1 市场现状2.2 老年人情感陪伴需求分析 三、DeepSeek 技术详解3.1 DeepSeek 的技术特点3.2 与其他类似技术的对比优势 四、DeepSeek 在智能养老情感陪伴机器人中的具体应用4.1 自然语言处理与对话交互4.2 情感识别与…...

LabVIEW主轴故障诊断案例
LabVIEW 开发主轴机械状态识别与故障诊断系统,适配工业场景主轴振动监测需求。通过整合品牌硬件与软件算法,实现从信号采集到故障定位的全流程自动化,为设备维护提供数据支撑,提升数控机床运行可靠性。 面向精密制造企业数控机…...
gRPC 的四种通信模式完整示例
gRPC 的四种基本通信模式,包括完整的 .proto 文件定义和 Go 语言实现代码: 1. 简单 RPC (Unary RPC) - 请求/响应模式 客户端发送单个请求,服务端返回单个响应 calculator.proto protobuf syntax "proto3";package calculato…...
C#中Struct与IntPtr转换:实用扩展方法
C#中Struct与IntPtr转换:实用扩展方法 在 C# 编程的世界里,我们常常会遇到需要与非托管代码交互,或者进行一些底层内存操作的场景。这时,IntPtr类型就显得尤为重要,它可以表示一个指针或句柄,用来指向非托…...
Web安全:XSS、CSRF等常见漏洞及防御措施
Web安全:XSS、CSRF等常见漏洞及防御措施 一、XSS(跨站脚本攻击) 定义与原理 XSS攻击指攻击者将恶意脚本(如JavaScript、HTML标签)注入到Web页面中,当用户访问该页面时,脚本在浏览器端执行&…...
Java基础之数组(附带Comparator)
文章目录 基础概念可变参数组数组与ListComparator类1,基本概念2,使用Comparator的静态方法(Java 8)3,常用Comparator方法4,例子 排序与查找数组复制其他 基础概念 int[] anArray new int[10];只有创建对象时才会使用new关键字,所以数组是个…...