近两年,软件供应链安全越来越受重视,除了持续强化软件安全外,也有台湾企业开始结合软件物料清单(Software Bill of Materials,SBOM)增强软件供应链的安全性,国泰金控就是其中一家,他们在国泰中台微服务应用中,开始运用SBOM表关注和记录软件组件的组成,及时发现和修补漏洞,并在攻击事件后进行还原,进而提升软件供应链的安全。
负责打造这个安全防御圈的是国泰金控数字数据暨科技发展中心的开源创新发展小组。该小组成员之一的DevOps工程师赵振胜近日在iThome台湾云计算大会上分享了他们在软件供应链安全防护中应用SBOM的经验。
软件供应链的威胁在近几年日益增加,例如近年来爆出的Log4j零日漏洞,曾引发大规模零日的RAC漏洞被黑客利用,导致企业只要引用这个组件就容易受到攻击。今年还出现了另一个针对软件供应链的攻击,名为XZ Utils的后门供应链漏洞,再再显示出企业软件供应链安全的重要性和迫切性。
SBOM软件物料清单的组成基本要素
为了加强软件供应链的安全,国泰金控尝试在软件供应链安全防护中结合SBOM软件物料清单,使用SBOM表关注和记录软件组件的组成,提高软件组件的可见性和透明性,并先从国泰自己的中台微服务供应链开始导入。
根据美国商务部和国家电信与资讯管理局(NTIA)对于SBOM的组成基本要素有7项,包含供应商名称、组件名称、各组件名称的独立ID或Hash值、版本资讯、组件彼此间的关联关系、组件作者资讯等。
赵振胜指出,SBOM是提高软件供应链安全的关键工具。在SBOM软件物料清单中提供了软件的版本、依赖关系、组件以及许可证资讯,当软件供应链受到攻击时,安全团队可以利用这些资讯确认影响并快速找出有问题的软件组件,将损害降到最低。
尤其,过去开发人员经常使用开源组件或第三方组件时,随着对这些软件组件依赖的增加,开发人员对软件够掌控的部分就越少,因而增加了软件供应链的安全风险,他认为,通过SBOM能够有效解决这个问题。
软件供应链安全防护结合SBOM表有四大好处
赵振胜指出,在软件供应链安全防护中结合SBOM表有四大好处。首先,SBOM表可以提供软件组件的可见性和透明度,增强软件供应链的安全性;其次,通过详细的组件列表,可用于漏洞管理,并能在攻击发生后协助进行事件还原。
此外,由于SBOM可以列出每个应用程序中的组件及其版本,一旦遇到特定漏洞时,就可以快速知道公司是否使用这些组件,并可用于风险评估以决定修补程序的优先级。最后,SBOM还可以提供许可证资讯,确保符合合规及监管要求,像是金融业。
国泰中台由复杂的微服务架构组成,分为网关层(Gateway)、复合层(Composite)、以及基底层(Base)三层式架构,因此,赵振胜表示,每个微服务架构间的组件与SBOM中的关联性创建非常重要,甚至需要将SBOM的工作流程结合软件开发生命周期(SDLC),导入到每个工作环节和步骤中。
国泰中台微服务导入SBOM遇到的挑战
他指出,国泰金控一开始先在微服务中台中,利用SBOM表,加强软件供应链的安全性,但在导入过程中也遇到不少挑战,包括如何选择SBOM表导入时机、SBOM表解析和管理、SBOM表可视化以及如何确保SBOM表资讯的完整性和不被篡改。为了克服这些挑战,他们导入不少开源工具,来逐一加以解决。
例如,为了产生微服务供应链SBOM表,国泰团队采用了CycloneDX和Syft两款开源工具,来进行SBOM表的生成,接着将SBOM表集成到工作流程(Pipeline)各阶段,包括源码(Source Code)、 构建Jar文件以及镜像文件分别导入这两个工具。
由于SBOM本身是JSON格式,为了方便解析及管理,他们还使用另一款开源工具Dependency Track,利用SBOM即时分析依赖组件并识别漏洞,来可视化和管理第三方组件及相似性。
赵振胜表示,Dependency Track本身提供了多种串联功能,可以支持CycloneDX格式的SBOM作为输入,并可以与Slack以及Jenkins串联作为输出,还可以使用常见的整理软件来管理漏洞。
导入SBOM表后,从Dependency Track界面中,不仅看到组件名称以及版本资讯及使用许可资讯,开发人员还能查看所导入的应用程序,包含弱点,不同弱点会以不同颜色区分,并且可以点击查看更详细的资讯。此外,该界面还提供审核功能,允许开发人员对每个弱点进行修复回复和提出审核建议。
国泰金控还使用了Google的GUAC创建可视化的SBOM表,来提供依赖管理和对软件供应链安全的全面视图。从可视化的SBOM表中可以用树状图的方式呈现应用程序中不同组件之间的关联。
赵振胜表示,团队创建了签核和授权机制,以确保SBOM不被篡改。例如,导入了Cosign工具,用于SBOM签核,确保SBOM表的异动历程都有完整的记录。此外,在SBOM导入后,进一步将应用程序集成到DevOps敏捷的CICD流程中,通过验证方式来确认SBOM资讯的完整性和防止异动。
不仅如此,他们还导入VEX文件来收敛开发团队及安全团队发现的漏洞,来了解已知的漏洞的组件在其使用的产品环境中的可用性,以及黑客是否可以利用该漏洞造成威胁。
赵振胜强调创建左移(Shift Left)观念的重要性。他表示,企业必须将SBOM纳入开发流程,以便在软件开发生命周期的早期阶段展开评估和解决漏洞。此外,已上线服务的SBOM管理也是必须关注和纳入考量的重点项目。他提到说,SBOM文件包含软件组件的关键资讯,因此必须确保这些数据的机密和安全性。