AI安全基础

写在前面

从理科实验班分流至智能科学与技术专业后,我遇到了非常nice的张老师,并加入到联邦安全课题组中。由于缺乏网络安全基础,组会时师兄师姐讲解联邦学习(FL)相关的论文时我迷迷糊糊。后来,老师让我跟着王师兄做后门攻击,于是我对人工智能安全(AI Security)有了进一步了解。

在人工智能这个大家庭中,人工智能安全是非常新颖且有研究价值的一个方向。近年来,文心一言、ChatGPT、Sora等人工智能产品如雨后春笋般呈现在人们的视野之中,为我们的学习、工作和生活带来了诸多便利,但我们不能忽视随之而来的安全问题。现如今,深度学习仍是一个大大的黑盒,AI科学家们正在积极为其可解释性努力着,此外,当技术被赋能,一个安全性不足的智能系统所能带来的伤害是无法估量的。

我在课题组中主要从事计算机视觉(Computer Vision)中目标分类和检测场景中的后门攻击和对抗攻击研究,因此,本文会偏向于阐述计算机视觉情景下的安全问题与基本概念,旨在帮助读者理解AI安全中的专业术语,也就是“行业黑话”。本人精力有限,暂时对LLM等自然语言处理情景中的AI安全问题与攻击方法不够了解,请读者检索并阅读其它博客或文献进行学习。

一、基本概念

当一个安全问题发生时,我们首先要弄清楚是谁攻击了谁。这就涉及到AI安全问题中三类主要的利益相关者:攻击者、受害者和防御者。我们首先对这三类参与者进行一个直观的定义。

攻击者

攻击者(Attacker)有时又称作“对抗者”(Adversary),是指对数据、模型及其相关过程,包括数据收集、模型训练和模型部署等,发起恶意监听、窃取、干扰、甚至破坏行为的个人或组织

一方面,攻击者可以在不破坏现有数据和模型的情况下,通过监听和窃取获得关键信息,并从中获利。例如在联邦学习中,攻击者可以通过监听其他用户上传的模型(或梯度)信息而窃取对方的隐私数据。另一方面,攻击者也可以干扰和破坏模型的正常训练或部署使用,导致其发生性能下降和大规模决策错误。这些攻击严重时甚至可能会给大量用户带来生命和财产损失。注意,实际完成攻击的可能是一段程序(如一个攻击算法),但是真正的攻击者是程序背后的个人或组织,所以攻击者不等于攻击方法,二者是不同的概念。

攻击方法

攻击方法是指攻击者用来对数据、模型及其相关过程,包括数据收集、模型训练和模型部署等发起攻击的具体手段

攻击方法可能是一个软件、一段程序、一个算法。攻击方法往往受到现实条件的约束,在实际场景中,攻击者所掌握的信息往往是有限的,所以攻击者需要设计“精明”的攻击方法,最大化利用已有条件来完成高效的攻击。高效攻击方法的设计毋庸置疑是攻击研究中最核心的部分,此外,还需要确保攻击的隐秘性,避免暴露给防御者。

受害者

受害者是指由于受到数据或模型攻击而利益受到损害的数据或模型所有者、使用者或其他利益相关者。

受害者(Victim)也往往是“被攻击者”。在实际场景中,受害者可能是数据或模型所有者,如个人、企业、政府机构等,也可能是数据或模型的实际使用者,如普通用户。在定义受害者的时候,有必要跳出数据或模型所有者的局限,充分考虑其他利益相关者。这是因为人工智能系统往往服务于大量的普通用户,当安全问题发生时,最先受到利益损害的往往是普通用户而非数据或模型所有者。比如当人脸识别模型发生数据泄漏时,泄露的是百万用户的人脸数据和隐私;当自动驾驶系统受到攻击而发生交通事故时,首先受到威胁的是乘客以及行人的生命安全。

与受害者密切相关的两个概念是:受害数据(Victim Data)和受害模型(Victim Model)。受害数据和受害模型是具体受到攻击的对象,如人脸数据、医疗数据、自动驾驶系统等,可简单定义如下。

  • 受害数据:受到恶意攻击的训练或测试数据。
  • 受害模型:受到恶意攻击的人工智能模型。

防御者

防御者是指通过一定的防御措施保护数据或者模型免受潜在恶意攻击的个人或组织

