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

每次npm install都在给黑客开后门

0
分享至

你今天早上肯定又敲了那行命令。npm install。然后顺手去倒了杯咖啡,回来继续写代码。但就在那几十秒里,你的机器已经执行了几十个陌生人写的脚本——他们可能是正经维护者,也可能是刚被钓鱼邮件骗走账号的受害者。

过去八个月,黑客们终于盯上了这块肥肉。一个叫"Shai-Hulud"的蠕虫家族已经攻陷了数百个npm包,创建了数万个恶意GitHub仓库,偷走上千条开发者密钥。2025年11月那一波尤其疯狂:48小时内,700多个包、2.7万个恶意仓库、约1.4万条暴露的密钥,波及487个组织。


我受够了等npm官方修这个问题,于是做了np-audit——一个零依赖的CLI工具,能在npm执行安装脚本之前,静态分析这些脚本到底想干什么。

攻击为什么一直奏效

每个Shai-Hulud变种都靠同样的三行代码:

{
"scripts": {
"preinstall": "node setup.mjs"
}
}

就这些。npm install解析到被攻陷的版本时,setup.mjs会在你的代码之前、测试之前、任何人眼检查之前运行。用的是你的用户权限、你的环境变量、你的网络访问。

载荷永远是同一套配方换个皮:

1. 下载第二个运行时(现在流行用Bun,能绕过Node特征检测)
2. 运行混淆过的收割机,扫描GitHub token、npm凭证、AWS/Azure/GCP密钥、Kubernetes服务账号token、Vault凭证、浏览器保存的密码、CI runner密钥
3. 加密后通过GitHub GraphQL API推送到公开仓库——从外面看就像正常的git活动
4. 用偷来的GitHub PAT往受害者能写的其他仓库里注入恶意工作流。一个开发者变成整个组织的零号病人

Mini Shai-Hulud还有个贴心的小设计:

if (locale.startsWith('ru') || lang.startsWith('ru')) {
process.exit(0); // do nothing
}

这个俄语地区保护开关,现在已经被归到TeamPCP名下的三个独立行动里出现了。

这不是漏洞,是功能

这里没有CVE可以打补丁。npm preinstall、install、postinstall脚本自动运行是设计如此——包要靠这个编译原生插件、拉平台二进制、配置构建工具。文档写着呢,故意的,也有用。

但这也是地球上每个Node项目里上了膛的枪,而且2018年以来一直在走火:event-stream、ua-parser-js、node-ipc、colors、faker,还有今年四月的Bitwarden CLI。攻击者不需要变得更 sophisticated,他们不需要。

官方建议是--ignore-scripts。但这会让bcrypt、node-sass、puppeteer、sharp和半个工具链挂掉。没人真在CI里开这个。

所以我们要么继续顶着枪过日子,要么先看看这些脚本到底要干什么再让它们跑。

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

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.

相关推荐
热点推荐
高颜值美女晒出和邋遢男友旅游合照,网友们看完炸锅了

高颜值美女晒出和邋遢男友旅游合照,网友们看完炸锅了

微微热评
2026-05-31 14:27:06
最高预售价200万元尊界搭载国产朝阳轮胎引发热议,余承东称做高端拔高了中国汽车产业能力

最高预售价200万元尊界搭载国产朝阳轮胎引发热议,余承东称做高端拔高了中国汽车产业能力

金融界
2026-05-31 21:56:07
男团成员裤腰低到离谱?网友怒批:这是公共猥亵

男团成员裤腰低到离谱?网友怒批:这是公共猥亵

时光慢旅人
2026-05-30 01:29:08
这跟不穿有啥区别!北京这一夜,31岁徐璐穿透视礼服,属实辣眼睛

这跟不穿有啥区别!北京这一夜,31岁徐璐穿透视礼服,属实辣眼睛

八斗小先生
2026-05-29 19:24:16
夏天,这碱性菜再贵也要多吃,一降火、二解暑,三补钙补钾,好吃

夏天,这碱性菜再贵也要多吃,一降火、二解暑,三补钙补钾,好吃

阿龙美食记
2026-05-29 21:52:34
男演员宣布结婚,前女友发文控诉

男演员宣布结婚,前女友发文控诉

新快报新闻
2026-05-31 14:47:03
撤销外语学院不是终点,真正该“撤”的是那套失败的体系

撤销外语学院不是终点,真正该“撤”的是那套失败的体系

迷世书童
2026-05-31 13:35:42
襄阳“割四赔五”后续:23家派出所出手,网红出面也无力扭转局面

