SCA软件成分分析 简析(一)

这篇具有很好参考价值的文章主要介绍了SCA软件成分分析 简析(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、概述

SCA全称 Software Compostition Analysis,译为软件成分分析,即通过分析软件源码提取项目依赖的第三方组件及其版本、许可证、模块、框架和库等信息,生成软件物料清单(SBOM,Software Bill-of-Materials),根据SBOM分析项目是否使用了存在已知漏洞的组件,后期其它组件爆出漏洞时可根据SBOM快速排查受影响项目。解决针对开源软件的漏洞扫描、检测和管理问题。

二、概要分析

  1. 国内趋势

开源技术的应用极大的推动了大数据、云计算等各行业领域的快速发展。2021年3月12日,开源被明确列入《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》,支持数字技术开源社区等创新联合体发展,完善开源知识产权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务。

  1. 需求分析

首先,在企业应用多语言软件开发过程中,引入的开源代码和组件可能会含有漏洞,企业需保证软件安全性。原本采用开源软件就是为了降本增效,避免软件厂商的束缚,若因安全问题导致损失则得不偿失。再者,开源社区大部分都没有管理开源软件项目流程,而是公开由参与者共同维护,及其容易被恶意利用。

云原生下,开源软件中的漏洞容易遭到利用,扩大攻击面至整个软件供应链组成部分,由此影响至其他应用此软件供应链的项目。随着DevSecOps发展,SCA也是CI/CD流水线集成必须应用的工具。

此外,有效避免还有数据泄漏、知识产权或法律纠纷。

  1. 难点分析

  1. ☆特征:对于二进制或者代码片段提取到的特征的检测,目前二进制SCA能力上还有待突破,代码级SCA国内已有多种选择;

  1. 漏报:例如很多时候待测程序没有直接使用log4j,但是log4j可能被其他组件间接调用,没有完整的调用链分析,导致SCA漏报;

  1. 误报:因为SCA本身基于漏洞库检测的机制,一旦有漏洞组件被引入项目,即使漏洞并未被触发,且某些漏洞有及其复杂的触发条件,SCA都会报告。但有组件有的时候不得不用,那就对SCA提出了新的要求:在客户环境中针对性判断漏洞是否会触发、触发条件、触发可能性、高中低危等;

  1. 策略配置:需要有综合性的因素来组织策略,如上所述,不能仅靠漏洞高中低级别来配置封禁策略;

  1. 实际落地:①SCA要高效衔接企业内部开发流程,不能影响原开发流程及计划

②大规模开源组件的使用管理,加大对安全部门的负荷

③检测报告需要全面,因为需面对不同专业对象

  1. 可用性分析

兼容性要求:SCA工具需较大的开发量实现语言种类的覆盖,需支持多格式语言源码/多格式二进制;比如说Java,GO、Python、NodeJs;对于以上几种语言,可以通过分析pom.xml、go.mod、requirements.txt、yarn.lock等文件中的关键字段实现软件成分分析;

漏洞关联要求:SCA的各种漏洞信息来自于多种渠道,包括:NVD, CNVD, CNNVD, SCMs(如Github, Gitlab, Bitbucket等), 还有来自流行库上的公共提交,如Bugzilla和Confluence等漏洞追踪器。还需关注漏洞信息更新的及时性,持续优化。

易用性要求:SCA需轻量化嵌入DevSecOps内,若能与黄金管道中的SAST/DAST/IAST测试过程集成,使得CI/CD更平滑,那么SCA的易用性是极高的;

三、主要功能

  1. 漏洞管理:首先SCA本身需要有漏洞及配置扫描的功能,且漏洞库是否完整(完整是一个相对概念,部分厂家维护着自己的漏洞库),识别出的开源组件指纹是否能与漏洞库进行关联。

  1. 开源组件/许可证识别及管理:主要的几种方式有,源码包管理器内的依赖配置文件、基于哈希指纹匹配C/C++代码、代码片段克隆扫描、二进制/APK扫描、容器扫描;

  1. SBOM清单:通过SAC扫描生成,其中含基本信息:组件/库相关信息(名称、厂家、版本、许可证日期等)、漏洞信息(编号、类型、等级、影响组件修复建议等)、许可证信息(名称、链接、授权范围、合规性)

  1. 修复建议:因开发人员不是专门的安全人员,所以修复时需要有专业的建议;除了加速漏洞修复和应用上线时间外,参考建议可实现根级别修复,包括兼容性分析;

eg:log4j的真正漏洞代码出现在log4j-core的子组件。修复其他组件不一定能有效消除漏洞。很多产品都产生了误报的行为,让客户白忙一场。CNVD-2021-95914真实影响的是log4j-core这个组件,但由于log4j的<group_id>org.apache.logging.log4j</group_id>下有很多组件,如log4j-api, log4j-slf4j-impl等。但市面上部分SCA系统中,部分厂商会错误的把单独出现的非log4j-core的组件,比如log4j-api标为有CNVD-2021-95914漏洞,这会给修复工作制造噪音。

5.合规管理:SCA自带许可和策略管理系统,可以基于扫描到的信息(例如:数据库使用年限、许可证使用限制条款等),匹配用户需求(阻止项目违规开发、提前进入修复进程),进行相应的策略配置;

四、技术原理

SCA 的目标是第三方基础组件/可执行程序/源代码等类型的以二进制形式存储的文件,包括但不限于源代码片段或 Package,可执行的二进制组件/程序,基础 lib,tar/tgz 压缩文件,镜像/镜像层,广义的软件构建过程等等。因此,所有以二进制形式存储的文件皆可以是其分析目标。通过对软件汇编代码指令、代码结构、控制流图、函数调用关系等特征值对比,分析出二进制代码成分以及代码之间的相似性。

SCA 的方法不局限于具体的软件开发语言技术栈,即不关注是 Java、Python、C/C++、Golang 或者是 Node,还是 Docker(OCI)Image ,或者是广义的构建过程,而是从文件层面关注目标的各组成文件本身,以及文件与文件之间的关联关系以及彼此组合成目标的过程细节。简而言之,SCA 是一种跨开发语言的二进制文件分析技术。

五、其他相关

1.SBOM释义

SBOM(Software Bill of Material,软件物料清单)的概念源自制造业,其中物料清单 BOM 是用来详细说明产品中包含的所有项目的清单。例如在汽车行业,制造商为每辆车提供一份详细的物料清单,列出原始设备制造商制造的部件以及来自第三方供应商的部件。当发现有缺陷的部件时,汽车制造商可以准确地知道哪些车辆受到影响,进而通知车主维修或更换。

SBOM作为软件供应链安全关键的落地治理条件之一,能够统一软件信息接口,对采购软件和自研软件风险评判进行标准统一。关于SBOM信息数据的组成,可通过安全检测工具链接实现,管理过程中必要的技术控制卡点。SBOM常规包含内容如下:

软件成分分析报告,DevSecOps,安全,devops,Powered by 金山文档

Refer

https://blog.csdn.net/ubisectech/article/details/123506491?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-123506491-blog-125990445.pc_relevant_3mothn_strategy_and_data_recovery&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-123506491-blog-125990445.pc_relevant_3mothn_strategy_and_data_recovery&utm_relevant_index=3文章来源地址https://www.toymoban.com/news/detail-808362.html

到了这里,关于SCA软件成分分析 简析(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [系统安全] 四十九.恶意软件分析 (5)Cape沙箱分析结果Report报告的API序列批量提取详解

    终于忙完初稿,开心地写一篇博客。 您可能之前看到过我写的类似文章,为什么还要重复撰写呢?只是想更好地帮助初学者了解病毒逆向分析和系统安全,更加成体系且不破坏之前的系列。因此,我重新开设了这个专栏,准备系统整理和深入学习系统安全、逆向分析和恶意代

    2024年02月07日
    浏览(50)
  • 《软件工程》课程四个实验的实验报告(《可行性研究与项目计划》《需求分析》《系统设计》《系统实现》)

    实验学时:     2        实验地点:        任意           实验日期:    12月15日          了解:软件项目可行性研究及项目计划的基本原理与方法; 掌握:Visio等工具进行可行性研究和制定项目计划。 图书管管理系统更便于对图书进行分类和管理,对借阅

    2024年02月03日
    浏览(42)
  • [网络安全提高篇] 一二一.恶意软件动态分析Cape沙箱Report报告的API序列批量提取详解

    终于忙完初稿,开心地写一篇博客。 “网络安全提高班”新的100篇文章即将开启,包括Web渗透、内网渗透、靶场搭建、CVE复现、攻击溯源、实战及CTF总结,它将更加聚焦,更加深入,也是作者的慢慢成长史。换专业确实挺难的,Web渗透也是块硬骨头,但我也试试,看看自己未

    2024年02月13日
    浏览(42)
  • 安全研究 # 课题:二进制成分分析(Binary SCA)

    本文参考多篇文章写作而成,出处在文末注明(本文在课题开展过程中长期保持更新)。 SCA(Software Composition Analysis)软件成分分析,通俗的理解就是通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术。通常用来对软件源码、二进制软件包等进行静

    2024年02月16日
    浏览(35)
  • 2023爱分析·AIGC厂商全景报告|爱分析报告

    通用大模型市场当前虽入局者众多,但终局将高度集中,未来将由5-6家厂商主导;应用层厂商及甲方企业应着眼终局,从大算力、巨量数据集、端到端AI工程化能力以及应用生态伙伴等维度综合考虑,慎重选择合作伙伴。 中大型企业虽倾向于大模型的私有化部署,但由于中美

    2024年02月16日
    浏览(34)
  • 2023爱分析 · 元宇宙厂商全景报告 | 爱分析报告

      报告编委 黄勇 爱分析合伙人首席分析师 文鸿伟 爱分析高级分析师   目录 1. 研究范围定义 2. 市场洞察 3. 厂商全景地图 4. 市场分析与厂商评估 5. 入选厂商列表 1.    研究范围定义 研究范围 2021年3月,十四五规划中首次提及元宇宙,指出需要加强元宇宙底层核心技术基础

    2024年02月15日
    浏览(40)
  • 2023爱分析·低代码厂商全景报告|爱分析报告

    关键发现 低代码开始向甲方核心场景渗透,呈现两个显著特征:“更深入”、“更垂直”。更深入,即甲方愈发注重低代码在复杂业务场景的应用开发能力;更垂直,即甲方需要使用低代码开发行业垂直应用,因此对行业或场景组件产生需求。 2023年中国低代码市场规模为

    2024年02月14日
    浏览(36)
  • 2023爱分析·超自动化厂商全景报告|爱分析报告

    关键发现 当前的超自动化定义主要从技术组合角度阐述超自动化内涵,较难和业务价值建立链接。爱分析对超自动化作如下新定义:超自动化指利用RPA、iPaaS、AI、低代码、BPM、流程挖掘等自动化技术,实现组织端到端流程自动化以及新业务流程快速编排,帮助组织提升效率

    2024年02月14日
    浏览(36)
  • 故障分析报告

    故障分析报告应包括以下内容: 故障现象描述:详细描述数据库无法访问的具体表现,包括错误提示、访问延迟等。 故障发生时间:记录故障发生的具体时间,以便与其他事件进行比较,找出可能的关联因素。 影响范围:描述故障对系统运行的影响范围,包括用户数量、业

    2024年02月01日
    浏览(30)
  • 数据分析基础:数据可视化+数据分析报告

    数据分析是指通过对大量数据进行收集、整理、处理和分析,以发现其中的模式、趋势和关联,并从中提取有价值的信息和知识。 数据可视化和数据分析报告是数据分析过程中非常重要的两个环节,它们帮助将数据转化为易于理解和传达的形式,提供决策支持和洞察力。在接

    2024年02月07日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包