对于基于SCA技术相关的工具在市场上并不少见,但作为一家商业企业选择将企业级SCA技术开源,这在业内尚属首次,也是最值得关注的一点。在本次发布会中,悬镜安全创始人、CEO子芽在发表了《用开源的方式做开源风险治理》主题演讲,阐述了OpenSCA的能力以及在将其开源这一动作的背后,他们是怎样的考量。
悬镜安全创始人、CEO 子芽
子芽指出,现代应用大多数都采用组装的方式而非纯自研,且目前应用中的开源成分占比达到78-90%。这些数据意味着,无论是政策标准还是行业需求,开源都是大势所趋。在这一环境下,除了过往大家所熟知的外部通用漏洞、业务逻辑漏洞之外,还要面对第三方开源组件中的成分缺陷以及他所经常强调的异常行为代码,这些成为突破过往认知里面的一个新的风险面。
他在现场还提到了最近一个热门事件中的漏洞——Log4j 2,并以此展开分享了自己的一些思考。
首先,要加强源头的检测。将SCA(软件成分分析)工具对接入DevOps的流程之中,保障软件构建时所应用的开源组件的安全性,确保存有漏洞的组件不会被引入。结合IAST工具,在功能测试时去检测是否存在漏洞风险。
其次,要做到出厂时免疫。针对随时可能会爆发的0day漏洞,子芽建议应用RASP(应用运行时的自我防护),该技术可以基于情境感知以及热补丁技术对大部分RCE类未知漏洞攻击进行有效阻断,而这一能力也是子芽为何会如此推崇它的重要原因。
第三,从整个软件供应链的角度看,必须要做好相关的安全运营,结合SCA和SBOM(软件物料清单)工具,做到持续且全面的洞察每个应用软件的组件情况。
简而言之,通过Log4j 2漏洞可以看出,既要从源头入手去做好漏洞及安全风险的发现工作,同时也要做到在软件迭代、版本更新的发布后的威胁免疫工作,这一工作也许看似很难甚至会影响效率,但实际上通过现有的SCA、SBOM以及DevSecOps工具链中的各类工具,完全可以做到全面保障软件供应链安全运营,大幅降低甚至规避风险的产生。
看不清、摸不透、跟不上、防不住
——开源风险治理痛点
谈到开源风险治理,子芽分享了他所总结的四大痛点:
1、看不清。如果在没有应用任何管理工具的情况下,那必然会不清楚应用中真实使用了多少开源成本,如果这都不清楚,那后续谈何风险治理?
2、摸不透。对于开源软件中存在多少真实可被利用的中高危漏洞不清楚,而不同开源软件的许可证甚至还会存在合规性和兼容性等风险的可能。
3、跟不上。对开源软件漏洞的真实影响范围不清楚,对于广大用户而言,要想做到快速跟踪定位每天都在产生的新增漏洞是一件极为困难的事情。
4、防不住。不少用户对开源软件的已知漏洞如何快速修复都并不了解,对于典型未知漏洞的预防能力和风险评估能力也是欠缺的。
安全前置 源头赋能 积极防御
建立规范的开源治理体系
基于上述的痛点,子芽认为,建立规范的开源治理体系,将会令企业级用户具备对未知漏洞的积极防御能力,具体到如何建立方面,他也分享了自己的建议。
1、统一入口,把控源头。建设组件引入单一可信源,统一开源组件的引入入口及流程规范。
2、安全前置,资产梳理。在这里子芽建议,开源治理有必要前置到开发阶段甚至是需求、架构设计阶段。与此同时,资产梳理同样重要,需要定期审查资产的风险信息,对不同使用场景下的软件进行分类管理,并通过SBOM工具生成详细的软件物料清单。
3、分批整改,积极防御。基于风险的优先级对风险组件进行分批整改和复查,并通过应用RASP来建立威胁免疫能力。
4、以人为本,源头赋能。子芽曾不止一次地强调人在安全建设中的重要性,在开源治理体系中也并不例外,他表示,安全是每个人的责任,除了要做好权限分配和管控之外,还要将安全能力赋能给产研团队,也就是从源头进行赋能,共同为安全负责。
核心能力继承自悬镜安全商业级产品
艰难的决定令其OpenSCA能力大幅提升
谈到本次发布会的重点——OpenSCA时,通过子芽的介绍,我们了解到,它并非是一款全新的产品,而是源自于悬镜安全旗下一款商业级SCA产品——源鉴OSS开源威胁管控平台,作为后者的开源分支,意味着OpenSCA自诞生起就具备强大的开源应用安全缺陷检测的核心能力。
需要强调的是,OpenSCA作为源鉴OSS的开源分支,继承了后者在开源应用安全缺陷检测方面的核心能力,其检测引擎支持依赖分析、漏洞分析、成分分析、SBOM分析以及合规分析。
OpenSCA毕竟是从商业级产品中分支出来,但对于一家商业公司而言,出于商业的考虑,肯定也会做一些取舍,子芽也坦言,将哪些能力开源出来也的确是经过了诸多探讨。比如在最早的OpenSCA方案中,则只是将云引擎放出,这主要考虑的是用户可以将需要检测的内容上传到云端,然后通过云引擎去检测分析,但悬镜安全也注意到,有一些用户所使用的是私有环境或非联网的环境,那么这意味着OpenSCA对他们而言就是空中楼阁。
“在经过内部激烈的讨论后,最终确认将组件和成本的检测引擎开源出来,也就是让OpenSCA具备本地化检测能力,虽然做出这一决定之前纠结了很久,但我们认为这是非常有必要的。”子芽分享道。正是这一决定,也让悬镜安全此次发布的OpenSCA具备了相比此前传统开源SCA工具在风险的检出率、误报率等方面都有了大幅提升。
在支持语言方面,目前悬镜安全OpenSCA首批支持的是Java、JavaScript以及PHP这三类语言,同时子芽表示,在未来会将目前商业化工具已支持的语言陆续全部开源出来。
子芽总结道,悬镜安全OpenSCA项目具有丰富的编程语言和知识库的支撑、对组件依赖的深度支持和可视化SBOM分析、支持对开源许可证合规性及兼容性风险分析以及企业级核心引擎所带来的更高检出和更低误报的四大优势,可以覆盖包括编码阶段、构建阶段、测试阶段以及安全管理等场景。
在演讲的最后,子芽表示,希望通过“用开源的方式做开源风险治理,和大家一起,守护中国软件供应链安全!”