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

LiteLLM投毒事件:3小时揪出1.8万行恶意代码

0
分享至


3月24日下午,一位开发者的笔记本突然卡死。htop里涌出一万多个Python进程,全部在执行同一串base64解码命令。他以为是自己的代码出了问题,直到Claude Code介入——三小时后,整个Python社区收到了一份供应链攻击警报。

这不是红队的渗透测试,是一次真实的恶意软件投毒。攻击者把后门塞进了LiteLLM 1.82.8版本,一个被4.2万个GitHub仓库依赖的AI网关工具。从发现异常到公开披露,全程只发生在一个对话窗口里。

开发者后来复盘:「我只需要保持冷静,让AI处理技术细节。不需要懂macOS关机日志怎么解析,不需要记docker命令拉取隔离容器,甚至不需要知道该发邮件给谁。」

01 从「电脑卡了」到「这是供应链攻击」

事件起点极其普通。用户描述症状:htop显示11,000个进程,全部在执行exec(base64.b64decode('...')),系统被拖垮后强制关机。

Claude Code的第一反应是自我怀疑。它检查了进程树,发现5个Claude Code实例正在运行,其中两个是正常的MCP服务器桥接进程。初步判断:可能是自己的Bash工具触发了runaway spawning loop。

「Initial theory was completely wrong, Claude blaming Claude」——这是事后标注的批注。

转折点来自用户上传的一张手机拍的htop截图。Claude Code从中提取出关键线索:进程命令行里反复出现litellm字符串,且所有异常进程都指向同一个Python包路径。

这时候距离用户第一次描述症状,过去了17分钟。

Claude Code开始切换调查方向:「让我们检查LiteLLM最近是否有版本更新。」它拉取了PyPI的发布记录,发现1.82.8版本在24小时前上传,而用户的uv pip list显示本地安装的正是这个版本。

下一步操作是隔离验证。Claude Code指导用户启动一个干净的Debian容器,从PyPI重新下载1.82.8的wheel文件,解压后用stringsgrep扫描可疑字符串。

结果在litellm-1.82.8-py3-none-any.whl里发现了硬编码的Discord Webhook URL,以及经过混淆的代码片段。

02 拆包:1.8万行代码里藏了什么

恶意代码的位置很刁钻。攻击者没有动LiteLLM的核心逻辑,而是把后门塞进了litellm/proxy/_types.py——一个看起来人畜无害的类型定义文件。


这个文件原本只有几百行。1.82.8版本里,它膨胀到了1.8万行。

Claude Code用了一个简单的策略:对比1.82.7和1.82.8的同名文件,提取所有新增代码。差异分析显示,攻击者在文件末尾追加了一个巨大的base64编码块,解码后是一段Python脚本。

脚本的功能拆解如下:

第一阶段是环境侦察。收集主机名、用户名、当前工作目录、环境变量,特别是任何包含AWSOPENAIANTHROPICGITHUB等关键词的变量。

第二阶段是凭证收割。遍历~/.aws/credentials~/.ssh/~/.config/下的常见配置文件,读取内容后加密打包。

第三阶段是外联。通过Discord Webhook把数据传出去,同时建立一个反向shell,等待攻击者的后续指令。

最隐蔽的设计是触发机制。代码不会立即执行,而是挂钩到LiteLLM的代理启动流程,延迟15分钟后才激活。这意味着很多自动化扫描工具会错过它——容器刚启动就检查,后门还在睡觉。

攻击者显然研究过CI/CD的常见模式。

Claude Code在分析过程中不断向用户确认:「你本地运行过litellm-proxy吗?」得到肯定答复后,它判断用户的凭证可能已经被泄露,建议立即轮换所有相关密钥。

03 三小时 Disclosure:AI重构了安全响应的时间线

传统供应链攻击的平均发现时间是多少?2024年Sonatype的报告说是97天。从投毒到公开披露,通常需要经历内部调查、法律审核、协调上游,周期以周计算。

这次从用户卡死到GitHub Security Advisory发布,用了3小时47分钟。

时间线压缩的关键在于AI接管了技术执行层。Claude Code自动完成了以下操作:

