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

百万下载量Python包被黑:供应链攻击又出新招

0
分享至

你刚跑完一条数据管道,喝杯咖啡回来,发现SSH密钥、云凭证、加密钱包全没了——就因为你更新了一个Python包。

这不是假设。开源数据工具Elementary的包维护者上周确认,他们的PyPI包被入侵,恶意版本0.23.3在仓库里待了足够长的时间,足以让大量数据工程师中招。


攻击怎么发生的

入侵路径堪称教科书级的供应链攻击变种。

攻击者先提交了一个看似正常的PR(拉取请求),然后利用GitHub Actions工作流中的脚本注入漏洞,把恶意代码打包进了正式版本。整个过程没有突破仓库的认证体系,而是寄生在CI/CD流程内部。

维护者的复盘很直接:「攻击者打开了一个包含恶意代码的PR,并利用我们GitHub Actions工作流中的脚本注入漏洞,将其作为0.23.3版本发布。」

这种攻击手法的阴险之处在于——它绕过了传统的代码审查雷达。PR本身可能看起来无害,漏洞藏在自动化流程的缝隙里。

被偷走的东西比你想的多

恶意代码是个典型的信息窃取器(infostealer),但它的收割范围相当全面:

SSH密钥、Git凭证、各类云凭证、Kubernetes和Docker密钥、CI系统密钥、加密货币钱包文件、系统数据、.env文件、开发者令牌。

维护者的警告很干脆:「运行过0.23.3的用户,或者拉取并运行过受影响Docker镜像的用户,应该假设该运行环境可访问的任何凭证都可能已泄露。」

注意这里的措辞——「任何凭证」。不是「可能」,是「应该假设」。这种措辞在安全事故通报里通常意味着:我们不知道攻击者具体拿走了什么,所以按最坏情况处理。

为什么是这个包

Elementary-data是个数据可观测性工具,专门给dbt(数据构建工具)用户做数据质量监控。它的用户画像很清晰:数据工程师、分析工程师,以及管理数据管道的人。

这类用户的机器上通常有什么?生产环境的云凭证、数据仓库的连接串、调度系统的密钥——换句话说,高价值目标。

PyPI数据显示,这个包月下载量超过100万。考虑到dbt生态的专业性,实际生产环境部署的比例可能远高于普通工具库。

应急响应的速度与局限

维护者的动作不算慢:确认问题、发布干净版本0.23.4、轮换凭证、启动外部调查。他们还澄清了范围:Elementary Cloud和Elementary dbt包未受影响,其他CLI版本也干净。

但供应链攻击的麻烦就在这里——你修复了源头,无法修复已经扩散的影响。

恶意版本0.23.3的具体传播时长没有公开,但PyPI的下载统计不会撒谎。那些在此期间执行了pip install或docker pull的机器,凭证泄露的风险已经实打实地发生了。

GitHub Actions成新战场

这次攻击的核心漏洞在GitHub Actions工作流。这不是什么边缘场景——GitHub Actions是目前最主流的CI/CD工具之一,无数开源项目依赖它自动构建、测试、发布。

脚本注入漏洞在Actions生态里并不新鲜。攻击者通过构造特殊的PR内容(比如恶意分支名、PR标题或提交信息),可以在工作流执行时注入任意代码。由于Actions通常拥有仓库的写入权限甚至发布权限,一旦被注入,后果就是供应链级别的污染。

Elementary的case特殊之处在于:攻击者把注入漏洞和恶意PR结合,最终触发了PyPI发布流程。这意味着恶意代码经过了「官方渠道」的签名和分发,用户端的信任链完全 intact——直到维护者发现为止。

数据工程师的困境

这个事件戳中了一个行业痛点:数据基础设施的依赖链越来越深,但安全实践没有跟上。

数据工程师的日常是什么?搭管道、调模型、监控质量。他们的工具链横跨dbt、Airflow、Snowflake、各种云厂商SDK,每个环节都依赖开源包。Elementary只是其中一环——数据可观测性。

问题是,这些工具往往直接访问生产数据。一个数据质量监控工具需要读数据仓库的权限,一个管道调度工具需要写目标系统的权限。当这类工具被入侵,攻击者拿到的不是某个孤立系统的钥匙,是整个数据架构的平面图。

更尴尬的是,数据团队的机器通常比开发团队更「富集」。开发者的环境可能有测试密钥,数据工程师的环境往往直连生产——因为他们要排查线上数据问题。