防御者(Defender)和攻击者之间的关系是不对等的,因为攻击者只需要单点攻破一个系统,而防御者需要全面防御所有的潜在攻击。这也就是说相比攻击而言,防御任务更具有挑战性,防御者必须利用一些可以利用的资源构建防御策略。目前领域内大部分的研究工作都面临这种单防御者困境,即一个防御者需要防御所有的攻击方法,包括已有的甚至是未知的攻击方法。在未来的研究中,我们迫切的需要突破单防御者困境,解决攻防之间的不均衡性。类比攻击方法,我们可以定义防御方法如下。

防御方法

防御方法是指防御者用来对数据、模型及其相关过程,包括数据收集、模型训练和模型部署等进行保护,使其免受潜在攻击的具体手段

防御方法可以是一个软件、一段程序、一个算法或某种特殊设置(如一种安全协作协议)。当前防御方法的研究普遍受攻击方法的约束,也就是会直接采用想要防御的攻击的设置。在防御和攻击极其不对等的情况下,防御需要突破这样的限制,需要充分挖掘利用攻击者无法获取的信息,占据一定的先验优势。

二、威胁模型

上节对攻击者、受害者和防御者进行了详细阐述。在本节中,我们首先定义攻防发生的“战场”,即威胁模型,接着介绍与威胁模型相关的几个概念。

  • 威胁模型:定义系统的运行环境、安全需求、所面临的安全风险、潜在攻击者、攻击目标和攻击方法、可能的防御策略、防御者可利用的资源等攻防相关的关键设置信息的模型。分为白盒威胁模型、灰盒威胁模型和黑盒威胁模型
  • 目标数据攻击者在进行攻击时的数据对象。目标数据(Target Data)一般是针对数据攻击来说的,比如投毒攻击、数据窃取攻击等,在此类攻击下,要投毒或者窃取的数据集就是目标数据。对于数据攻击来说,攻击者是无法接触整个目标数据集的,否则攻击就变得极其容易(比如“删库跑路”),攻击的性质也发生了变化,即从外部攻击变成了内部攻击。这类攻击可以通过严格控制数据访问权限来避免,通过多方数据备份来补救。在绝大多数情况下,攻击者最多也只能访问极小一部分目标数据,比如**1%或0.1%**的训练数据,甚至不能访问任何目标数据。
  • 目标模型攻击者在进行攻击时的模型对象。目标模型(Target Model)一般是针对模型攻击来说的,是指实际遭受攻击的模型。实际上,判断攻击的目标是数据还是模型本身就是一件有难度的事情。有些模型攻击方法,比如后门攻击,也可以通过数据投毒进行,但是它们攻击的终极目标是操纵模型的预测结果,所以最终的攻击目标应该是模型,而数据只是一种手段。再比如,对抗攻击通过扰动测试数据来让模型犯错,也是对数据进行了攻击,但最终的目标还是模型。相反,数据窃取攻击通过跟模型交互来达到数据窃取的目的,所以攻击目标是数据而不是模型。在实际的研究过程中,我们先要弄清楚攻击的真正目标是什么,才能制定对应的防御策略。
  • 替代数据攻击者自己收集的、可以用来替代目标数据的数据。替代数据(Surrogate Data)是在某些威胁模型(如黑盒威胁模型)下,即攻击者无法访问目标数据的情况下,攻击者收集的用来替代目标数据、近似目标数据分布的辅助攻击数据。攻击者可以在替代数据上训练一个替代模型来设计和改良攻击方法,提高攻击效果。除了自我收集,替代数据也可以用大量存在的公开数据集,或者生成数据。比如,数据窃取攻击可以利用随机生成的替代数据来对目标模型发起查询,并根据模型的返回结果不断更新替代数据,并最终复原目标模型的原始训练数据。替代数据的规模可以很小,但是往往能够大幅提升攻击效果。替代数据的收集需要对要攻击的目标领域有一定的先验知识,比如是哪一类的任务,而这样的先验知识是很容易获得的。
  • 替代模型攻击者自己拥有的、可以用来替代目标模型的模型。跟替代数据类似,替代模型(Surrogate Model)是攻击者在无法获得目标模型时的一种替代,用来辅助设计和改进攻击算法。替代模型可以在替代数据上训练得到,也可以直接下载开源模型,还可以借助一定先验知识,在少量专有数据上做进一步微调,使其尽可能的接近目标模型。替代模型与目标模型越接近,所设计出来的攻击算法迁移性就越好。

一般来说,替代数据或替代模型的概念都是对攻击来说的,而防御则没有这些概念。这主要是因为防御者一般都假设对要保护的数据和模型具有完全访问权限。


AI安全基础
https://shoutaoml.top/2024/06/01/AI安全基础/
作者
Shoutao Sun
发布于
2024年6月1日
许可协议