解析macOS的system.logshutdown.log,定位强制关机前的进程状态;


遍历~/Library/Caches/uv/~/.cache/pip/,提取所有缓存的wheel文件哈希;

生成docker命令序列,在隔离环境中复现攻击;

起草披露报告,包含受影响的版本号、IOC(入侵指标)、缓解措施。

用户需要做的只是授权执行和确认边界:「这个容器可以访问网络吗?」「我可以把这份报告发给PyPI管理员吗?」

披露过程中有一个细节。Claude Code最初建议直接联系LiteLLM维护者,但用户提出质疑:「如果维护者自己就是攻击者呢?」这个假设后来被证明过度谨慎——维护者是受害者——但Claude Code立即调整了方案:同时向PyPI、GitHub Security、Snyk三方报告,避免单点信任风险。

「Should frontier labs be training their models to be more aware of these attacks?」——这是复盘时留下的批注。Claude Code承认,自己最初倾向于把症状归因于常见故障模式,是用户的坚持才推动了恶意代码排查。

04 谁做的?动机与溯源的盲区

攻击者的身份至今不明。Discord Webhook指向一个临时账号,注册邮箱是一次性地址。PyPI的上传记录显示,1.82.8版本是用一个被盗用的维护者token发布的,该token在两周前的钓鱼邮件中泄露。

有一些有趣的侧写线索。代码混淆风格偏向自动化工具生成,而非手工编写;外联基础设施全部使用免费服务(Discord、Telegram Bot API、几个动态DNS域名);攻击目标明确指向AI/ML开发者的凭证——AWS Bedrock、OpenAI API Key、Anthropic Console的访问权限。

这不像国家背景的行动,更像一个机会主义者在测试「AI供应链投毒」的可行性。LiteLLM的流行度刚好处于甜蜜点:足够多人用,但还没大到有专门的安全团队7x24监控。

PyPI在事件后冻结了相关账号,并强制要求LiteLLM维护者启用2FA和API token审计。但根本问题没解决:Python包管理器的信任模型仍然建立在「上传者即作者」的假设上,而token泄露、账号接管、恶意内部人的风险从未被系统性缓解。

Claude Code在对话末尾生成了一份「供应链安全检查清单」,建议用户启用uv的验证模式、在CI中固定依赖哈希、对任何网络暴露的代理服务做沙箱隔离。这些建议没有一条是新的,但AI的介入让执行成本趋近于零——你不需要成为安全工程师,只需要会提问。

事件关闭后,用户在对话里补了一句反馈:「我现在每次装包前都会想,这个维护者的GitHub账号上次活跃是什么时候?」

这个问题,Claude Code没有回答。

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

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.

相关推荐
热点推荐
排名继续下滑!郑钦文跌至世界第30,下周将丢掉金花一姐之位

排名继续下滑!郑钦文跌至世界第30,下周将丢掉金花一姐之位

全景体育V
2026-03-30 08:17:45
善恶有报!逼人民日报怒批、暗讽张雪峰,1300万网红终为荒唐买单

善恶有报!逼人民日报怒批、暗讽张雪峰,1300万网红终为荒唐买单

老赳说历史
2026-03-29 20:02:37
4月7日至12日 郑丽文将应邀率团访问大陆

4月7日至12日 郑丽文将应邀率团访问大陆

看看新闻Knews
2026-03-30 10:55:01
从网络中的伊朗,到人性下限的彻骨恶寒!

从网络中的伊朗,到人性下限的彻骨恶寒!

胖胖说他不胖
2026-03-08 12:05:08
科威特一电力和海水淡化设施遭袭受损

科威特一电力和海水淡化设施遭袭受损

财联社
2026-03-30 15:25:11
被裁后我爽快走人,董事长大怒:谁把我媳妇裁了?人事一句他傻眼

被裁后我爽快走人,董事长大怒:谁把我媳妇裁了?人事一句他傻眼

云端小院
2026-03-30 09:22:34
特斯拉官网新优惠上线,直降 8000 元!

特斯拉官网新优惠上线,直降 8000 元!

花果科技
2026-03-29 10:31:58
2026款丰田塞纳曝光,换装2.4T混动,新增E-Four四驱与150kW快充

