2021年底的Log4j漏洞让整个互联网措手不及——一个几乎每个Java应用都在用的日志组件被发现可以远程执行代码。2024年的XZ后门事件更离谱:有人潜伏了两年、逐步获取了维护者信任,然后在压缩工具里植入了后门。
现代软件开发中,一个普通应用可能依赖几百个甚至上千个开源包。大多数开发者只知道自己直接引用的那十几个,剩下的都是"依赖的依赖"——你根本不知道它们是谁写的、有没有被维护、有没有安全问题。
更麻烦的是修复成本。Log4j漏洞爆发时,很多公司花了几周甚至几个月才搞清楚自己到底有哪些系统用了受影响版本。因为没人知道自己的软件供应链里有什么。小公司更脆弱——大厂有安全团队,小公司可能全公司没有一个做安全的人。
可行的方向:用自动化工具生成SBOM、对引入的第三方包做安全审计、关注开源项目的维护状态。但最核心的改变是认知——软件供应链安全不是"合规问题",是"生存问题"。
