揭秘模型反演攻击:PrivacyRaven工具实现原理解析

本文详细介绍了PrivacyRaven工具如何实现模型反演攻击,包括模型提取、反演网络架构设计、损失函数计算等核心技术细节,并展示了在MNIST数据集上的实验结果。

PrivacyRaven:实现模型反演的概念验证

什么是PrivacyRaven?

PrivacyRaven是一个基于Python的机器学习保障和研究工具,用于模拟针对训练好的机器学习模型的隐私攻击。它支持模型提取和仅标签成员推理攻击,目前正在开发模型反演支持。

在模型提取攻击中,用户试图窃取或提取一个训练好的深度学习模型,该模型输出对应每个类的概率向量或简单分类。例如,考虑一个检测人脸特定情绪的 classifier。该分类器将返回一个指定每种情绪可能性的向量,或者简单地返回最可能的情绪作为其分类。重要的是,用户只能通过黑盒查询访问分类器,不会获得任何其他信息。

为了执行模型提取攻击,用户首先使用随机未标记数据查询模型,以识别模型返回的所有分类。然后,该信息可用于近似目标分类器。具体来说,攻击者使用公共数据源获取合成数据(例如,类似数据,如面部图像和情绪分类的数据集),并在该数据上训练一个替代的固定架构模型。

如果成功,此类攻击可能产生严重后果,特别是对于将其实际模型隐藏在付费API后面的服务;例如,攻击者可以以低成本近似服务的模型,准确度略有下降,从而获得对受害者服务的巨大经济优势。由于PrivacyRaven在最严格的威胁模型下操作,模拟用户只有查询访问的攻击,模型提取也是PrivacyRaven其他攻击(即成员推理攻击)的关键组成部分。

我致力于实现对模型反演攻击的支持,旨在恢复用于训练目标模型的私有数据。模型反演攻击使用模型提取来获得对忠实近似目标的替代分类器的白盒访问。

什么是模型反演?

在模型反演攻击中,恶意用户针对一个预测每个类置信值向量的分类器;用户然后试图恢复其训练数据以损害其隐私。

事实证明,具有模型背景知识的用户实际上可能能够获得目标模型训练数据的合理近似。(有关此类近似的示例,请参见下图中从面部识别系统恢复的图像。)这是多篇论文的核心思想,包括Ziqi Yang等人的“通过辅助知识对齐的对抗神经网络反演”,这构成了我实现模型反演的基础。

模型反演示例

基于背景知识对齐的模型反演攻击在现实世界中有许多用例和后果。想象一个恶意用户针对上述面部情绪分类器。用户可以通过从搜索引擎抓取相关图像来构建自己的数据集,运行图像通过分类器以获得其相应的置信值,并从值构建概率向量;然后,用户可以训练一个反演模型,能够从给定向量重建图像的近似。

反演模型被设计为目标模型的逆(因此使用“反演”)。攻击者可以输入任意情绪预测向量并获得训练集的重建图像,而不是输入图像并接收情绪分类。

使用上面的例子,让我们更详细地了解用户如何运行模型反演攻击。假设用户可以访问一个情绪分类器,该分类器输出其某些类的置信值,并知道分类器是在面部图像上训练的;因此,用户具有分类器的背景知识。

用户通过这种对模型的背景知识,通过从公共站点抓取面部图像并处理它们来创建辅助数据集。用户还选择一个反演模型架构,能够将构建的预测向量上采样为“重建”图像。

为了训练反演模型,用户使用辅助数据集中的每个图像查询分类器,以获得分类器对图像的置信值。该信息用于构建预测向量。由于此分类器可能仅输出输入的前几个置信值,反演过程假设它确实截断了预测向量,其余条目被清零。例如,如果分类器在5种情绪上训练但仅输出前2个,置信值为0.5和0.3,用户将能够从这些值构建向量(0.5, 0, 0.3, 0, 0)。

然后,用户可以将预测向量输入反演模型,该模型将向量上采样为图像。作为训练目标,用户希望最小化反演模型的均方误差(MSE)损失函数,该函数在辅助集中的图像和模型输出的重建之间按像素计算;然后,用户对许多epoch重复此训练过程。

接近0的MSE意味着重建图像是真实情况的良好近似,MSE为0意味着重建和真实图像相同。一旦模型被充分训练,用户可以将预测向量输入训练好的反演模型,以获得代表每个类的重建数据点。

请注意,模型反演架构本身类似于自编码器,如论文中所述。具体来说,分类器可以被视为编码器,反演网络作为解码器,预测向量属于潜在空间。关键区别在于,在模型反演中,分类器是给定且固定的,分类器的训练数据不可用于训练反演网络。

