data stealing attack论文阅读杂记
Published:
S&P
2022
- LINKTELLER: Recovering Private Edges from Graph Neural Networks via Influence Analysis
- 研究对GNN的隐私边结构窃取攻击方法和隐私保护的GCN训练方法
- 攻击场景是图的结构信息和节点特征属于两个主体A和B,训练时B将节点特征和标签发送给A,A结合自己的结构信息训练GNN然后向B开放API。在推理阶段B向A的API发送节点特征的查询,A返回GCN的推理结果
- 设计了一个边数据窃取攻击方法,在推理阶段判断查询的节点之间的边信息。利用了GCN的平滑特征,即如果两个节点相连,则对一个节点的特征修改会引起另一个节点的预测结果的变动。方法使用影响力来评估节点间是否存在边,通过对输入特征进行细微扰动,影响力计算为扰动前后特征查询结果的差值与扰动的比值(有点类似对查询结果求了个导),通过影响力的降序排序,选择前m个节点对,认为其之间存在边。
- 设计了两个可以抵抗边数据窃取的差分隐私训练方法,主要是设计了两个具有差分隐私性质的边结构扰动方法,一种是直接使用伯努利采样来决定邻接矩阵的取值方法,另一种是使用拉普拉斯方法,利用拉普拉斯机制给邻接矩阵的上三角元素添加扰动,然后从中选取最大的T个位置,将邻接矩阵的上下三角对应位置置1,是一种添加扰动后对边结构再做修整(剪枝?)的方法
- Reconstructing Training Data with Informed Adversaries
- 数据窃取攻击,在知道除了一个样本以外的所有数据后,推测这个未知的样本。
- 攻击场景是白盒,攻击者知道上面说的所有数据,知道模型内部信息,训练方式,以及某些额外信息(不必须),攻击者可以使用训练方式训练模型,攻击目标是近似推理出未知的那个数据样本
- 文章首先考虑了模型为凸函数时的攻击方法,在模型为凸且可导时,利用最优情况下风险函数的导数为0可以算出未知样本的梯度是其他所有样本的梯度和的取负。然后考虑模型为广义线性模型\(B=g^{-1}(X\theta)-Y\)时的情况,此时可以直接计算出缺失的样本和对应标签(文中有结果和计算过程),不需要其他的额外信息,模型是否过拟合对于攻击也没有影响。
- 文章随后考虑了模型非凸(神经)的情况,在有若干额外的shadow target时,使用这些shadow target再次训练若干个shadow model,然后利用模型和对应使用的shadow target样本训练重建网络RecoNN,最后可以利用RecoNN来根据模型参数预测未知的数据样本。shadow model就是目标模型,RecoNN是攻击者自己指定的模型,不一定和shadow model一致
CCS
2022
- LPGNet: Link Private Graph Networks for Node Classification
- GNN数据窃取攻击的保护问题,设计了一个能保护边隐私的图神经网络
- 攻击场景跟[LINKTELLER]{#dsa-sp22-1}类似,结构与特征属于两个实体,攻击者可以通过与服务方的交互尝试获取隐藏的图结构信息。论文目标是使用全图结构和部分标记节点学习一个分类器来预测其他节点的标记(transductive推理场景)或使用训练图结构和节点标签学习分类器,在推理图上预测节点标记(inductive归纳场景)
- 本文没有对邻接矩阵添加扰动,而是使用了一个聚类度向量来综合节点的结构特征,因为添加扰动的方法有很高的敏感度,很有可能创造原图中不存在的边
- LPGNet首先使用一个MLP来将节点的特征转换成节点嵌入(并用softmax转换成节点的聚类标签),随后LPGNet根据节点嵌入得到的聚类结果为每个节点计算在每个聚类中的相邻节点数目,并添加一个拉普拉斯扰动得到节点的聚类度向量(聚类度向量由此包含节点的结构信息),最后LPGNet将节点度向量与节点嵌入拼接过第二个MLP得到新的节点嵌入。随后重复计算聚类度向量和过MLP得到节点嵌入过程完整表征学习。
- 文中发现在使用之前所有轮次的节点特征可以提升LPGNet性能,所以在第一轮后的其他轮次,除了当前轮节点嵌入和聚类度向量,额外拼接前一轮的节点嵌入结果。
方法很简单,但是这个使用核方法模糊结构信息的方法很有意思,是不是也可以用高阶图表征来做
- On the Privacy Risks of Cell-Based NAS Architecture
- 对NAS搜索出来的模型面对成员推理攻击的鲁棒性进行了分析,使用了一个模型分析NAS Cell的结构模式对于MIA的影响,最后设计了一个提取方法来获取提升或者降低MIA的Cell结构模式
- 对NAS搜出来的模型面对成员推理攻击的鲁棒性进行了分析,设计了一个攻击模型,首先训练了一个浅层模型来模拟目标模型的行为,然后查询浅层模型得到训练数据和未训练数据的回复,最后利用回复和是否训练为标签训练攻击模型。攻击时向攻击模型输入目标模型根据目标数据输出的回复,攻击模型判断目标数据是否参与了目标模型的训练。训练攻击模型的数据可以是同分布的,也可能不是同分布的。
- 鲁棒性实验证明大部分情况下NAS搜出来的模型相较人工设计的有更好的鲁棒性,相同的目标模型在不同的攻击设置下往往表现相似。
- 为提取对MIA有影响的Cell Pattern,首先对于算子的分布进行了分析。卷积算子对性能更重要,均值池化算子对MIA缓解更重要。可分离卷积和跳跃连接在正常单元和缩减单元中都占据了大部分操作,这意味着这些操作对原始任务上的建模性能至关重要。在对MIA最不鲁棒的架构中正常单元和缩减单元更偏爱卷积算子,而对MIA最鲁棒的架构上缩减单元中的均值池化算子数量显著增加。
- 然后利用算子重要性来度量特定算子对特定边的影响,训练了一个回归模型(GIN)来根据模型架构预测MIA AUC分数,加速算子重要性计算速度。算子重要性是正值表示当前边的当前操作能够缓解MIA威胁,负值表示当前操作能够提升MIA攻击性能。
- 最后设计了一个提取操作,来根据算子重要性提取Cell结构中对于MIA攻防最重要的前若干条边,构成对应的结构模式。提取算法通过逐渐向子图中加入当前途中最优的相邻边来逐渐构成子图。提取后额外发现正常Cell上的MIA降级Cell Pattern中的边主要连接在中间节点之间,而其他Cell Pattern中的边主要连接在输入节点上。
- 在做Cell修改时,首先生成Cell Pattern子图来指导修改,选取候选的边。然后将目标Cell与Cell Pattern进行比较,并根据结构差异选择修改方式(没有边的使用相邻的边替换,存在边的替换边上的算子类型)。最后对替换的候选边进行修改,并将这些边替换为Cell Pattern中的相应边。
USENIX Security
2023
- GAP: Differentially Private Graph Neural Networks with Aggregation Perturbation
- 图神经网络的数据窃取问题,设计了一个满足节点DP和边DP的图神经网络GAP,以及对应的训练方法
- 解决图神经网络的结构依赖问题,以及已有方法无法提供推理阶段的隐私保护和只能用于1层GNN的问题
- 模型分为三个模块,编码器模块使用一个MLP对节点特征进行降维;聚合模块将编码的节点特征按图结构聚合,然后为每行添加高斯分布的噪声来满足dp要求,最后完成特征的行标准化。分类器模块使用一个MLP将每层GNN得到的聚合结果统一维度,然后使用另一个头MLP根据所有层的特征拼接结果进行预测。
- 训练时编码器模块根据节点标签完成预训练,聚合模块的结果进行缓存,最后单独训练分类器模块。推理时如果是推理式模型则直接使用缓存的聚合结果进行分类,如果是归纳式模型则完整走三个模块进行预测。
- 编码器模块完成的降维可以有效减少需要引入的噪声,提升执行效率。聚合模块的聚合操作可以降低噪声影响,避免噪声过重。分类器的拼接操作可以保证即使高层的聚合结果被噪声影响,依然可以从低层获取信息进行预测。
- GAP模型通过聚合模块添加噪声完成边的DP,通过在编码器和分类器模块训练时使用支持DP的训练方法来完成节点的DP。
但我其实没懂是怎么完成推理的隐私保护的,应该还是那种特征和结构不在一块的情况,避免通过特征和分类结果来预测图结构
Arxiv
2024
- Text Embedding Inversion Attacks on Multilingual Language Models
- 针对文本编码器即服务的数据窃取攻击,使用得到的嵌入向量重建输入文本,适用于类似中间人攻击可以窃听服务端与客户端通信的场合
- 攻击场景是攻击者无法接触模型结构和参数,只能通过EaaS API访问模型(训练时,在攻击的时候应该也无法获得要查询的文本,所以也无法访问模型,只能获取模型的嵌入结果),攻击者拥有模型同样的语言脚本,知道是哪些语言,但不知道具体查询使用的语言。攻击者有一个训练数据集可以查询API进行训练,可以向API发送无限次查询。
- 使用encoder-decoder transformers模型构建逆向攻击模型,使用训练数据向API发送查询,根据得到的原文本嵌入结果使用攻击模型逆向出文本,然后再调用API计算重建文本的嵌入,最后对比重建的嵌入与原文本嵌入的距离来优化攻击模型。攻击模型以前一轮的输出为条件,即每次的输入包括上一轮重建的文本,重建文本的嵌入结果,以及目标的远文本嵌入结果,拼接后作为新一轮的攻击输入。
没看出来跟多语言有什么关系?
- Text Embeddings Reveal (Almost) As Much As Text
- 针对文本编码器即服务的数据窃取攻击,使用得到的嵌入向量重建输入文本,即上面这篇论文的单语言版本,被上面这篇论文引用,方法基本一致
- 方法和攻击模型基本和上面这篇一致,使用前一轮的重建文本,重建嵌入和目标嵌入的拼接作为编码器的输入,优化输出的嵌入和目标嵌入之间的余弦距离
- 这两篇基本一模一样,没看出来上一篇对于多语言问题有什么改变…
- Can Sensitive Information Be Deleted From LLMs? Objectives for Defending Against Extraction Attacks
- 大模型的隐私数据提取攻击问题,研究模型编辑方法修改模型权重后是否还可以对隐私数据进行提取
- 提出了三种威胁模型:攻击者可以在指定次数的尝试内验证是否获得隐私信息;攻击者可以在不需要隐私信息的前提下并行进行多次攻击;攻击者就是数据的拥有者,知道隐私信息但不希望它公开
- 提出了两种攻击方式:白盒攻击使用中间层的隐层表征,通过直接与词表矩阵相乘获得词的分布,然后获取每个隐层的概率前k个词的并集,或者两个隐层之间概率差在前k或者后k的词的并集;黑盒攻击使用同一个问题的多种改写,然后获取每种改写的结果的并集。
- 使用了多种防御方式,以及模型编辑方法,实验结果证明模型编辑方法无法完全消除隐私数据,删除信息的痕迹可以在中间层中获得。提出的多种防御方式有效但并不通用。
ICLR
2024
- Beyond Memorization: Violating Privacy Via Inference With Large Language Models
- 提出了模型推理阶段的信息提取攻击,通过在推理阶段使用某些恶意的预置prompt,可以通过各种非结构化的文本整合获取用户的私人信息
- 已有的模型记忆工作主要关注对于预训练数据的精确复现,对象都是训练时的结构化文本,而本文关注的是聊天机器人推理时的信息提取攻击,数据不一定要来自预训练步骤。
- 攻击模型是攻击方有各种接触黑盒模型的权限,通过恶意部署LLM,组合一个系统prompt和一个发送给LLM的prompt,攻击方可以让模型在完成用户任务的同时根据用户提供的各种文本数据提取用户的敏感信息。攻击方首先发送给LLM一个正常任务prompt和一个恶意prompt,然后在用户向LLM发送消息时,LLM都会生成任务相关的回答和提取信息的恶意回答。任务相关的回答发送给用户,攻击方通过恶意回答提取用户的私人信息。
- 提出了一个数据集,对已有模型的脆弱程度进行测试,发现当前的LLMs可以推断出广泛的个人属性,以及目前常见的缓解措施(文本匿名化和模型对齐)在保护用户隐私免受LLM推断方面效果不佳。
这个是不是可以考虑防御策略,通过重新声明身份改变LLM的身份认知,然后抵消隐藏的恶意推理任务
需不需要对prompt的有效程度做一下度量啊,给它的prompt到底会遵循到怎样的程度,别抵消不掉