0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

漫谈软件成分分析(SCA)安全测试技术

科技怪授 来源:科技怪授 作者:科技怪授 2022-10-13 09:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1 、什么是SCA

SCA(Software Composition Analysis)软件成分分析,通俗的理解就是通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术。我们知道在当今软件开发中,引入开源软件( 注1 )到你的项目中,避免重复造轮子是大家都再熟悉不过的了,比如开源库中开源软件按每年21%速度在增长( 来源Forrester报告 ),开源安全威胁成为企业组织无法回避的话题,而应用SCA技术对应用程序进行安全检测,实现安全管理是最行之有效的方法之一。

2、基本原理

  1. SCA理论上来说是一种通用的分析方法,可以对任何开发语言对象进行分析,Java、C/C++、Golang、Python、JavaScript等等,它对关注的对象是从文件层面的文件内容,以及文件与文件之间的关联关系以及彼此组合成目标的过程细节。从SCA 分析的目标程序形式上分,既可以是源代码也可以是编译出来的各种类型的二进制文件,分析的数据对象对程序架构,编译方式都是不敏感的,比如:类名称、方法/函数名称、常量字符串等等,不管目标程序运行在x86平台还是ARM平台,不管是windows程序还是Linux程序,都是一样的,简而言之SCA 是一种跨开发语言的应用程序分析技术。
  2. SCA分析过程:首先对目标源代码或二进制文件进行解压,并从文件中提取特征,再对特征进行识别和分析,获得各个部分的关系,从而获得应用程序的画像—–组件名称+版本号,进而关联出存在的已知漏洞清单。
  3. 由于SCA分析过程中不需要把目标程序运行起来,因此具有分析过程对外部依赖少,分析全面,快捷、效率高的优点;

3、业界TOP SCA工具分析

根据Forrester最新SCA报告,Forrester通过10个维度(注3)对不同工具进行打分,最后根据综合得分评选出如下业界TOP 10 SCA工具魔力象限图):

image.png

image.png

注:图片和数据引用来自Forrester报告

3.1工具概览分析

  1. TOP 10 SCA工具中有5款支持软件包(注2)开源软件SCA检查能力(synopsys/Sonatype/Veracode/Jfrog/GitLab),其他工具只支持源代码SCA检查能力。
  2. 5款支持软件包SCA检查工具中,对C/C++、Java、.Net语言支持的比较好,但对Golang、python、JavaScript语言支持能力偏弱,比如:synopsys支持的组件对象中前面3种语言占大头90%+,相应的检测率也高,而Golang语言的组件检出率则低很多。
  3. SCA已从主要用作对开源软件的检测向应用程序的典型编码问题检测趋势扩展,比如Veracode工具,它能提供了对诸如缓冲器溢出、命令行注入、死锁、重复释放、整形数溢出、UAF、格式化字符串漏洞,SQL注入等典型编码问题的检测能力。

4、影响SCA分析准确性的因素分析

  1. 从SCA原理可以知道影响分析准确性的因素分两个方面:其一是SCA工具支持组件的数量和检测算法,其二是应用程序引用开源软件的方式。
  2. 因为SCA工具是根据样本组件特征来匹配被测程序中的特征来判断应用程序是否引用该组件的,因此支持组件的数量越多,那么检测率也就越高,支持的组件数量越少,越会导致检测遗漏;另外检测算法和特征设计是否合理也直接影响到分析的准确性和分析效率,不同SCA工具厂商有不同的解决方案,就好比在手机上识别指纹/人脸一样,不同厂商识别的灵敏度和准确度都不一样。
  3. 应用程序在引用开源软件时,不同的应用程序即使引用同一个组件也存在引用不同的功能,引用功能的多少也各不相同,这样带来的结果就是在应用程序中包含该组件的特征数量也是大小不同的,引用功能多包含的特征一般也多,引用的功能少包含的特征也少。而应用程序包含组件特征的多少直接影响到SCA工具的检测的准确性,组件特征越少SCA工具检测越困难,因此即使两个不同应用都引用了相同组件,可能一个应用可以检测到,另外一个应用则无法检测出该组件。这种场景对SCA工具检测二进制文件尤其明显。
  4. 由于存在上述SCA分析准确性,在极限情况下如果无法检测出组件,那么也就无法知道应用程序中是否存在该组件的漏洞了。

