我们真的理解AI安全吗?-AI安全研究基础篇
D1:对抗样本分析基本原理
2.对抗样本攻击
2.1原理
攻击者通过在输入数据中加入经过精心设计的微小扰动,使模型在人类几乎察觉不到变化的情况下产生错误判断的一类攻击
2.1.1形式化定义和理解
对抗样本攻击的本质是在原始输入样本中加入人类难以察觉的微小扰动,使模型的预测结果发生改变。具体而言,对于一个训练好的模型,设输入样本为 x ,模型输出为 f(x) ,真实标签为 y 。在正常情况下,模型能够对样本作出正确判断;但如果存在一个足够小的扰动 ε ,使得加入扰动后的样本 x+ε 的预测结果满足 f(x+ε)
≠f(x) ,那么 x+ε 就可被视为一个对抗样本。
这样的攻击常见在图像分类中,如下在熊猫样本中加入扰动样本,生成的图像在人眼几乎无法识别的情况下被大模型以99.3的置信度识别为长臂猿
、
下面以二分类问题为例:
左边为黑色圆形,右边为红色方块,在f分界线左边加入黑色方块,会让模型误判为右侧红色方块数据,从而跨越分类超平面。

2.1.2分类
按照攻击效果:
定向攻击和非定向攻击;如在分类任务中把熊猫样本加上特定的扰动样本使模型预测结果为牛;非定向则是达到非熊猫效果即可
按照攻击环境:
白盒攻击和黑盒攻击;白盒攻击是指在一张模型的所有知识的情况下,一般很难有这种环境;黑盒攻击则是在未知模型的知识架构的情况下进行攻击
攻击环境:
数字世界攻击和物理世界攻击
数字世界攻击:假定可以访问并修改输入,基本在纯计算机环境下进行;
物理世界攻击:一般依赖于图片采集,人脸识别等依靠物理采集传入ai系统的环境
2.1.3常见衡量指标
对抗样本攻击在攻击成功的基础上,要保证数据的主体信息不变,也就是说要保证添加的扰动肉眼不可见。扰动量可以用式(2.2)表示

因为涉及数学知识,主包也不太懂所以此处不再展开
2.2对抗样本攻击的技巧与攻击思路
对抗样本攻击的核心在于如何使模型预测出错又尽可能小的扰动
根据扰动方式不同,可以分为基于优化的攻击,基于梯度的攻击,基于迁移学习的攻击和基于查询的攻击
基于优化的攻击方法主要指的是以 CW 为代表的使用优化器进行攻击的方法,通常在白盒攻击中使用。
基于梯度的攻击方法主要指的是以 FGSM 为代表的直接对梯度进行符号化的方法,需要攻击者完全了解目标模型,通常在白盒攻击中使用。
基于迁移学习的攻击方法借助于对抗扰动的可迁移性,在替代模型上产生对抗扰动,并迁移到目标模型,常用于黑盒攻击。
基于查询的攻击方法通常需要请求目标模型得到输出,利用零阶优化等方式优化对抗扰动,常用于黑盒攻击。
这里给出常见的攻击算法表2.1

下面将分别介绍两种白盒攻击算法和黑盒攻击算法
2.2.1白盒攻击算法
1.FGSM
FGSM(Fast Gradient Sign Method)即快速梯度算法
FGSM 是一种典型的快速攻击方法。它的基本思想是利用模型对输入的敏感方向,在原始样本上加入一次性的小扰动,从而让模型产生误判。它的优点是生成速度快、实现简单,适合用于快速验证模型是否存在对抗脆弱性,因此常被用于教学演示、基础实验和鲁棒性初步测试。
在 FGSM 的基础上,还出现了一些迭代式方法,例如 BIM、PGD 等。这类方法不是一次生成扰动,而是通过多次小步修改不断逼近更有效的攻击结果。相比单步方法,它们通常攻击成功率更高,但计算开销也更大,因此更适合在需要较强攻击效果的实验场景中使用。
线性对抗样本的方式可以概括为

上述方法被称为 FGSM 算法,其示意图如图 2.11 所示。图像分类模型以 57.7% 的置信度将原始图像识别为熊猫,在原始图像上叠加细微扰动之后,肉眼来看仍然是一个熊猫,然而图像分类模型以 99.3% 的置信度将其识别为长臂猿。

