SCA在得物DevSecOps平台上应用​

AI安全基石:软件成分分析(SCA)核心原理与DevSecOps落地实践 软件成分分析(SCA)是现代软件开发和AI系统安全的基础性技术。其核心原理是通过自动化扫描,识别软件中所有开源及第三方组件,生成详细的软件物料清单(SBOM)。这项技术的价值在于,它能将安全治理左移,从源头管控因大量使用开源组件而引入的供应链安全风险与许可证合规风险。在应用场景上,SCA工具深度集成至CI/CD流水线,赋能DevSecOps实践,实现从开发、构建到部署的全流程风险卡点。本文以悬镜安全源鉴SCA为例,深入探讨了其如何通过精准的成分识别、智能的漏洞优先级排序以及无缝的流程集成,帮助企业构建主动、 阅读详情

SCA(Software Composition Analysis)软件成分分析,通俗的理解就是通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术。

一、前言

现代开发项目中,应用程序中使用的大部分代码都是由开源代码构成的,其余的代码主要是作为"胶水"来组装和调用各种函数。据中国信息通信研究院统计的数据, 2020年中国已经使用开源技术的企业占比为88.2%,比2018年增长6.8%;有计划使用的占9.5%;暂未计划使用开源技术的企业占比为2.1%, 可以看出,中国开源软件应用比例逐年提升。 开源让这些软件更安全吗? 根据通信研究院数据显示,2020年热门开源项目中至少含有一个漏洞占84%,较2019年增长9个百分点;含有高危漏洞的占60%,较2019年增长11个百分点。

下面介绍两个例子

  • 最显著的例子就是去年爆发的Log4j2漏洞,Log4j2 是一个开源的基于 Java 的日志记录工具。该日志框架被广泛的应用于各种常见的服务中(spring-boot-starter-log4j2、Apache Struts2、Apache Flink)。从Apache Log4j2 漏洞影响面查询的统计来看,影响多达44029个开源软件,涉及相关版本软件包更是达到了340657个。
  • 2020年国内第一起一起关于 GPL 版权纠纷案裁判文书公示。一审判决书显示,GPL3.0 协议是一种民事法律行为,具有合同性质,可认定为授权人与用户间订立的著作权协议,属于我国《合同法》调整的范围。一审判定两侵权被告公司赔偿原告公司经济损失及维权合理费用共计 50 万元,并停止侵权行为。

目前开源软件所面临的除了以上介绍的 漏洞 风险,还有开源许可证问题, 避免使用含有问题的组件。这将减少开发过程中的风险。

二、SCA

2.1 简介

相信此时的你肯定会疑惑,既然开源软件这么多风险,该如何避免呢?接下来就是本篇文章的主角SCA技术了。SCA(Software Composition Analysis)软件成分分析,通俗的理解就是通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术。SCA可以对任何开发语言对象进行分析,Java、Golang、Python、JavaScript等等,当然也可以对一些二进制、固件等识别。SCA的分析过程:首先对目标源代码或二进制文件解压,并从文件中提取特征(组件名、版本号),再对特征进行识别和分析,获得该服务使用的相关组件和版本,与已知漏洞库进行关联,找出存在的已知风险。

2.2 难点

上述听起来SCA好像并不复杂,只需要提取关键信息作匹配即可,但是真正的落地过程中会发现遇到如下问题。这些问题导致要做一个成熟的易用的SCA工具并不是想象中那么简单,下图介绍了SCA项目中常见的一些难点。

三、落地

3 .1 架构

如何自动化检测相关组件风险并且安全左移,让开发尽早感知到风险并禁止高危服务上线,是这边的目标。

其中检测架构如下图:

其中得物安全检测平台目前不仅仅做SCA检测、也在做SAST等检测,尽可能的安全左移,更早的发现问题。

3.2 实现

目前得物内部主要有Java、Go、Python、JavaScript等语言,目前对以上四种语言已经做到全部支持(包括Java打包后的Jar文件、Go静态语言编译后的二进制文件)。

语言文件是否支持
Javapom.xml、jar支持
Gogo.mod、go.sum、binaries built by go支持
Pythonrequirements.txt、Pipfile、Pipfile.lock支持
JavaScriptpackage.json、package-lock.json、yarn.lock支持

目前主要采用项目构建及解析包管理文件两种方式。

  • 方式一:项目构建

以Java项目为例,通过与发布平台打通,获得项目编译后的Jar文件, JAR 文件格式是以 ZIP 文件格式为基础,对Jar文件进行解压 ,可在BOOT-INF/lib/目录下获取全部第三方依赖包信息。

  • 方式二:包管理文件

