SBOM:被Log4j炸出来的软件供应链‘户口本’,现在卡在哪了?

没人想再经历一次Log4j之夜。

2021年12月那波席卷全球的漏洞预警,把所有企业IT部门的值班电话打到发烫。哪怕是一个平时连官网都很少更新的地方政务系统,翻遍后台日志也能找到藏在三层依赖之下的Log4j2组件。当时所有人都在问同一个问题:我们的系统里,到底还藏着多少不知道的开源代码?

SBOM就是那时候被推到台前的。

别把SBOM当成一张列清单的Excel表

很多人第一次听SBOM,第一反应不就是软件的物料清单吗?列个组件名、版本号,谁不会啊。

错。

真正能用的SBOM,得能回答四个问题:这个组件是直接被代码引入的,还是作为某个组件的依赖被间接拉进来的?组件的哈希值是多少,有没有被篡改过?组件用的是什么开源许可证,会不会有合规风险?整个依赖链的上下游关系是什么样的?

说白了,SBOM就是给整个软件系统上的数字户口本。你家有几口人、彼此是什么关系、有没有前科,翻户口本一目了然。不是你随便写个“家里有三口人”就算数的。

开源软件供应链SBOM依赖关系拓扑图
开源软件供应链SBOM依赖关系拓扑图

很多人对SBOM的误解,就是把它当成一个静态的列表。实际上现在的SBOM是要动态生成的——你每次拉取新的开源组件、每次发布新版本,SBOM都要自动更新,不然你上周刚扫完的组件清单,这周就因为某个自动拉取的依赖过期了,那等于白扫。

现在拿SBOM说事的,一半是赚焦虑钱的

说实话,这两年安全圈的风口换得比手机壳还快。SBOM火了之后,几乎所有做DevSecOps的厂商都把自己的产品加了个“SBOM生成”的功能,上来就吹“一键生成全链路软件物料清单,彻底解决供应链漏洞”。

听着就离谱。

我上个月见了个做跨境电商的CTO,说他们去年花了几十万上了套头部安全厂商的SBOM系统,结果导出来的清单里,连他们用的某个开源支付组件的二级依赖都没列全。合着花了几十万,买了个半残的清单。

现在全球的SBOM生态其实还处在非常早期的阶段。NTIA早在2021年就出台了SBOM的最小要素标准,国内也在2023年出了对应的国标征求意见稿,但真正落地的企业有多少?

大厂肯定是走在前面的。像华为、阿里这种每年发布上万版本软件的公司,现在内部已经把SBOM当成了发布的必选项——没有生成对应版本的SBOM,代码根本合不进主干。但中小厂呢?别说动态生成SBOM了,很多中小厂连自己用了多少开源组件都数不清楚。

全球主流SBOM工具能力对比矩阵表
全球主流SBOM工具能力对比矩阵表

不过话说回来,也不能全怪厂商吹牛逼。Log4j那次的教训太痛了,很多企业的安全负责人本来就天天被监管盯着,现在有人说能帮你把所有藏着的漏洞都找出来,哪怕是智商税,也得先交了再说,至少能给老板和监管交差。

SBOM最大的敌人,根本不是技术

SBOM最大的敌人,根本不是技术
SBOM最大的敌人,根本不是技术

很多人觉得SBOM的瓶颈是技术,是扫描不够准、生成不够快。真不是。

你想想,你买了一套商业的ERP系统,厂商给你交付的时候,会不会主动给你一份完整的SBOM?大概率不会。很多闭源软件的厂商,连自己的系统里用了什么开源组件都理不清楚,更别说给你提供SBOM了。你总不能自己反编译人家的软件去扫吧?真扫了,人家还说你侵犯知识产权。

还有标准打架的问题。现在全球主流的SBOM格式有两个:一个是Linux基金会推的SPDX,一个是OWASP推的CycloneDX。这俩的字段定义、兼容逻辑都不一样,你用A厂的工具生成的SPDX格式的SBOM,放到B厂的平台上,可能连个组件名都读不出来。就像你拿着人民币去美国买东西,人家只收美元,你还得自己换汇,多麻烦。

还有开源社区本身的问题。很多开源组件的维护者,自己都不一定能说清楚自己的组件依赖了多少其他的代码——毕竟现在的开源项目,动则依赖几百个组件是常事,谁能记的全?有时候你拉了一个标着“无依赖”的开源工具,结果拉下来之后自动下载了十几层依赖,连维护者自己都不知道。

更别说合规的坑了。很多企业用了带GPL许可证的开源组件,本来是想省点开发成本,结果SBOM一扫出来,才发现按照许可证要求,自己的整个业务代码都得开源。这时候你说怎么办?总不能把整个系统重写一遍吧。

3年后的SBOM,不会是安全部门的专属工具

3年后的SBOM,不会是安全部门的专属工具
3年后的SBOM,不会是安全部门的专属工具

我对SBOM的未来其实没那么悲观。

3年后的SBOM,不会是安全部门藏在后台的专属工具。它会变成和软件版本号、3C认证一样的标配——不管是你买个办公SaaS,还是采购一套政务系统,交付的时候必须附带对应版本的SBOM,不然你连政企采购的门槛都摸不到。

再过两年,SBOM会和全球的漏洞库打通。哪天哪个组件爆了高危漏洞,系统不用你手动去查,直接自动匹配所有用到这个组件的业务线,把影响范围、修复方案直接推给对应的开发负责人。不用再像Log4j那次那样,全公司的人熬几个通宵,一行一行日志翻。

但也别把SBOM吹得太神。

它就是个基础的溯源工具。就像你家的户口本,只能证明你家有几口人,不能保证你家不出小偷。你要是指望靠一张SBOM清单,就能解决所有的软件供应链安全问题,那和你买了个门禁就觉得家里永远不会进贼,没什么区别。

对吧?

作者|fawen

排版|fawen

审核|小准

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:SBOM:被Log4j炸出来的软件供应链‘户口本’,现在卡在哪了?
文章链接:https://lfdjt.com/info_23_31034.html