2.CW
它更强调在尽可能小的扰动条件下实现有效误导,也就是说,既希望模型判断错误,又希望生成的对抗样本尽量与原始输入保持接近。由于这种方法攻击能力强、隐蔽性较高,因此常被用于研究“最小扰动下模型的鲁棒边界”,但它的计算过程相对复杂,不太适合入门阶段深入推导。
2.2.2黑盒攻击算法
大多数情况下攻击者不知道任何内部情况,因此黑盒攻击更加切合实际,也有部分白盒攻击算法如MI-FGSM,ILCM等算法被用来进行黑盒攻击,但是效果并不理想。
目前的黑盒攻击算法主要可以分为两种:基于查询的攻击算法和基于迁移学习的攻击算法

基于查询的攻击算法需要构造数据集输入目标模型中,查询其输出,根据输出构造对抗样本。根据是否需要得知目标模型置信度级别的输出,可以分为基于决策边界的攻击算法和基于得分的攻击算法。
基于乔迁的攻击算法不需要查询黑盒模型,首先训练替代模型使其与目标模型的输出相近,然后在替代模型的上获得对抗样本并迁移到目标模型中去
1.PBAAML
这是一个利用少量的输入输出数据来训练替代模型的一个算法,需要注意的是如果模型的输入是图像,输出是分类的话最好选用一个CNN(卷积神经网络)模型进行训练
2.ZOO
因为PBAAML算法攻击在迁移的过程中肯定会损失一些精度,所以Chen等人提出了直接对模型攻击的算法ZOO,它不需要替代模型,而是直接攻击目标,但是需要大量的输入和输出信息;因为ZOO需要知道黑盒模型的输出置信度信息,所以属于基于查询的攻击算法。
D2:实战案例:语音,图像 ,文本识别引擎绕过
2.3.1语音识别引擎绕过
首先稍微了解一下语音识别的发展
语音识别(Speech Recongnition)技术的发展大致经历了从传统统计模型到深度学习模型、再到端到端模型的演进过程。
早期语音识别系统多采用 GMM-HMM 框架,其中 HMM 用于描述语音信号随时间变化的状态转移过程,GMM 用于刻画各语音状态下声学特征的概率分布。这类方法在传统语音识别中具有代表性,但通常依赖较多人工设计的特征和中间建模过程。
随着深度学习的发展,研究者开始使用 DNN-HMM 模型,用深度神经网络替代传统高斯混合模型进行声学建模,从而提升系统对复杂语音特征的表示能力。
一步地,RNN-CTC 等方法开始被应用于语音识别任务,其中 RNN 用于建模语音的时序特征,CTC 用于解决语音帧与文本标签之间难以精确对齐的问题,使模型在缺乏帧级标注的情况下也能完成训练。在此基础上,Deep Speech 等端到端语音识别模型进一步简化了传统流程,能够直接实现从语音输入到文本输出的映射,减少了对复杂人工模块和中间步骤的依赖。也正因为语音识别模型不断向深度化、端到端化发展,其攻击面和安全风险也更加值得关注,因此书中随后以 Deep Speech 为例,进一步介绍了针对现代语音识别系统的对抗攻击方法。
这里介绍几个概念:
HMM 是 Hidden Markov Model,隐马尔可夫模型。它主要用来描述语音这种随时间变化的序列过程。
GMM 是 Gaussian Mixture Model,高斯混合模型。它主要用来描述某个声音特征“长什么样”。
DNN 是 Deep Neural Network,中文叫深度神经网络。由很多层神经元组成、能够自动学习复杂特征的一类神经网络。
RNN:循环神经网络,负责处理语音这种按时间展开的序列数据
CTC:Connectionist Temporal Classification,连接时序分类,负责把“每一帧的输出”对齐成最终文本
虽然Deep Speech语音识别成功率很高但是还是会受到对抗样本影响,在白盒攻击的条件下成功率可以达到百分之百
下面是对CTC算法,Deep Speech介绍和一些攻击方法。
1.CTC算法
CTC 是一种用来解决“输入和输出对不齐”问题的算法。
在语音识别里,输入是一长串音频帧,输出是一串文字。难点在于:
你通常知道整段音频对应哪句话,但不知道每个字具体对应哪几帧声音。CTC 的作用,就是在不需要人工逐帧对齐标注的情况下,让模型也能学会“从语音到文本”的映射。
它到底解决了什么问题
比如一句“你好”,音频可能被切成很多帧:
第 1 帧
第 2 帧
第 3 帧
…
第 50 帧
但你并不知道:
“你”从第几帧开始
“好”在哪几帧结束
如果没有 CTC,训练时就得告诉模型每一帧对应什么标签,这很麻烦。
CTC 的关键贡献,就是不用这种精确对齐,也能训练。
它是怎么做到的
CTC 的思路可以概括成三步:
第一,允许模型在每个时间步输出字符,也允许输出空白。
这个“空白”一般记成 blank,意思是“这一帧不确定对应哪个字,或者先不输出”。
第二,允许重复输出。
因为同一个字在连续几帧里都可能被输出出来。
第三,最后再做一次合并。
把连续重复的字符压缩掉,再把 blank 删掉,得到最终文本。
比如模型某几个时间步输出的是:
_ 你 你 _ 好 好 _
其中 _ 表示空白。
按照 CTC 的规则处理后,就会变成:
你好
这就是它最核心的想法。
2.Deep Speech语音识别引擎、
Deep Speech 是一种基于深度学习的端到端语音识别模型,能够利用神经网络直接学习从语音输入到文本输出的映射关系。与传统 GMM-HMM 等方法相比,Deep Speech 减少了对复杂人工设计模块和中间建模过程的依赖,体现了语音识别技术向端到端方向的发展趋势。主要是利用了深度神经网络来进行学习,这样就省去了中间的很多步骤(例如原来使用人工标注的特征进行统计和比对,利用词典把语音和文字联系起来),最后使用CTC进行整理输出就行。
3.Deep Speech语音识别引擎绕过原理
原理部分需要大量公式,然而这对于初阶学习来说太困难了,所以便不再细说。下面详细讲讲复现步骤。
4.环境准备
因为 Deep Speech 语音识别引擎绕过的方法已经在 GitHub 仓库 audio_adversarial_examples 上开源,所以接下来我们只对关键步骤进行详细的解析。
假设你已经有一台拥有 NVIDIA 显卡的计算机,并且已经安装好了驱动和 Nvidia-Docker。
打开终端,输入指令 docker pull tensorflow/tensorflow:1.8.0-gpu-py3,安装 TensorFlow1.8.0 的 Docker 环境。
Deep Speech 语音识别引擎在 GitHub 仓库 DeepSpeech 开源,这里使用的是 V0.1.1 版本,对应的权重文件 deepspeech-0.1.0-models.tar.gz 可在该仓库的 Release 界面下载并解压。
5.攻击算法实现
2.3.2图像识别引擎绕过
对于新手或者演示来讲使用白盒攻击比较简单,这里不做演示。
2.3.3文本识别引擎绕过
这里以文本分类为例介绍一下文本识别引擎绕过
文本分类,攻击者可能在非法文本上加入对抗样本来达到绕过审核的效果,下面从两个方面来介绍,分别是文本分类模型,攻击算法介绍;
1.文本分类模型
文本分类的情感分析是指输入文本,输出该文本是正面的(Postive)还是负面的(Negative),和图像、语音不同,文本不能直接拿原始字符去做分类,通常要先做 Embedding,再交给序列模型去提特征。常见做法是先做 Word2Vec/ELMo 这类嵌入,再用 RNN、LSTM 或 GRU 提取序列特征;
这里解释一下“Embedding”(嵌入)是机器学习/AI里一个非常核心的概念,简单说就是:把“复杂对象”变成“数字向量”的方法,而且这种表示还能保留它的“意义”。
2.攻击算法
Eric Wallace 等人的 Universal Adversarial Triggers 思路:找出一小段可以重复用于很多输入文本的触发词,使模型在加入这段 Trigger 后,把文本误判为攻击者想要的类别。书中举的效果是:这种通用扰动能让模型在 Positive 类别上的分类准确率从 86.2% 降到 29.1%,而且这种扰动可以加到任意文本前面,通用性比较强。
D3:模型后门
4.1模型后门概念
后门在网络安全中比较常见,针对AI的后门攻击,通常是攻击者把隐藏后门嵌入DNN中,是模型在良性样本中保持正常,而输入带有攻击者定义的触发器时,模型会激活隐藏后门并输出对应标签;
在研究中常用的针对神经网络的后门植入方式是模型投毒,也有一部分研究者为了缩短攻击链路使用非数据投毒的方式,通过修改模型权重,模型文件结构等方式,在不接触数据集的情况下植入后门
当输入图片带有了触发器的特征(在下图中是右下角的一个像素点),模型会按照攻击者预设的目标结果输出,从而达到控制模型的效果。

