你是否知道工程师随便编写的一个返回"Hello World"这么简单的微服务,后面居然依赖着上百个软件包、5万多行代码?你又是否知道这些软件包在开源世界的来源、它们能带来什么样的安全风暴?
现如今引用开源项目成为再习以为常的事,但你知道如果用的这个开源代码包是一个遭黑客污染过植入了后门的有毒组件,会有什么影响吗?今天想聊聊软件供应链攻击。
各行各业都有供应链,就像一家车厂,它生产整车,不可能从轮胎、车窗玻璃、车门把手做起。正如物理世界的任何产业都有自己的产业链、供应链一样,在虚拟世界的软件业也一样,任何终极软件产品,都用到很多的虚拟“零部件” - 以代码库形态存在的组件、框架、工具,而且这些“零部件”本身也高度依赖其他“零部件”。
实际上,随便一个软件,按绝对代码行数来算,一个不小心有一半是第三方的,例如在一些微服务里,自己的代码只占10%,也一点都不奇怪。
Hello,World 隐藏的秘密
每一个软件工程师在学习一门新技术的时候,都会从最简单的“Hello,World”程序开始。可是世界上确实没有免费午餐 - 表面越简单的东西背后的代价可能也越大。例如,你想用JavaScript+Node.js开发一个只能对网络请求返回“Hello,World”回复的微服务&#