打开网易新闻 查看精彩图片

两个版本的LiteLLM因遭受供应链攻击而被从Python包索引(PyPI)中移除。LiteLLM是一个开源接口,用于访问多个大语言模型。

具体来说,LiteLLM v1.82.7和v1.82.8版本已被下架,因为它们在组件文件litellm_init.pth中包含了恶意的凭证窃取代码。

维护LiteLLM的Berri AI公司首席执行官Krrish Dholakia在网上发帖称,此次攻击似乎源于该项目CI/CD流水线中使用的Trivy。

Trivy是由Aqua Security维护的开源漏洞扫描器,许多其他项目都将其作为安全措施。根据Aqua Security的说明,这一恶意软件活动始于2月下旬,攻击者利用Trivy GitHub Actions环境中的错误配置窃取了一个特权访问令牌,从而能够操控CI/CD流程。

软件在3月19日被篡改,当时被称为TeamPCP的攻击者使用被盗凭证发布了恶意Trivy版本(v0.69.4),3月22日又发布了恶意Trivy版本v0.69.5和v0.69.6作为DockerHub镜像。

但Aqua Security解释说,攻击者采用的方法比仅仅上传新的恶意Trivy版本更为复杂。

"通过修改与GitHub Action脚本trivy-action相关的现有版本标签,他们将恶意代码注入到组织已经运行的工作流中,"该公司表示。"由于许多CI/CD流水线依赖版本标签而不是固定提交,这些流水线继续执行,而没有任何迹象表明底层代码已经发生变化。"

Dholakia说,LiteLLM的PYPI_PUBLISH令牌作为.env变量存储在项目的GitHub仓库中,被发送到Trivy,攻击者获得了该令牌,然后用它推送新的LiteLLM代码。

"我们已经删除了所有PyPI发布令牌,"他说。"我们的账户启用了双因素认证,所以这是一个糟糕的令牌问题。我们正在审查我们的账户,看看如何让它更安全(通过JWT令牌进行可信发布,迁移到不同的PyPI账户等)。"

另一个令人意外的发展是,GitHub漏洞报告似乎遭到了垃圾信息攻击,旨在分散注意力并模糊有关报告的有用评论。在太平洋夏令时上午5:44,数十条推测是AI生成的"谢谢,这很有帮助!"的变体涌入了仓库。根据安全研究员Rami McCarthy的说法,用于发布的25个账户中有19个也被用于Trivy垃圾信息活动。

Python打包管理局(PyPA)已发布关于LiteLLM攻击的安全公告。

"任何安装并运行该项目的人都应该假设LiteLLM环境中可用的任何凭证可能已被泄露,并相应地撤销/轮换它们,"公告说。

Q&A

Q1:LiteLLM是什么?为什么会被攻击?

A:LiteLLM是一个开源接口,用于访问多个大语言模型。它遭受攻击是因为项目CI/CD流水线中使用的Trivy漏洞扫描器被恶意篡改,攻击者通过这个途径获取了项目的发布令牌。

Q2:这次供应链攻击是如何实施的?

A:攻击者首先利用Trivy GitHub Actions环境的错误配置窃取特权访问令牌,然后修改现有版本标签注入恶意代码。由于很多CI/CD流水线依赖版本标签而不是固定提交,恶意代码得以在不被察觉的情况下执行。

Q3:用户如果使用了受影响的LiteLLM版本应该怎么办?

A:根据Python打包管理局的安全公告,任何安装并运行LiteLLM v1.82.7和v1.82.8版本的用户都应该假设其环境中的凭证可能已被泄露,需要立即撤销和轮换所有相关凭证。