前言 前文讲到了利用DependencyTrack对代码进行SCA分析,但是当时是通过手动上传BOM并在UI上进行展示查阅,对于安全左移DevSecOps来说,必然需要在应用编码、构建阶段就对其进行安全分析 编码阶段可以使用类似IDEA插件来实现,本文将通过CI流水线来实现SCA分析。 Gitlab流水线介绍 本文不去讲解如何搭建Gitlab和对应的CI,只讲如何实现SCA的流水线。 附 流水线 stages: - sbom - sca - build 扫描的阶段 sca_scan: stage: sca image: ubuntu:latest 总结 本文讲解了利用DependencyTrack完成Devsecops中的SCA分析,保证了代码安全。
SCA是什么?我想可能很多人都有这个问题。SCA的全称叫做Software Composition Analysis,有的朋友可能直接把他叫做软件成分分析,也可以叫他组件安全分析。 这个东西最常见的地方就是github,github内置了一个简单的SCA扫描 今天我们主要聊聊白盒角度的SCA,SCA这个东西听名字好像很复杂,但是实际上把它聊的简单一点儿可以拆开两部分,一个是组件数据 >这篇文章中,我把SCA分成了3个阶段。 第一阶段 - 漏洞数据库 最早期的SCA主要构成是漏洞数据库,一般来说,SCA开发者会通过爬虫去爬取CVE等各种漏洞公示网站,其中最重要的是如何将漏洞关联到组件以及版本中。 现在主流的SCA大部分还停留在第一阶段,部分商业的SCA开始逐步探索第二阶段、第三阶段,但真正将SCA完全自动化接入到DevSecOps流程中,我想还有很长的路要走(找10个“人工”智能审核 :>)。
以下是参考fortify sca的作者给出的使用场景: ? 常规安全问题(如代码注入类漏洞)这块,目前的fortify sca规则存在较多误报,通过规则优化降低误报。 编码规范 尽量使用fortify官方认可的安全库函数,如ESAPI,使用ESAPI后fortify sca会把漏洞标记为低危,是可以忽略的漏洞类型。 再次扫描后我们发现fortify sca已经可以识别我们自定义的validate函数 ? 报告合并我们可以通过fortify ssc或者fortify sca的命令行或者图形界面操作。 ? 总结 Fortify sca总体来说一款很强大的代码安全扫描工具,但不可避免的有误报和漏报。
SCA区分数据总线和命令总线,区分后可在后者插入更多指令,提高数据传输效率。 使用SCA协议SSD读IO性能(蓝)在不同场景都显著提升。 基于SCA协议的数据: 1. 大文件场景,SCA与传统协议特征相似,但读性能仍有10-20%的提升(随IO speed 增加而扩大)。 总结:SCA协议对SSD在小文件场景的读性能有极大改善,归因于在协议设计时分离了命令和数据管道。 基于SCA协议 4K随机读场景的IOPS性能比传统协议高出66%左右,同样性能在扩展8pLUN中也表现一致,说明在物理颗粒工艺条件不改变的情况下,仅通过适配SCA协议,可增加单控制器4K读场景的性能。
SCA的二进制检测可以对源代码检测起到很好的补充:二进制 SCA 检测对象为二进制构建产物,无需源码。 二进制 SCA 和源代码 SCA 检测阶段不同,源代码 SCA 在开发阶段检测,二进制 SCA 在测试、交付阶段检测。在语言支持上互补,对 C++、C、Java、Go 等语言良好支持。 07 二进制软件成分分析实践应用7.1 开发安全检测源码级SCA结合二进制SCA的能力,预防开发流水线过程管控的疏漏,即使中途更换组件版本或配置错误的编译选项,仍可在编译构建和制品打包活动结束后进行二次检测 源鉴SCA结合运用丰富的知识库指纹样本:文件结构特征、文件hash分析、各类静态特征等融合分析能力,全面提升扫描精度:基于丰富的知识库特征样本:知识库覆盖主流的代码托管平台GitHub、GitLab、BitBucket 源鉴SCA在满足实现源码级检测技术的基础上,结合二进制SCA技术、运行时SCA技术及漏洞可达性分析等技术,有效帮助开发人员更好地管理和维护软件成分,减少无效漏洞的运营干扰,提高软件的安全性和可靠性,助力企业建立并有效落地数字供应链安全治理体系
在Python里,没有与scanf()直接等同的功能函数,因此需要格式化输入,就需要使用正则表达式的功能来实现,并且正则表达式的功能比scanf()更加灵活,功能更加强大,下面就来列出一些等同的表达:
这篇文章带领大家了解使用 Sentinel ,Sentinel SCA推出的微服务组件,可以用来作为服务降级服务服务限流和服务监控。也是阿里出品,和 Nacos 可以很好的配合使用。
SCA概述 SCA(Software Composition Analysis)译为软件成分分析,通俗的理解就是通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术。 SCA技术能够有效帮助使用者发现开源组件中的安全性问题。SCA主要有三种用例:开源漏洞管理、开源许可证管理以及SBOM清单。 影响SCA代码分析准确性的因素主要分三个方面:其一是SCA工具支持组件的数量和检测算法,其二是应用程序引用开源组件的方式,其三是底层漏洞库的广度和颗粒度。 ,对此,不同SCA工具厂商有不同的解决方案。 这种场景对SCA工具检测二进制文件尤其明显。
Gartner建议了生成SBOM的工具应当具有的能力: 〇 可融入构建过程,可自动创建SBOM; 〇 可分析源代码和二进制文件(如容器镜像); 〇 对检测的组件进行SCA检测生成SBOM; 〇 可对生成的 使用方(Consumer)、Example Bom fragment(片段示例) SDLC各阶段SBOM装配内容及方式说明: 图片 SBOM装配过程通过人为维护工作量较为巨大,建立元数据信息库,并借助SCA 当前软件供应链安全治理的落地主要考虑第三方开源组件的治理,主要通过SCA工具及相关治理办法,对软件引入的第三方开源组件进行威胁检测和管理。 成熟的SCA工具应当兼容多种SBOM格式,可导入不同供应商提供的不同格式SBOM,并对不同格式SBOM进行转换和集中管理,且便于融入到自动化流程。 悬镜源鉴SCA在满足以上SBOM能力需求的基础上,也在开源OpenSCA提供了公开SBOM生成工具,方便软件生产商自动生成SBOM清单。
https://cnb.cool/tca/code-analysis 境外开源:https://github.com/Tencent/CodeAnalysis 背景概述 ▼ 软件成分分析(SCA SCA 工具能够自动检测和报告安全风险、合规性问题以及过时的依赖项,从而提高软件的安全性和合规性。这些工具在现代软件开发中尤为重要,因为它们帮助团队在快速迭代中保持对外部依赖的可见性和控制。 T-SCA(试用版)是一款基于源码扫描的开源组件分析工具,能够自动识别项目源码中使用的开源组件,生成详细的组件清单,并检测潜在的安全漏洞,使得开发者能够轻松管理和监控项目中的开源组件,确保软件开发过程的透明性和可靠性 工具介绍 ▼ TCA主要集成了srcAuditor的能力,这是SCA的一个模块,是面向源码的安全扫描工具,用于分析源码中软件成分,License/Copyright合规风险,安全漏洞,开源组件投毒风险 TENCENT_CLOUD_SECRET_KEY=xxxxx 注意: 工具会在本地节点机中分析代码库,并连接腾讯云的开源组件知识库比对查询结果,并不会上传任何代码或片段 开始扫描 TCA需要团队自行接入扫描节点,使用SCA
先吐槽 五一期间,疫情实在是憋得无趣,于是就成生了编写一款 Goland 上的 SCA 检测的插件的想法。 这几天,笔者就在着力开发一款针对 Goland 的第一款 SCA 检测插件。 SCA 鲁迅曾经说过,好的程序猿肯定会读别人的源码。就如同牛顿的名言,站在巨人的肩膀上同理。在做插件开发的过程中,毫无疑问需要借鉴其它的插件是如何开发的。 主要是基于 PSI 的 API 来获取 go.mod 文件来进行 SCA 的检测。 插件的使用可以点击菜单栏中的 SCA Checker 中的 SCA Check 来运行,或者直接调用 action 来触发。插件的安装和使用可以参考这个教学视频。
依赖生命周期管理传统SCA工具的核心功能是对代码中引入的开源组件及它们的依赖关系进行盘点,形成SBOM清单,并在此基础上掌握代码中所有由开源组件依赖带来的漏洞风险。 然而,作为一种相对简单且容易落地的安全工具,SCA工具也有其局限性。 首先,SCA仅能基于已有的知识库进行风险梳理,也即只能检测已知开源漏洞;其次,SCA基于标准的漏洞库提供的漏洞风险等级并不能完全适配代码实际运行的场景,所以会导致部分并不会实际被触发的风险出现在SCA工具输出的漏洞风险中 在SBOM的基础上,解决上线后运营阶段的安全问题、实现安全研发和运营的闭环,不能仅仅局限于单个的SCA工具,而需要与其他更适配持续运营场景的工具结合,形成整体联动的解决方案。 首先,使用SCA输出SBOM是必不可少的。“噪音”的控制手段多种多样,可达性分析、运行态SCA、黑白名单管理都是可选的方案。
软件成分分析(Software Composition Analysis, SCA)是Gartner定义的一种应用程序安全检测技术,该技术用于分析开源软件以及第三方商业软件涉及的各种源码、模块、框架和库等 OpenSCA是国内排名第一、用户量最大的开源SCA工具,继承了商业级SCA的开源应用安全缺陷检测、多级开源依赖挖掘、纵深代码同源检测等核心能力,通过软件成分分析、依赖分析、特征分析、引用识别、合规分析等方法 不同于传统企业版 SCA 工具,OpenSCA 轻量易用、能力完整,支持漏洞库、私服库等自主配置,覆盖IDE/命令行/云平台、离线/在线等多种使用场景,支持Java、JavaScript(Node.js 企业级核心引擎,更高检出更低误报拥有企业级SCA核心检测引擎及分析引擎;基于海量知识库,多源SCA开源应用安全缺陷检测等算法,对特征文件进行精准识别,提高组件的检出率。使用教程1.
依赖生命周期管理传统SCA工具的核心功能是对代码中引入的开源组件及它们的依赖关系进行盘点,形成SBOM清单,并在此基础上掌握代码中所有由开源组件依赖带来的漏洞风险。 图片然而,作为一种相对简单且容易落地的安全工具,SCA工具也有其局限性。 首先,SCA仅能基于已有的知识库进行风险梳理,也即只能检测已知开源漏洞;其次,SCA基于标准的漏洞库提供的漏洞风险等级并不能完全适配代码实际运行的场景,所以会导致部分并不会实际被触发的风险出现在SCA工具输出的漏洞风险中 在SBOM的基础上,解决上线后运营阶段的安全问题、实现安全研发和运营的闭环,不能仅仅局限于单个的SCA工具,而需要与其他更适配持续运营场景的工具结合,形成整体联动的解决方案。 图片首先,使用SCA输出SBOM是必不可少的。“噪音”的控制手段多种多样,可达性分析、运行态SCA、黑白名单管理都是可选的方案。
依赖生命周期管理传统SCA工具的核心功能是对代码中引入的开源组件及它们的依赖关系进行盘点,形成SBOM清单,并在此基础上掌握代码中所有由开源组件依赖带来的漏洞风险。 然而,作为一种相对简单且容易落地的安全工具,SCA工具也有其局限性。 首先,SCA仅能基于已有的知识库进行风险梳理,也即只能检测已知开源漏洞;其次,SCA基于标准的漏洞库提供的漏洞风险等级并不能完全适配代码实际运行的场景,所以会导致部分并不会实际被触发的风险出现在SCA工具输出的漏洞风险中 在SBOM的基础上,解决上线后运营阶段的安全问题、实现安全研发和运营的闭环,不能仅仅局限于单个的SCA工具,而需要与其他更适配持续运营场景的工具结合,形成整体联动的解决方案。 首先,使用SCA输出SBOM是必不可少的。“噪音”的控制手段多种多样,可达性分析、运行态SCA、黑白名单管理都是可选的方案。
其中,腾讯Xcheck-SCA开源威胁管控平台通过了可信开源治理工具评估。继去年通过静态应用程序安全测试(SAST)工具能力要求评估之后,XCheck再次获得了信通院权威认可。 在大会开源安全和供应链分论坛上,腾讯开发安全产品规划负责人刘天勇带来了《二进制SCA技术在软件供应链安全中的实践分享》。 刘天勇介绍,Xcheck-SCA是腾讯自研的新一代软件成分分析系统,具备源码SCA和二进制SCA两大能力,以及数据全面、更新及时的开源组件知识库,经过长期内部实践及不断迭代优化,已建成了优秀开源组件检测能力 图片其中,二进制 SCA 能力是腾讯安全的独家技术优势。 作为软件成分分析系统,腾讯Xcheck-SCA有效应对了传统开源组件分析检测不全、检测不准、知识库信息维护难三大痛点,在安全漏洞检测层面,腾讯Xcheck-SCA支持各种开发语言的源代码及常见固件、镜像
但在实际应用中,SCA是不是应对供应链安全的最佳手段?还有哪些缺点?在实际应用中,SCA与SAST等工具该如何选择?本期话题将主要围绕软件供应链安全及SCA技术实践展开讨论。 2.SCA的是不是应对供应链安全的最佳手段?在实际应用中还有哪些缺点? @平淡无奇 SCA主要还是应对在开发过程中引入的组件和框架安全性评估。 @二狗子 前阵子看到一个讲影响SCA分析准确性的因素分析,这里简单引用一下: 从SCA原理可以知道影响分析准确性的因素分两个方面:其一是SCA工具支持组件的数量和检测算法,其二是应用程序引用开源软件的方式 这种场景对SCA工具检测二进制文件尤其明显。 由于存在上述SCA分析准确性,在极限情况下如果无法检测出组件,那么也就无法知道应用程序中是否存在该组件的漏洞了。 3.在实际应用中,SCA与SAST等工具该如何选择?
为了解决这类问题,软件成分分析(SCA)应运而生。 ——安全乐观主义点评 SCA 什么是SCA SCA,Software Composition Analysis,软件成本分析是一种对二进制软件的组成部分进行识别、分析和追踪的技术。 2019年,Gartner在报告中把SCA纳入AST技术领域范围,从而形成了包含SAST、DAST、IAST和SCA的应用软件安全测试技术体系,并正式发布了有关软件成分分析(SCA)的技术洞察报告。 目前市面上基本所有的SCA类工具都具备该能力。 主要有以下几个点做参考: 1、大方向上,没预算的用户选开源,正在做AST工具选型的选带有SCA功能的AST就可以,预算充足的或是对SCA管控需求比较强的就加一个商业SCA专项工具。
2018 年中下旬,达闼科技终于宣布研发出据称可以与波士顿动力比肩的服务机器人零部件产品——SCA 智能柔性驱动器。 作为少数全球范围内真正达到商业化运营的人工智能公司,达闼科技研发的 SCA 智能柔性驱动器不仅成为服务机器人重要的底层技术标准,可以更广泛地应用于机械制造加工、航空航天、精密仪器、健康医疗等等领域;也填补了中国长期在高端机器人领域的技术空白
因而,能够帮助管理和降低开源组件风险的 SCA 技术应运而生。常规的 SCA 软件成分分析工具可以通过分析组件版本及依赖,完成对引用的三方开源组件的检查,从而识别已知的组件漏洞以及授权许可风险。 因此,检测并识别源码中的恶意代码是满足 SCA 的一个必要功能。SCA 是通过从源代码中提取敏感行为函数的特征数据,与提前收集的恶意代码特征数据进行比对来识别源代码中的恶意代码。 同源检测技术是 SCA 技术的重要基础,源鉴 SCA 具有纵深代码同源检测核心能力,可以精准识别应用开发过程中引用的第三方开源组件,通过应用组成分析引警多维度提取开源组件特征,计算组件指纹信息,深度挖掘组件中潜藏的各类安全漏洞及开源协议风险 例如,常规的 SCA 技术对 jar 扩展名开源组件进行组件漏洞关联时,主要通过其版本号和组件指纹标识进行判断,二次开发后的开源组件,破坏了一部分指纹,可能导致无法识别。 源鉴 SCA 在满足实现源码级同源检测技术的基础上,结合二进制 SCA 技术、运行时 SCA 技术及组件漏洞热修复等技术,有效帮助开发人员更好地管理和维护软件成分,提高软件的安全性和可靠性,助力企业建立并有效落地数字供应链安全治理体系