我对PrivacyRaven的其他贡献

虽然我专注于在PrivacyRaven中实现模型反演支持,但在实习的前几周,我帮助改进了PrivacyRaven的文档和多功能性。为了更好地展示PrivacyRaven的某些能力,我添加了详细的Python示例脚本;这些包括展示如何发起攻击和注册自定义回调以在攻击运行期间获得更全面信息的脚本。我还添加了Docker和Google Colab支持,允许用户容器化和运输攻击设置,以及协调和加速攻击的开发。

注意事项和成长空间

PrivacyRaven围绕可用性设计,旨在尽可能抽象掉数据和神经网络工程的繁琐。然而,模型反演是一个相对脆弱的攻击,取决于微调某些参数,包括分类器和反演模型的输出维度以及反演模型的架构。因此,在可用性和模型反演保真度之间取得平衡被证明是一个挑战。

另一个困难源于模型反演攻击需要满足的众多假设才能产生令人满意的结果。一个假设是用户能够通过用大量数据点查询分类器来恢复目标分类器训练的类数。

例如,如果用户试图确定物体识别分类器训练的类数,用户可以用大量随机物体图像查询分类器,并将该过程中识别的类添加到集合中。然而,如果训练类数很大,这可能不总是有效;如果用户无法恢复所有类,反演质量可能会受到影响,尽管Yang等人的论文没有分析对反演质量影响的程度。

此外,Yang等人没有明确说明其分类器和反演模型架构设计背后的推理。在进行实验时,作者使用了CelebA和MNIST数据集并调整了其中的图像大小。他们还对数据集使用了两个单独的反演架构,CelebA反演架构从长度530的预测向量上采样到64 x 64图像,MNIST反演架构从长度10的预测向量上采样到32 x 32图像。正如您可以想象的,泛化此攻击以使其可用于任意分类器是困难的,因为最佳反演架构随每个分类器而变化。

最后,作者专注于白盒场景中的模型反演,这不直接适用于PrivacyRaven的仅黑盒威胁模型。如前所述,PrivacyRaven假设用户除了其输出外对分类器一无所知;虽然一般模型反演过程大致相同,但黑盒场景要求用户做出更多假设,特别是在训练数据和分类器输出的维度上。每个关于维度的额外假设都需要考虑和解决,这种固有的定制需求使得为模型反演设计一个一刀切的API非常困难。

下一步

PrivacyRaven尚未有一个完全稳定的模型反演API,但我已经完成了论文的概念验证实现。模型反演API的一些设计决策仍需成熟,但计划是API支持白盒和黑盒模型反演攻击,并使模型反演和提取参数尽可能可定制而不牺牲可用性。我相信,有了这个工作的模型反演概念验证,模型反演API的开发应该是一个相对顺利的过程。

反演结果

概念验证产生的反演结果如下所示。此攻击使用扩展MNIST(EMNIST)数据查询MNIST训练的受害者分类器,以训练一个替代模型,然后可用于执行白盒反演攻击。模型反演训练过程运行了300个epoch,批量大小为100,产生最终MSE损失0.706。反演质量根据辅助集图像的方向发生了显著变化。左侧的图像是来自MNIST集的辅助集图像样本,其标签在括号中;它们的重建在右侧。

例如,0的图像往往有相当准确的重建:

其他辅助集图像的重建看起来与它们相似但与它们的标签矛盾。例如,下面的图像似乎描绘了一个4,但实际上描绘了一个旋转90度的2。

其他图像也有差或模糊的重建,例如以下旋转的8和9图像。

总体而言,这些结果表明模型反演是一个脆弱的攻击,并不总是产生高质量的重建。然而,还必须考虑上述反演攻击仅使用对分类器的黑盒查询进行。回想一下,在PrivacyRaven当前的模型反演管道中,首先执行模型提取攻击以授予用户对目标分类器的白盒近似访问权限。由于在模型提取和反演过程中都会丢失信息,黑盒模型反演攻击的重建质量可能显著差于其白盒对应物。因此,反演模型在最严格假设下为某些图像产生忠实重建的能力确实引起了深度学习分类器训练数据的重大隐私问题。

收获

我非常喜欢在PrivacyRaven上工作,并感谢Jim和Suha为我提供的支持和建议,以帮助我快速上手。我也感激有机会学习机器学习和安全的交叉性,特别是在隐私保障方面,并获得包括PyTorch在内的深度学习框架的宝贵经验。我在机器学习保障方面的工作经验激发了我对该领域的新兴趣,我肯定会在未来进一步深入研究深度学习和隐私。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计