网易首页 > 网易号 > 正文 申请入驻

npm install 1个回车键,让3成代码库埋了雷

0
分享至


全球开发者每天执行 npm install 超过 50 亿次,其中 34% 的代码库从未审查过 lockfile。这不是懒,是系统性盲区——攻击者早就摸透了这套心理。

最近一波针对 npm 生态的攻击,目标根本不是安全工程师。是那些敲完命令就切窗口的人。攻击链条很干净:拼写近似包名 → 混入依赖树 → 静默执行。没有零日漏洞,没有复杂加密破解,就是赌你不会多看一眼。

lockfile 的幻觉:确定性 ≠ 安全性

package-lock.json 被设计用来锁定版本,确保"昨天能跑,今天也能跑"。但这个设计有个副作用:它让开发者误以为"锁定=安全"。

真相是 lockfile 只记录当时 registry 里的包状态,不保证那个包本身干净。

攻击者常用的手法叫 typosquatting(拼写劫持)。react-dom 和 react-d0m,肉眼扫过去几乎没差。npm install 解析依赖时,如果 package.json 里写错了、或者被恶意 PR 改了,lockfile 会忠实记录这个错误版本,然后代代相传。

更隐蔽的是"后向污染":lockfile 生成时包还是干净的,几周后攻击者上传同名恶意版本,registry 策略允许覆盖。老 lockfile 里的哈希对不上新包,但多数 CI 配置不会因此报错——它们只检查"能不能装",不检查"是不是原来的包"。

自动化扫描的盲区:90% 与 10% 的博弈

npm audit 和第三方扫描工具能 catch 已知漏洞,但有个前提:漏洞得被收录进数据库。新上传的恶意包、零日构造的攻击载荷,扫描器是盲的。


GitHub 2024 年供应链安全报告显示,平均每个 npm 项目依赖 174 个直接包,间接依赖中位数超过 1000 个。让一个人逐行审查不现实,但让机器全权代理又过于乐观。

折中方案是分层:CI 跑自动化扫描,关键版本升级强制人工 diff lockfile。

diff 看什么?不是版本号升降,是包的 resolved URL 和 integrity 哈希有没有变。一个补丁版本更新,如果哈希全变了,要么是被篡改了,要么是作者删了重发——两种情况都值得警惕。

时间线复盘:一次典型攻击怎么发生

2024 年 3 月,某知名工具链的依赖被投毒。攻击时间轴如下:

第 0 天:攻击者注册与合法包只差一个字符的域名,发布功能完全正常的 1.0.0 版本。

第 14 天:该包被某热门脚手架间接依赖,进入大量项目的 lockfile。

第 47 天:攻击者发布 1.0.1 补丁,加入针对特定 CI 环境的数据外泄代码。版本号符合语义化规范,更新日志写"修复边界 case"。

第 52 天:某大厂安全团队发现异常出站流量,溯源时 lockfile 显示一切"正常"——版本号、哈希、来源 URL 都没报警。直到人工比对发现 1.0.1 的 tarball 体积比 1.0.0 大了 400KB。


多出来的部分是混淆后的矿工程序。攻击者赌的就是:没人会看补丁版本的体积变化。

防御清单:从"信任但验证"到"验证才能信任"

完全手动审查不现实,完全自动化又不够。几个可落地的中间态:

1. 锁定 registry 源。用私有镜像或 verifiable 的缓存,避免直接命中 npm 官方 registry。即使官方被投毒,你的构建环境有 24-48 小时缓冲期。

2. 启用 lockfile 的完整性校验。npm ci 比 npm install 更严格,会拒绝任何与 lockfile 哈希不符的包。代价是慢 20-30%,但 CI 环境本来就不是求快的地方。

3. 关键依赖做二次签名。用 Sigstore 或自建的签名体系,给内部核准的包打标记。构建时只认带标记的版本,registry 上的更新自动隔离。

4. 把 lockfile 当代码审。PR 里 lockfile 变更超过 10 行,强制要求说明"为什么变"。这个规则能拦住 70% 以上的可疑更新。

最危险的假设是"我没被盯上"。npm 生态的开放性决定了,攻击成本极低而防御成本极高——这种不对称性本身就是漏洞。

一个值得玩味的细节:被投毒的那家大厂,事后复盘发现,最早引入恶意包的开发者其实点了"查看 diff",但界面默认折叠了 lockfile 变更。他看了,又好像没看。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
64年毛主席给钱学森递烟,他刚要接时,主席却突然收回:自力更生

64年毛主席给钱学森递烟,他刚要接时,主席却突然收回:自力更生

冰语历史
2026-04-02 14:36:06
拔萝卜带泥!逃往美国的恒大“二把手”,邻居却是另一名潜逃富豪

拔萝卜带泥!逃往美国的恒大“二把手”,邻居却是另一名潜逃富豪

二大爷观世界
2026-03-14 18:43:53
美国人终于明白,当年“误炸”中国大使馆,为何我国不反击?

美国人终于明白,当年“误炸”中国大使馆,为何我国不反击?

牛牛叨史
2024-08-19 23:59:20
腊肉先泡水还是先煮?10年大厨:第1步错了,难怪腊肉又咸又硬!

