PrivacyRaven:深度学习隐私攻击测试利器

PrivacyRaven是专为深度学习系统设计的Python测试套件,支持模型提取、成员推断和模型反演三大隐私攻击模拟,帮助工程师和研究人员评估系统安全性,提升防御能力。

PrivacyRaven 已破壳而出 - The Trail of Bits 博客

Suha S. Hussain, 佐治亚理工学院
2020年10月8日
实习项目, 机器学习, 隐私安全

如果您从事深度学习系统相关工作,请关注我们的新工具 PrivacyRaven——这是一个 Python 库,为工程师和研究人员提供了一套全面的测试套件,用于模拟对深度学习系统的隐私攻击。

PrivacyRaven 是一个全面的测试套件,用于模拟对深度学习系统的隐私攻击。

由于深度学习使软件能够在没有显式编程的情况下执行任务,它已广泛应用于敏感用例,例如:

  • 欺诈检测
  • 医疗诊断
  • 自动驾驶汽车
  • 面部识别
  • ……以及更多。

不幸的是,深度学习系统也容易受到隐私攻击,这些攻击会危及训练数据集的机密性和模型的知识产权。与其他形式的软件不同,深度学习系统缺乏广泛的保证测试和分析工具,例如模糊测试和静态分析。

隐私攻击的灾难性后果

但是等等——这样的隐私攻击可能发生吗?毕竟,使用深度学习的医疗应用受到严格的患者隐私法规的约束。

不幸的是,确实可能。想象一下,您正在保护一个使用 CAT 扫描图像检测脑出血的医疗诊断系统:

现在,假设此图像中的深度学习模型预测患者是否有脑出血,并以简短的“是”或“否”回答。这种设置使用户对模型的访问尽可能少,因此您可能认为对手无法学到太多。然而,即使在严格限制的情况下,由 PrivacyRaven 建模的对手也可以:

  • 通过模型提取攻击创建模仿品,窃取医疗诊断系统的知识产权。
  • 通过成员推断攻击重新识别训练数据集中的患者。
  • 通过模型反演攻击重建用于训练深度学习模型的 CAT 扫描图像,从而重现私有输入数据。

显然,对手可以严重危及该系统的机密性,因此必须防御隐私攻击才能被视为安全。否则,任何重大漏洞都有可能破坏对所有此类系统的信任和参与。

PrivacyRaven 设计目标

许多其他深度学习安全技术使用起来很繁琐,这阻碍了它们的采用。PrivacyRaven 面向广大用户,因此我们将其设计为:

  • 易用性:多个抽象级别允许用户根据其用例和对领域的熟悉程度,自动化大部分内部机制或直接控制它们。
  • 灵活性:模块化设计使攻击配置可定制和互操作。它还允许轻松整合新的隐私度量和攻击。
  • 高效性:PrivacyRaven 减少了样板代码,支持快速原型设计和实验。每个攻击可以在少于 15 行代码内启动。

因此,PrivacyRaven 适用于一系列用户,例如,分析机器人检测软件的安全工程师、开创新型隐私攻击的 ML 研究人员、在差分隐私技术之间做出选择的 ML 工程师,以及审计文本生成模型中数据来源的隐私研究人员。

威胁模型

PrivacyRaven 针对可用性、效率和灵活性进行了优化,允许用户模拟隐私攻击。目前,PrivacyRaven 提供的攻击在最严格的威胁模型下运行,即它们产生最坏情况分析。(这可能会随着 PrivacyRaven 的发展而改变。)建模的对手仅从查询深度学习模型的 API 接收标签,因此对手仅直接与 API 交互,而不是与模型交互:

许多其他已知的机器学习攻击利用在较弱威胁模型下发布的辅助信息。例如,在白盒威胁模型下,许多系统允许用户访问模型参数或损失梯度。一些黑盒攻击甚至假设对手收到完整的置信度预测或模型解释。

尽管这些功能可能带来好处,但如果您正在部署深度学习系统,我们建议减少用户访问并遵守 PrivacyRaven 的威胁模型。在上述较弱威胁模型下提供的额外信息显著提高了攻击的有效性和可访问性。

PrivacyRaven 功能

PrivacyRaven 提供三种类型的攻击:模型提取、成员推断和模型反演。库的大部分致力于启动这些攻击的包装器和接口,因此用户不需要广泛的机器学习或安全背景。

1. 模型提取

模型提取攻击直接侵犯系统的知识产权。主要目标是提取替代模型,或授予对手目标的复制版本。

这些攻击分为两类:优化高准确性或优化高保真度。高准确性替代模型试图尽其所能执行任务。如果目标模型错误分类数据点,替代模型将优先考虑正确分类。相比之下,高保真度替代模型将复制目标模型的错误。

高准确性攻击通常出于经济动机。模型通常嵌入在机器学习即服务(MLaaS)分发方案中,用户根据发送的查询数量计费。通过替代模型,对手可以避免支付目标费用并从自己的版本中获利。

高保真度攻击用于侦察以了解更多关于目标的信息。使用此攻击提取的替代模型允许对手发起其他类别的攻击,包括成员推断和模型反演。

