供应链投毒预警 | 恶意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 恶意代码执行流程
- 开发者执行
pip install tensrflwo或pip download tensrflwo - 安装过程中自动执行setup.py中定义的
taint2()函数 - 该函数创建子进程,将受害者系统shell反连到攻击者控制的服务器
- 攻击者获得受害者系统的远程控制权限
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 修复措施
- 立即卸载恶意包:
pip uninstall tensrflwo -y
- 检查系统异常进程
- 关闭网络连接进行进一步排查
5.3 使用OpenSCA-cli工具扫描
- 创建检测配置文件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"
}
- 执行扫描:
opensca-cli -db db.json -path ${project_path}
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开发者作为高价值目标,更应提高安全意识,建立完善的安全开发流程,防范此类投毒攻击。