4.2后门攻击的种类和原理
后门攻击大体上可以分为投毒式后门和非投毒式后门
4.2.1投毒式后门攻击
投毒式后门攻击通常会修改一些训练数据,在这些数据上设置用于触发后门的特殊模式(触发器),在网络训练过程中会不断强化目标标签和触发器的联系,最后会实现在普通任务上与正常毫无差别,同时对触发器保持高度敏感,以实现高精度攻击。下面例子以图片识别为例
1.非干净标签数据投毒
攻击者通过在图片中加入肉眼可见的触发器并修改对应数据的标签,模型在训练后就会被植入后门;
以上面的图为例,如果设置图片右下角有一个黑色像素点为触发器,如果有此特征的情况下,模型应当输出目标标签,1%左右的数据就可以实现高效率的投毒攻击。
2.干净标签数据投毒
因为肉眼可见的数据还是太过于敏感,于是有了通过对抗样本攻击技术生成的肉眼无法差别的特征用来当作触发器,这样使投毒更加隐蔽。
4.2.2非投毒式后门攻击
由于投毒式后门攻击需要接触到数据集,并进行较多的修改,部分攻击甚至需要目标模型的辅助,攻击链路较长,因此一些学者提出了非投毒式后门攻击,从模型文件和储存媒介等方面入手展开攻击
1.权重攻击
假设攻击者能访问训练的模型,那么攻击者可以选定网络中的某一层进行攻击,通过计算输出与该层的梯度来指导针对神经元的修改,只需要修改一部分神经元即可完成后门注入。这种攻击可以通过修改二进制文件的途径实现。
2.模型结构攻击
通过黑客手法例如逆向工程解读文件结构,并植入自己训练的一个后门识别的小网络重新编译打包,实现植入后门的目的。
例如在DeepPayload,作者额外训练了一个后门识别的小网络作为荷载注入到目标网络中,小网络被触发时,会调整原网络的输出,将目标标签的置信度提高。原理如下图

