乐于分享
好东西不私藏

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

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

关键词

恶意代码

近日,一起影响广泛的开源安全事件引发业内关注——
广泛用于数据工程领域的 Python 工具 Elementary CLI(elementary-data) 被攻击者植入恶意代码,通过官方渠道传播,影响范围极大。


🧨 事件概述

  • 受影响项目:Elementary CLI(PyPI + Docker)
  • 受影响版本:v0.23.3
  • 下载规模:每月超过100万次
  • 恶意版本存活时间:约 12小时

攻击者成功将恶意代码混入官方发布流程,并通过正常渠道分发给开发者。


⚙️ 攻击是如何发生的?

本次攻击的关键点在于 CI/CD 供应链被攻破

  1. 攻击者利用 GitHub Actions 中的 脚本注入漏洞
  2. 获取自动化流程中的 GITHUB_TOKEN
  3. 伪造合法签名发布(signed release)
  4. 将恶意版本推送到:
    • 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人假借招聘骗走大量个人信息 非法贩卖信息获利数十万

【安全圈】官方 SAP npm 软件包遭入侵,用于窃取凭证

【安全圈】十天 39 个公开 CVE

安全圈

←扫码关注我们

网罗圈内热点 专注网络安全

实时资讯一手掌握!

好看你就分享 有用就点个赞

支持「安全圈」就点个三连吧!