成员推断攻击

1. 攻击描述

攻击者将试图推断某个待测样本是否存在于目标模型的训练数据集中,从而获得待测样本的成员关系信息。(判断样本是否属于成员

2. 攻击流程示意图

成员推断攻击

流程:

  1. 训练影子模型

    在实现成员推断攻击中,敌手无法获取原始数据集,其从与目标模型训练数据相同的分布中可获得影子数据集。首先使用影子训练集训练影子模型,其中影子模型与目标模型结构相同。

  2. 构建攻击数据集

    将影子数据集输入到影子模型中进行查询,将原始数据集输入到目标模型中进行查询,查询数据是否属于模型的训练集。攻击数据集包括攻击训练集和攻击测试集,其中攻击训练集由影子训练集(成员)和影子测试集组成(非成员),攻击测试集由原始训练集(成员)和原始测试集(非成员)组成。

  3. 攻击模型训练

    攻击模型的构建需要考虑两种情况:白盒和黑盒。白盒情况下可获取影子模型的结构和梯度,而黑盒情况下只能获取影子模型的后验输出。在白盒情况下,攻击模型的输入包括输入样本的后验值、分类损失值、影子模型最后一层的参数梯度值以及其真实标签的一个热编码。在黑盒情况下,攻击模型的输入包括输入样本的后验值和目标样本是否被正确预测的逻辑数值。在两种情况下,攻击模型的输出均是维度为2的向量,表示输入样本是否为成员。本项目使用攻击训练集对攻击模型进行训练,在训练阶段,影子模型的输出将作为攻击模型的输入。

  4. 成员推断

    本项目使用攻击测试集对攻击模型进行测试,使攻击模型推断样本是否属于成员。在测试阶段,目标模型的输出将作为攻击模型的输入。

3. 指标情况

攻击类型 数据集 模型 推断成功率
白盒攻击 CIFAR-10 VGG-16 50.22%
CIFAR-10 ResNet-20 50.65%
MNIST VGG-16 50.12%
MNIST ResNet-20 49.95%
黑盒攻击 CIFAR-10 VGG-16 50.24%
CIFAR-10 ResNet-20 50.69%
MNIST VGG-16 50.12%
MNIST ResNet-20 50.04%