这一工作与 TrojanNet 在思路上有一些相似。在 TrojanNet 中,数据进入模型之前会经过一个微小的木马网络,当图片附带触发器时,木马网络被激活并将输出引向目标标签,且木马网络几乎不会影响模型的正常工作。
D4:数据隐私窃取攻击
数据是AI模型中的关键要素,也是重要的数字资产。然而,研究发现,攻击者可以使用ai模型训练过程中产生的中间信息,或者ai模型使用过程中的输出信息,来进行数据窃取。特别是在一些特定的训练场景中,训练数据可能包含一些个人隐私信息,如医疗场景等。
6.1数据隐私窃取的基本原理
数据隐私窃取攻击一般采用两类信息:一是模型训练训练阶段利用模型训练中产生的信息,如梯度信息等;另一类是模型部署使用阶段利用模型输出查询的信息。
利用模型训练中产生的数据进行数字隐私窃取,主要发生在联邦学习等分布式机器学习的场景中。常见的深度学习模式为集中式学习,数据被收集,储存,集中在一起,基于这些统一储存的数据进行训练模型。然而数据像是一个个孤岛,各个组织因为各种原因包括但不限于隐私安全不愿意共享数据,于是类似于联邦学习这样的分布式机器学习被提出,主要思想是基于在多个设备上的数据集构建机器学习模型。分布式学习和联邦学习如图所示

在分布式学习的场景中虽然各方无法直接获取其他各方的信息,但是获取模型在训练过程中的输出,参数或梯度信息,若其中一方参与方为攻击者,则可以利用这些输出参数或梯度信息进行敏感信息窃取。
用户在使用ai的查询服务的时候,模型反馈的结果不是单一的预测结果,往往还包含一段置信度等信息。例如在图片识别的任务中,输入图片,查询的结果不仅包含了识别出来的图片的类别,往往还包含一些概率向量,表示该图片属于模型预设各个分类的概率,攻击者可以通过多次查询AI模型的输出来获取这些信息,并基于这些信息进行数据窃取。
下面分别介绍两种隐私窃取的原理:
DLG算法:这个算法的思路是:在相同输入数据在相同的模型下获得的梯度相同,于是可以用梯度去反向拟合输入数据,即可以根据模型F,权重W和梯度▽W来推断对应训练数据x,算法概览如图

DLG算法主要分为以下几个步骤:

实际上这个过程就是通过不停的迭代,使得更新后得到的数据的梯度与数据集中训练数据的梯度相匹配,下面有一个例子

由此可见在联邦学习的场景下如果一方伪装的攻击者,则可以轻易的获取数据,当然还有利用模型中间参数的方法来获取信息,这里不再赘述。
6.1.2模型使用中的数据隐私窃取
研究发现,模型在其训练数据上的行为往往与没"看到"过的数据上的表现的行为不同,也就是模型在其训练数据上存在一定的拟合现象。因此可以构造攻击模型来捕捉这些特征,从而区分输入是否为训练数据集中的成员,来达到隐私数据窃取的目的;此外,一般模型的预测结果会返回预测向量等信息。
举一个例子,如果现有一个模型为teacher的话,你尽可能的训练一个影子模型student来接近teacher,通过多个影子模型构建(y,Y,in)和(y,Y,out),然后进行训练二分类模型,这样可以输入任意样本(x,y),来得到特征Y,输入特征Y到二分类模型中,就可以判定其是否在训练集中

