智汇 IT
城启新篇

供应链安全就在你敲下pip install的那一刻

上周跟一个做创业公司的技术负责人吃路边摊,他啃着烤串突然拍大腿,说上周刚上线的用户中心收到安全告警——用的开源日志组件有未授权访问漏洞,攻击者顺着漏洞能爬走所有用户的手机号。

他第一反应是懵的。我们又不是做支付的小厂?怎么会被盯上?

这事真不是个例。

你根本不知道依赖里藏着什么

很多开发者写代码图快,上来就拉第三方包,管它是谁维护的,有没有人投毒,能跑通需求就行。

去年有个流行了快五年的前端工具包,维护者突然收了一笔来路不明的赞助,往代码里加了偷浏览器cookie的逻辑,不到三天下载量就破了十几万。很多小公司根本没来得及推版本更新,直接中招。

npm开源包依赖树可视化示意图
npm开源包依赖树可视化示意图

别觉得你用的是下载量几十万的热门包就万无一失。麻烦在于,你装的这个包本身没问题,它背后的间接依赖呢?一个不到两百行代码的日期格式化工具,背后能牵出来七八个你听都没听过的小模块。每个模块的维护者可能只有一个人,哪天他不想干了把账号卖了,或者账号被盗了往里面塞恶意代码,你根本发现不了。

我之前帮一个团队做代码审计,翻到一个做字符串处理的小工具,最后一层依赖是个三年前就没人更新的包,连维护者的个人主页都打不开了。

所谓的安全检测,很多时候是走个过场

大一点的公司可能有专门的团队做依赖扫描,小团队呢?十几个人的创业公司,技术负责人既要写业务代码,要盯上线,要处理用户的投诉,哪有空每周去翻所有依赖的版本有没有漏洞?

我见过最离谱的团队,安全扫描工具买了快一年,从来没打开过后台。当时采购就是为了过等保,买完就扔在角落积灰。

说白了,不是不想管,是管不过来。你花一周时间去审计依赖、升级版本,业务迭代的进度就拖一周,老板要催KPI,用户要等新功能,你说选哪个?

企业开源依赖安全扫描平台操作界面
企业开源依赖安全扫描平台操作界面

很多人觉得我从官方源拉的包,肯定安全?真不一定。去年PyPI上有个账号被撞库,攻击者上传了好几个跟热门包名字只差一个字母的版本,很多开发者打命令的时候手滑,直接装了带毒的版本。就算你有扫描工具,刚上传的恶意代码特征库还没收录,根本扫不出来。

我自己之前打命令的时候就打错过,把react打成了ract,按完回车才反应过来,吓出一身冷汗,赶紧把临时目录全清了。

真正的供应链安全,从来不是靠买工具堆出来的

很多公司一提到供应链安全,第一反应是买最贵的扫描工具,买顶级的安全服务,其实根本没用。

为什么?因为最容易出问题的地方,根本不是你能扫到的地方。你接的第三方支付接口,你用的云厂商的公共镜像,你对接的短信服务商,这些上游的东西,你根本没权限去审计人家的代码。

之前跟一个做金融科技的技术负责人聊,他们花了大价钱上了全链路的安全检测,结果上次出事,是因为合作的短信服务商被人拖库,用户的验证码直接被攻击者拿到,盗刷了几十万。你说这事能怪他们的扫描工具不够好吗?根本不可能。

所以现在很多团队的思路变了。不再追求把所有上游的漏洞都堵上——那根本不可能——而是做最小权限隔离。第三方依赖出问题了,最多能拿到日志文件,碰不到数据库的权限,拿不到用户的核心数据。就算被投毒,损失也能压到最小。

很多人对供应链安全的误解,就是要把所有上游的风险都掐断。其实哪有那么容易。你能做的就是在风险已经到你门口的时候,别让它直接冲进你家客厅。

上周那个啃烤串的技术负责人,后来花了一下午,把所有依赖的版本全锁死,又给用户中心的数据库加了只读权限。就算以后再出漏洞,最多也就是日志泄露,碰不到核心的用户数据。

他跟我说,以前觉得供应链安全是大厂才要操心的事,现在才明白,你哪怕只有一个开发者,只要你用了别人写的代码,这事就跟你有关系。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:供应链安全就在你敲下pip install的那一刻
文章链接:https://www.itcdj.com/it/358.html