AI研习丨专题:人工智能系统自身的攻防对抗

Wesley13
• 阅读 611

  AI研习丨专题:人工智能系统自身的攻防对抗

  近年来,人工智能飞速发展,在智能语音、计算机视觉和自然语言处理等方面的基础应用技术逐渐成熟,自动驾驶、智能服务机器人和智能安防等人工智能新产品新业态层出不穷。与此同时,人工智能系统面临的恶意攻击者也越来越多,人工智能的安全已经成为一个受到广泛关注的问题。我们不仅要关注使用人工智能技术来 解决安全问题,如恶意代码检测和漏洞检测等,更要关注人工智能系统自身的攻防问题,提高人工智能系统的防御能力,促进人工智能的广泛应用。

  针对人工智能的攻击技术

  针对人工智能系统的恶意攻击者一般有两种目的,一是窃取人工智能系统的数据信息或者模型信息;一是干扰人工智能系统的功能正确性以达到自己的目的。

  1. 窃取信息的攻击技术

  人工智能的四大要素是数据、算法、算力和行业。随着大数据技术发展,数据的价值受到重视,如何汇集利用数据成为人工智能的主要问题之一。算法是实现人工智能的根本途径,是挖掘数据智 能的有效方法;算力为人工智能提供了基本计算能力的支撑,是算法实现的基础。数据、算法和算力只有结合实际的行业场景,才能体现出实际的价值,实现行业创新和创造。数据和算法无疑是开发者非常重要的资源,具有一定的商业价值,窃取信息意味着攻击者想要通过某种手段非法获取系统的数据和算法信息。

  (1)模型窃取攻击

  因为敏感的训练数据和商业价值或者在安全应用中的使用,一些人工智能的模型是机密的。越来越多的机密模型会使用可公开访问的查询接口进行部署。比如,机器学习服务(预测分析)系统就允许用户在可能敏感的数据上训练模型,并按照每次查询的方式向其他人收取访问费用,目前Amazon、Google 和 Microsoft 已经部署相应的机器学习服务平台,提供了机器学习接口(API)。

  AI研习丨专题:人工智能系统自身的攻防对抗

  2.干扰功能的攻击技术

  随着人工智能在各行各业的广泛应用,恶意攻击者会通过某种手段来躲避人工智能系统的检测或者破坏人工智能的功能,从而达到攻击别人或者以此牟利等目的。

  (1)逃避检测攻击

  人工智能正越来越多地用于对安全敏感的应用程序中,例如垃圾邮件过滤、恶意软件检测和网络入侵检测,通过阅读系统的相关介绍或利用输入输出进行实验,恶意攻击者可能会意识到机器学习检测器的细节,例如分类器的选择和使用的参数,然后修改他的行为以逃避检测,使得人工智能系统学习混乱。也就是说,逃避检测攻击是对人工智能系统的攻击,对手旨在通过操纵恶 意测试样本来避免被检测到,例如通过混淆常见的垃圾邮件词或插入与合法电子邮件关联的词来修改垃圾邮件。

  (2)数据污染攻击

  数据污染攻击是指攻击者对用于训练的数据进行恶意修改来降低或消除其有效性,从而主动篡改机器学习模型。这些恶意修改可以是插入实例(例如发送特制的电子邮件,无论是良性还是恶意),或者修改数据中的实例(攻击一个用来存储部分数据的服务器),还可以有选择地删除一些实例。

  逃避检测攻击和数据污染攻击之间的关键区别是,前者是对学习模型的攻击(例如实际的分类器);后者则是对算法的攻击(例如最小二乘 法回归学习)。

  这里举一个恶意众包的示例。恶意众包是指攻击者雇佣一群互联网用户进行恶意活动,比如 制造传播虚假谣言的促销活动。假设我们有一个机器学习分类器来检测众包工人,那么逃避攻击就是个体的众包工作者调整自己的行为模式,比如模仿普通用户的行为,来规避训练有素的机器学习分类器的检测。污染攻击则有众包网站的管理员参与,通过污染训练数据来操纵机器学习检测器的训练过程。

  AI研习丨专题:人工智能系统自身的攻防对抗

  人工智能的防御技术

  由于人工智能现在已经广泛地应用于各行各业,为了保障人民利益和隐私安全,如何防御对人工智能系统的攻击已经成为一个十分急迫且必要的问题。根据防御对象的不同,可以将人工智能的防御技术分为针对输入数据的防御技术和针对模型的防御技术。

  1.针对输入数据的防御技术

   因为很多恶意攻击者利用输入数据来对人工智能系统进行攻击,获取模型的信息或者破坏模型的功能,针对输入数据的防御技术应运而生。为了防御恶意攻击者利用输入数据对人工智能进行的攻击,现在已经出现了很多不同类型的防御技术。

  (1)对抗训练

  对抗训练是指可以直接在对抗性样本的基础上重新训练模型,直到模型学会正确地对它们进行分类。这可以使网络对测试集中的对抗性样本具有鲁棒性,并且提高网络的整体泛化能力。这种方法是简单并且有效的,但是,因为对抗训练只能有效对抗再训练阶段使用的特定对抗性样本生成算法,所以并不能完全解决问题。

  此外,对抗性训练的方法想要在大规模模型(例如ImageNet模型)上使用是比较困难的,因为重新训练的成本较高。

  (2)输入变换输入变换的主要思想是对输入数据进行预处理或转换(例如图像裁剪、重新缩放、比特深度 缩减和JPEG压缩等)从而消除对抗扰动,然后将转换后的图像输入一个未修改的分类器。这种变换方法通常不会改变神经网络的结构。

  输入变换很容易被白盒攻击规避,因为攻击者可以相应地修改攻击算法,在对抗性样本的生成期间考虑系统会进行的变换操作;而在黑盒攻击中,它可以提供良好的保护。但是,输入变换不能消除输入数据中的对抗扰动,只能降低攻击成功率。

  (3)梯度屏蔽

  梯度屏蔽是指模型所有者希望通过阻止攻击者访问模型的有用梯度信息的方法来防御攻击。正如之前所提到的,对抗性样本的构造主要基于目标模型的梯度信息,如果没有有用的梯度信息,攻击者很难生成有效攻击的对抗性样本。例如,随机化方法在分类网络的开始添加随机调整大小层和随机填充层屏蔽梯度信息。随机调整大小是指将输入图像的大小调整为随机大小,随机填充 是指以随机方式在输入图像周围填充零。然而,梯度屏蔽通常不能有效地防御黑盒攻击,因为对抗性样本的可转移性,攻击者可以在易于攻击的模型上运行其的攻击算法,并将这些对抗性样本转移到难以攻击的模型。

  (4)检测与拒绝

  检测与拒绝的主要思想是系统由原始分类器和检测器组成。检测器可以检测到对抗性样本或者恶意用户,然后拒绝其输入或者访问,从而保护分类模型。例如,Lu等提出了一个SafetyNet模型,SafetyNet由传统的分类器(VGG19或ResNet)和对抗样本检测器(RBFSVM)组成。RBFSVM查看原始分类器中后面层的内部状态, 检测对抗性样本,如果检测器声明样本是对抗性的,那么样本将被拒绝。

  2.针对模型的防御技术

  针对模型的防御技术关注的是提升模型自身抵抗攻击的能力。在如何提高人工智能系统的鲁棒性方面已经有了一些研究,主要可以分为两类。一类是针对模型本身进行改进,例如Wang和Ye等通过实验讨论了剪枝对某些DNN鲁棒性的影响;而清华大学最新的研究表明,适当高的模型稀疏性意味着非线性神经网络具有更好的鲁棒性,而过度稀疏的模型则更难以抵抗对抗性样本。另 一类是结合其他安全技术来提升人工智能系统的防御能力,如Abadi等在差异隐私框架内学习和精确分析隐私成本;Huang等提出具有差分隐私的分布式机器学习,保证隐私的同时在通用目标函数下实现更高的效用。

  结束语

  随着人工智能技术的飞速发展和广泛应用,为了牟利出现的恶意攻击者越来越多,人工智能系统的攻防对抗已经成为一个热点问题,越来越多的研究者已经在这方面做出了许多成果。除了人工智能系统自身的攻防对抗,还有许多研究利用人工智能技术来加强传统系统的攻防对抗。为了促进人工智能的健康持续发展,人工智能系统的安全必须受到重视。

  (参考文献略)

  作者简介

  AI研习丨专题:人工智能系统自身的攻防对抗

  选自《中国人工智能学会通讯》

   2020年 第10卷 第4期 人工智能与安全专题

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
PS打包实现AI图像论文,英伟达在实时视频PS之路上越走越远
  编辑:Panda  !(https://nimg.ws.126.net/?urlhttp%3A%2F%2Fdingyue.ws.126.net%2F2020%2F1028%2F88b5e6ffj00qiwi6t000id000l000kup.jpg&thumbnail650x2147483647&quality80&typejpg)
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Stella981 Stella981
2年前
Forrester机器学习报告发布,腾讯云跃居第一阵营
  !(https://nimg.ws.126.net/?urlhttp%3A%2F%2Fdingyue.ws.126.net%2F2020%2F1016%2Fecdc1f59j00qi98j7000od200u000fpg00it009u.jpg&thumbnail650x2147483647&quality80&typejpg)  A
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这