解析相应语言的配置文件,以Go为例,通过解析go.mod和go.sum文件,获取相关依赖信息。

对项目依赖的安全分析在服务端进行,基于安全运营同学持续维护的漏洞库,可以快速识别到存在安全缺陷的依赖,当检测到相应依赖存在安全风险的时候,即发相应通知到项目Owner,督促去进行相应改进。

为了让开发者重视安全问题,该检测结果还会同步输出在Gitlab Merge Request处,当Reveiew代码时,将会直接看到安全检测相关结果。

3.3 漏洞库

漏洞库的建设非一朝一夕能完成的,目前漏洞库的建设主要以开源为主,如NVD、GHSA、GLAD、Go VulnDB等,辅以内部人工收集到的一些漏洞信息。这里提一下,NVD官方的漏洞库虽然很全,但里面定义的cpe信息与组件信息不是完全一致,而且许多CVE数据无影响版本、修复版本等数据,这些信息需要结合其他漏洞情报综合判定。

好消息是今年夏天CVE 数据格式将会完成5.0格式的发布(目前CVE格式均为4.0),这次 CVE 发布添加了几个新数据字段,除了 CVE ID 号、受影响的产品、受影响的版本和公共参考的必需数据之外,将记录包括可选数据,例如严重性评分、研究人员的信用、其他语言、受影响的产品列表、附加参考、社区贡献能力等。这些可选数据将为下游用户和整个漏洞管理社区增强 CVE 记录。详情可参考: https://www.cve.org/Media/News/item/news/2022/01/11/Changes-Coming-to-CVE-Record

漏洞库地址
NVDhttps://nvd.nist.gov/
GHSAhttps://github.com/advisories/
GLADhttps://gitlab.com/gitlab-org/advisories-community/
Go VulnDBhttps://github.com/golang/vulndb
Nodehttps://github.com/nodejs/security-wg

四、思考

目前SCA检测不仅仅用在安全检测方面,针对应急响应、资产排查等方面也有重要作用。例如常见的Log4j2、Fastjson应急响应。通过该平台可查询引用该组件的服务,快速获取服务负责人、发布时间、组件版本等信息,通知相应负责人升级处理。

目前得物安全内部主要用SCA工具管理开源组件安全,SAST用于检测源代码以发现安全漏洞,这两者已经完美结合起来用于解决软件开发前期常见的安全问题。但是在未来的规划当中,SCA会将尽可能的左移,在开发阶段之前就可以检测到相关安全风险,或者说确保用户在开发阶段引用的组件就是安全的。要确保这一点的话,需要搭建得物内部私服,确保私服上的包都经过安全检测。

总的来讲,SCA 其实并不是一项很先进的技术,OWASP 官方2012年就开源了类似的检测工具DependencyCheck。主要在现代的研发过程中大家越来越使用开源组件,意味着一旦引用的组件出现风险,自己的项目也处于危险之中,供应链安全的问题产生的影响也会越来越大。当然并不是说使用开源软件不好,毕竟可以大幅度提高开发效率,不能因为安全问题而因噎废食。安全的目标就是尽量减少打扰业务,但要保障业务开发的系统更安全、更可靠。

Fortify SCA 2023:Java代码安全审计实战与DevSecOps集成指南 静态应用安全测试(SAST)是保障软件安全的关键技术,它通过分析源代码而非运行程序来识别潜在漏洞。其核心原理是基于数据流分析和污点追踪,构建从用户输入点到危险操作的数据流路径,从而发现如SQL注入、跨站脚本(XSS)等安全缺陷。这项技术的价值在于将安全防护“左移”,在开发早期低成本地发现并修复漏洞,有效降低后期修复的昂贵代价。在DevSecOps实践中,SAST工具能自动化集成到CI/CD流水线,实现对每次代码提交的即时安全反馈。本文以Fortify SCA 2023为例,深入探讨其在Java生态下的实战应 阅读详情

相关推荐

SCA在 得物 DevSecOps 平台上应用

SCA在 得物 DevSecOps 平台上应用。SCA(Software Composition Analysis)软件成分分析,通俗的理解就是通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术。

代码讲故事 1627

SCA-Soft Composition Analysis软件成分分析