PyPI的信任模型正在承压

这不是PyPI生态的第一次重大入侵。原文提到的相关新闻里,LLM相关的顶级PyPI包、telnyx库都曾遭遇类似攻击。频率之高,已经不能再用「孤立事件」来概括。

PyPI作为Python生态的中心仓库,其安全机制长期被批评落后于npm、Maven等同行。没有强制性的双因素认证(2FA)历史、缺乏包签名验证的默认机制、发布流程的权限模型过于粗放——这些问题在供应链攻击频发的背景下越来越刺眼。

Elementary事件的新变量在于:攻击者没有直接攻破维护者的账户,而是利用了CI/CD流程的漏洞。这意味着即使维护者启用了2FA、使用了强密码,攻击仍然可能发生。

这种「流程内攻击」比「账户盗用」更难防御,因为它需要重新审视整个自动化链条的权限最小化原则。

清单:这次事件暴露的五个关键问题

一、CI/CD权限的过度授权是通病

GitHub Actions工作流为什么能直接发布到PyPI?因为配置里放了API密钥。这个设计方便,但一旦工作流被注入,密钥就是攻击者的。

更安全的模式是用OpenID Connect(OIDC)短期凭证,或者把发布环节隔离到独立的、人工触发的流程。但大多数开源项目没这个资源。

二、脚本注入漏洞的修复被低估

GitHub官方文档早就警告过Actions的脚本注入风险,比如不要把用户可控的变量直接嵌入shell命令。但防御需要每个工作流作者手动实施,没有全局开关。

Elementary的遭遇说明:即使维护者安全意识到位,一个遗漏的变量引用就能打开缺口。

三、数据工具的特殊风险被忽视

安全社区关注最多的是前端框架、加密库、网络工具。数据基础设施——dbt插件、Airflow提供者、各类连接器——相对低调,但权限同样敏感。

Elementary的月下载量超过100万,却直到被入侵才进入更广泛的安全讨论视野。这种「关注度盲区」需要行业调整。

四、应急响应的透明度仍有提升空间

维护者发布了干净版本、轮换凭证、启动调查——标准动作都做了。但关于恶意版本的具体传播时间、受影响用户数量的估算、建议的轮换清单,公开信息有限。

对于生产环境的数据团队来说,「假设凭证已泄露」之后该做什么,需要更具体的行动指南。

五、开源维护者的安全负担过重

Elementary是个开源项目。维护者在修复漏洞、安抚用户、配合调查的同时,还要正常迭代功能。安全事件对小型团队的消耗是巨大的。

行业需要更多针对开源基础设施的安全支持机制——不是事后奖励,是事前的审计资源、安全审查协助、甚至托管的CI/CD服务。

你该做什么

如果你或你的团队用过Elementary,检查版本号。0.23.3是恶意版本,0.23.4及之后是干净的。如果运行过0.23.3或对应的Docker镜像,按维护者的建议:假设环境内所有凭证已泄露,开始轮换。

更广泛的教训是审视你的依赖链。数据管道用的每个PyPI包,有没有pin住版本?有没有监控新版本的发布?CI/CD流程里的密钥,是不是用了最小权限原则?

供应链攻击不会消失,只会进化。这次是利用GitHub Actions注入,下次可能是别的环节。防御的核心不是预测攻击者的下一步,是减少每个环节的爆炸半径——让单个包的入侵,不至于拖垮整个数据架构。

数据工程师的时间永远不够用,但花两小时审计关键依赖的安全实践,可能比周末加班恢复被删的生产数据库更值得。

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

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-04-29 07:15:33
恩里克:我问助教,次回合我们要进几个球才能赢?答案是三个

恩里克:我问助教,次回合我们要进几个球才能赢?答案是三个

兰亭墨未干
2026-04-29 09:14:27
为什么我们中国人活得这么累、这么卷?

为什么我们中国人活得这么累、这么卷?

流苏晚晴
2026-04-28 18:32:41
网友称在霸王茶姬中喝出水银,涉事门店:店里没有这个东西, 市监局正在店里调查

网友称在霸王茶姬中喝出水银,涉事门店:店里没有这个东西, 市监局正在店里调查

观威海
2026-04-29 09:20:05
伊朗伊斯兰革命卫队:已实现对霍尔木兹海峡的绝对控制

伊朗伊斯兰革命卫队:已实现对霍尔木兹海峡的绝对控制

财联社
2026-04-28 21:40:55
潜逃前吴敬中送余则成一根金条,8年后切开才发现里面有胶卷

