首页
社区
课程
招聘
Shai-Hulud投毒竞赛开场,npm639个版本被黑
发表于: 11小时前 158

Shai-Hulud投毒竞赛开场,npm639个版本被黑

11小时前
158

5月19日,微步情报局监测到一起针对npm生态系统的特大规模供应链投毒事件。攻击者利用被攻陷的npm维护者账户atool,在短时间内批量发布了大量恶意软件包版本,涉及323个独立程序包的639个恶意版本,受影响最严重的是@antv(数据可视化开源品牌)系列包。

图片

影响范围

● 核心受控账户:npm维护者账户 atool。

● 波及数据:在此次攻击活动中,共发现了323个独立程序包的639个恶意版本。

● 主要影响生态:受影响最严重的是 @antv系列包。

● 其他受影响范围:攻击还波及到一些其他的npm包。

● 关键受影响包列表: 

echarts-for-react:一个React封装的图表库,周下载量约110万次,是本次攻击中影响最大的包。

@antv 系列核心库:@antv/g2, @antv/g6, @antv/x6, @antv/l7, @antv/s2, @antv/f2, @antv/g, @antv/g2plot, @antv/graphin, @antv/data-set 等。

其他社区包:timeago.js, size-sensor, canvas-nest.js 等。

手法分析

● 初始入侵:在package.json中添加"preinstall" : "bun run index.js"命令,导致在npm包安装时执行该命令,运行恶意脚本。

● 代码混淆:恶意脚本index.js经过高强度混淆处理,使用大字符串数组查找表和运行时字符串解码来隐藏其行为。

● 信息窃取:载荷主要针对开发者主机和CI/CD环境,系统性地搜索和窃取各类高价值敏感信息,包括但不限于: 

凭证与Token:GitHub Token, npm Token, AWS Access Key, Vault Token, SSH私钥, Docker认证文件。

CI/CD平台:涵盖GitHub Actions, GitLab CI, CircleCI, Jenkins等18个主流CI/CD平台。

其他关键数据:数据库连接字符串和Kubernetes服务账户材料。

● 数据外传: 

主信道:将窃取的数据压缩后,通过 AES-256-GCM 加密,再将密钥用 RSA-OAEP 加密,最终通过HTTPS POST请求发送到 

6c6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6@1i4K6u0W2L8g2)9J5k6r3E0G2M7$3y4Z5k6g2)9J5k6h3y4G2L8g2)9K6b7e0b7@1x3#2)9J5c8X3q4H3K9g2)9J5c8Y4m8#2j5X3I4A6j5#2)9J5c8X3!0@1k6h3I4Q4x3V1k6$3x3g2)9J5c8Y4c8J5j5h3y4W2M7#2!0q4x3#2)9^5x3q4)9^5x3R3`.`.

备用信道:如果载荷成功获取到有效的GitHub Token,它会在受害者账户下创建一个名称带有特定模式的仓库(如<单词>-<单词>-<3位数字>),并将窃取的数据保存在仓库的results/results-*.json文件中。

图片

● 蠕虫式传播:载荷能验证窃取的npm Token有效性,然后下载、篡改并重新发布受害者维护的其他包,表现出极强的自我复制与横向移动能力。

溯源分析

此次攻击方式和恶意代码特征和5月11日针对TanStack的投毒事件高度相似,在TanStack的投毒事件中,攻击者通过污染了Github Actions中的pnpm store cache来将恶意代码在release runner中运行,从而窃取了npm token,导致TanStack一系列的npm包被投毒攻击。

TanStack的投毒事件是Mini Shai-Hulud供应链攻击中的事件之一,该攻击被归属于TeamPCP组织,但是值得注意的是,TeamPCP组织已经开放了Shai-Hulud攻击源码,并且和知名暗网论坛BreachForums一起组织了Shai-Hulud供应链攻击竞赛:

图片

所以此次针对antv的供应链投毒事件可能不是源自TeamPCP组织,而是利用Shai-Hulud攻击源码实现的模仿犯罪。 

排查方法

1. 检查项目依赖:审查项目根目录和node_modules下所有package.json文件,排查是否存在被篡改的preinstall脚本。

2. 搜索失陷指标(IOCs):在项目中搜索上述提及的网络、文件、代码和行为指标。

3. 审查网络流量日志:检查CI/CD流水线和开发环境是否有到t.m-kosche.com的DNS解析请求或HTTPS连接记录。

4. 检查GitHub账户活动:检查组织或个人GitHub账户下,是否出现了来源不明、命名模式可疑的新仓库。

处置建议

● 隔离环境:立即断开受影响机器或容器的网络连接。

● 凭证轮换:立即轮换所有可能暴露的密钥和Token。这包括但不限于npm Token、GitHub Personal Access Token、所有云服务商(AWS等)的Access Key、数据库密码、CI/CD平台密钥等。

● 代码回滚:将受影响的依赖回滚至确认安全的版本,或暂时使用官方提供的安全替代品。

● 彻底清理:删除整个node_modules目录和package-lock.json文件后重新安装依赖。建议在受控环境中进行,防止二次感染。

● 安全审计:对受影响的CI/CD流水线进行全面的安全审计。

IOCs

网络指标

● 恶意域名和URL: 

t.m-kosche.com

bb5K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6@1i4K6u0W2L8g2)9J5k6r3E0G2M7$3y4Z5k6g2)9J5k6h3y4G2L8g2)9K6b7e0b7@1x3#2)9J5c8X3q4H3K9g2)9J5c8Y4m8#2j5X3I4A6j5#2)9J5c8X3!0@1k6h3I4Q4x3V1k6$3x3g2)9J5c8Y4c8J5j5h3y4W2M7H3`.`.

● 可疑的合法服务API调用(被恶意脚本滥用于验证令牌或证书): 

4e6K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6X3N6h3I4U0K9h3!0Q4x3X3g2K6K9h3N6K6N6r3!0J5k6g2)9J5k6h3c8W2N6W2)9J5c8X3q4H3K9g2)9J5c8Y4j5J5i4K6u0r3M7$3W2Y4L8X3W2F1k6@1y4W2M7Y4b7`.

5fdK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6J5k6h3E0G2M7W2)9J5k6i4y4A6k6%4y4@1L8%4u0W2i4K6u0W2k6r3g2$3i4K6u0r3j5i4m8A6i4K6u0r3N6U0q4Q4x3V1k6D9L8$3N6Q4x3V1k6W2L8Y4c8J5K9h3g2K6

文件与代码指标

● 恶意npm生命周期脚本:"preinstall" : "bun run index.js"

● 恶意GitHub依赖:

"@antv/setup" : "github:antvis/G2#1916faa365f2788b6e193514872d51a242876569"

行为指标

● GitHub仓库特征:攻击者创建的仓库通常遵循 <单词>-<单词>-<3位数字> 的命名模式,例如 sayyadina-stillsuit-852, atreides-ornithopter-112 等。

● 仓库反标记:仓库描述或README中包含反转的字符串 niagA oG eW ereH :duluH-iahS 或 niaga og ew ereh :duluh-iahs,正序为Shai-Hulud: Here We Go Again。

·END·


[培训]《冰与火的战歌:Windows内核攻防实战》!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回