1. 概述 目前 SCA(软件成分分析)在2016-2018年Gartner发布的DevSecOps中均有出现。但每年的关注点不同,在2016年的报告中,强调的是DevSecOps的安全测试和RASP(运行时应用安全保护);2017年时侧重面向开源软件(Open Source Software)进行安全扫描和软件成份分析;2018年继续强调针对开源软件的软件成份分析。 软件成分分析(SCA,Software Composition Analysis)专门用于分析开发人员使用的各种源码、模块、框架和库,以识别

qinh123的博客 2765

scago:基于Go的声音更改应用程序,用于历时语言学和混合语言

Scago scago(或S oundç焊割一个pplier GO)是可以应用的音变规则集到一个字去图书馆。 这是使社区混杂的有用工具,可以以一种构造语言人为地创建历时性变化。 该库的灵感来自于KathTheDragon的SCE,这是一个用Python实现的类似工具。 建造 该库仍处于开发初期。 敬请关注!

适用于应用程序安全的 11 大 DevSecOps 工具

发现用于应用程序安全的顶级 DevSecOps 工具,其功能包括代码安全、实时监控和漏洞修复等。

网络研究观 2136

java modbus通讯协议_Modbus通 讯 协 议

电磁流量计Modbus通 讯 协 议(版本号:9000-K V9.1.1)2020年01月01日通讯协议针对KFD电磁流量计工业应用设计,版本:9000-K V9.1.1,该版本主要用于实时数据采集、流量测量、流量累计控制及部分参数的修改。一、主机系统通讯部件要求1.国际标准RS-485通讯接口部件,不小于11Bytes 的通信缓冲区(FIFO),支持1200、2400、4800、96...

weixin_39956612的博客 1012

iOS开发者必备:从越狱设备里提取IPA的三种方法(含Filza、iTools实战)

本文详细介绍了iOS开发者从越狱设备提取IPA文件的三种实用方法,包括使用Filza文件管理器、AFC2配合桌面工具以及命令行高级技术。内容涵盖环境准备、操作步骤和技术原理,帮助开发者高效获取应用包文件,适用于逆向工程、测试分析等场景。

weixin_28717969的博客 822

软件自主可控及供应链安全,一文读懂SBOM、SCA(软件成分分析)与SLSA

在软件供应链安全逐渐成为全球焦点的今天,这三个概念频繁出现在安全合规和信创项目中。它们既有区别,又相互联系。本文带你快速理解三者的核心内涵与应用场景。一、SBOM:软件的“配料表”,直译为“软件物料清单”。就像食品必须贴上配料表一样,SBOM要求软件厂商公开软件中包含了哪些组件、版本和来源。核心作用:1.让软件透明化:让用户知道软件用了哪些第三方库和开源组件。2.白盒可追溯:当某个开源组件曝出漏洞时,可以快速定位受影响的软件版本。3.合规性:支持许可证合规审查,避免知识产权风险。

极创信息的博客 1394

VGA系列之一:VGA显示网络图片

VGA系列之一:VGA显示网络图片VGA系列之一VGA显示网络图片 1 如何用FPGA实现VGA显示 2 网络图片和VGA显示有何区别 3VGA如何显示图片

善良の一休君的博客 1万+

关于软件成分分析工具SCA使用手册总结(超详细教程)

SCA(Software Composition Analysis)是管理和分析软件中开源组件的关键工具,用于确保安全性和许可证合规性。它涉 及开源漏洞管理、许可证管理及SBOM清单的创建。SCA工具通过识别组件、关联安全漏洞和许可证信息,自动化风险评估和修复过程。在选择SCA工具时,考虑全面的开源数据库、语言支持、报告功能和优先级排序是至关重要的。

多喝清晨的粥 1521

基于PLC智能立体车库控制系统设计

摘要 本系统设计以三层立体车库为研究对象,通过对立体车库的原理分析、动作流程设计和一系列的软硬件设计,达到立体车库自动化控制的目的。系统采用可编程控制器作为立体车库控制系统的控制单元,实现该系统的工艺要求,通过程序仿真调试,完成系统的各种动作要求,达到自动控制的目的。系统设计分为总体设计、硬件设计以及软件设计。按照立体车库控制系统的控制策略进行图纸设计;重点分析工艺流程图,对立体车库控制系统进行程序编译和MCGS上位机调试,通过系统的调试和修改,达到了基本控制的要求。系统设计明确了工艺要求,确定

DX884164131的博客 3601

灰度发布、蓝绿部署、双活架构与数据同步/备份/迁移

