SOFAStack软件供应链安全产品解析——SCA软件成分分析

2023-10-21 03:28

本文主要是介绍SOFAStack软件供应链安全产品解析——SCA软件成分分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

近年来,软件供应链安全相关攻击事件呈快速增长态势,造成的危害也越来越严重,为了保障软件供应链安全,各行业主管单位也出台了诸多政策及技术标准。基于内部多年的实践,蚂蚁数科金融级云原生PaaS平台SOFAStack发布完整的软件供应链安全产品及解决方案,包括静态代码扫描Pinpoint,软件成分分析SCA,交互式安全测试IAST,运行时防护RASP,安全洞察Appinsight等,帮助客户应用软件实现“发布前检测,运行时免疫”。

本文将着重介绍针对开源组件风险发现场景的软件供应链安全产品——SCA软件成分分析

开源组件安全的挑战

为提高开发效率、节约开发成本,企业在软件开发过程中引入的开源组件比例越来越高,而因此存在的开源组件安全隐患却未被重点关注。因此从开源软件治理层面出发,开源组件安全面临的挑战包括:

  • 组件通用漏洞风险急剧上升。黑客组织逐渐将目标转移在开源软件上,可以轻易找到源代码漏洞从而入侵和攻击,危及响应系统或数据的完整性和机密性。据Synopsis相关数据统计,开源代码仓库中至少存在一个漏洞的仓库占整体开原仓库的比例已上升到了84%。
  • 开源软件许可证繁多且复杂。开发人员使用的开源软件许可证繁多难以一一维护,并且存在误使用黑客冒充的合法开源或系统组件名称的组件致使开发者无法识别,另外,违规使用开源软件也会造成许可证合规性风险。
  • 组件过维护期或未更新。由于开发人员更侧重业务自身规划和版本改动频繁易引起兼容性问题,从而导致对于其使用的运行时版本、组件版本陈旧过维护期甚至从不升级。
  • 堆积“技术债”问题。开发人员为加速业务开发,使用开源软件或其他方案,从而导致组件依赖过多、缺陷过多的“技术债”,反向阻碍产品演进。
  • 软件开发人员安全意识淡薄。多数开发人员对代码安全质量重视程度不够,未遵守应用程序安全开发标准,同时其信息安全技术能力水平也是参差不齐的。

因此,SCA(Software Composition Analysis)工具应运而生,可以通过分析源代码识别引入的开源组件漏洞、许可证证书、开源协议等信息,帮助企业开发者深入掌握软件成分中潜在的安全问题。

SCA产品价值

SOFA Stack软件开发安全平台SCA是一款智能开源组件风险发现与分析产品,它能够分析软件结构并判断开源组件的风险,从而帮助开发人员和安全人员快速识别开源组件的风险,并将安全风险前置处理,实现软件供应链安全中的安全漏洞修复、开源风险规避等价值。

产品具备四大核心价值:

一、灵活的扫描接入方式

在SCA建设阶段,对应用程序引入了哪些组件是企业最为重要的一步,蚂蚁SCA面向不同场景提供不同接入方式,从信息安全视角摸排研发技术栈、流程链路,并做相应的数据卡点,完成相关风险数据的收集,协助企业盘点软件资产。

1、Air Gap接入,不需要触碰代码。适合二进制代码静态分析和软件溯源分析场景,用户可审计所有外发内容,不会存在代码泄露的风险。

2、API接入,授权访问私有源码。适合大部分代码分析场景,尤其是凯源代码的检测以及小规模试用场景,能直接生成完整的分析报告。

二、智能扫描分析流程

用户通过授权或上传代码包到SCA程序分析平台上,平台获取到用户创建的任务利用智能分析引擎判断适用的代码分析方式并分别进行代码缺陷、精准匹配、模糊匹配、情报聚合等分析技术和文件元数据特征比对技术进行特征提取以确定组件关系,然后将结果聚合到统一平台上再进一步验证许可证是否冲突,最终生成质量报告。在此流程中,支持的许可证数量多达4000+、仓库数超520w,扫描分析速度达到了百万组件分钟级扫描粒度。

三、全面精细的风险透视能力

以全面地、精细化地可视化报表呈现开源组件的安全风险,并提供解决方案,帮助安全人员精细化运营风险数据,同时也为开发人员指导修复,做到风险透视的简洁、高效。

四、高可用部署

SCA依赖mysql的master-slave双机房部署模式或minio的双机房mirror实现高可用部署,同时为实现产品服务高可用可讲两个机房的服务器节点加入k8s集群,依托其管控能力实现应用级别的高可用。通常情况下,每个应用部署两个实例且分布在两个不同机房可确保产品服务的可靠性。

未来展望

目前,SOFA Stack软件开发安全平台SCA产品源自于蚂蚁集团多年沉淀的代码安全分析技术,持续在金融、制造、汽车、互联网等各个行业落地实践,建设起来完善的软件供应链安全和开源治理解决方案,积累了丰富的实践经验,并不断致力于提供更细粒度的资产风险透视和更丝滑的融入CI/CD流程能力,助力企业安全治理。

这篇关于SOFAStack软件供应链安全产品解析——SCA软件成分分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/251595

相关文章

慢sql提前分析预警和动态sql替换-Mybatis-SQL

《慢sql提前分析预警和动态sql替换-Mybatis-SQL》为防止慢SQL问题而开发的MyBatis组件,该组件能够在开发、测试阶段自动分析SQL语句,并在出现慢SQL问题时通过Ducc配置实现动... 目录背景解决思路开源方案调研设计方案详细设计使用方法1、引入依赖jar包2、配置组件XML3、核心配

Java NoClassDefFoundError运行时错误分析解决

《JavaNoClassDefFoundError运行时错误分析解决》在Java开发中,NoClassDefFoundError是一种常见的运行时错误,它通常表明Java虚拟机在尝试加载一个类时未能... 目录前言一、问题分析二、报错原因三、解决思路检查类路径配置检查依赖库检查类文件调试类加载器问题四、常见

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N