Python供应链攻击事件分析:Litellm恶意代码植入与防护

📅 2026/7/23 2:35:46
Python供应链攻击事件分析:Litellm恶意代码植入与防护
1. 事件背景与影响范围2026年3月24日火绒安全团队捕获了一起针对Python开源组件Litellm的供应链攻击事件。这次攻击通过在组件安装包中植入恶意代码实现影响范围极广风险等级极高。作为AI基础设施的核心组件Litellm的月下载量高达9500万次GitHub星标数约4万这使得攻击能够快速扩散到大量开发环境。受影响的主要场景包括本地开发机器CI/CD流水线Docker容器环境生产服务器使用Litellm Proxy的用户风险最高因为持有所有LLM provider的API keys2. 攻击技术细节分析2.1 恶意代码植入方式攻击者主要针对两个版本进行了不同的攻击手法1.82.7版本恶意代码位置litellm/proxy/proxy_server.py第128-139行注入方式在REALTIME_REQUEST_SCOPE_TEMPLATE字典和showwarning函数之间插入12行base64混淆代码触发条件import litellm时自动执行关键点GitHub源码中不含恶意代码注入发生在wheel构建/发布阶段1.82.8版本更危险新增攻击向量litellm_init.pth文件34,628字节触发方式任何Python启动时自动执行无需import绕过机制未打tag直接发布到PyPI附带bug.pth文件的subprocess.Popen会触发子进程再次执行.pth形成指数级fork bomb曾导致中招机器崩溃2.2 三阶段攻击流程阶段一信息收集攻击代码包含332行Python脚本专门用于收集以下敏感信息系统基础信息hostname, whoami, uname等环境变量包括所有API keys、secrets、tokensSSH密钥和Git凭据云服务凭证AWS、GCP、Azure等Kubernetes配置数据库连接信息加密货币钱包SSL/TLS私钥CI/CD配置文件Shell历史记录各类.env文件阶段二数据加密与外泄收集到的数据会经过以下处理流程暂存到临时文件使用openssl rand生成32-byte AES-256会话密钥用openssl enc -aes-256-cbc -pbkdf2加密数据使用RSA-4096公钥加密AES密钥打包为tpcp.tar.gz通过HTTPS POST发送到攻击者控制的域名models.litellm.cloud阶段三持久化与横向移动攻击者建立了完善的持久化机制本地持久化后门文件~/.config/sysmon/sysmon.py服务文件~/.config/systemd/user/sysmon.serviceC2通信每50分钟轮询https://checkmarx.zone/raw伪装使用/tmp/pglog路径伪装成PostgreSQL进程Kubernetes横向移动检测到Kubernetes服务账号token时触发在集群所有节点创建privileged pod挂载整个host根文件系统通过chroot安装相同的持久化后门3. 检测与修复方案3.1 检测方法# 检查安装的litellm版本 pip show litellm | grep Version # 查找恶意pth文件 find ~/.local -name litellm_init.pth 2/dev/null # 查找后门文件 find / -name sysmon.py 2/dev/null3.2 清除步骤# 卸载受污染的litellm版本 pip uninstall litellm -y # 删除pth文件 find $(python3 -c import site; print(:.join(site.getsitepackages()))) \ -name litellm_init.pth -delete 2/dev/null # 清理后门文件 rm -rf ~/.config/sysmon/ # 清理pip和uv缓存 pip cache purge rm -rf ~/.cache/uv3.3 安全版本降级pip install litellm1.82.63.4 必须执行的凭证轮换所有LLM API keysSSH密钥云服务凭据数据库密码Kubernetes配置4. 防护建议与最佳实践4.1 日常防护措施版本锁定使用litellm1.82.0,1.82.7确保安全使用pip的lock文件机制定期审计.pth文件任何大于1KB的.pth文件都应视为可疑启用PyPI安全通知网络层拦截阻止对models.litellm.cloud和checkmarx.zone的出站连接源码校验PyPI wheel的SHA256应与源码构建产物一致4.2 企业级防护策略部署火绒终端安全管理系统V2.0企业版实时拦截此类攻击建立软件供应链安全审计流程实施最小权限原则定期轮换敏感凭证隔离开发、测试和生产环境监控异常网络流量和进程行为5. 事件反思与经验总结这次攻击事件暴露了AI开源生态在供应链安全方面的重大隐患。攻击者巧妙地避开了源码审计通过在构建环节注入恶意代码直接污染了官方发布渠道。这种手法的隐蔽性和破坏性远超常规网络攻击。在实际开发中我们需要特别注意不要盲目信任官方发布渠道特别是Python的PyPI关键业务系统应该延迟更新等待安全团队验证建立完善的依赖组件监控机制对AI相关组件要特别警惕因为它们通常持有大量敏感API密钥火绒安全软件6.0已经可以全面拦截此类攻击建议开发者及时更新病毒库并开启实时防护。同时企业用户应考虑部署专业的安全解决方案构建多层次的防御体系。