找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2709

积分

0

好友

365

主题
发表于 1 小时前 | 查看: 3| 回复: 0

恶意LiteLLM与TeamPCP攻击关系示意图

近日,安全研究机构Endor Labs披露了一次针对流行开源项目的供应链攻击。威胁组织TeamPCP疑似利用Trivy CI/CD工作流中的漏洞,成功入侵了LiteLLM的构建环境,并发布了含有恶意代码的1.82.7和1.82.8版本。作为月下载量超过9500万次的AI工具,LiteLLM为开发者提供了通过统一API路由大语言模型请求的能力。目前,这两个恶意版本已在PyPI仓库中被下架。深入分析发现,这些受感染的版本植入了一套复杂的多阶段攻击载荷,其中包括:用于窃取SSH密钥、云服务凭证、加密钱包以及.env配置文件等敏感信息的工具;利用特权Pod在Kubernetes集群内进行横向移动的模块;以及一个连接远程服务器、用于获取后续载荷的持久化systemd后门。

根据Endor Labs的报告,他们在2026年3月24日发现PyPI上托管的LiteLLM 1.82.7和1.82.8版本存在后门。值得注意的是,GitHub上的官方源代码仓库并未出现这些恶意代码。恶意代码会在模块导入时静默执行,而v1.82.8版本更甚,它还会安装一个.pth文件,以确保在任何Python运行时环境中都能触发攻击。目前,v1.82.6被确认为最后一个安全的版本。

三阶段攻击链分析

这次植入的恶意软件实施了一个完整的三阶段攻击链:

  1. 凭证窃取:首先,恶意软件会扫描并窃取系统上的SSH私钥、云服务令牌、Kubernetes配置与密钥、加密货币钱包文件以及包含敏感信息的.env文件。
  2. 横向移动:随后,它会尝试在受感染的Kubernetes环境中,通过创建特权Pod的方式,从一个节点横向移动到集群内的其他节点,扩大攻击范围。
  3. 持久化与扩展:最后,恶意软件会安装一个名为sysmon.service的systemd后门服务,该服务会定期连接攻击者控制的远程服务器,以下载并执行更多的攻击载荷。所有窃取的数据在传出前均会进行加密处理。

Endor Labs的报告进一步指出,此次攻击活动与已知的威胁组织TeamPCP有关。该组织此前已涉足多个生态系统的供应链攻击,包括GitHub Actions、Docker Hub、npm、OpenVSX以及PyPI,这表明他们具备成熟的跨平台攻击能力。

关于恶意代码的植入位置,报告给出了关键细节:“恶意代码位于PyPI分发的litellm wheel包中的单个文件litellm/proxy/proxy_server.py内。攻击者在第128行插入了12行代码,这段代码被夹在两个无关的合法代码块(REALTIME_REQUEST_SCOPE_TEMPLATE字典和showwarning函数)之间。而GitHub对应提交的源代码中并不存在这些行——这表明代码注入行为发生在wheel包的构建过程期间或之后。”

Litellm proxy_server.py文件中植入的恶意代码

上图为proxy_server.py文件中第128至139行的12行注入代码。恶意代码被巧妙地放置在合法的REALTIME_REQUEST_SCOPE_TEMPLATE字典(第122行)和showwarning函数(第141行)之间。其中第130行包含一个活跃的Base64编码载荷(长达34,460个字符);而第131-132行则被注释掉,包含了攻击代码的早期迭代版本。

隐蔽执行与持久化机制

这段恶意代码的设计极具隐蔽性。它在模块被导入时自动运行,静默地解码并执行Base64载荷。为了规避安全软件的检测,攻击者没有使用exec()等容易被标记的方法,而是选择了通过subprocess来调用执行。对于供应链攻击的防御,开发者可以参考安全/渗透/逆向板块的相关讨论。

更危险的是1.82.8版本引入的持久化机制:它通过安装.pth文件,实现了在每次Python解释器启动时自动执行恶意载荷。这意味着,即使开发者从未在代码中显式调用LiteLLM,只要环境安装了受感染的litellm包,任何Python脚本、测试运行器或其他工具启动时,都会在后台静默触发凭证窃取程序,这对云原生/IaaS环境构成了巨大威胁。

恶意软件的运作流程清晰地分为三阶段:首先启动一个“编排器”来收集并加密被盗数据;接着,凭证窃取程序会全面扫描系统,寻找SSH密钥、各类云凭证、Kubernetes秘钥等高价值目标,并能利用Kubernetes特权Pod实现节点间的横向移动;最后,安装一个持久的systemd服务后门,定期联系C2服务器以下载新的攻击指令或模块。

攻击溯源与关联分析

通过分析恶意代码中遗留的三个被注释掉的Base64代码块,研究人员得以窥见其开发演进过程:初期版本使用exec()并采用基础的混淆技术;中期版本同时包含了新旧两套窃取代码;而最终发布的版本则改用subprocess技术以更好地规避检测。攻击者使用了两个不同的C2域名,分别用于接收加密后的被盗数据和投递后续载荷,并通过多层Base64嵌套和模仿标准库代码等方式进行混淆。

Endor Labs高度确信此次攻击源自TeamPCP组织。他们的判断依据是与Wiz早前报告事件的多个关键重合点:使用了相同的C2域名(checkmarx.zone)、完全一致的持久化文件名(sysmon.pysysmon.service)、相同的服务命名“System Telemetry Service”以及50分钟的心跳间隔等。

报告最后总结道:“TeamPCP持续利用窃取到的凭证跨生态系统进行渗透。本次攻击始于2月28日,由Trivy工作流漏洞导致的个人访问令牌(PAT)泄露所引发。尽管Aqua Security修复了表面的漏洞,但攻击者残留的访问权限未被清除。三周后,攻击者利用这些权限,在短短五天内横跨了五个不同的软件供应链生态系统发动攻击。”

参考来源:
Malicious LiteLLM versions linked to TeamPCP supply chain attack
https://securityaffairs.com/189948/hacking/malicious-litellm-versions-linked-to-teampcp-supply-chain-attack.html


本文旨在提醒开发者注意软件供应链安全,及时检查依赖版本。更多关于开源项目安全实践和漏洞分析的深度内容,欢迎访问云栈社区进行交流学习。




上一篇:GitHub钓鱼攻击警示:伪装OpenClaw项目赠礼,开发者加密货币钱包遭窃
下一篇:特赞GEA架构:基于上下文系统的企业级Agent如何驱动业务成果
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-3-27 03:19 , Processed in 0.533388 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表