社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

警惕!“海莲花”APT组织利用Python官方软件仓库PyPI发起定向“投毒”攻击

安小圈 • 1 年前 • 1513 次点击  

安小圈

第719期


图片

导读

图片

近日,国资国企在线监管安全运营中心(以下简称“安全运营中心”)监测发现APT组织“海莲花”针对Python官方软件仓库——PyPI(Python Package Index)平台“投毒”事件。该组织利用PyPI平台高开放性、高可信性及开发者高依赖性,通过仿冒合法软件模块投递后门程序。经安全运营中心研判,为“海莲花”组织定向针对软件开发从业人员发起的新一轮供应链攻击。

图片

一、事件背景


PyPI平台是Python的官方软件仓库,承担组件分发、检索下载、协作集成、版本管理等核心功能,与Python深度绑定,其上托管的软件安装包超过60万,月均访问量达数十亿量级。

2025年4月初,安全运营中心即监测发现“海莲花”APT组织尝试利用PyPI平台进行“投毒”活动,“投毒”模块名称为“libtest”,最终释放的载荷执行效果是弹出计算器,无恶意功能。根据释放载荷部分代码,安全运营中心将相关活动与“海莲花”组织相关联,研判应为正式“投毒”攻击前的测试行为。

7月,安全运营中心再次捕获到“海莲花”APT组织针对PyPI“投毒”的载荷,本次“投毒”模块名称为“uuid32-utils”,作者名称为“lazyrok”,用户创建时间为2025年5月7日,说明在模块“libtest”完成测试后不久,“海莲花”组织就着手开始了正式“投毒”模块的构建。

截至发文,攻击组织仍在持续上传、更新恶意文件,疑似正在搭建更多攻击设施,模块版本号由1.0.4升级到了1.1.0,增加了linux和windows的64位版本。经分析,样本的执行方式和最终载荷的C2地址没有发生变化,仅是释放的文件夹名称由obsHub变成了vcpackage,同时白加黑载荷中的白文件名称由obs-check-update.exe变为了vcpkgsrc.exe,其他部分基本无变化,因此本文中仍以1.0.4版本为例进行分析。

图片

图1 恶意模块项目主页

图片

图2 攻击者用户主页



二、“投毒”模块分析


用户在使用PyPI平台时只需要一行简单的命令(如pip install ),即可完成指定软件包及其依赖项的安装。PyPI平台不限制第三方用户上传和发布,即任何一个用户都可以向该平台上传自己编写的软件安装包。

“海莲花”组织利用了PyPI平台该特性,仿冒名称高度相似的合法软件模块“uuid”和“uuid32”,发布“投毒”软件模块“uuid32-utils”。其中“uuid”模块拥有千万量级级用户,用于生成随机的UUID,即通用唯一标识符(128位的数字,通常以32个十六进制数字的形式表示,并用连字符分隔,例如550e8400-e29b-41d4-a716-446655440000),相关功能在数据库、云服务、云存储等广大场景下被频繁使用。



三、“投毒”方式分析


利用PyPI的开放性和开发者对其的信任,攻击者能够设计多种攻击手段完成恶意载荷投递,结合“海莲花”组织的历史活动(例如利用GitHub的投毒活动),列举可能的攻击方式:

(一)手动安装与拼写劫持

这是最直接也最常见的攻击方式,利用用户可能出现的选择错误、拼写错误来诱导下载。此次事件中,一旦用户在命令行中手动输入合法模块“uuid”、“uuid32”时,错误输入了“投毒”模块“uuid32-utils”,并执行安装,恶意代码便会在安装过程中被执行。

(二)创建开源项目进行调用(依赖注入)

攻击者通过在GitHub等平台创建开源项目,在项目依赖文件(如requirements.txt)中,明确指向访问“投毒”模块“uuid32-utils”下载软件安装包,从而实现自动解析恶意文件,在用户几乎无感知的情况下成功植入后门程序。

(三)依赖混淆

这是一种更为高级和隐蔽的攻击方式。许多企业内部会使用私有的PyPI仓库来管理自研的软件包。攻击者可以扫描企业在公开代码中意外泄露的内部包名,然后在公共的PyPI上注册一个同名的恶意包,并设置一个比内部版本更高的虚假“新版本”。当开发者的包管理工具同时配置了公共和私有仓库时,根据pip等工具的默认行为,它会优先选择版本号更高的包进行下载,因此会从公共PyPI拉取并安装恶意包,导致内部开发环境被污染。



四、恶意样本分析


(一)“投毒”模块执行逻辑


“投毒”模块的执行逻辑和攻击路径还原如下:

图片

图3 攻击路径还原