本文系统介绍了现代互联网系统的核心部署策略与数据管理技术体系。主要内容包括:1)三种服务发布策略(灰度发布、蓝绿发布、滚动发布)的原理、实现方式和适用场景对比;2)高可用架构设计(同城双活、异地双活、异地多活)的技术方案;3)数据同步机制、备份策略与迁移方案的设计要点。文章通过架构图、流程图和配置示例详细展示了各类技术的实施方法,并分析了不同方案的优劣及风险控制措施,为构建高可用、高可靠的分布式系统提供了完整的技术指南。

zane的博客 515

透过安全事件看软件组成分析SCA

SCA(Software Composition Analysis)软件成分分析,通过检测软件许可证、依赖项以及代码库中的已知漏洞和潜在漏洞来分析开源组件,使DevOps能够管理其安全风险和许可证合规性。 简单来说,SCA是一项通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术。

OpenSCACommunity的博客 395

C++面向对象程序设计大作业:魔兽世界(三):开战

C++面向对象程序设计大作业:魔兽世界(三):开战问题描述问题分析代码 问题描述 问题来自于北京大学郭炜老师的C++慕课的大作业 魔兽世界的西面是红魔军的司令部,东面是蓝魔军的司令部。两个司令部之间是依次排列的若干城市,城市从西向东依次编号为1,2,3 … N ( N <= 20)。红魔军的司令部算作编号为0的城市,蓝魔军的司令部算作编号为N+1的城市。司令部有生命元,用于制造武士。 两军的司令部都会制造武士。武士一共有dragon 、ninja、iceman、lion、wolf 五种。每种武士都有

RedRum_1965的博客 4038

DevSecOps-Playbook 安全工具集成:SCA、SAST、DAST 配置教程

DevSecOps-Playbook 是一个面向任何规模组织的 DevSecOps 实施指南,它通过将安全实践融入软件开发的全生命周期,帮助团队构建更安全的应用程序。本文将详细介绍如何在 DevSecOps 流程中集成 SCA(软件成分分析)、SAST(静态应用安全测试)和 DAST(动态应用安全测试)这三种核心安全工具,为项目提供全面的安全保障。 ## DevSecOps 安全工具集成全景图

gitblog_00048的博客 368

用 CL_SALV_TREE 把层级数据做成一棵会呼吸的 ABAP ALV 树:从类继承扫描到事件交互的完整拆解

本文介绍了SAP ABAP中使用CL_SALV_TREE实现树形ALV报表的方法。该技术将层级数据(如类继承关系)以可展开/折叠的树形结构展示,解决了传统ALV Grid无法直观显示层次结构的问题。核心实现采用"数据表+层级表"分离的设计模式:数据表存储节点业务信息,层级表维护父子关系。通过add_node方法动态构建树形结构,支持设置节点文本、图标和事件。文中提供了完整示例代码,演示了如何递归扫描ABAP类继承关系并构建树形ALV,这种技术特别适用于展示类族谱、权限树等层级数据,能显著

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 207

【学习系列】SAP RAP 17:RAP应用部署集成至Fiori Launchpad 【S4HC Public Edition】

本文详细介绍了在SAP S/4HANA Cloud环境中部署RAP应用集成到Fiori Launchpad的两种方法:使用BAS(SAP Business Application Studio)和VSCode。主要步骤包括:1)在BTP中配置Destination连接ES环境;2)设置信任关系;3)创建BAS开发空间;4)通过Fiori应用生成器部署RAP应用;5)创建IAM App、Business Catalog和Business Role;6)配置Launchpad Space和Pages。文章还提供

DeveloperMrMeng的博客 968

Fortify SCA命令行扫描实战:从Linux到iOS的DevSecOps集成指南

静态应用安全测试(SAST)是软件开发生命周期中保障代码安全性的关键技术,其核心原理是通过分析源代码的语法和语义,在不运行程序的情况下识别潜在的安全漏洞。这项技术通过将安全测试左移至开发阶段,能够显著降低修复成本并提升软件质量。在工程实践中,命令行工具因其自动化、可集成和资源效率高的特点,成为实现持续安全扫描的关键。对于追求高效DevSecOps流程的团队而言,掌握命令行扫描是提升生产力的核心。本文聚焦于业界广泛使用的Fortify SCA工具,深入解析其命令行工具链,特别是针对Linux环境下的Java、

weixin_33980459的博客 486

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

DevSecOps平台架构组成