潜逃前吴敬中送余则成一根金条,8年后切开才发现里面有胶卷

卡西莫多的故事
2026-03-31 09:59:18
普京想不到!就连马克龙也想不到!特朗普居然承认:放弃全球霸权

普京想不到!就连马克龙也想不到!特朗普居然承认:放弃全球霸权

安安说
2026-04-28 10:57:18
轮到银行发愁了!越来越多的储户,要把存款分散到多家银行?

轮到银行发愁了!越来越多的储户,要把存款分散到多家银行?

老特有话说
2026-04-28 16:00:15
历史上的赵敏:成为朱元璋儿媳,被丈夫囚禁二十年,最后被活埋

历史上的赵敏:成为朱元璋儿媳,被丈夫囚禁二十年,最后被活埋

历史龙元阁
2026-04-28 10:15:11
泡泡玛特涨超4% labubu冰箱未开售即被炒至9万余元

泡泡玛特涨超4% labubu冰箱未开售即被炒至9万余元

财联社
2026-04-29 09:53:06
2球+1助攻!28岁巨星全场最佳打爆拜仁,淘汰赛2年造15球当世首人

2球+1助攻!28岁巨星全场最佳打爆拜仁,淘汰赛2年造15球当世首人

体育知多少
2026-04-29 07:31:14
吴京突袭比亚迪展台被围,大佬现场刷卡提走仰望U8L!

吴京突袭比亚迪展台被围,大佬现场刷卡提走仰望U8L!

沙雕小琳琳
2026-04-29 01:36:01
破案!没有得罪杜锋,陈家政却被弃用的原因找到,粤名嘴说出实情

破案!没有得罪杜锋,陈家政却被弃用的原因找到,粤名嘴说出实情

后仰大风车
2026-04-29 09:05:11
44岁陈震现身北京车展,从网红车评人到无人问津,现状一点都不怨

44岁陈震现身北京车展,从网红车评人到无人问津,现状一点都不怨

林雁飞
2026-04-25 17:14:49
彭南特:利物浦要不惜一切代价签下奥利塞,任何金额+加克波

彭南特:利物浦要不惜一切代价签下奥利塞,任何金额+加克波

懂球帝
2026-04-29 10:54:05
广东男篮消息!杜锋带人连夜开会总结 胡明轩伤病严重 黄牛被坑惨

广东男篮消息!杜锋带人连夜开会总结 胡明轩伤病严重 黄牛被坑惨

中国篮坛快讯
2026-04-29 09:40:34
教育迎来大洗牌!9月全国统一执行,中小学彻底变天

教育迎来大洗牌!9月全国统一执行,中小学彻底变天

户外阿毽
2026-04-26 18:19:14
“失去”了阿联酋的阿拉伯世界,会变成怎样?

“失去”了阿联酋的阿拉伯世界,会变成怎样?

晓栗
2026-04-28 06:02:42
畸形母爱毁星二代:母乳12年同床15年荒唐事

畸形母爱毁星二代:母乳12年同床15年荒唐事

看尽落尘花q
2026-04-25 14:10:18
鄭欣宜激瘦正式復工,《歌手2026》首張名單出爐莫文蔚有名

鄭欣宜激瘦正式復工,《歌手2026》首張名單出爐莫文蔚有名

粤睇先生
2026-04-28 20:50:27
2026-04-29 12:12:49
Ping值焦虑
Ping值焦虑
有态度网友ytd
1803文章数 30关注度
往期回顾 全部

科技要闻

夭折的造富神话,逼着中国AI回去赚"慢钱"

头条要闻

40岁男子开赌场赚7.31亿元 被通缉前在英国疯狂购房

头条要闻

40岁男子开赌场赚7.31亿元 被通缉前在英国疯狂购房

体育要闻

巴黎5-4拜仁夜:身价1.55亿的“足坛笑话”,成了最硬的底牌

娱乐要闻

单依纯演唱会再唱“区区三万天”宣战

财经要闻

多地药店违规串换商品套刷医保揭秘

汽车要闻

配32寸升降屏 新款别克世纪CENTURY上市53.99万起

态度原创

旅游
本地
健康
家居
公开课

旅游要闻

“五五购物节”上海佛罗伦萨小镇解锁“百花之城”

本地新闻

用青花瓷的方式,打开西溪湿地

揭秘干细胞抗衰美容七大谣言

家居要闻

寂然无界 简洁风格

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版