概述

本周(2024年01月15号),悬镜供应链安全实验室在Pypi官方仓库(https://pypi.org/)中捕获1起Py包投毒事件,投毒者利用包名错误拼写(typo-squatting)的攻击方式来仿冒谷歌开源的tensorflow机器/深度学习框架,投毒攻击目标锁定AI开发者。

截至目前,投毒者在Pypi仓库共发布5个不同版本的恶意包。python开发者一旦通过pip命令下载或安装该投毒包(tensrflwo),则会触发执行Py组件包中的恶意后门代码,并最终导致开发者系统被攻击者远程控制。

恶意Py包tensrflwo在Pypi官方仓库上的总下载量为870次。

该恶意Py包已从Pypi官方仓库下架,但通过国内主流Pypi镜像源(清华大学、腾讯云等)依旧可正常下载、安装该恶意包,因此潜在的受害者数量将会更多,尤其对于国内广大使用tensorflow深度学习框架的AI开发者来说,仍存在被恶意投毒攻击的风险。

投毒分析

攻击流程

Py投毒包tensrflwo尝试利用包名错误拼写 (typo-squatting)来攻击使用tensorflow框架的AI开发者。tensrflwo安装包setup.py中定义的taint2()函数通过创建子进程将受害者系统shell反连到投毒者控制的服务器上(59.110.111.85:8088),最终投毒者能够通过反弹的shell实现对受害者系统进行远程控制。

一旦开发者通过命令pip download tensrflwo下载py包或者pip install tensrflwo安装py包时,投毒包tensrflwo中的恶意函数tain2()会立即被调用执行,开发者系统将被投毒者远程控制。

攻击复现

以清华大学和腾讯云pypi镜像源为例,通过以下pip命令模拟开发者安装恶意包tensrflwo 。

​pip install tensrflwo -i  https:​//pypi.tuna.tsinghua.edu.cn/simple/​
​pip install tensrflwo -i https://mirrors.cloud.tencent.com/pypi/simple​

同样,在本地环境中模拟投毒攻击者的服务器IP (59.110.111.85),并监听TCP 8088端口,当受害者执行pip install tensrflwo 操作时,攻击者可获取受害者系统shell权限,并可对目标系统进行远程控制。

IoC数据

此次投毒组件包涉及的恶意文件和恶意链接IoC数据如下所示:

排查方式

截至目前,该Python恶意组件包可正常从国内主流Pypi镜像源下载安装,国内Python开发者仍面临被投毒攻击的安全风险,开发者需提高安全防护意识,可自行根据IoC和恶意包信息通过以下方式进行快速排查是否安装或引用恶意组件包。开发者可通过命令pip show tensrflwo快速排查是否误安装或引用该恶意py组件包,若命令运行结果如下图所示,则代表系统已被安装该恶意组件,请尽快通过命令pip uninstall tensrflwo -y 进行卸载,此外还需关闭系统网络并排查系统是否存在异常进程。

此外,开发者也可使用OpenSCA-cli,将受影响的组件包按如下示例保存为db.json文件(可参考总结中提到的组件包信息按格式增减),直接执行扫描命令(opensca-cli -db db.json -path ${project_path}),即可快速获知您的项目是否受到投毒包影响。

[
{
"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"
}
]

悬镜供应链安全情报中心将持续监测全网主流开源软件仓库,对潜在风险的开源组件包进行动态跟踪和溯源,实现快速捕获开源组件投毒攻击事件并第一时间提供精准安全预警。

供应链投毒预警 | 恶意Py包仿冒tensorflow AI框架实施后门投毒攻击的更多相关文章

  1. py 包和模块,软件开发目录规范

    目录 py 包和模块,软件开发目录规范 什么是包? 什么是模块? 软件开发目录规范 py 包和模块,软件开发目录规范 什么是包? 包指的是内部包__init__.py的文件夹 包的作用: 存放模块,包 ...

  2. 在windows上极简安装GPU版AI框架(Tensorflow、Pytorch)

    在windows上极简安装GPU版AI框架 如果我们想在windows系统上安装GPU版本的AI框架,比如GPU版本的tesnorflow,通常我们会看到类似下面的安装教程 官方版本 安装CUDA 安 ...

  3. CTF---安全杂项入门第三题 这是捕获的黑客攻击数据包,Administrator用户的密码在此次攻击中泄露了,你能找到吗?

    这是捕获的黑客攻击数据包,Administrator用户的密码在此次攻击中泄露了,你能找到吗?分值:30 来源: 2014sctf 难度:难 参与人数:3918人 Get Flag:384人 答题人数 ...

  4. 基于Docker的TensorFlow机器学习框架搭建和实例源码解读

    概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的 ...

  5. Google TensorFlow 机器学习框架介绍和使用

    TensorFlow是什么? TensorFlow是Google开源的第二代用于数字计算(numerical computation)的软件库.它是基于数据流图的处理框架,图中的节点表示数学运算(ma ...

  6. TensorFlow机器学习框架-学习笔记-001

    # TensorFlow机器学习框架-学习笔记-001 ### 测试TensorFlow环境是否安装完成-----------------------------```import tensorflo ...

  7. concurrent包分析之Executor框架

    文章目录 线程生命周期的开销:线程比较少的情况使用new Thread(task)无多大影响,但是如果涉及到线程比较多的情况,应用的性能就会受到影响,如果jdbc创建连接一样,new Thead创建线 ...

  8. 下载恶意pcap包的网站汇总

    说几个我经常用的,免费的:1.  Malware  Traffic  Analysis:  http://www.malware-traffic-analysis.net/2018/index.htm ...

  9. 下载恶意pcap包的网站

    说几个我经常用的,免费的:1.  Malware  Traffic  Analysis:  http://www.malware-traffic-analysis.net/2018/index.htm ...

  10. 换个新的思路 代替解压jar包 例证:wechat4j 框架中的templateMsg类

    很多朋友在写java的程序的时候都喜欢用第三方的jar包和框架,有可能遇到jar包中的内容已经跟不上官方开发者文档的更新,导致部分内容出错了,这个时候可能就要放弃这个jar的使用,但是这个jar中的其 ...

随机推荐

  1. 【scikit-learn基础】--『预处理』之 分类编码

    数据的预处理是数据分析,或者机器学习训练前的重要步骤.通过数据预处理,可以 提高数据质量,处理数据的缺失值.异常值和重复值等问题,增加数据的准确性和可靠性 整合不同数据,数据的来源和结构可能多种多样, ...

  2. 创建定义store并使用组合式api、选项式api

    在项目根目录创建store文件夹(此步骤和vuex相同) 在步骤一的store文件夹下根据不同的用途场景创建单独的store文件(等同于vuex中分模块). 定义store基本步骤 步骤 导入defi ...

  3. vue 2实战系列 —— 复习Vue

    复习Vue 近期需要接手 vue 2的项目,许久未写,语法有些陌生.本篇将较全面复习 vue 2. Tip: 项目是基于 ant-design-vue-pro ant-design-vue-pro 由 ...

  4. 【经典问题】mysql和redis数据一致性问题

    前言 MySQL和Redis数据一致性算是个很经典的问题,在之前也看到过很多相关的文章,最近心血来潮,想把一致性问题的解决方案和存在问题都总结一下. 不推荐方案 1 先更新MySQL,再更新Redis ...

  5. linux文件摘选

    显示/var目录下所有以1开头,以一个小写字母结尾,且中间至少出现一位数字(可以由其他字符)的文件或目录. 命令: ls -d /var/1*[0-9]*[a-z] [root@foundation0 ...

  6. 谈谈muduo库的销毁连接对象——C++程序内存管理和线程安全的极致体现

    前言 网络编程的连接断开一向比连接建立复杂的多,这一点在陈硕写的muduo库中体现的淋漓尽致,同时也充分体现了C++程序在对象生命周期管理上的复杂性,稍有不慎,满盘皆输. 为了纪念自己啃下muduo库 ...

  7. AnimatedList 实现动态列表

    AnimatedList实现动画  AnimatedList 和 ListView 的功能大体相似,不同的是, AnimatedList 可以在列表中插入或删除节点 时执行一个动画,在需要添加或删除列 ...

  8. ReactNative环境安装

    一.Homebrew 采用 Homebrew 镜像源及工具,切换到国内. /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/Homebre ...

  9. 云图说 | 图解制品仓库服务CodeArts Artifact

    本文分享自华为云社区<[云图说]第277期 图解制品仓库CodeArts Artifact>,作者:阅识风云. 制品仓库服务CodeArts Artifact用于存放源码编译生成的.可运行 ...

  10. 深入浅出Sqoop之迁移过程源码分析

    [摘要]Sqoop是一种用于在Apache Hadoop和结构化数据存储(如关系数据库)之间高效传输批量数据的工具 .本文将简单介绍Sqoop作业执行时相关的类及方法,并将该过程与MapReduce的 ...