为了更好地倡导网络安全“大众点评”理念,关注重点领域和热点品类,聚焦重要结论和争议观点,并让甲乙双方同台探讨视角互补,在《2024中国网络安全产品用户调查报告》发布之际,安在推出了“百家说事”直播秀第一辑活动。针对当期主要话题,邀请甲乙双方安全专家共同参与讨论,通过不同视角的对比和认知,总结多方观点观点以飧读者。
首场直播主题为《软件供应链安全,SCA可堪重用?》。特邀电信研究院云原生软件安全团队技术总监游耀东,某电商科技公司安全专家杨文斌,悬镜安全高级解决方案架构师凌云三位嘉宾出席。
从上到下、由左至右分别是:
张威、凌云、游耀东、杨文斌
围绕供应链安全、开源产品、软件开发安全、SCA工具等话题,嘉宾们展开了深入的讨论,并思考了甲方企业该关注供应链安全产品的哪些能力,SCA工具在供应链安全中的具体作用,以及供应链安全的未来会有怎样的变化。
SCA,即软件成分分析,是一种对二进制软件的组成部分进行识别、分析和追踪的技术。
张威介绍,在2000年代初期,随着开源理念和开源软件的流行,企业开始意识到管理和市计开源组件的重要性,最初这些工作主要是人工手动进行的,依赖于开发者的知识和经验来识别和管理开源组件,缺乏系统化的管理和审计工具。
直到2002年,美国黑鸭软件Black Duck Software公司成立,意味着市场上开始出现了早期的SCA解决方案。SCA工具能够自动识别软件中的开源组件,并与已知漏洞数据库进行匹配,检查已知的安全漏洞,SCA工具的出现大大提高了识别和修复安全漏洞的效率。
2019年,Gartner在报告中把SCA正式纳入了AST应用安全技术领域范围,SCA工具开始成为软件开发生命周期中的一个标准组成部分,SCA重要性再次提到了新的高度。
2020年以来,开源组件的使用得到了爆发式发展。Gatner报告显示,全球99%的企业在研发的应用中使用了开源组件,但同时近九成的软件项目存在已知开源软件漏洞,SolarWinds、Apachelog4j漏洞等黑客入侵事件,直接让开源安全漏洞威胁暴露在了人们面前。
张威指出,从目前的趋势来看,SCA产品部署量较大,增长率较高,现已进入稳健增长区;互联网、软件/IT服务、金融、制造、交通/物流等行业是目前主要的用户群体;未来,国企自研软件及信创软件开发市场将是该产品快速增长领域,预计到2028年,市场规模可达到22.01亿元。
产品满意度而言,悬镜安全、绿盟科技、深信服、安恒信息、奇安信、360数字安全、亚信安全、墨云科技、安全玻璃盒、阿里安全是2024年SCA产品领域的佼佼者。其中,悬镜安全从2023年的第九名上升到了2024年的第一名。
数字供应链的需求趋势可以从开源代码的提交量、下载量的增长趋势来证明。提交量方面,从Java、Python等数据量来看,总体项目量已经达到了400万,版本量已经达到了六百万;下载量方面,从2018年到2023年下载量为5000亿次,2023年高达4万亿次。从这些数据中可以看到,开源代码项目已成为了软件开发最主要的支撑。
相对应的,数字供应链风险趋势也有了显著的上升。从报告来看,自2019年到2023年,数字供应链攻击呈指数级上涨,到2023年数字供应链攻击达到了惊人的245000次。此外,根据中国信通院的调研数据,企业遭受软件供应链攻击的方式更加多样化,比如供应中断、攻击自研代码、恶意篡改、供应链投毒等。
同时,悬镜供应链安全情报中心捕获到了大量开源组件投毒事件,涵盖Python、NPM等主流开源仓库,并且发布了这些投毒包的行为获取和分析,依托悬镜安全团队强大的供应链SBOM管理与监测能力和AI安全大数据云端分析能力,对全球数字供应链安全漏洞、投毒事件、组件风险等进行实时动态监测与溯源分析,为用户智能精准预警“与我有关”的数字供应链安全情报。
面对数字供应链风险,企业应该采取怎样的方案?
凌云表示,首先企业要明确其内部应用软件的构成和分类。凌云将企业应用软件分为了三类,分别为OSS开源软件、COTS商业软件和合作开发软件,针对这三类软件,企业要审核其内部是否存在漏洞。通常而言,这些软件会存于代码仓库、制品仓库和镜像仓库,因此企业要围绕这些内容做软件组件资产梳理、软件组成成分分析、开源组件风险识别、风险组件修复/替代方案。
凌云介绍,SCA对于数字供应链风险的应对方案分为两个方面。首先是在上线前,可分为两处场景,一处是具备源代码掌控的场景,源鉴SCA同时具备多种SCA技术,包括源码SCA、二进制SCA及运行时SCA,可以对源代码和制品包进行成分的分析、依赖的分析、漏洞的分析;还有一处是不具备源代码的场景,其更依赖于对二进制软件的成分分析,需要供应商提供相对应的SBOM清单,然后再结合二进制的分析做一致性的对比;运行时SCA是针对运行时应用,进行组件级资产测绘,准确评估数字业务运行时真实动态加载的第三方组件及相关风险。
另一方面,对于上线后的软件运行监控管理,则依赖于运行时的SCA防护,核心是探针技术。应用层级的探针可以在应用运行时抓取所依赖的开源组件,不仅可以在运营过程中做监控,还可以在此过程中做动态的防护。这块悬镜源鉴SCA基于数百万的插桩应用经验,探针技术已经非常成熟。
关于SBOM安全管理,凌云指出,首先对于开源组件要形成企业级的基线,而通过SBOM可以快速对比基线的符合情况。其次,在产品发布前,要去做安全制品和安全镜像在SBOM上的确认和检查。凌云表示,从设置基线到产品发布,其可形成闭环。而在以基线衡量风险时,还可以结合外部的供应链风险情报,包括投毒风险情报、漏洞风险情报,之后还可以持续地追踪、修复SBOM中这些相应的问题,以做到快速的定位和响应。
SBOM可以做到资产管理、漏洞管理、安全事件管理,以及额外的扩展能力。
●资产管理方面,其可查看软件资产数量,从组件出发,溯源被哪些服务在线上使用,从而构建资产图谱,并基于应用包、文件等做一些钻取检索。
●漏洞管理方面,从漏洞出发,可以订阅最新情报,溯源哪些组件被影响;从应用维度出发,可以查看应用制品SBOM的漏洞信息;安全事件管理方面,可以追踪漏洞修复状态,并按照时间维度统计漏洞的产生,同时在订阅漏洞情报后,可对运行的应用做出告警。
●扩展能力方面,其支持其他风险维度的信息记录,具备SBOM多风险维度组合过滤等能力。
什么是数字供应链的安全情报能力?凌云表示,首先在供应链安全情报生产阶段,要具备和各个开源社区的合作关系和全球供应链管理监测能力,这是风险来源;其次,在运营过程中,要对从各数据源所获得的情报进行加工,包括情报预处理(数据去重、数据清洗补全、标签标定)、情报人工研判(复现、标签标定、补丁验证、LoC、PoC|EXP、VPT)、全球首发风险(0Day漏洞、投毒)、组件断供研判(组件停服、组件短弓、组件许可变更);之后可以通过SaaS-API等服务,将其推动到消费端。凌云表示,悬镜云脉XSBOM能在6小时内获取最准确的安全情报,对全球数字供应链投毒情报、漏洞情报、停服断供情报进行实时动态监测与溯源分析,并提供情报查询和预警、提供修复方案、安全组件评估、工具检测、关联SBOM等能力,为用户智能精准推送“与我有关”的数字供应链安全情报。
在具体落地方面,凌云举例,数字供应链投毒情报包含了投毒分析复现、组件投毒基本信息、投毒技术分析以及组件投毒修复方案。通过安全情报能力,企业可以知晓投毒的目标、版本、恶意行为、影响范围、在官方仓库中的下载次数。悬镜的云脉XSBOM还具备可利用性验证(风险入口、危害范围、POC、EXP)和可达性分析(组件可达链路分析、漏洞污点函数可达链路分析)。
将这些信息结合到安全检测工具(包括IAST交互式检测工具、SAST代码审计工具、SCA软件成分分析),借由这些工具,企业可将其和检测的数据进行匹配,无论是对于SBOM的资产信息,还是对于历史的简单任务数据,都可以做到完整的排查,利用这些投毒的基本信息可以定位企业内部的资产、组件等有无受到影响。同时,企业也可以通过运行时的SCA技术,做到漏洞的热修复和临时的缓解措施,为企业从定位问题到修复问题提供了缓冲期。
基于SCA的供应链安全治理实践,凌云介绍了数字供应链安全防火墙。本地仓库在拉取中央仓库时需要经过供应链防火墙,其对有风险的组件拉取行为会进行阻断,禁止进入内网。其次,在开发侧进行本地引入组件本地开发时,防火墙会对有风险未及时清退的组件进行拦截。而安全管理人员可根据企业实际情况和使用阻断记录等信息,对防火墙策略进行及时调整。
凌云还介绍了,通过SCA可以专注于有效的供应链安全风险。悬镜源鉴SCA可结合SAST白盒代码审计的能力,做开源软件分析中漏洞可达链路的判断,以衡量漏洞的真实性。其次,悬镜源鉴SCA可以结合整个软件安全检测的工具链,包括ASTs应用安全检测工具链(IAST、SAST、DAST),做到漏洞风险的排序。漏洞风险的排序包含组件升级(升级组件兼容性分析、升级组件直接依赖且间接依赖风险最小)、组件中间件(直接升级中间件,拉去新版本镜像)、修复漏洞(打补丁,环节配置,热补丁缓解,WAF规则)和策略管控(临时白名单延期修复、质量门禁、策略风险管控、专项审计修复)。
经过了种种能力的落地实践,最终要做到对供应链和供应商的风险判断。
供应商角色包括商业化采购、开源项目、开源维护团队,企业需要对其进行软件供应链的空间测绘,分别可从自研、采购、开源软件三个维度入手,其中包括软件包、补丁包、更新包、物料清单,主要分析与之对应的源码文件、二进制文件,之后可生成相应的风险报告。
在风险报告中有关于漏洞信息、许可证信息、敏感信息、合规配置等信息。通过此风险报告可描绘出供应商的风险画像。之后,通过对于软件供应链的资产梳理,企业可进一步对供应商的威胁暴露面进行排查,以实现供应链方面的应急响应。
最后,凌云介绍,悬镜SCS数字供应链安全管理平台可对以上所说的三种供应链来源做出相应的检测和管理。此外,悬镜SCS还可以结合企业的业务环境和外部系统,做一些软件发布的审查,以及相关的产品版本管理。而这所有的信息都可对接到用户的SOC系统,有了这些供应链攻击事件的输入,用户就可以迅速做出定位、响应和修复。
话题一:对于供应链安全和相关的安全产品,从甲方视角来看,您有怎样的感受?杨文斌:研发安全,供应链安全,包括从第三方供应商进行采购等都是开源安全治理需要重点关注的领域。关于供应链安全产品,由于在2018年公司自研供应链安全产品时需要和安全厂商有所交流,所以早在那时就知晓了悬镜SCA产品,可以说其和《中国网络安全产品用户调查报告》中的描述相符,悬镜确实不错。
游耀东:无论是关基行业,还是其他一些相关的行业,SCA都是最热门且最核心的供应链安全产品。其原因在于:1、软件定义一切,几乎每个企业都需要大量的软件开发;2、企业大规模的上云导致开源软件的使用率越来越高,加之信创业的蓬勃发展,外部开源断供的风险也在不断增加。3、最重要的是开源软件的问题非常多,而SCA的“摸清家底”正好能对症下药,SCA在软件成本分析、许可证风险、漏洞风险、软件代码开源比例检测方面,都有很好的实践。
话题三:二进制SCA、源码SCA和运行时SCA有着怎样的区别和联系?凌云:区别方面。首先是它们的分析对象各有不同,源码SCA的分析对象是软件的源代码;而二进制SCA的分析对象是编译好的二进制软件包;运行时SCA的分析对象是运行时对于软件的监测。
其次,以分析对象为基础,其所对应的检测阶段各不不同。源码SCA主要应用于软件编码开发和构建阶段,这样可以尽早地发现问题,实现安全左移;二进制的SCA主要应用于软件引入和软件发布,可在上线前再进行一轮审查;运行时SCA主要是在运营阶段提供实时的威胁监测和防护。
最后的区别在于实现难度。源代码SCA的实现难度较低,但其上限非常高,比如在兼容性和准确性方面会有较好的优化和实践。而二进制SCA和运行时SCA与之相比,实现难度相对较大。
联系方面,此三者是整个SCA的重要组成部分,它们可以涵盖软件供应链从引入、生产到运营等各个环节,以及不同的场景。此三者共同构成了企业对于软件供应链开源治理的不同手段和技术路线。
话题四:有无免费的SCA产品?其和厂商提供的SCA产品有何区别?杨文斌:有些SCA安全厂商会开放SCA的SaaS版本,都是免费的。与需要收费的SCA产品相比,其局限性较为明显,在漏洞库、组件库、输出报告等方面并不全面。
话题五:对于甲方企业来说,只有SCA产品是否足够?游耀东:只有SCA肯定是不够的,其只能满足最低的管控要求。由于每一种安全工具都有自己的强项和劣势,所以只有将各个工具综合起来使用才能发挥出最好的效果。对于工具的诉求,首先是低误报、更精准和快速反馈;在工具联动方面要具备安全检测编排、漏洞交叉验证、漏洞优先级等能力;对于工具的自动化能力,其诉求为尽量减少人工的干预,以及能够自动化AI提示。总而言之,高效智能综合应用是供应链安全产品的核心诉求。
话题六:对于优耀东所提的诉求,悬镜有着怎样的优势?凌云:对于悬镜而言,开发安全和软件供应链安全是主要的研究方向,因此其最显著的优势就在于工具链的联动。悬镜在主要的研究方向上具备应用安全检测技术、交互式应用安全检测技术和动态的检测技术,基于这种自主研发的技术,悬镜具备相关的平台,可让多种工具在其上进行联动。另外,特别是针对中小用户,悬镜提供了开源版本的OpenSCA,目前是全球最大的开源数字供应链安全社区。OpenSCA继承了源鉴SCA的多源开源应用缺陷检测等核心能力,具备软件成分分析、依赖分析、特征分析、引用识别、合规分析等功能,支持漏洞库、私服库等自主配置,覆盖IDE/命令行/云平台、离线/在线等多种使用场景,可对于中小用户或个人开发者有非常好的使用体验。
话题七:在采购SCA产品时遇到过哪些挑战?该如何避坑?杨文斌:对于SCA产品来说,其最重要的能力是“高效地发现”和“快速地应急”。高效发现方面,误报率要低,而误报率的影响主要体现在两个方面,其一是漏洞库是否全面,其二是开源组件的资产梳理是否准确;快速应急方面,产品若想做到“快速”二字,就需要把漏洞资产、业务资产、网络资产、组织资产关联起来,这样才能精准的在这条路径上发现风险点,以达到高效的处置。
在和厂商对接时,企业需要额外关注“厂商内部漏洞库的结构模式和自己的需求是否契合”。此外,漏洞库的更新也是关键之一。由于大部分国企在互联网出口方面的管控比较严,因此其无法和厂商云端的特征库进行同步,只能做到本地部署。也就是说,“如何将厂商的漏洞库更新实施同步到本地”成了大部分国企所要面临的问题,不然漏洞预警就会延后。
此外,如果进行互联网部署,企业会开放自己的互联网端口,此时就涉及到一个问题,企业会否将自己内部精准的风险路径统一到云端?我们要知道的是,SCA本身也是一个严重的风险点,企业得保证厂商的SCA产品不会是更大的威胁源。
游耀东:安全工具或多或少都会对业务造成一定的影响,特别是在整改方面,当企业资产量过大,肯定会面临特别多待修复的软件和漏洞,这就会给一线带来额外的工作量。企业对此的解决思路主要体现在几个方面:首先是先易后难,即从SCA“摸清家底”入手,然后再考虑全面的工具使用和漏洞整改;其次是抓大放小,即优先处理高危漏洞;第三是步步为营,可将已有平台的漏洞库接入SCA ,在取得一定的成效后,才去推广整个SCA体系。除此之外,甲方要从实际需求入手,结合企业自身的特点对SCA进行选型。
话题九:悬镜会从哪几个方面改善用户在SCA上的体验?凌云:首先,悬镜会从源码SCA、二级制SCA、运行时SCA三个技术本身入手,将其在组件库、框架、准确性等一系列技术上的上限不断拔高;其次,悬镜会关注漏洞库的运营,逐步完善、完备漏洞库和知识库的数据;最后,悬镜会将相关技术和AI相结合。
与AI的结合主要体现在这几个方面:首先是智能化地识别和分析,比如在与AI结合之后,真正智能化地将组件源代码分析出来,而不是对相关的依赖关系进行剪辑;其次是形成自动化的风险评估,包括组件真实的风险等级、历史性的漏洞记录、安全公告和设计反馈等;第三是智能推荐和自动化修复,即在SCA分析完的问题之后,通过AI自动化地做到替换组件、优化代码结构,这将有助于开发人员更快地解决问题。
杨文斌:开源治理从本质上来讲非常契合安全左移的理念,即在引入阶段就将安全风险扼杀在了摇篮,其可消除企业许多麻烦。因此业内有呼声表示,希望官方能为行业建设安全库,同时在更新时添上相应的准入和退出机制,这样大部分的工业安全问题或研发安全问题就能引刃而解了。
凌云:当下,生成式AI的发展驱动了两个主要趋势,其一是在黑客大量使用AI的背景下,威胁正在不断地增长和变化,其二是大多数企业正致力于和AI进行深度融合。对于能自动发现供应链漏洞的黑客攻击,传统的安全防护体系难以抵挡,因此将安全技术和AI相融合就非常重要了。
另一方面,正如杨文斌所言,若官方能结合厂商的安全能力建设出可信的代码库、组件库、依赖库,那这对于企业在开源组件上的治理将会有极大的提升。而这也是悬镜接下去会重点参与的项目和筹划方向。
游耀东:安全能力说到底应该从optional到 mandatory,再到 by default,最终目标应该是默认的。所以,即使我们目前没有业界统一的安全组件库,各个企业也应该逐步形成自己能掌控的、安全的、默认的检测能力来提高效率,即所谓的内生安全;其次是脍炙人口的AI+,面对大量的软件,人工成本实在过高,因此若能充分利用AI来减少反应时间,提高检测效率,这对于甲乙双方的发展而言,都是最好的决策。