OceanLotus APT 利用 PyPI 包分发 ZiChatBot 恶意软件
卡巴斯基将 PyPI 供应链活动归因于 OceanLotus APT,使用假冒的 wheel 包来投放滥用 Zulip 聊天 API 进行 C2 的 ZiChatBot 恶意软件,影响 Windows 和 Linux 系统。

Indicators of Compromise (1)
| Type ↑ | Value | Description | Conf | |
|---|---|---|---|---|
| Domain | tutamail.com | Extracted from source material | medium |
执行摘要
卡巴斯基研究人员揭露了一起针对Python包索引(PyPI)的供应链攻击,归因于OceanLotus APT组织(也称为APT32)。自2025年7月以来,该威胁行为者上传了三个恶意轮包——uuid32-utils、colorinal和termncolor——它们冒充合法库以传递一个以前未记录的恶意软件家族,称为ZiChatBot。与传统恶意软件不同,ZiChatBot使用Zulip团队聊天平台的公共REST API作为其命令和控制(C2)基础设施,使流量与合法聊天活动混合。该活动针对Windows和Linux环境,投放器根据宿主操作系统提取DLL或共享对象(SO)有效载荷。卡巴斯基通过其威胁归因引擎(KTAE)确认了归因,并与社区共享了发现,导致这些包从PyPI中被移除。
技术分析
攻击链始于受害者通过pip安装其中一个恶意轮包。uuid32-utils和colorinal包直接包含投放器,而看起来良性的termncolor作为依赖项导入colorinal,隐藏恶意代码。安装后,包中的__init__.py脚本执行unicode.py,它将投放器(Windows上的terminate.dll,Linux上的terminate.so)加载到Python进程中。投放器使用AES-CBC解密,密钥为xterminalunicode,以解包ZiChatBot,建立持久性,然后自删除投放器和恶意脚本文件。
ZiChatBot仅通过Zulip的REST API通信,使用专用的Zulip组织作为其C2通道。这种设计避免了传统的服务器基础设施,使检测更具挑战性,因为流量看起来像是对合法服务的正常API调用。恶意软件可以通过聊天平台接收命令、泄露数据和自我更新。卡巴斯基指出,这些包为Windows提供了x86和x64构建,为Linux提供了x86_64构建,表明有意识的多平台目标。
入侵指标
卡巴斯基提供了以下与活动相关的包元数据和文件名:
- 包:
uuid32-utils(首次上传2025-07-16,作者邮箱:laz****@tutamail.com) - 包:
colorinal(首次上传2025-07-22,作者邮箱:sym****@proton.me) - 包:
termncolor(首次上传2025-07-22,作者邮箱:sym****@proton.me) - 投放器(Windows):
terminate.dll - 投放器(Linux):
terminate.so - **C2 API端点:**Zulip组织API URL(卡巴斯基未披露特定组织)
完整的文件哈希值和额外的IOCs可以在参考资料部分链接的卡巴斯基Securelist报告中找到。
战术、技术与程序
OceanLotus通过上传木马化包到公共仓库,采用了多阶段供应链破坏(T1195.001)。执行依赖于用户安装(T1204.002)恶意包。恶意软件使用Zulip的应用层协议进行C2(T1071.001),这对于APT组织来说是不典型的,并且使网络检测复杂化。投放器和脚本文件在部署后自删除,这是一种防御规避技术(T1036.005),减少了取证工件。卡巴斯基对OceanLotus的归因是基于KTAE分析,该分析比较了代码相似性和基础设施模式与以前已知的活动。
威胁行为者背景
OceanLotus(APT32)是一个越南国家支持的威胁组织,自2014年以来活跃,以针对外国公司、人权组织和政府为目标,特别是在东南亚。该组织有供应链攻击和定制恶意软件开发的历史。这次活动使用PyPI和Zulip进行C2代表了战术演变,利用受信任的平台来逃避检测。卡巴斯基对归因的信心很高,尽管他们指出一些技术重叠也可能表明是一个模仿团体。
缓解措施与建议
使用Python包的组织应通过检查官方来源的哈希值并审查包元数据中的异常(例如,最近的上传日期,可疑的作者电子邮件)来验证包的完整性。开发人员应避免在生产环境中直接从PyPI安装包,而没有通过私有仓库扫描或使用依赖分析工具。网络防御者应监控从通常不使用聊天应用程序的进程到Zulip端点的出站API调用,并考虑阻止或限制对未知Zulip组织的访问。恶意包已从PyPI中移除,但在2025年7月至关闭之间安装了uuid32-utils、colorinal或termncolor的任何系统都应被视为被破坏,并调查ZiChatBot感染。
订阅更新
将最新的网络安全资讯直接发送到您的邮箱。
