组件式开发的常态化,使应用程序组件中的漏洞层出不穷,软件成份及成份风险的可见性,成为供应链风险治理的重要一环。在此背景下,越来越多企业将软件成分分析(SCA)作为开发的重要组件贯彻到了开发流程中去,成为企业代码开发的安全基线。然而,快速发展的市场需求也往往会伴随着鱼龙混杂的炒作泡沫。SCA作为一种新兴的软件代码安全能力,多数企业用户对其技术原理、功能价值以及应用方式还不是很清楚,对如何选型合适的SCA方案也同样存在很多困惑。
为了更好地了解企业用户对软件成分分析工具的需求及应用现状,总结SCA技术成功应用经验,安全牛基于第十版全景图相关细分领域的调研数据,特别邀请了安普诺信息(悬镜安全)、安天、比瓴科技、墨菲安全、奇安信、思客云6家(厂商顺序不分先后)国内软件成分分析SCA技术代表性厂商,联合发起《软件成分分析SCA应用指南》报告研究(以下简称“报告”),对当前SCA技术的用户需求、能力建设、典型应用、成功案例以及发展趋势展开研究调研。2023年6月20日,报告正式发布。
报告关键发现
- 在软件供应链安全风险及安全能力左移需求的驱动下,软件应用安全正在从单一的测试能力向开发过程和供应链安全等泛场景化方案演进,在产品形态上也呈现出从AST(应用安全测试)向供应链安全管理扩展的趋势。
- 报告调研发现,超过50%的受访企业表示已经关注并愿意在应用开发项目中使用SCA类安全工具,其中45%的调研者表示会在选型应用安全防护工具时优先采用SCA方案。
- 我国的SCA技术研发和市场应用均晚于国外,其技术的起源也有一定差异。国外用户的知识产权意识相对较高,SCA产品在代码审计、许可合规和兼容方面的能力比较突出;而国内用户更加关注监管合规,包括对开源漏洞风险的管理以及软件可维护性,因此目前国内SCA产品更多是以漏洞识别、修复和响应处置作为主要能力。
- 随着软件供应链安全事件的不断升级,目前国内、外SCA的市场应用需求已经逐渐趋于一致,我国主流的SCA产品在安全检测和许可合规等能力表现上也在快速接近国际厂商。
- SCA技术可以应用于软件供应链中的多个场景下,其目标用户群体包括软件开发工程师、安全测试人员、安全运维人员、风控人员和信息系统审计人员等。本次报告调研数据显示:当前SCA技术使用者中,安全管理人员占比56%,研发人员占28%,法务和风控人员占11%,安全运维人员占比5%。
- 报告调研发现,目前SCA技术仍然快速发展,未来的产品定位将会从成分检测工具转变为供应链安全管理型工具,更多SCA技术能力或将被融合到体系化的软件供应链安全管理平台中。
- 随着SCA技术产品化应用的持续推进,不同厂商产品的功能和性能差别将逐渐明显,具体情况如下表:
SCA应用价值
SCA是一种跨开发语言对应用软件的组成结构进行成分检查和分析的技术,通过识别应用软件所采用的开发框架、组件/库、模块等关键成分信息,可以对软件制品或交付件进行风险分析、跟踪和溯源管理,帮助用户在软件供应链过程中实现安全漏洞修复、开源风险控制、法律风险规避等软件风险管理活动。
本次报告研究认为,SCA技术是软件开发集成度和供应链安全需求上升到一定阶段的必然产物,是软件供应链安全的重要组成部分,包括成分识别、风险分析和风险治理三个逻辑依次递进的能力,其中:
- 成分识别是风险分析的基础。它依赖知识库的积累为风险分析提供基础数据,成分识别的粒度和广度决定了风险管理的精准度,其基本功能组件包括组件成分识别、代码片断识别、漏洞识别和许可类型识别四部分;
- 风险分析是提升风险管理效率的重要前提。风险分析的算法决定了风险管理的效率,包括开源漏洞分析、代码同源性分析、漏洞可利用性分析、许可兼容性分析等功能;
- 风险治理是SCA能力和用户价值的重要体现。它通过更加友好 、细致和符合场景化的功能为用户提供风险预警、追踪/溯源、应急排查、防护处置等软件风险闭环管理的可视化服务。
SCA关键技术
SCA的基本原理是基于软件生存周期对软件结构进行逆向分解,识别出不同的成分和组件,以及这些成分中含有的已知漏洞和知识产权类型。因此,SCA技术应用时,不仅需要横向贯通软件的生产、发布、部署、运营等全部环节,同时也要能够纵向融合不同语言的源文件、库文件、开源组件、包管理工具等多种成分。根据调研,本次报告将组件成分识别、漏洞识别修复、许可合规性分析、同源代码分析、风险追溯管理定义为SCA技术实现中的5个关键性技术。
SCA能力建设挑战
报告研究发现,尽管SCA技术已经开始受到国内企业用户的广泛关注,但其技术应用尚处于较早期的发展阶段,用户在应用组件安全能力构建中会存在以下挑战:
- 在软件开发流程中推行软件成分安全检测,会增加软件开发成本和开发人员的工作量,落地实施会不同程度受到使用者的阻力。
- SCA检测的有效性依赖组件和漏洞知识库的持续更新,但这些数据来源广泛,多样化程度较高,漏洞情报收集和运维管理的工作量较大。
- 软件版本迭代频率较高场景下,SCA插件的部署或升级会导致DevOps平台持续集成和部署业务中断。
- 实际项目中,不标准、不规范的项目管理,使应用组件没有有效的兼容和基线支持,给SBOM的生成、管理和标准化应用带来了一定难度。
- 组件依赖性的复杂性及漏洞修复流程的复杂性都严重影响着漏洞修复的效率。
- 多数SCA工具在漏洞检出后,都可以给出新版本升级和修复建议。但对单个组件进行版本升级,通常会对相关组件造成连带性影响,导致升级后部分功能不可用。
- 企业代码资产管理不规范,在出现新的漏洞需要快速响应时,难以在第一时间定位到各个产品的代码仓库,致使突发事件的应急响应失败。
- 成分标识、漏洞管理方面的行业标准、技术要求、规范还不足,企业建设实践缺少基准和依据。
SCA能力构建
为帮助企业用户做好SCA技术应用的能力建设,报告基于对SCA关键能力的研究分析,从组件成分识别、集成能力、风险管理三个维度给出了SCA技术能力构建模型。
通过调研访谈,本次报告还总结出以下SCA能力建设建议:
- 从场景化需求入手,并结合能力构建模型,理清自身的软件风险管理需求、使用对象和用户规模。
- SCA的检测应该遵循安全左移的原则,这能有效减少复杂的组件依赖和开发流程给漏洞修复带来的影响。
- 选择与研发工具兼容性更强、自动化程度更高的SCA方案,有效减少研发安全管理的复杂度,提升SCA使用有效性。
- SCA应覆盖企业中软件流转的全部过程,特别是要做好组件或软件出入口关键节点的覆盖和成份合规管控,并与相关的生产管理系统做好联动,将安全检测融入整个项目管理活动中。
- 从风险管理的角度,不同的软件安全检测能力要纳管到统一的软件风险管理平台,实现风险闭环管理,提升全局风险管理的能力。
- 要做好SCA知识库的持续维护与优化,保持SCA识别能力长期有效。
- 要做好相关人员的安全意识培训,并建立明确的使用制度,这也是保障SCA有效落地的重要因素。
我国SCA技术代表性厂商
为了帮助企业用户进一步了解我国SCA技术的应用状况和发展成果,本次报告依据第十版中国网络安全行业全景图中“软件成分分析”细分领域的研究数据,对领域中的部分代表性厂商进行了调研访谈,并对其在SCA技术应用方面的能力特点进行了研究和分析。(厂商顺序不分先后)
安普诺信息(悬镜安全)
悬镜安全坚持创新驱动价值增长的商业理念,已成功研发了代码疫苗技术和下一代积极防御框架,并能为DevSecOps提供全栈闭环产品和数字供应链安全组件化服务,主要产品包含OpenSCA/源鉴SCA开源威胁管控平台、灵脉IAST灰盒安全测试平台、云鲨RASP/RASP SaaS自适应威胁免疫平台等。通过其推出的第三代DevSecOps智适应威胁管理体系,可以从威胁建模、开源治理、风险发现、积极防御到安全度量多维度赋能DevSecOps全流程的各关键环节。
安天
安天通过20余年自主研发积累,安天已形成威胁检测引擎、高级威胁对抗、大规模威胁自动化分析等方面的技术优势。在“关口前移,防患于未然”的安全要求下,安天也开始把安全能力基因向供应链侧拓展,并基于反病毒引擎和安全内核模块,打造新一代软件供应链安全能力。在2022年网络安全冬训营上,安天正式发布了“国内外供应链安全现状及应对举措”的相关研究成果,并提出了相应的对策和应对举措,可以帮助我国用户更好地理解并有效防范软件供应链的攻击风险。
比瓴科技
比瓴科技专注于构建软件安全创新解决方案,并积极构建不依赖于人的软件安全开发能力,帮助企业提升软件开发系统水平及持续性合规能力。比瓴科技目前的主要产品包括瓴镜和瓴域,其中:瓴镜是面向软件开发企业提供开源软件安全的整体解决方案,支持多种代码成分分析和风险识别能力;瓴域是可编排的、自动化的开源软件治理(ASOC)平台,通过安全编排技术,设计针对开源软件安全的开发安全运营剧本,帮助企业切实落地软件供应链的治理工作。
墨菲安全
墨菲安全目前自主研发了包括供应链资产识别管理、风险检测、安全控制、一键修复的完整供应链安全管理能力,并基于SBOM识别技术围绕软件全生命周期打造了软件供应链安全管理平台。在软件供应链安全方向,墨菲安全在分析和研究各种安全缺陷和安全隐患方面有较好积累,能够帮助用户更积极地发现、收集、分析、研究、报送漏洞信息。同时,墨菲安全的OSCS社区已经有近百名较活跃的开源安全贡献者,已经成功帮助500+大型开源项目提升了代码安全性,为100w+开源项目提供代码安全风险检测服务。
奇安信
奇安信是一家技术能力非常全面的国产网络安全综合服务商。在软件开发安全领域,奇安信研发推出的开源卫士产品是一款集开源软件识别与安全管控于一体的软件成分分析系统,具备开源资产识别、开源风险分析、开源管控、集成等较全面安全防护能力。它通过智能化数据收集引擎在全球范围内获取开源软件信息及其相关漏洞信息,利用自主研发的开源软件分析引擎为企业提供开源软件资产识别、开源软件安全风险分析、开源软件漏洞告警及开源软件安全管理等功能,帮助用户掌握开源软件资产信息,及时获取开源软件漏洞情报,降低由开源软件带来的安全风险,保障企业交付更安全的软件。
思客云
思客云长期致力于静态代码安全测试、动态渗透安全测试、安全测试管理平台等软件安全测试工具的研发与应用,特别是在静态代码测试方面,思客云积累了丰富的研发、应用与实践经验,并以此衍生出了和SCA技术相关的软件安全咨询服务、安全测试体系建设、安全开发体系建设以及软件安全知识培训,可以为用户提供完善的软件安全测试管理理念和安全测试管理的解决方案,并构建覆盖软件开发全生命周期的安全保障。
目前,《软件成分分析(SCA)技术应用指南》已经在安全牛商城上架,获取完整版本报告,请点击识别下方预售二维码: