供应链投毒预警 | 恶意Py包仿冒tensorflow AI框架实施后门投毒攻击
字数 1212 2025-08-24 07:48:33

恶意Py包仿冒tensorflow实施供应链投毒攻击分析报告

1. 事件概述

2024年1月15日,悬镜供应链安全实验室在PyPI官方仓库发现一起针对AI开发者的供应链投毒攻击事件。攻击者通过包名错误拼写(typo-squatting)的方式仿冒谷歌开源的tensorflow框架,发布了名为tensrflwo的恶意Py包。

关键数据:

  • 恶意包名称:tensrflwo (正确拼写应为tensorflow)
  • 发布版本:5个不同版本
  • 总下载量:870次
  • 攻击目标:使用tensorflow框架的AI开发者
  • 当前状态:已从PyPI官方仓库下架,但仍可通过国内镜像源下载

2. 攻击技术分析

2.1 攻击手法:Typo-squatting

攻击者利用开发者可能拼写错误的特点,注册与知名包相似的名称。在此案例中,将tensorflow拼写为tensrflwo

2.2 恶意代码执行流程

  1. 开发者执行pip install tensrflwopip download tensrflwo
  2. 安装过程中自动执行setup.py中定义的taint2()函数
  3. 该函数创建子进程,将受害者系统shell反连到攻击者控制的服务器
  4. 攻击者获得受害者系统的远程控制权限

2.3 攻击服务器信息

  • IP地址:59.110.111.85
  • 端口:8088

3. 攻击复现

3.1 通过国内镜像源安装恶意包

# 通过清华大学镜像源安装
pip install tensrflwo -i https://pypi.tuna.tsinghua.edu.cn/simple/

# 通过腾讯云镜像源安装
pip install tensrflwo -i https://mirrors.cloud.tencent.com/pypi/simple

3.2 攻击者服务器模拟

攻击者在59.110.111.85的8088端口监听,当受害者安装恶意包时,攻击者可获取系统shell权限。

4. 影响范围

4.1 受影响版本

恶意包发布的5个版本:

  • 2.5.1
  • 2.7
  • 2.7.1
  • 2.8
  • 2.9

4.2 潜在风险

由于国内镜像源同步存在延迟,即使PyPI官方已下架,国内开发者仍可能从镜像源下载到恶意包。

5. 检测与修复方案

5.1 快速检测

pip show tensrflwo

若命令返回包信息,则表明系统已安装该恶意包。

5.2 修复措施

  1. 立即卸载恶意包:
pip uninstall tensrflwo -y
  1. 检查系统异常进程
  2. 关闭网络连接进行进一步排查

5.3 使用OpenSCA-cli工具扫描

  1. 创建检测配置文件db.json:
{
  "product": "tensrflwo",
  "version": "[2.5.1,2.5.1]|[2.7,2.7]|[2.7.1,2.7.1]|[2.8,2.8]|[2.9,2.9]",
  "language": "python",
  "id": "XMIRROR-MAL45-777DD586",
  "description": "恶意Python组件包投毒,仿冒tensorflow AI框架。",
  "release_date": "2024-01-15"
}
  1. 执行扫描:
opensca-cli -db db.json -path ${project_path}

6. 防护建议

  1. 仔细检查包名:安装依赖时确保拼写正确
  2. 使用虚拟环境:限制包的安装范围
  3. 定期扫描依赖:使用安全工具检查项目依赖
  4. 关注安全通告:及时获取供应链安全预警信息
  5. 优先使用官方源:镜像源可能存在同步延迟

7. IoC (失陷指标)

7.1 恶意包

  • 名称:tensrflwo
  • 版本:2.5.1, 2.7, 2.7.1, 2.8, 2.9

7.2 C2服务器

  • IP: 59.110.111.85
  • 端口: 8088

8. 总结

本次攻击事件展示了供应链攻击的典型特征:利用开发者信任和常见错误实施精准打击。AI开发者作为高价值目标,更应提高安全意识,建立完善的安全开发流程,防范此类投毒攻击。

恶意Py包仿冒tensorflow实施供应链投毒攻击分析报告 1. 事件概述 2024年1月15日,悬镜供应链安全实验室在PyPI官方仓库发现一起针对AI开发者的供应链投毒攻击事件。攻击者通过 包名错误拼写(typo-squatting) 的方式仿冒谷歌开源的tensorflow框架,发布了名为 tensrflwo 的恶意Py包。 关键数据: 恶意包名称: tensrflwo (正确拼写应为 tensorflow ) 发布版本:5个不同版本 总下载量:870次 攻击目标:使用tensorflow框架的AI开发者 当前状态:已从PyPI官方仓库下架,但仍可通过国内镜像源下载 2. 攻击技术分析 2.1 攻击手法:Typo-squatting 攻击者利用开发者可能拼写错误的特点,注册与知名包相似的名称。在此案例中,将 tensorflow 拼写为 tensrflwo 。 2.2 恶意代码执行流程 开发者执行 pip install tensrflwo 或 pip download tensrflwo 安装过程中自动执行setup.py中定义的 taint2() 函数 该函数创建子进程,将受害者系统shell反连到攻击者控制的服务器 攻击者获得受害者系统的远程控制权限 2.3 攻击服务器信息 IP地址:59.110.111.85 端口:8088 3. 攻击复现 3.1 通过国内镜像源安装恶意包 3.2 攻击者服务器模拟 攻击者在59.110.111.85的8088端口监听,当受害者安装恶意包时,攻击者可获取系统shell权限。 4. 影响范围 4.1 受影响版本 恶意包发布的5个版本: 2.5.1 2.7 2.7.1 2.8 2.9 4.2 潜在风险 由于国内镜像源同步存在延迟,即使PyPI官方已下架,国内开发者仍可能从镜像源下载到恶意包。 5. 检测与修复方案 5.1 快速检测 若命令返回包信息,则表明系统已安装该恶意包。 5.2 修复措施 立即卸载恶意包: 检查系统异常进程 关闭网络连接进行进一步排查 5.3 使用OpenSCA-cli工具扫描 创建检测配置文件db.json: 执行扫描: 6. 防护建议 仔细检查包名 :安装依赖时确保拼写正确 使用虚拟环境 :限制包的安装范围 定期扫描依赖 :使用安全工具检查项目依赖 关注安全通告 :及时获取供应链安全预警信息 优先使用官方源 :镜像源可能存在同步延迟 7. IoC (失陷指标) 7.1 恶意包 名称:tensrflwo 版本:2.5.1, 2.7, 2.7.1, 2.8, 2.9 7.2 C2服务器 IP: 59.110.111.85 端口: 8088 8. 总结 本次攻击事件展示了供应链攻击的典型特征:利用开发者信任和常见错误实施精准打击。AI开发者作为高价值目标,更应提高安全意识,建立完善的安全开发流程,防范此类投毒攻击。