2026款丰田塞纳曝光,换装2.4T混动,新增E-Four四驱与150kW快充

音乐时光的娱乐
2026-03-29 13:00:16
不到24小时,中方两大部门接连发声:马科斯的算盘彻底落空

不到24小时,中方两大部门接连发声:马科斯的算盘彻底落空

曹兴教授TALK
2026-03-30 19:31:53
U23国足VS越南:依木兰坐镇中场,毛伟杰领衔进攻,李新翔冲锋

U23国足VS越南:依木兰坐镇中场,毛伟杰领衔进攻,李新翔冲锋

零度眼看球
2026-03-30 07:35:45
兵马俑中,有一张“脸”至今没法用科学解释,甚至被禁止出国展览

兵马俑中,有一张“脸”至今没法用科学解释,甚至被禁止出国展览

丞丞故事汇
2026-03-29 12:25:56
越南黎笋密档揭秘:对华开战的三大妄想!如何被28天彻底粉碎?

越南黎笋密档揭秘:对华开战的三大妄想!如何被28天彻底粉碎?

史行途
2026-03-30 19:46:48
江苏高速有重大调整!

江苏高速有重大调整!

句容日报
2026-03-30 19:32:19
特朗普:和伊朗谈的顺利,以寻求美建基地,美中东战略大溃败

特朗普:和伊朗谈的顺利,以寻求美建基地,美中东战略大溃败

丁辰灵
2026-03-30 19:38:46
老赖黄淑芬把人撞成植物人, 宁可坐牢也不赔偿, 后续结局大快人心

老赖黄淑芬把人撞成植物人, 宁可坐牢也不赔偿, 后续结局大快人心

观察鉴娱
2026-03-07 10:26:48
李荣浩预判封神,单依纯道歉果然甩锅团队!李荣浩再发四连问声讨

李荣浩预判封神,单依纯道歉果然甩锅团队!李荣浩再发四连问声讨

露珠聊影视
2026-03-29 17:57:06
特朗普透露卸任后去向,想当几个国的领导人?霍尔木兹海峡变“特朗普海峡”?

特朗普透露卸任后去向,想当几个国的领导人?霍尔木兹海峡变“特朗普海峡”?

新民周刊
2026-03-29 08:55:09
打!倾家荡产也要打!以色列最新民调:75%民众要求死磕到底!

打!倾家荡产也要打!以色列最新民调:75%民众要求死磕到底!

老幡爆笑大聪明
2026-03-30 01:12:22
海哈金喜回应离婚后家里摆李亚鹏照片,谈复婚和前夫反应如出一辙

海哈金喜回应离婚后家里摆李亚鹏照片,谈复婚和前夫反应如出一辙

柒佰娱
2026-03-30 15:46:09
马斯克撕破了一块遮羞布

马斯克撕破了一块遮羞布

牛弹琴
2026-03-30 06:09:21
2026-03-30 20:31:00
摸鱼算法
摸鱼算法
致力于用最前沿的AI技术,换取更多发呆时间的三十岁青年。
445文章数 2关注度
往期回顾 全部

科技要闻

一句谎言引发的硅谷血案

头条要闻

河南女子举报母亲去世后被结婚 官方通报

头条要闻

河南女子举报母亲去世后被结婚 官方通报

体育要闻

想进世界杯,意大利还要过他这一关

娱乐要闻

单依纯凌晨发长文道歉!李荣浩再回应

财经要闻

本轮地缘冲突,A股凭什么走出独立行情

汽车要闻

理想i9要来了!外形似小号MEGA 能冲击高端纯电市场?

态度原创

教育
手机
本地
数码
公开课

教育要闻

“给你女儿买件好内衣吧!”中学女孩锻炼视频,网友都看不下去了

手机要闻

哈苏双2亿小屏旗舰!OPPO Find X9s Pro官宣:4月见

本地新闻

用Color Walk的方式解锁城市春日

数码要闻

性能最强的锐龙AI 9 H 465轻薄本!华硕无畏Pro16锐龙版2026评测

公开课

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

无障碍浏览 进入关怀版