引言
近日,全球网络安全行业创新风向标RSAC创新沙盒公布了本年度入围十强的名单,软件供应链安全企业Endor Labs凭借基于依赖关系建立应用开发生命周期的解决方案获得了广泛关注。
Endor Labs简介
Endor Labs成立于2021年,是一家专注供应链安全管理的美国公司,并于去年十月获得了2500万美元种子轮投资。在开源软件大行其道、软件供应链安全事件频发的背景下,Endor Labs基于SCA发展出了独具一格的“依赖生命周期管理”解决方案,其合作伙伴与商业客户中不乏Microsoft、Google、Uber、Zoom、Atlassian等知名企业。
依赖生命周期管理
传统SCA工具的核心功能是对代码中引入的开源组件及它们的依赖关系进行盘点,形成SBOM清单,并在此基础上掌握代码中所有由开源组件依赖带来的漏洞风险。
在研发运营的整个周期中,有了这份透明化的资产清单,研发阶段可以及时替换安全版本的组件或修复漏洞,运营阶段新的漏洞爆发或出现新的利用方式时能够按图索骥,快速定位漏洞位置及影响范围,协助制定更高效合理的修复方案。
然而,作为一种相对简单且容易落地的安全工具,SCA工具也有其局限性。首先,SCA仅能基于已有的知识库进行风险梳理,也即只能检测已知开源漏洞;其次,SCA基于标准的漏洞库提供的漏洞风险等级并不能完全适配代码实际运行的场景,所以会导致部分并不会实际被触发的风险出现在SCA工具输出的漏洞风险中,需要人工加以判别。
为了解决上述已知场景的局限和“噪音”带来的额外成本,Endor labs以依赖关系为中心,建立起了一整套依赖生命周期管理体系。
第一阶段,在依赖引入前,可以在Endor Labs的知识库里查询由组件的质量、受欢迎程度、最佳时间使用、支持性和其他指标组成的整体风险评分,综合判断是否引入该组件。
依赖引入后,Endor Labs的工具会梳理代码中包含的所有的依赖情况并输出可视化的SBOM清单,同时会统计单个依赖被引入的次数,记录组织中最常用的依赖版本,便于减少依赖项的总量、控制依赖面。
对所有引入的依赖执行漏洞检测后,工具会对这些依赖进行可达性分析,即分析该依赖是否会在程序运行中被实际调用,并由此代替漏洞严重性的指标,产生对应漏洞修复的优先级建议,降低开源漏洞的“噪音”。
最后,考虑到随着软件项目推进越来越膨胀的依赖清单,对于长期未使用及冗余的依赖项,工具还可以提供删除建议,精简依赖资产、避免依赖膨胀。
对于安全团队,Endor Labs的解决方案可以协助团队建立起对依赖关系的全面了解,同时消除大量“噪音”,降低鉴别成本,同时支持对自身和第三方的SBOM管理;对于开发团队,可以协助做出更好的依赖引入选择,同时获得更合理的漏洞修复优先级,进而实现安全的无痛嵌入。
另外,Endor Labs的产品还接入了ChatGPT,支持以对话形式提供相应的开源组件引入建议(含风险评分),以便帮助用户选择更优的开源软件。目前该功能尚在内测阶段。
更进一步:未知漏洞防御
Endor Labs的方案对“噪音”的解决方案确实有独到之处,但对SCA工具只能解决已知漏洞这个天花板的拓展仍然相对有限:在引入前通过对知识库中所有组件进行多维风险评分协助引入决策本质上仍然是对已知资源的再整合,于效率可能也并无益处。
在SBOM的基础上,解决上线后运营阶段的安全问题、实现安全研发和运营的闭环,不能仅仅局限于单个的SCA工具,而需要与其他更适配持续运营场景的工具结合,形成整体联动的解决方案。
首先,使用SCA输出SBOM是必不可少的。“噪音”的控制手段多种多样,可达性分析、运行态SCA、黑白名单管理都是可选的方案。
下一步,需要多渠道收集开源漏洞情报,实时监控应用代码的开源风险,并根据SBOM进行风险自查,结合业务环境评估修复优先级,根据应用版本计划自行安排修复节奏。
此外,持续安全运营的实现离不开RASP(运行时程序自我保护)技术。RASP能结合应用的逻辑及上下文,以函数级的精度对访问应用系统的每一段代码进行检测,实时监控安全状况、记录及阻断攻击,而无需人工干预。
对于尚无新版本组件可替换或不便升级组件的开源漏洞以及突然爆发的0day漏洞,RASP可以通过下发热补丁的方式,在不修改源码的情况下对攻击和恶意请求进行识别和阻断,实现对未知安全风险的及时治理,为审慎的漏洞修复争取宝贵时间。
OpenSCA+云鲨RASP SaaS为个人及企业用户提供0成本应用安全保护方案,协助搭建应用安全研运闭环,将积极防御能力注入应用中,实现应用安全自免疫;同时提供商业版,提供更完整的场景适配能力,欢迎联系我们。
GitHub:
https://github.com/XmirrorSecurity/OpenSCA-cli/
Gitee:
https://gitee.com/XmirrorSecurity/OpenSCA-cli/
OpenSCA官网: