

国泰金控开始在国泰中台微服务应用中运用SBOM表追踪和记录软件组件的组成,以及时发现和修补漏洞,并在攻击事件后进行还原,从而提升软件供应链的安全。
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文档包含软件组件的关键信息,因此必须确保这些数据的机密和安全性。