2023年3月24日,AI开源生态系统发生了一起重大安全事件。知名Python库litellm在PyPI平台被植入恶意代码,构成典型的供应链攻击。该攻击无需主动调用,仅安装该库即可触发,影响范围广泛。

事件核心:litellm被植入自动执行的后门

受影响版本为1.82.8(UTC时间10:52发布),其中包含一个名为litellm_init.pth的恶意文件。该文件会在每次Python进程启动时自动加载执行。即使开发者未主动导入litellm,只要项目间接依赖该库,便会立即被攻破。紧接着发布的1.82.7版本(UTC时间10:39)也被污染。

litellm为何成为高价值攻击目标?

litellm是一个统一调用多家大型模型API的Python库,GitHub星标超过4万,月下载量超过9500万。超过2000个开源项目将其列为依赖,包括主流AI工具链如DSPy、MLflow和Open Interpreter。许多开发者可能从未主动安装,却无意中引入了风险。

恶意代码行为:系统性窃取敏感凭证

恶意负载会扫描并窃取主机上的敏感信息,包括:

  • SSH密钥
  • AWS/GCP/Azure云服务凭证
  • Kubernetes密钥
  • 环境变量文件
  • 数据库配置
  • 加密货币钱包

这些数据被加密打包后发送至攻击者控制的域名。如果检测到Kubernetes环境,恶意代码还会利用服务账户令牌自动部署具特权的Pods,实现集群节点间横向传播,进一步扩大威胁。

发现过程充满讽刺意味:攻击者“自爆”漏洞

此次攻击被曝光源于一次意外的fork炸弹。研究人员在使用Cursor编辑器的MCP插件时,因插件间接依赖litellm,恶意.pth文件在Python子进程中反复触发,导致内存瞬间耗尽。这种“自毁”行为迅速揭露了事件。知名AI专家Andre Karpathy指出,若攻击者代码中未出现此失误,攻击可能会持续数日甚至数周未被发现。

攻击链追踪:Trivy是供应链崩溃的起点

根源直指litellm的CI/CD流程——其使用的Trivy漏洞扫描工具早在3月19日就被同一攻击组织TeamPCP攻破。攻击者通过被攻陷的Trivy窃取了litellm的PyPI发布令牌,直接推送了恶意版本。此前3月23日,Checkmarx KICS也遭同一组织攻击。安全研究员Gal Nagli评论称,开源供应链已出现连锁崩溃,Trivy被攻破直接导致litellm被污染,数万个生产环境凭证落入攻击者手中,成为未来攻击的新弹药。

攻击者“封口”行动失败

首次问题报告在GitHub出现后,攻击者利用73个被盗账户在102秒内发布88条垃圾评论,试图淹没讨论,随后用被盗维护者权限强制关闭问题。社区迅速将讨论转移至Hacker News平台,持续跟踪事件。

专家观点:供应链攻击是最可怕的隐形威胁

Karpathy借此事件重申软件依赖风险:“每次引入外部包,都可能埋下一个深藏依赖树中的定时炸弹。”他表示未来将更倾向于让大型模型直接生成简单函数代码,而非依赖第三方库。

紧急安全建议

AIbase提醒所有AI开发者:

  1. 立即运行pip show litellm检查版本,最后安全版本为1.82.6;
  2. 若发现1.82.7或1.82.8版本,视所有凭证已泄露,立即全部更换,包括SSH密钥、云服务凭证和K8s令牌;
  3. 清理受影响环境,重建容器或虚拟机,加强供应链审计。

此次事件再次敲响开源供应链安全警钟。在AI工具链高度依赖第三方库的时代,每一个依赖都必须保持最高警惕。