6.2数据隐私窃取的种类与攻击思路
如上文所说按照攻击阶段来分的话分为模型训练中数据隐私窃取攻击和模型使用中数据隐私窃取。从攻击结果看,数据隐私窃取攻击又可以分为数据窃取攻击,成员推理攻击,属性推理攻击等。
6.2.1数据窃取攻击
此攻击在前的DLG算法中也有介绍,此处不在赘述,早在2015年就有恢复人脸识别的案例

6.2.2成员推理攻击
也如前文所述,成员推理攻击只需要获得输入是否在训练集中即可,在特定场景中也有很大的作用,例如在医疗AI的应用场景中,如果攻击者使用这种方式判断出某患者信息是否在这个医疗模型中,将威胁到患者的个人隐私。
6.2.3属性推理攻击
属性推理攻击是指对训练数据集中的各类属性信息进行推理,如性别,年龄等。在分布式训练的场景中Melis等人利用训练过程中其他参与方更新的模型参数作为输入特征,训练模型攻击,来推理其他参与方数据的相关属性。如图

D5:AI应用失控风险
随着技术的发展ai失控的风险越来越高
7.1AI应用失控
不法分子研究ai通过各种技术手段牟利。

这是一些验证码的常见形式
2018年腾讯协助警方打掉了市面上最大的打码平台"快啊答题",挖掘出了一条从撞库盗号、破解验证码到贩卖公民信息、实施网络诈骗的黑产业链条。在验证码这一环节上,该团队就使用ai技术,基于主流学习框架Caffe和深度学习模型来识别验证码,正确率高达百分之八十。

除了验证码之外,以深度伪造(Deepfake)为代表的视频伪造技术开始在网络上流行起来。
7.1.1深度伪造技术
如图为深度伪造技术分类。伪造虚假视频内容一般包括视觉内容伪造和语音内容伪造两种。其中视觉内容伪造是指生成虚假图片或视频内容,包括把原始人物的人脸替换为目标人物,或者将原始任务的表情迁移到目标人物

因为现在技术发展的超级迅速,一些原始概念不再介绍。



7.1.2深度伪造安全风险
主要是三个方面
1.个体肖像权,名誉权,隐私权
2.助长诈骗盛行
3.加剧网络谣言的传播
7.2AI失控的防御方法
下面将从数据集,技术防御,内容溯源行业实践面临挑战,未来工作等角度来讨论
7.2.1数据集

要鉴别伪造的视频,需要通过技术手段对视频进行鉴定,而获得一个性能良好鉴别的模型先决条件是获取深度伪造数据并建立完备的数据集进行模型训练
7.2.2技术防御
应对ai应用失控的问题,能想到最直接的方法就是用ai对抗ai,也就是用基于ai的技术
视觉伪造防御分为技术检测对抗防御两个维度,技术检测是指基于深度学习模型来检测图像或视频是否为伪造的内容,对抗防御是一种更加主动的防御方法,基于对抗样本攻击的思路,给输入数据添加少量特殊生成的噪声使得深度伪造失败,生成模糊,带有强干扰色块的视频。如图是常见的深度伪造防御方法分类

起初通过一些特征来鉴别是否伪造,包括最开始伪造技术不成熟,伪造部分分辨率会发生变化

除了五官的细节差异之外,在人脸合成的过程中,通常需要将合成的人脸融合到背景人脸中,这个过程往往会造成伪造人脸的混合边界伪影明显一种Face X-ray的方法根据此原理进行检测

但是上面的方法在现在伪造技术迅速发展的现在性能大大降低
以数据为驱动的深度伪造检测检测方法是目前最主流的检测方法。这种方法充分利用了大数据的优势,利用深度学习算法来学习真实数据与伪造数据之间的差异,根据使用数据方式不同分为基于帧内特征的方法和基于帧间的特征的方法。
基于帧内特征的方法先实现对视频帧的检测,再根据多帧的检测结果进行综合决策;而基于帧间特征的检测将提取视频帧的时序特征进行整体判断
基于帧内特征的方法需要先提取有人脸的帧然后进行分析,如果加入没有出现人脸的帧会让分析准确性大打折扣
基于帧间特征的检测,这类特征通常可以很好地表达人物面部的变化,头部动作的变化或帧间光流变化等。

本文章为压缩版ai安全入门学习,内容仅供参考
基本完结撒花!
浙公网安备 33010602011771号