【安全圈】月下载量超100万的 Python 工具被植入恶意代码

关键词
恶意代码
近日,一起影响广泛的开源安全事件引发业内关注——
广泛用于数据工程领域的 Python 工具 Elementary CLI(elementary-data) 被攻击者植入恶意代码,通过官方渠道传播,影响范围极大。
🧨 事件概述
-
受影响项目:Elementary CLI(PyPI + Docker) -
受影响版本:v0.23.3 -
下载规模:每月超过100万次 -
恶意版本存活时间:约 12小时
攻击者成功将恶意代码混入官方发布流程,并通过正常渠道分发给开发者。
⚙️ 攻击是如何发生的?
本次攻击的关键点在于 CI/CD 供应链被攻破:
-
攻击者利用 GitHub Actions 中的 脚本注入漏洞 -
获取自动化流程中的 GITHUB_TOKEN - 伪造合法签名发布(signed release)
-
将恶意版本推送到: -
PyPI -
Docker 镜像仓库
👉 本质:
不是代码仓库被入侵,而是发布流程被劫持
🧬 恶意代码做了什么?
恶意版本中包含一个 .pth 文件,在程序启动时自动执行,属于典型 信息窃取器(infostealer)。
可窃取的数据包括:
-
SSH 私钥 -
Git 凭证 -
云厂商密钥(AWS / GCP / Azure) -
Kubernetes / Docker 凭证 .env
文件中的所有密钥 -
CI/CD 环境变量 -
系统信息 -
💰 加密货币钱包文件
👉 一句话总结:
凡是你机器上有权限访问的敏感信息,几乎都可能被窃取
⚠️ 为什么这次事件特别严重?
1️⃣ 官方渠道分发(最致命)
-
PyPI 官方源 -
Docker 官方镜像
👉 用户完全无法通过“来源判断安全性”
2️⃣ CI/CD 环境风险极高
CI/CD 通常挂载大量密钥:
-
部署密钥 -
API Token -
云权限凭证
👉 一旦被利用:
可能直接导致生产环境被接管
3️⃣ 攻击隐蔽性极强
-
使用合法签名发布 -
混入正常版本流程 -
自动执行(.pth hook)
👉 几乎无法通过常规手段发现
🛠️ 官方应对措施
项目方已紧急处理:
-
❌ 删除恶意版本(0.23.3) -
✅ 发布安全版本(0.23.4) -
🔁 轮换所有敏感凭证 -
🧹 移除存在漏洞的 GitHub Actions 工作流 -
🔍 审计全部 CI/CD 流程
🚨 如果你使用过该工具(必须立即做)
如果你曾安装或运行过 0.23.3:
👉 立即执行:
-
🔑 重置所有密钥: -
SSH Key -
API Token -
云账号密钥 -
🔄 更新 CI/CD secrets -
🔍 检查异常访问日志 -
💰 检查钱包是否被访问
👉 官方建议:
默认所有凭证已泄露处理
🧠 这件事的本质启示
🔥 开源安全的新趋势:
1. 攻击重点从“代码”转向“供应链”
👉 攻击 CI/CD 比攻击代码更高效
2. 自动化流程成为新攻击面
👉 GitHub Actions / CI Runner = 高价值目标
3. 开发者本地环境同样危险
👉 一次 pip install ≈ 执行远程代码
🛡️ 企业级防护建议
✅ 强烈建议:
-
禁用 CI/CD 中的默认 Token 写权限 -
使用 最小权限原则(Least Privilege) -
对依赖包进行: -
Hash 校验 -
版本锁定(pinning) -
使用: -
SBOM(软件物料清单) -
供应链安全扫描工具
✍️ 总结
这次 Elementary CLI 事件再次证明:
👉 “官方发布 ≠ 安全”
👉 “pip install 也可能是攻击入口”
未来的软件安全,不只是代码安全,
而是整个 供应链安全体系的对抗。
END
阅读推荐
【安全圈】9人假借招聘骗走大量个人信息 非法贩卖信息获利数十万


安全圈

←扫码关注我们
网罗圈内热点 专注网络安全
实时资讯一手掌握!

好看你就分享 有用就点个赞
支持「安全圈」就点个三连吧!

夜雨聆风