腊肉先泡水还是先煮?10年大厨:第1步错了,难怪腊肉又咸又硬!

思思夜话
2026-03-18 12:11:32
河南女子隐瞒尿毒症,相亲2天就订婚,逼男方贷600万治病被拒

河南女子隐瞒尿毒症,相亲2天就订婚,逼男方贷600万治病被拒

魔都姐姐杂谈
2026-04-03 11:52:51
00后女孩未婚先孕,坐月子期间男方提出“奶粉AA制”并拉黑!“很后悔没有听爸妈的话……”

00后女孩未婚先孕,坐月子期间男方提出“奶粉AA制”并拉黑!“很后悔没有听爸妈的话……”

大风新闻
2026-04-02 17:06:07
笑不活了!女网红白嫖70件婚纱办“嫁给自己”活动,喜提50万巨债

笑不活了!女网红白嫖70件婚纱办“嫁给自己”活动,喜提50万巨债

魔都姐姐杂谈
2026-04-02 13:06:08
赵樱子曝顶帅男演员被富婆大闹片场

赵樱子曝顶帅男演员被富婆大闹片场

动物奇奇怪怪
2026-04-03 09:41:38
乌克兰无人机捅破能源神话,普里莫尔斯克40%储油能力直接报废

乌克兰无人机捅破能源神话,普里莫尔斯克40%储油能力直接报废

老马拉车莫少装
2026-04-03 12:10:22
25分惨败被淘汰!女篮争冠热门无缘四强:张子宇又一次被弃用了?

25分惨败被淘汰!女篮争冠热门无缘四强:张子宇又一次被弃用了?

篮球快餐车
2026-04-03 00:06:51
据说这是大S未发表过的照片,一股留洋归国千金大小姐的既视感

据说这是大S未发表过的照片,一股留洋归国千金大小姐的既视感

木子爱娱乐大号
2026-04-02 08:16:40
美国经过与伊朗的战争以后,大概率将会彻底打消与中国的武力冲突

美国经过与伊朗的战争以后,大概率将会彻底打消与中国的武力冲突

安安说
2026-03-29 13:41:15
爷青回!《奔跑吧14》定档来袭,老成员全回归,这季不追都不行!

爷青回!《奔跑吧14》定档来袭,老成员全回归,这季不追都不行!

小椰的奶奶
2026-04-02 15:12:46
重走大S老路?27岁王楚然被曝患疑难杂症,工作室回应引全网揪心

重走大S老路?27岁王楚然被曝患疑难杂症,工作室回应引全网揪心

橙星文娱
2026-04-03 12:24:44
瑞典中场:如果库卢和伊萨克回归,我觉得瑞典是有可能世界杯夺冠的

瑞典中场:如果库卢和伊萨克回归,我觉得瑞典是有可能世界杯夺冠的

懂球帝
2026-04-03 00:54:10
原来他是张雪儿子,才14岁子承父业是越野摩托车车手,名字好霸气

原来他是张雪儿子,才14岁子承父业是越野摩托车车手,名字好霸气

白面书誏
2026-04-02 14:00:50
连烧30小时!百亿航母成废铁?5700人全被扣押,福建舰成全球唯一

连烧30小时!百亿航母成废铁?5700人全被扣押,福建舰成全球唯一

史智文道
2026-04-03 09:40:23
一场108-113让湖人无奈!首轮对阵清晰,火箭连续两年直通季后赛

一场108-113让湖人无奈!首轮对阵清晰,火箭连续两年直通季后赛

顺静自然
2026-04-03 10:24:57
重庆,喜来登酒店冒烟

重庆,喜来登酒店冒烟

靠山屯闲话
2026-04-03 12:45:37
25国大军逼近!特朗普下死手,日军越界1000人,解放军双语下通牒

25国大军逼近!特朗普下死手,日军越界1000人,解放军双语下通牒

素衣读史
2026-03-31 16:49:48
2026-04-03 13:27:00
赛博兰博
赛博兰博
专注捣鼓AI效率工具,试图在这个时代留下数字分身的探索者。
757文章数 6关注度
往期回顾 全部

科技要闻

5万辆库存车,给了特斯拉一记重拳

头条要闻

牛弹琴:美国干了一件令人发指的事 全世界都无法接受

头条要闻

牛弹琴:美国干了一件令人发指的事 全世界都无法接受

体育要闻

冲击世界杯失败,80岁老帅一气之下病倒了

娱乐要闻

《浪姐7》最新人气TOP 曾沛慈断层第一

财经要闻

专家称长期摄入“飘香剂”存在健康隐患

汽车要闻

你介意和远房亲戚长得很像吗?

态度原创

健康
艺术
时尚
游戏
军事航空

干细胞抗衰4大误区,90%的人都中招

艺术要闻

吴昌硕『扇画』老辣古拙

为什么“这个颜色”成为今年顶流?这样穿好看又治愈

精忠报国!《帝国时代4》DLC岳飞传震撼来袭

军事要闻

伊朗自杀无人机突进 逼退林肯号航母

无障碍浏览 进入关怀版