type
status
date
slug
summary
tags
category
icon
password
CIA 机密性,可用性,完整性
AI的完整性主要是指模型学习和预测的过程完整不受干扰,输出结果符合模型的正常表现。这一块面临的攻击主要是对抗攻击,而对抗攻击又分为逃逸攻击和数据中毒攻击。其中逃逸攻击主要是通过生成对抗样本的方式来逃出模型的预测结果,数据中毒攻击主要是从数据层面对模型进行干扰。
AI的可用性主要是指模型能够被正常使用。这一块面临的攻击主要是传统的一些软件漏洞,如溢出攻击和DDos攻击。
AI的机密性主要是指模型需要确保其参数和数据(无论是训练数据还是上线后的用户数据)不能被攻击者窃取。这一块面临的攻击主要是模型萃取和训练数据窃取攻击。AI的机密性非常重要,一是因为数据往往是一个公司的安身立命之本,如果被攻击者窃取,对公司和用户都是致命打击。二是因为模型的训练成本非常高昂,一个好的模型背后不单单是一个好的算法团队,还有长达几个月甚至几年的迭代时间成本,一旦被竞争对手窃取,后果也将不堪设想。
对抗攻击
逃逸攻击 Evasion Attack
如对抗样本。完美的判别规则和模型实际学到的判别规则之间的差距,就给了攻击者逃脱模型检测的可趁之机。
在实际应用中可以涉及攻击自动驾驶汽车、物联网设备、语音识别系统等。对于自动驾驶汽车错误识别是一个安全风险(路标标识/物品的错误识别),人脸识别系统的错误识别,混淆音频命令被识别为对应的语音命令。
逃逸攻击有多种分类方式,最常见的分类方式是根据其是否了解模型和是否有攻击目标来分。
- 根据攻击者是否了解模型,可以分为黑白盒攻击两类。
- 白盒攻击:攻击者能够获知机器学习所使用的算法,以及算法所使用的参数。攻击者在产生对抗性攻击数据的过程中能够与机器学习的系统有所交互。
- 黑盒攻击:攻击者并不知道机器学习所使用的算法和参数,但攻击者仍能与机器学习的系统有所交互,比如可以通过传入任意输入观察输出,判断输出。
- 根据是否有攻击目标,可以分为无目标攻击和有目标攻击两类。
- 无目标攻击(untargeted attack):对于一张图片,生成一个对抗样本,使得标注系统在其上的标注与原标注无关。换而言之,只要攻击成功就好,对抗样本的最终属于哪一类不做限制。
- 有目标攻击(targeted attack):对于一张图片和一个目标标注句子,生成一个对抗样本,使得标注系统在其上的标注与目标标注完全一致。换而言之,不仅要求攻击成功,还要求生成的对抗样本属于特定的类。
目前主要的研究方向分为两种
- 设计更具攻击性的对抗样本去作为神经网络鲁棒性的评估标准(如FGSD、IFGSD、Deepfool、C&W等)
- 研究针对对抗样本攻击的防御方法,提升NN模型的鲁棒性(如对抗训练、梯度掩码、随机化、去噪等)
常见对抗样本生成方式
- 基于梯度的攻击(一次攻击与迭代攻击)
- FGSM (实际上属于一个优化问题)
- T-FGSM 属于有目标攻击模式的FGSM
- I-FGSM 迭代攻击的FGSM
- 超平面分类攻击
- Deepfool (二分类问题中超平面是实现分类的基础。那么要改变某个样本的分类,最小的扰动就是将x挪到超平面上,让这个距离的代价最小,就是最小的扰动。)
常见对抗样本防御方式
如下图所示,主要有三个思考角度:改变输入,改变网络和添加外部防御。
- 对抗训练:训练集除了真实数据集外,还有加了扰动的数据集
- 梯度掩码:隐藏原始梯度
- 防御性蒸馏:
- 神经网络蒸馏:神经网络蒸馏是一种通过利用教师网络的软目标来训练学生网络的模型压缩和知识迁移技术。简单说就是,我们训练模型是想要学到一个输入向量到输出向量的映射,而不必太过于关心中间的映射过程。
- 防御性蒸馏:我们希望将训练好的复杂模型推广能力“知识”迁移到一个结构更为简单的网络中,或者通过简单的网络去学习复杂模型中“知识”,从而避免攻击者直接接触到我们的模型。
- 将第一次训练的老师模型的输出作为小网络训练的标签
- 随机化:向原始模型引入随机层或者随机变量。使模型具有一定随机性,全面提高模型的鲁棒性,使其对噪声的容忍度变高。(如随机改变大小,随机填充padding等)
- 去噪:数据输入模型前,先对其进行去噪(利用神经网络去噪器)
数据投毒攻击
模型偏斜 Model skewing
如Elie的介绍。模型偏斜是指攻击者试图污染训练数据,来让模型对好坏输入的分类发生偏移,从而降低模
解决方案:
- 使用合理的数据采样。 需要确保一小部分实体(包括 IP 或用户)不能占模型训练数据的大部分。特别是要注意不要过分重视那些伪装成正常样本的恶意样本。这可能通过限制每个用户可以贡献的示例数量,或者基于报告的示例数量使用衰减权重来实现。
- 将新训练的分类器与前一个分类器进行比较以估计发生了多大变化。例如,可以执行 dark launch,并在相同流量上比较两个模型的输出结果。还可以对一小部分流量进行 A/B 测试和回溯测试。
- 构建标准数据集,分类器必须准确预测才能投入生产。 在标准数据集里包含一组精心策划的攻击和系统的正常数据。只有当模型在这个标准数据集上的效果达标的情况下,才能上线该模型。从而避免数据投毒攻击直接对生产环境上的模型造成负面影响。
反馈武器化 Feedback weaponization
反馈武器化是指将用户反馈系统武器化,来攻击合法用户和内容。一旦攻击者意识到模型利用了用户反馈对模型进行惩罚(penalization),他们就会基于此为自己谋利。
这个偏向于社会工程,解决方案为不要在反馈和惩罚之间建立直接循环
后门攻击
模型后门(backdoor)是指通过训练得到的、深度神经网络中的隐藏模式。和逃逸攻击中直接让模型将一个物品识别错误不同,后门攻击是指当且仅当输人为触发样本(trigger)时,模型才会产生特定的隐藏行为;否则,模型工作表现保持正常。
*读论文BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain
模型窃取
如今,机器学习已演化为了一种服务模式,即机器学习即服务(Machine learning as a service)。互联网公司通过模型调用接口来满足用户对各类机器学习模型的使用需求
在这些平台上,用户不清楚模型和训练算法的实现细节,仅能选择简单的模型,模型的结果也高度依赖于输入模型的数据质量和打标结果。机器学习服务提供商通过用户调用该API的费用来收费,因此对于用户而言,这些API接口都是黑盒。
模型萃取攻击
模型萃取攻击(Model Extraction Attacks),也称为模型提取攻击,是一种攻击者通过循环发送数据并查看对应的响应结果,来推测机器学习模型的参数或功能,从而复制出一个功能相似甚至完全相同的机器学习模型的攻击方法。
- 函数映射类模型(如逻辑回归(LR)、支持向量机(SVM)、神经网络(NN))可以将其模型看做是一个函数f(x),模型的输入是x,模型的输出结果是f(x),模型在训练过程中通过优化函数f(x)里的参数来达到分类的目的。因此,如若我们想要对这类模型进行萃取,只需求解f(x)里的参数值就可以了,实际上就是一个解方程的过程。
不过似乎解方程的方法只适用于层数比较小的NN,以及比较明显的函数。
- 决策树模型:简单来说,针对决策树模型的提取是自顶向下的,首先我们获取到决策树根节点的标识,之后依次设置不同的特征来到达不同的节点,递归搜索决策树的结构特征。
- 对于不输出置信度的模型:首先,攻击者随机生成样本并输入目标模型,得到预测结果。然后将这些数据作为训练集,在本地训练一个和目标模型同类的本地模型,将靠近本地模型分类边界的数据点抽取出来,再对目标模型进行访问,获得新的训练集,并继续更新本地模型,直到本地模型和目标模型的误差足够小。
- 模型水印:(更像是模型攻击的应用)
- 首先算法人员基于训练集,生成一系列带有水印的数据集,如上图中的automobile和airplane, 其中airplane是嵌有水印的图片
- 然后将训练集和带有水印的数据一起输入到神经网络中
- 如果竞争者盗用了他们的模型,那么当输入带水印的图片时,对方的模型就会将其识别为airplane,而不是automobile,以此证明对方剽窃了自己的模型
成员推理攻击
成员推理攻击(Membership Inference Attacks)是指给定数据记录和模型的黑盒访问权限,判断该记录是否在模型的训练数据集中。
这个攻击的成立主要是基于这样一个观察结果:对于一个机器学习模型而言,其对训练集和非训练集的uncertainty 有明显差别,所以可以训练一个Attack model 来猜某样本是否存在于训练集中。
通过建立影子模型,构造攻击模型的训练集(训练集的标签,和影子模型的输出结果),并对攻击模型进行训练就好了。
通过对影子模型训练数据的生成方式分类,得到不同种类的成员推理攻击
1. 一些防止 overfitting 的方法可以用来防御成员推理攻击,如 droupout、regularization(相同的结构产生不同的结果)
模型逆向攻击
破坏模型机密性的第三种手段是模型逆向攻击(Model Inversion Attack)。这种攻击方法利用机器学习系统提供的一些API来获取模型的一些初步信息,并通过这些初步信息对模型进行逆向分析,获取模型内部的一些隐私数据。这种攻击和成员推理攻击的区别是,成员推理攻击是针对某一条单一的训练数据,而模型逆向攻击则是倾向于取得某个程度的统计信息。
首先,因为我们对数据源一无所知,我们需要用随机生成的输入向量来冷启动攻击,然后通过在输入空间使用梯度下降来最大化模型在目标预测值上的置信度,从而重构出这个名字对应的人脸。
机器学习框架CVE(Common Vulnerabilities and Exposures)
漏洞可能来源
深度框架,第三方包,应用
不过这个更倾向是传统的安全
- Author:faii
- URL:https://www.faii.top/article/3a77e661-8e35-4bc3-b327-2b771de44f3e
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts