Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
GraphIP-Bench — 用于在图神经网络上、在统一黑盒协议下评估模型提取攻击与所有权防御(水印、输出扰动、查询检测)的基准与库。 | Kitploit
工具/GitHubGitHub/labrai/graphip-bench
防御工具机器学习论文与研究学习与教育AI 安全对抗性攻击
GitHublabrai/graphip-bench

GraphIP-Bench

用于在图神经网络上、在统一黑盒协议下评估模型提取攻击与所有权防御(水印、输出扰动、查询检测)的基准与库。

查看仓库
2365个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GraphIP-Bench

窃取图神经网络有多难,我们能阻止它吗?

一个统一的基准测试与库,用于在单一可复现的黑盒协议下评估图神经网络上的模型提取攻击与所有权防御。

Project Python PyTorch DGL PyG License

为什么选择 GraphIP-Bench · 亮点 · 快速开始 · 研究问题 · 目录结构 · 引用

Attacks Defenses Datasets Backbones Tasks Joint Track


为什么选择 GraphIP-Bench

以云服务形式部署的图神经网络可能通过模型提取攻击被窃取:攻击者提交精心构造的查询,记录端点返回的标签或置信度分数,并训练一个本地替代模型来复现目标模型的行为。一次成功的窃取会泄露所有者的知识产权,损害按查询计费的收入,并使竞争对手能够以低成本重建专有功能。

越来越多的所有权防御手段——水印、指纹、输出扰动、查询模式检测——试图阻止或追踪此类窃取。但该领域的实验实践是碎片化的: 各项研究使用私有的数据划分、互不兼容的预算以及不一致的指标;少数现有的测试平台侧重于鲁棒性或隐私,并将模型提取与所有权验证排除在外。

GraphIP-Bench 填补了这一空白。它在单一黑盒协议下,使用共享的数据划分、查询和预算,标准化了对两条互补轨道的评估——提取轨道(攻击者训练一个模仿已部署 GNN 的替代模型)和所有权轨道(模型所有者在提取后验证水印或指纹)。随后,我们增加了一条联合攻防轨道,在每一个受防御的目标上运行每一种提取攻击,并测量提取出的替代模型上的水印存活率——这正是真正决定防御是否有用的场景。

组件它为你提供什么
12 种攻击六个 MEA 风格基线(MEA0–MEA5)、对抗性攻击(AdvMEA)、中心性驱动攻击(CEGA)、结构感知攻击(Realistic),以及三个无数据变体(DFEA_I/II/III)
12 种防御5 种所有权追踪(BackdoorWM、RandomWM、SurviveWM、ImperceptibleWM、Integrity)+ 7 种信息限制(OP_low、OP_high、PR_2bit、PR_top1、PRADA、AdaptMisinfo、GradRedir)
10 个数据集同配引用网络(Cora、CiteSeer、PubMed)、合著/产品网络(CoauthorCS、CoauthorPhysics、Computers、Photo)、大规模图(OGBN-Arxiv)、异配图(RomanEmpire、AmazonRatings)
3 种骨干网络 × 3 种任务GCN、GAT、GraphSAGE 在节点分类、链接预测、图分类任务上
联合赛道在提取出的代理模型上同时评估代理保真度和水印存活率,全部在同一协议下进行
可复现性公开划分、共享查询集、固定随机种子、JSON-Lines 输出、现成的聚合脚本

亮点

一个协议,两个视角

每种攻击都在相同的划分、预算和端点假设下针对每种防御进行评估。保真度、所有权验证、效用和计算成本在共享的指标套件上报告。

水印存活率,而不仅仅是嵌入

联合赛道衡量水印在模型被实际提取后是否仍能通过验证——揭示单模型评估所遗漏的差距。

异配图与大规模图

在核心协议的七个同配图之外,我们加入了 OGBN-Arxiv(169K 节点,40 个类别)以及异配的 RomanEmpire / AmazonRatings,以对攻击和防御行为进行压力测试。