襄阳“割四赔五”后续:23家派出所出手,网红出面也无力扭转局面

观察鉴娱
2026-05-31 19:01:32
争口气吧!再过2年,三星和SK凯力士两家企业利润,或将超中国所有国企利润总和

争口气吧!再过2年,三星和SK凯力士两家企业利润,或将超中国所有国企利润总和

回旋镖
2026-05-31 20:50:31
异常热浪在法国造成7人死亡,中国留学生:当地普遍不装空调,这几天很崩溃,连续一周没怎么睡好觉

异常热浪在法国造成7人死亡,中国留学生:当地普遍不装空调,这几天很崩溃,连续一周没怎么睡好觉

极目新闻
2026-05-31 12:55:56
74岁老人嫌杨絮碍事竟将其点燃,20辆新能源车被烧毁!已被采取刑事强制措施

74岁老人嫌杨絮碍事竟将其点燃,20辆新能源车被烧毁!已被采取刑事强制措施

环球网资讯
2026-05-31 18:13:21
江苏太仓一飞行营地坠机致死案续:获赔256.8万元,家属称将上诉

江苏太仓一飞行营地坠机致死案续:获赔256.8万元,家属称将上诉

澎湃新闻
2026-05-31 13:40:27
一碗隔夜米饭毒死7人?医生警告:米饭尽量别这样吃,比砒霜还毒

一碗隔夜米饭毒死7人?医生警告:米饭尽量别这样吃,比砒霜还毒

路医生健康科普
2026-05-31 20:15:03
俄乌战争一旦结束,最先“倒下”的可能是这五个国家

俄乌战争一旦结束,最先“倒下”的可能是这五个国家

民间胡扯老哥
2026-05-31 09:40:36
很多房子已经租不出去了。

很多房子已经租不出去了。

老陆不老
2026-05-31 12:37:09
毒性堪比砒霜!正大量上市,一旦发苦赶紧吐掉!医生:煮熟也有毒

毒性堪比砒霜!正大量上市,一旦发苦赶紧吐掉!医生:煮熟也有毒

路医生健康科普
2026-05-30 20:15:03
你庆幸自己看过哪本含金量极高的书?网友:颠覆了认知,再不内耗

你庆幸自己看过哪本含金量极高的书?网友:颠覆了认知,再不内耗

夜深爱杂谈
2026-05-30 08:34:39
“没穿几次坏到离谱!”知名品牌淘宝旗舰店,上海消费者质疑买到“陈年老鞋”,客服:库存信息属店铺隐私,无法提供

“没穿几次坏到离谱!”知名品牌淘宝旗舰店,上海消费者质疑买到“陈年老鞋”,客服:库存信息属店铺隐私,无法提供

新民晚报
2026-05-31 11:03:40
包揽赛季三冠!29岁樊振东独取2分 率队问鼎德甲+队史首次斩3冠王

包揽赛季三冠!29岁樊振东独取2分 率队问鼎德甲+队史首次斩3冠王

风过乡
2026-05-31 22:21:30
传奇栏目大地震!被裁记者开撕:这就是审查

传奇栏目大地震!被裁记者开撕:这就是审查

时光慢旅人
2026-05-31 01:34:26
2026-06-01 04:20:49
闪存猎手
闪存猎手
全网蹲好价的野生捕手,算力与羊毛都不可辜负。
4216文章数 37关注度
往期回顾 全部

科技要闻

戴尔诺基亚又回来了!AI重估老牌科技公司

头条要闻

特朗普生日白宫办格斗赛 近距离观赛花超100万美元

头条要闻

特朗普生日白宫办格斗赛 近距离观赛花超100万美元

体育要闻

阿森纳用最悲壮的方式,成就了巴黎王朝

娱乐要闻

朱军退休,正义虽迟但到,女方受惩

财经要闻

医学首席转岗搞科技,A股科技股遭遇巨震

汽车要闻

900V+3.2秒破百 领克10+&领克10上市16.99万元起

态度原创

教育
旅游
游戏
时尚
数码

教育要闻

(序号A49205)校园安全教育责任与担当主题班会PPT..

旅游要闻

半马苏河秀迎来“青春版”升级!校地联动解锁文商旅体展融合新玩法

《巫师3》资料片“血与酒”发售十周年 纪念贺图发布

梓渝:慢下来,也很好

数码要闻

苹果眼镜最新爆料:多款式设计,内部代号N50,延期2027年底发布

无障碍浏览 进入关怀版