5、总结:

  1. 不管是源代码文件的SCA检测工具还是二进制文件的SCA检测工具,他们是一种互补的关系,各有各的优缺点,比如二进制文件的SCA检测能发现构建过程中工具链引入的安全问题,而源代码的SCA则不能,SolarWinds事件就很好的说明了这一点。
  2. 目前SCA工具检测开源软件的已知漏洞是基于组件名称+版本号来关联出已知漏洞的,对部分编译场景(只有部分组件代码被编译到二进制文件中)和patch打补丁场景(漏洞已修复),误报率高。
  3. SCA工具扫描效率和准确性是一对矛盾体,这是工具厂商需要权衡考虑的地方,而既能提升准确率又不会降低扫描效率的技术永远是SCA工具厂商研究的课题和追求的目标。

注1:Top 10开源软件编程语言:JavaScript(51%)、C++(10%)、Java(7%)、Python(7%)、Ruby(%5)、Go(4%)、C(4%)、PHP(4%)、TypeScript(4%)、C#(3%)、Perl(2%)、Shell(1%)

注2:软件包是指产品用来安装、运行的发布包,里面包含了产品编译好的可以运行的二进制文件,比如.so/.jar/.exe/.dll/.pyc
审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    69

    文章

    5297

    浏览量

    90871
  • SCA
    SCA
    +关注

    关注

    1

    文章

    37

    浏览量

    12485
  • 代码
    +关注

    关注

    30

    文章

    4941

    浏览量

    73144
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    基于东芝产品的人体成分分析仪设计方案

    美元,预计2032年将攀升至372.8亿美元,2025-2032年复合年增长率高达8.60%。其中,精准便携的人体成分分析仪正是这一领域的关键设备之一。
    的头像 发表于 09-15 11:02 3562次阅读
    基于东芝产品的人体<b class='flag-5'>成分分析</b>仪设计方案

    边聊安全 | 软件单元测试的设计方法

    上海磐时PANSHI“磐时,做汽车企业的安全智库”软件单元测试的设计方法写在前面:软件单元测试的设计是一个系统化的过程,旨在验证代码的最小可
    的头像 发表于 09-05 16:18 4292次阅读
    边聊<b class='flag-5'>安全</b> | <b class='flag-5'>软件</b>单元<b class='flag-5'>测试</b>的设计方法

    汽车软件安全测试中的痛点与Bugspot解决方案

    上海磐时PANSHI“磐时,做汽车企业的安全智库”汽车软件安全测试中的痛点与Bugspot解决方案日前在汽车行业,软件正在重新定义驾驶体验。
    的头像 发表于 09-05 16:17 426次阅读
    汽车<b class='flag-5'>软件</b><b class='flag-5'>安全</b><b class='flag-5'>测试</b>中的痛点与Bugspot解决方案

    8月21日云技术研讨会 | 汽车信息安全全流程解决方案

    、体系认证的全流程安全可控?本次研讨会,经纬恒润将聚焦流程化建设、嵌入式开发、代码静态/动态测试、规范检测、漏洞扫描、软件成分分析、渗透测试
    的头像 发表于 08-14 13:41 1696次阅读
    8月21日云<b class='flag-5'>技术</b>研讨会 | 汽车信息<b class='flag-5'>安全</b>全流程解决方案

    FIB 与成分分析的关联原理

    离子束与样品的相互作用在FIB系统中,离子源产生的离子束经聚焦后轰击样品表面,引发一系列物理现象。入射离子与样品原子的原子核碰撞,产生溅射现象,这是FIB进行材料去除和加工的基础。同时,入射离子也可能通过级联碰撞将动能传递给样品原子,并在样品表面以下一定距离静止,即离子注入。此外,入射离子与样品的非弹性散射还会产生二次电子、声子、等离子激元以及X射线等,其中
    的头像 发表于 06-27 18:43 354次阅读
    FIB 与<b class='flag-5'>成分分析</b>的关联原理

    锂电池热失控原理及安全检测技术解析

    减少热传导偏差,提升小尺寸电芯测试精度; 采用多维度气体分析系统。 灵活扩展:可联合使用傅立叶红外光谱仪,同步分析CO、HF等8类气体成分。 —项 目 实 例— 检测流程
    发表于 05-12 16:51

    电磁兼容与信息安全测试系统平台软件

    电磁兼容与信息安全测试系统平台软件
    的头像 发表于 05-06 14:50 523次阅读
    电磁兼容与信息<b class='flag-5'>安全</b><b class='flag-5'>测试</b>系统平台<b class='flag-5'>软件</b>

    电磁兼容与信息安全测试系统软件

    电磁兼容与信息安全测试系统软件
    的头像 发表于 04-28 22:58 514次阅读
    电磁兼容与信息<b class='flag-5'>安全</b><b class='flag-5'>测试</b>系统<b class='flag-5'>软件</b>

    高光谱相机在生物医学中的应用:病理分析、智慧中医与成分分析

    企业,深圳市中达瑞和科技有限公司依托自主研发的高光谱相机与光谱云平台,在生物医学领域实现了多项突破性应用。本文聚焦其在病理分析、病毒检测及成分分析中的核心价值与实践成果。 一、病理分析:精准诊断与效率提升 高光谱相机通过非侵入式
    的头像 发表于 04-24 11:25 515次阅读

    基于SCA软件无线电系统的概念与架构

    1 软件通信体系架构SCA的基本概念 SCA:Software Communication Architecture,软件通信架构;继承了软件
    的头像 发表于 03-20 09:30 1490次阅读
    基于<b class='flag-5'>SCA</b>的<b class='flag-5'>软件</b>无线电系统的概念与架构

    直流充电安全测试负载方案解析

    专业化的安全测试负载方案进行系统性验证。本文针对直流充电安全测试需求,深入解析关键技术及实施方案。 一、
    发表于 03-13 14:38

    嵌入式软件测试技术深度研究报告

    嵌入式软件测试技术深度研究报告 ——基于winAMS的全生命周期质量保障体系构建 一、行业技术瓶颈与解决方案框架 2025年嵌入式软件
    的头像 发表于 03-03 13:54 761次阅读

    开源安全领航者!华为云 CodeArts Governance 构建更安全软件开发生命周期

    华为云 CodeArts Governance开源治理服务是针对软件研发提供的一站式开源软件治理平台,从合法合规、网络安全、供应安全等维度消减开源
    的头像 发表于 02-12 16:50 3029次阅读
    开源<b class='flag-5'>安全</b>领航者!华为云 CodeArts Governance 构建更<b class='flag-5'>安全</b>的<b class='flag-5'>软件</b>开发生命周期

    什么是热重分析(TGA)

    什么是热重分析(TGA)热重分析(TGA)在专业领域扮演着至关重要的角色。该技术通过精确测量样品在受控温度变化下的质量变化,来分析材料的热稳定性、分解行为和
    的头像 发表于 01-09 11:02 1746次阅读
    什么是热重<b class='flag-5'>分析</b>(TGA)

    扫描电镜与氩离子抛光技术在样品成分分析的作用

    功能材料分析的关键工具场发射扫描电镜(FE-SEM)是现代科学研究中不可或缺的工具,尤其在功能材料分析、微纳结构观测以及结构组分分析等领域。高分辨场发射扫描电镜的优势与传统的扫描电镜相比,高分辨场
    的头像 发表于 12-31 11:57 843次阅读
    扫描电镜与氩离子抛光<b class='flag-5'>技术</b>在样品<b class='flag-5'>成分分析</b>的作用