(二)投毒模块代码分析

文件名

uuid32_utils-1.0.4-py3-none-win32.whl

SHA-1

8524E3D0ADA54957B5A12

F87424A8358899F44B8

文件类型

Python wheel


本次“投毒”攻击所使用的wheel文件中的python代码结构与之前的测试模块“libtest”大体相同,但是代码看起来更加“正式”和规范,py文件中的函数数量更多,且包含注释。


负责执行恶意逻辑的python文件为__compressed__.py,该文件中名为“x32bitAPI”的函数负责加载名为“Backward.dll”的动态链接库,并执行其中的恶意逻辑,该dll的主要逻辑在名为“IsNotOlderOS”的导出函数中,这一点和之前的测试仓库“libtest”基本一致。

图片

图4 模块初始化

图片

图5 模块调用恶意dll



(三)投毒模块加载的恶意DLL

文件名

Backward.dll

SHA-1

06ADABCB962B5CF5D9FB6

3542518A5B80B5A9AD4

文件类型

X86-32 PE DLL

核心功能

释放白加黑载荷

创建注册表开机启动项


恶意样本的核心功能是解密释放白加黑载荷到路径“%LOCALAPPDATA%\obsHub”目录下,解密算法为AES-128,解密密钥为字符串“x32bitOSplatform”,由python文件调用时通过参数进行传递。

所释放的带有签名的白文件名为“obs-check-update.exe”,恶意dll载荷文件名为“libcef.dll”。


图片

图6 恶意dll释放后门dll(1)


图片

图7 恶意dll释放后门dll(2) 


图片

图8 恶意dll释放后门dll(3)

释放完成后,样本通过修改注册表以设置该路径为开机启动项,注册表项名称为“obs-update”,以此完成对用户的持久化控制。

图片

图9 恶意dll为后门程序创建持久化(1)

图片

图10 恶意dll为后门程序创建持久化(2)


(四)被释放驻留木马程序

文件名

libcef.dll

SHA-1

2A6D0E457B852419685893BA

179D7D9CF29CFAF1

文件类型

X86-64 PE DLL

核心功能

利用zulipchat聊天软件

进行远控的核心载荷



样本的功能是作为本次“投毒”的核心远控载荷,其逻辑较为简单。样本执行后首先收集受害者计算机的基本信息,包括:计算机名、用户名、操作系统版本。


图片

图11 后门程序获取计算机名 


图片

图12 后门程序获取用户名 


图片

图13 后门程序获取系统信息


随后样本将收集到的信息字符串以如下格式进行拼接(其中CPU架构为编译后门时预定义的字符串),以待后续发送给C2服务器。攻击组织利用境外聊天工具Zulipchat作为与其控制的服务器之间的通信桥梁,完成命令执行和数据回传等远程控制操作,将通信流量隐藏在Zulipchat聊天工具合法流量中,规避检测。

随后样本连接Zulipchat聊天软件的服务器地址,攻击者创建的聊天组织名称为“helper”,使用的电子邮箱为“safnic_take-bot@helper.zulipchat.com”。


图片

图14 后门程序连接聊天频道

攻击者利用Zulipchat的API将前文收集到的用户信息发送到了聊天频道中,然后持续接收消息,等待攻击者发送“shellcode”后创建线程执行。


图片

图15 后门接收频道内的Shellcode执行



五、总结


“海莲花”APT组织策划利用PyPI“投毒”并通过第三方聊天软件Zulipchat来实施C2通信的攻击活动,其恶意载荷的执行方式依旧为该组织惯用的“白加黑”加载手法,相关活动最早从4月份进入测试阶段,并在7月中旬正式投入了使用,从当前投毒仓库的更新情况来看,后续“海莲花”组织可能还会利用这一手段进行进一步的钓鱼和供应链攻击。

安全运营中心将持续关注相关情况,呼吁广大开发者引起重视并加以防范,安装软件包前仔细核实软件包名称的拼写,确认其发布来源是否合法,警惕不法分子利用公共平台实施的供应链攻击。安全运营中心将切实履行职责使命,不断强化供应链安全专项保障能力,持续开展供应链全链路监测,坚决为中央企业供应链安全保驾护航。


END

【以上内容来源于信息安全动态】


微软紧急修复高危蠕虫级RCE漏洞,威胁全网Windows系统







突发!小红书惊现后门......
图片


图片

  • 沈传宁:落实《网络数据安全管理条例》,提升全员数据安全意识

图片
图片
Trzęsienie ziemi na rynku sztucznej inteligencji. DeepSeek może ...


    Python社区是高质量的Python/Django开发社区
    本文地址:http://www.python88.com/topic/184932