什么是对抗样本、对抗攻击(详解)
1.对抗样本
所谓对抗样本就是指:在原始样本添加一些人眼无法察觉的扰动(这样的扰动不会影响人类的识别,但是却很容易愚弄模型),致使机器做出错误的判断。
如下所示,这两张图片添加噪声(或者说扰动之后)被误分类。
2.对抗攻击
由于机器学习算法的输入形式是一种数值型向量(numeric vectors),所以攻击者就会通过设计一种有针对性的数值型向量从而让机器学习模型做出误判,这便被称为对抗性攻击。(也可以这样理解:将上面生成对抗样本的过程,理解为对抗攻击。)
和其他攻击不同,对抗性攻击主要发生在构造对抗样本的时候,之后该对对抗样本就如正常数据一样输入机器学习模型并得到欺骗的识别结果。在构造对抗样本的过程中,无论是图像识别系统还是语音识别系统,根据攻击者掌握机器学习模型信息的多少,可以分为如下两种情况:
2.1 白盒攻击
攻击者能够获知机器学习所使用的算法,以及算法所使用的参数。攻击者在产生对抗性攻击数据的过程中能够与机器学习的系统有所交互。
2.2 黑盒攻击
攻击者并不知道机器学习所使用的算法和参数,但攻击者仍能与机器学习的系统有所交互,比如可以通过传入任意输入观察输出,判断输出。
这里借用网上一位博主的例子来说下白盒/黑盒攻击
下面就以Inception v3为例,介绍一下如何使用白盒模型来攻击Google的Inception v3 ImageNet分类器:
我使用谷歌Inception v3作为目标图像识别模型,并选取ImageNet中的50000个验证图像针对Inception v3构造出相对应的对抗性图像。在实验中,将所有的对抗性图片和原始图片都打印出来,并手动用一个Nexus 5智能手机进行拍照,然后将手机里的图像输入Inception v3模型进行识别。现场结果表明,87%的对抗性图像在经过外界环境转化后仍能成功欺骗机器。
你可以将经过训练的神经网络看作一组单元格,而同一单元格利的每个点(比如本文中就代表图像)都与同一个类相关联。不过,这些单元格过度线性化,就很容易对细微的变化不敏感,而攻击者恰恰是抓住了这一点。
使用快速梯度逐步算法(Fast Gradient Step Method ,FGSM)可以分解对抗过程。这个方法的关键就是在每一步分析的过程中加入少量扰动,让预测结果朝目标类别偏移。有时候我需要限制扰动的振幅以使得攻击更加隐蔽, 一方被反侦察。在本文中,扰动的振幅意味着像素通道的强度,这意味着限制振幅可以确保扰动几乎无法察觉,最理想的情况就是,经过扰动的图片看起来仅像一个压缩的JPG文件。
应该说是一个纯粹的最优化问题,不过在本文中,我优化扰动强度的目的是为了使攻击最大化。由于你可以获取神经网络的原始输出信息, 所以你可以直接测量误差以及计算梯度。
但如果你没有完整的原始输出信息怎么办,比如你只有一个分类结果,这就是黑盒攻击模型。
这时,你要做的就是从相同的方向进行Noise。首先你需要生成扰动并加到图片上, 然后将图片输入分类器, 并不断重复这个过程直到机器出错。不管你是否限制Noise强度的大小,重复到某个时刻,你都不会再看到正确的分类结果。此时你需要做的事就是找到能得到相同错误结果的最弱扰动,用一个简单的二分搜索就可以做到。
2.3 有目标攻击 & 无目标攻击
无目标攻击(untargeted attack):被攻击的模型的输出只要是错误的,就可以了。如原图像是小猫,添加干扰形成对抗样本输入到模型中,模型输出错误,输出结果可以是小狗也可以是小羊或者是其他,只要求是错误的。
有目标攻击(targeted attack):被攻击模型的错误输出为特定类别。如原图像是小猫,生成的对抗样本使DNN模型错误分类为攻击者想要的小狗。
3.对抗防御
为了防御对抗攻击,相应的对抗防御也就应运而生了,目前主要有以下几大类:
对抗训练:将生成的对抗样本和原始样本混合在一起训练出一个鲁棒性更强的模型。
梯度掩码:由于当前的许多对抗样本生成方法都是基于梯度去生成的,所以如果将模型的原始梯度隐藏起来,就可以达到抵御对抗样本攻击的效果。
随机化:向原始模型引入随机层或者随机变量。使模型具有一定随机性,全面提高模型的鲁棒性,使其对噪声的容忍度变高。
去噪:在输入模型进行判定之前,先对当前对抗样本进行去噪,剔除其中造成扰动的信息,使其不能对模型造成攻击。
4.研究对抗攻击的意义如下
1. 能让机器学习模型处理大规模数据;
2. 以“计算机速度”处理攻击威胁;
3. 不依赖数据的明显特征,发现实际应用中的各种内在威胁;
4. 阻止已知和未知的恶意软件;
5. 阻止恶意软件的提前执行;
6. 优化模型,让分类模型达到更加高的分类准确率和更加低的错误率。
什么是对抗样本、对抗攻击(详解)相关推荐
- ❤️DDOS攻击详解❤️——万物互联时代的巨大威胁!安全领域最棘手的问题之一
DDOS全称Distributed Denial of Service,翻译成中文是'分布式拒绝服务',DDOS攻击是安全领域最难解决的问题之一,由于其攻击方式的特殊性,始终没有一个完美的解决方案,随 ...
- Java程序员从笨鸟到菜鸟之(一百)sql注入攻击详解(一)sql注入原理详解
前段时间,在很多博客和微博中暴漏出了12306铁道部网站的一些漏洞,作为这么大的一个项目,要说有漏洞也不是没可能,但其漏洞确是一些菜鸟级程序员才会犯的错误.其实sql注入漏洞就是一个.作为一个菜鸟小程 ...
- 【Web 安全】XSS 攻击详解
文章目录 一.XSS 攻击概述 二.XSS 攻击原理 1. XSS的攻击载荷 (1) script 标签 (2) svg 标签 (3) img 标签 (4)body 标签 (5) video 标签 ( ...
- Linux缓冲区溢出攻击详解
Linux缓冲区溢出攻击详解 (一)当一个函数被调用后,它会: 移动栈指针ESP,EBP.开辟一段栈空间 在栈(堆)空间内分配程序申请的局部变量 (二)当一个函数去调用另一个函数时,它会: 准备入口参 ...
- XXE无回显攻击详解
今天继续给大家介绍渗透测试相关知识,本文主要内容是XXE无回显攻击详解. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权 ...
- OpenAI详细解析:攻击者是如何使用「对抗样本」攻击机器学习的
原文来源:OpenAI 作者: Ian Goodfellow.Nicolas Papernot.Sandy Huang.Yan Duan.Pieter Abbeel.Jack Clark. 「雷克世界 ...
- 【Web 安全】CSRF 攻击详解
文章目录 一.CSRF 简介 二.CSRF 原理 三.CSRF 的危害 四.CSRF 的攻击类型 1. GET型 2. POST型 五.CSRF 的防御 1. 验证 HTTP Referer 字段 2 ...
- DOS、DDos攻击详解
目录 一.DDOS 是什么? 二.DDoS的危害 三.常见的DOS攻击 四.DDoS的防范 一.DDOS 是什么? DoS为Denial of Service的简称,意思是拒绝服务.DoS攻击是一种使 ...
- php反序列化拓展攻击详解
2019-11-11 16:51 文章首发于先知社区:https://xz.aliyun.com/t/6699 前言 继上篇对thinkphp5版本反序列化pop链详细分析后,对tp的反序列化漏洞有了 ...
- XSS跨站脚本攻击(DVWA XSS攻击详解、XSS平台搭建)
一.跨站脚本攻击过程 二.XSS攻击定义及危害 三.XSS攻击常见分类 例:反射型 例:存储型 例:DOM型 四.XSS攻击常见编码 例: 编码后: 五.XSS常见测试语句 Script 标签 Scr ...
最新文章
- 嵌入式系统一次EMMC测试的体会及错误分析过程
- ns 25的IKE模式ipsec ***配置
- 不要对对象进行粗暴的等号赋值
- 单播,组播,广播的区别
- Ceph 的数据回填和恢复
- 数仓建模 项目_模型设计_数仓建模 PDF 下载
- response.setContentType()的作用及MIME参数详解
- python---str和repr
- 流言终结者- Flutter和RN谁才是更好的跨端开发方案?
- MongoDB是我想要的存储么?
- 火狐浏览器安装java插件下载_如何在 Firefox 浏览器安装 java 插件
- oa办公系统服务器网址是什么,OA办公系统登陆地址是多少呢?
- 基于二维激光雷达的三维激光扫描系统的设计与实现
- Word自定义目录的设置
- 【深度好文】谈谈你对MyBatis的理解
- Excel条形图更换顺序
- 【DB笔试面试758】在Oracle的DG中,Switchover和Failover的区别有哪些?
- intellij idea处理xml文件File encoding is disabled,Encoding is hard-coded in the text.提示的方法
- 嵌入式设备的通讯--秉火STM32学习笔记
- 基于模板的知识问答方法
热门文章
- 灾难性故障 (异常来自 HRESULT:0x8000FFFF (E_UNEXPECTED))
- javax.servlet.ServletException: 实例化Servlet类[com.enjoy.book.action.UserServlet]异常
- QT Quick QML 实例之 Popup 弹出界面
- web期末大作业设计网页: 餐饮主题——火锅食品餐饮网站设计(11页) HTML+CSS+JavaScript HTM5网页设计作业成品
- 关于IXP2400的基本结构和功能(1)
- 编译器警告c4996
- 在浏览器上使用GPU计算
- 关于嵌入式是前端还是后端
- Java:构造方法总结
- python行人检测_基于YOLOv3的行人检测