从构造上保证可复现

固定随机种子、共享查询集,并为每个(数据集、攻击、防御、数据可用性机制、预算、种子)单元输出 JSON-Lines 记录。单种子运行可直接与论文中对应单元进行比较。


概览

信号基准中的规模
提取攻击12
所有权 / 信息限制防御12
图数据集10
GNN 骨干网络3(GCN、GAT、GraphSAGE)
图学习任务3(节点 / 链接 / 图)
数据可用性机制4(两者兼具、仅特征、仅结构、无数据)
标准化查询预算5(0.05× — 1.00× 测试集规模)
每个单元的种子数3
评估赛道3(提取、所有权、联合)

快速开始

git clone https://github.com/LabRAI/GraphIP-Bench.git
cd GraphIP-Bench
conda create -n graphip python=3.11 -y
conda activate graphip
pip install -r requirements.txt

运行提取轨道中的一个单元格:

python scripts/run_rq1_single.py \
  --dataset Cora \
  --attack MEA0 \
  --regime both \
  --budget 0.25 \
  --seed 0 \
  --gpu \
  --output-dir outputs/RQ1

在单个数据集上运行联合攻防赛道:

python examples/run_joint_evaluation.py \
  --dataset Cora \
  --seed 0 \
  --gpu

每次运行都会为每个 (attack, defense, regime, budget, seed) 元组向 outputs/ 写入一条 JSON-Lines 记录。可以使用 scripts/ 中的辅助脚本(例如 merge_rq1_rq5_faithful_results.py)合并和分析这些记录。


安装

GraphIP-Bench 支持 Linux(推荐),需要 Python 3.10+。我们固定了 PyTorch / DGL / PyG 的版本,因为 DGL 2.1.0 的 graphbolt 内核仅在 CUDA 12.1 上为 PyTorch 2.0–2.2 提供预编译的共享库。

选项 A:Conda(推荐)

conda create -n graphip python=3.11 -y
conda activate graphip
pip install -r requirements.txt

选项 B:pip + venv

python -m venv .venv && source .venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
📦 固定版本依赖栈
库版本固定原因
PyTorch2.2.1 + cu121DGL 2.1.0 graphbolt wheel 仅支持 PT 2.0–2.2 / CUDA 12.1
DGL2.1.0 + cu121加载器使用的 Graphbolt 内核
PyTorch Geometric2.7.0链接预测和图分类适配器
OGB1.3.6OGBN-Arxiv 加载器
NumPy< 2.0DGL 内核 ABI

研究问题

GraphIP-Bench 围绕五个研究问题组织;每个问题对应一个顶层复现脚本。

RQ问题入口点
RQ1提取有效性如何随查询预算变化,该趋势在异质图和大规模图上是否成立?scripts/run_rq1_single.py
RQ2现有防御在受保护模型上的有效性如何?scripts/run_defense_single.py
RQ3防御在保护性和效用之间平衡得如何?scripts/run_defense_single.py + scripts/run_defense_hp_ablation.py
RQ4攻击与防御的计算复杂度和实际效率如何?每条 JSONL 记录中记录的 wall-clock 和峰值内存字段
RQ5防御在联合对抗设置下的有效性如何,水印信号能否在提取的替代模型上存活?examples/run_joint_evaluation.py

补充实验轨道:

轨道入口点
跨架构提取(无防御)scripts/run_cross_arch.py
针对防御目标的跨架构提取scripts/run_cross_arch_defended.py
链接预测(Cora)scripts/run_link_prediction.py, examples/run_link_pred_experiments.py
图分类(ENZYMES、PROTEINS)scripts/run_graph_class.py
端点消融(硬标签 vs. 置信度分数)examples/run_endpoint_ablation.py
预算网格消融scripts/run_budget_ablation.py
查询划分 / 结构分析scripts/run_query_split_ablation.py, scripts/run_structure_analysis.py
跨骨干网络的基线效用scripts/run_baseline_utility.py

攻击

下载工具