既然DevSecOps平台建设的需求来源清楚了,那么,接下来以这些需求为出发点,介绍一个DevSecOps平台的基本架构组成。DevSecOps平台包含黄金管理、工具链、周边生态子系统,他们依托基础仓库,对基础设施资源进行调度和管理,一起组成了整个DevSecOps平台的全部。通过平台向用户提供涵盖规划、编码、构建、测试、发布、部署和维护等研发工作的平台能力,向平台管理者提供平台使用率、平台可用性、漏洞平均检测时间、漏洞平均修复时间、自动化覆盖率等管理数据。

qq_25409421的博客 1940

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

DevOps从入门到精通:企业级实战系列(九)—— 安全DevOps(DevSecOps)全链路实践

在数字化转型加速的背景下,安全已从“合规附属品”升级为业务连续性的核心要素。传统安全测试(如渗透测试)因滞后于开发流程,导致安全漏洞修复成本高昂(据IBM统计,后期修复漏洞的成本是开发阶段的100倍)。安全DevOps(DevSecOps)通过将安全左移(Shift Left)和自动化工具链集成,实现安全与开发的深度融合,构建“安全即代码”的敏捷防护体系。:Gartner预测,到2025年,70%的企业将通过DevSecOps实现安全测试自动化,漏洞修复效率提升60%。CVSS评分>7.0。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

构筑智能防线:DevSecOps安全工具金字塔

每一次向上,都代表着安全能力的质变——从孤立的工具,到集成的流程,最终升华为一种智能、自适应的安全文化。在这条路上,工具是载体,而人与流程的进化,才是通往卓越安全的真正密钥。在数字化浪潮席卷全球的今天,安全不再是软件开发生命周期(SDLC)末尾的“检查站”,而是贯穿始终的“基石”。:将保护逻辑像“疫苗”一样注入到应用中,使应用在运行时能够自我识别并阻断攻击,是内生的、自适应的安全能力。,将下层所有工具和数据整合,实现安全工作的平台化、智能化运营,达到持续自适应安全的最高境界。

深耕互联网架构与AI领域多年,专注大模型工程化、云原生架构、AI驱动系统,分享实战经验、前沿技术和架构方法论。每周产出深度长文+技术短文,涵盖大厂案例、论文解读与工程实践。拒绝水文,只讲干货。关注我,与一线架构师共同探索技术本质。 1623

一文带大家了解安全测试领域中SAST和SCA的概念

SAST(静态应用程序安全测试)和SCA(软件成分分析)是两种广泛应用于软件开发生命周期(SDLC)中的安全测试工具,分别针对不同维度的安全问题。以下是它们的核心定义、差异及协同作用的详细分析。

liwenxiang629的博客 1514

证券行业开源风险治理实践:从SCA工具到DevSecOps体系构建

软件成分分析(SCA)是现代软件供应链安全的核心技术,它通过识别和分析应用程序中使用的开源组件、库及其依赖关系,构建软件物料清单(SBOM),从而实现对潜在安全漏洞、许可证合规等风险的可见性。其原理在于深度解析代码仓库、二进制制品乃至容器镜像,结合持续更新的漏洞情报库进行精准匹配。这项技术的核心价值在于将安全能力左移,使开发团队能在引入、构建和部署的早期阶段发现并修复风险,有效避免漏洞流入生产环境。在金融、互联网等高合规要求行业,SCA是构建主动防御体系、满足监管要求的关键基础设施。本文以证券行业为具体应用

weixin_29327977的博客 249

Onyx安全审计工具:从SAST/SCA到CI/CD集成的DevSecOps实践

在软件开发生命周期中,安全左移已成为现代工程实践的核心趋势,其核心理念是将安全测试与审计环节前置到开发阶段,以降低修复成本与风险。静态应用安全测试(SAST)通过分析源代码的抽象语法树与控制流,识别SQL注入、命令执行等漏洞模式;软件成分分析(SCA)则专注于检测第三方依赖库的已知漏洞,防范供应链攻击。这些技术的工程价值在于实现自动化、持续化的安全防护,尤其适用于缺乏专职安全团队的中小型项目。通过集成到CI/CD流水线与开发者工作流,安全审计工具能够将漏洞拦截在代码提交阶段,并基于上下文感知进行智能优先级排

weixin_42539414的博客 258

DevSecOps 工具:初学者指南

随着开发环境的发展,保持领先于潜在威胁需要采取主动和集成的方法。

网络研究观 4893
上一篇: 自定义 spring boot starter 三部曲之二:实战开发
下一篇: 聊聊分布式锁
程序员职业指南
博客等级 码龄4年 2138粉丝 960原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值