由于现有的模型提取方法通常采用不同的方法,大多数安全工具和实现分别处理每个提取攻击。PrivacyRaven 将模型提取分为多个阶段,涵盖文献中发现的大多数攻击( notably excluding cryptanalytic extraction):

  • 合成:首先,使用利用公共数据、利用人口统计数据和收集对抗样本等技术生成合成数据。
  • 训练:在合成数据集上训练初步替代模型。根据攻击目标和配置,此模型不需要具有与目标模型相同的架构。
  • 再训练:使用子集采样策略重新训练替代模型,以优化合成数据质量和整体攻击性能。此阶段是可选的。

通过这种模块化方法,用户可以快速在不同合成器、采样策略和其他功能之间切换,而不受限于已经测试和呈现的配置。例如,用户可以将一篇关于提取攻击的论文中的合成器与另一篇论文中的子集采样策略结合使用。

2. 成员推断

成员推断攻击本质上是重新识别攻击,破坏了对其目标系统的信任。例如,患者必须信任医疗诊断系统开发者处理其私有医疗数据。但如果对手恢复了患者的参与、图像和诊断,将削弱整个系统的可信度。

PrivacyRaven 将成员推断分为不同阶段: 在成员推断攻击期间,训练攻击网络以检测数据点是否包含在训练数据集中。为了训练攻击网络,发起模型提取攻击。输出与对抗鲁棒性计算结合以生成数据集。

与类似工具不同,PrivacyRaven 集成了模型提取 API,这使得优化第一阶段、提高攻击性能和实现更强的隐私保证更加容易。此外,PrivacyRaven 是首批实现仅标签成员推断攻击的工具之一。

3. 模型反演

模型反演攻击寻找模型已经记忆的数据。例如,对医疗诊断系统发起反演攻击将产生 CAT 扫描的训练数据集。在 PrivacyRaven 中,此攻击将通过训练神经网络作为目标模型的反函数来实现。目前,此功能正在孵化中,并将集成到未来的 PrivacyRaven 版本中。

即将到来的飞行计划

我们正在快速添加更多模型提取、成员推断和模型反演的方法。同样,我们将改进和扩展 PrivacyRaven 的能力,以满足更广泛的深度学习和安全社区的优先事项。目前,我们正在考虑:

  • 增强的度量可视化界面:我们打算让 PrivacyRaven 生成高质量的输出,平衡全面性和清晰度,以便清晰地向非专家展示攻击的影响,同时为更专业的用例提供一定程度的控制。
  • 自动化超参数优化:超参数选择既难以推理,又对隐私攻击的成功至关重要。我们计划整合像 Optuna 这样的超参数优化库,以帮助用户避免重大陷阱并更快地实现目标。
  • 差分隐私或机器遗忘的验证:存在多种审计差分隐私和机器遗忘实现的机制,包括使用极小极大率构建属性估计器或操纵数据中毒攻击。整合这些技术将加强隐私保护机器学习技术的评估。
  • 隐私阈值和度量计算:将基于信息论和其他数学领域的隐私度量与实际隐私攻击结合是一项新兴的努力,将在当前状态下极大地受益于该领域。
  • 更多类别的攻击:我们希望整合专门针对联邦学习和生成模型的攻击,以及侧信道和属性推断攻击。

PrivacyRaven 实践

要攻击任何深度学习模型,PrivacyRaven 仅需要分类器的查询函数,无论原始编程框架或当前分发方法如何。以下是使用 PrivacyRaven 执行的模型提取攻击。

在蓝色框内,为库中包含的 PyTorch Lightning 模型创建查询函数(在导入必要组件后执行)。为了加速原型设计,PrivacyRaven 包含许多受害者模型。此示例中的目标模型是在 MNIST 数据集上训练的全连接神经网络。红色框内的单行下载 EMNIST 数据集以启动攻击。攻击的大部分是攻击配置,位于绿色框中。在这里,模仿合成器帮助训练 ImageNetTransferLearning 分类器。

此示例的输出非常详细,除了关于合成数据集和整体攻击性能的度量外,还包含关于目标和替代模型的统计信息。例如,输出可能包括如下语句:

  • 替代模型的准确率为 80.00%。
  • 在 1,000 个数据点中,目标模型和替代模型在 900 个数据点上一致。

此示例展示了核心攻击接口,其中攻击参数单独定义。PrivacyRaven 还提供了运行所有攻击和基于文献的接口。前者在单个模型上运行完整测试,后者提供文献中的特定攻击配置。

防御的未来

到目前为止,在隐私攻击和防御的军备竞赛中,工程师和研究人员没有保护深度学习系统所需的隐私分析工具。差分隐私和有状态检测已成为两个值得探索的潜在解决方案, among others。我们希望 PrivacyRaven 将导致发现和改进更有效的防御或缓解措施。查看此 GitHub 存储库,获取关于隐私攻击和防御的精选研究集合。

为 PrivacyRaven 做出贡献!

我们很高兴继续开发 PrivacyRaven,并热切期待更多应用。立即在 GitHub 上尝试并为 PrivacyRaven 做出贡献:整合新的合成技术,使攻击函数更可读,等等!

就个人而言,构建 PrivacyRaven 是我今年夏天在 Trail of Bits 实习的主要目标。这是一次有益的经历:我学到了更多关于安全前沿领域的知识,发展了我的软件工程技能,并在 Empire Hacking 和 OpenMined 隐私会议上展示了我

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