悬镜安全 前天 07:46
热点供应链投毒预警 | 捕获恶意PY包伪装NetworkX开展投毒攻击事件
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

近日,悬镜安全情报中心捕获一起伪装成知名网络图结构分析库NetworkX的Python供应链投毒事件。攻击者通过植入恶意代码,窃取数据或进行远程控制。该恶意组件已在PyPI仓库下载超过2000次。悬镜安全已发布预警,建议用户立即排查并卸载受影响组件。

🕵️ 攻击手法:攻击者克隆NetworkX项目源码,将核心模块重命名为graphdict,并在其中植入恶意文件graph_config.py和load_libraries.py。

🔑 恶意代码:load_libraries.py文件包含加密压缩混淆的恶意代码,通过解密后执行,进一步请求攻击者服务器加载远程恶意代码。

🔗 远程控制:恶意代码使用远程配置链接获取实时数据,用于控制远程恶意代码的执行逻辑,推测下一阶段攻击或实施C2远控活动。

🛡️ 防御措施:用户可通过命令pip show graphdict查询是否已安装恶意组件,并使用pip uninstall graphdict -y卸载。同时关闭网络并排查异常进程,也可使用OpenSCA-cli工具进行扫描。

原创 悬镜安全情报中心 2025-07-11 15:02 北京

近日,悬镜供应链安全情报中心在python仓库捕获到一例伪装成日均下载量超百万次的知名网络图结构分析库NetworkX包投毒事件,影响深远。

热点供应链安全情报摘要

Summary

近日(2025年7月9号),悬镜供应链安全情报中心在Pypi官方仓库中捕获1起伪装成日均下载量超百万次的网络图结构分析库NetworkX ( https://pypi.org/project/networkx )的投毒事件。

在北京时间7月8号夜间,投毒者连续投放三个版本(3.4.12~3.4.14)包含恶意代码的组件包graphdict,恶意代码被加密后植入到graph_config.py和load_libraries.py文件中,主要功能是本地释放并执行内置的恶意代码,或者从远程服务器动态加载执行投毒者可控的攻击代码。

截至目前,该恶意组件在pypi官方仓库下载量超过2000次。悬镜安全已于第一时间将该组件投毒的详细技术分析向XSBOM供应链安全情报订阅用户进行推送预警。

恶意组件graphdict项目主页

graphdict恶意包下载量

该恶意组件包基本信息如下所示:

恶意组件包名

投毒版本

发布时间

graphdict

[3.4.12, 3.4.13, 3.4.14]

2025/07/08

投毒分析

Poisoning Analysis

1

代码克隆篡改


以graphdict恶意包最新版本3.4.14为例,投毒者通过对NetworkX项目源码(https://github.com/networkx/networkx)进行代码克隆后,将项目中的核心模块netwrokx重命名为graphdict,同时在graphdict/utils目录下植入两个包含投毒代码的恶意文件graph_config.py及load_libraries.py。

恶意包graphdict代码结构及恶意文件

下图为合法python组件包NetworkX的项目源码代码及文件目录结构,与恶意组件graphdict项目代码对比后可发现两者之间存在极大相似度。

NetworkX项目代码结构


2

恶意代码解密执行


以投毒文件graphdict/utils/load_libraries.py为例,load_libraries接口内置加密压缩混淆的恶意代码,simple_shift_decrypt接口负责解密,解密后的代码数据需要进一步通过base64解码以及zlib解压缩后才会调用eval执行最终的恶意代码。恶意代码会进一步请求攻击者服务器加载最新的远程恶意代码并执行。

由于解密密钥未直接硬编码在graphdict组件源码中,而是通过特定接口参数来动态计算,截至目前经过多次尝试仍未能成功还原出解密密钥,但根据恶意代码中使用到的远程配置链接及代码功能,可推测下一阶段攻击代码主要实施C2远控活动。

load_libraries.py 投毒文件代码


load_libraries投毒函数核心功能代码

恶意代码内部使用以下两个远程配置链接获取实时数据用于控制远程恶意代码执行逻辑。

URL地址

响应数据

https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.env.example

JWT_SECRET= 
EXPIRATION=9999h 
PORT=3000 
DB_USER=admin 
DB_PASS=321321321



https://raw.githubusercontent.com/johns92/blog_app/refs/heads/main/server/.nvmrc 

18.16.0



3

IoC 数据


graphdict投毒包涉及的恶意IoC数据如下表所示:

排查方式

Investigation Method

开发者可通过命令 pip show graphdict 查询系统中是否已安装存在恶意投毒的组件版本,如果已安装请立即使用 pip uninstall graphdict -y进行卸载。同时还需关闭系统网络并排查系统是否存在异常进程。

此外,也可使用 OpenSCA-cli 工具将受影响的组件包按如下示例保存为db.json文件,直接执行扫描命令(opensca-cli -db db.json -path ${project_path}),即可快速获知您的项目是否受到投毒包影响。

[   
  {     
    "product": "graphdict",     
    "version": "[3.4.12, 3.4.13, 3.4.14]",     
    "language": "python",     
    "id": "XMIRROR-MAL45-C6C78A7D",     
    "description": "恶意python组件伪装知名网络图结构分析库开展投毒代码攻击",     
    "release_date": "2025-07-09"   
  }
]

悬镜供应链安全情报中心是全球首个数字供应链安全情报研究中心。依托悬镜安全团队强大的数字供应链SBOM管理与监测能力和AI安全大数据云端分析能力,悬镜云脉XSBOM数字供应链安全情报预警服务通过对全球数字供应链投毒情报、漏洞情报、停服断供情报等进行实时动态监测与溯源分析,可为用户智能精准预警“与我有关”的数字供应链安全情报,提供情报预警、情报溯源、可视化关联分析等企业级服务。

推荐阅读



 关于“悬镜安全”


悬镜安全,起源于子芽创立的北京大学网络安全技术研究团队“XMIRROR”,作为数字供应链安全和DevSecOps敏捷安全开拓者,始终专注于以“AI智能代码疫苗”技术为内核,凭借原创专利级“多模态SCA+DevSecOps+SBOM风险情报预警”的第四代DevSecOps数字供应链安全管理体系,创新赋能金融、车联网、通信、能源、政企、智能制造和泛互联网等行业用户,构筑起适应自身业务弹性发展、面向敏捷业务交付并引领未来架构演进的共生积极防御体系,持续守护中国数字供应链安全。


阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Python 供应链攻击 NetworkX 恶意代码 安全预警
相关文章