本文是《AI与安全》系列文章的第三篇。在前文中,我们介绍了Attack AI的基础概念,即黑客对AI发起的攻击,主要可以分为三种攻击类型,破坏模型完整性、可用性和机密性的攻击。
其中破坏模型完整性主要分为两类攻击,针对模型的逃逸攻击和针对数据的数据投毒(中毒)攻击。
在本文,我们将介绍破坏模型完整性的数据投毒攻击。
数据投毒/中毒攻击(Data Poisoning Attack)是什么?这里我们用几个例子来说明。
对于一辆无人驾驶汽车,不同于逃逸攻击直接构造对抗样本对模型和系统发起攻击,由于智能汽车的识别模型通常是基于历史数据进行训练定期生成的,那么黑客就可以产生一些实时的数据或者说一些黑客以前已经习惯于走这些道路的数据,把这些数据输入到云端或者智能汽车系统中,从而实现让智能汽车按照黑客想要的路径去前进,利用数据投毒的方式来攻击人工智能系统。
此外,当前市面上的问答式机器人/智能交互AI,如微软小冰、QQ小冰等,它们通过庞大的语料库来学习,还会将用户和它的对话数据收纳进自己的语料库里,因此我们也可以在和它们对话时进行“调教”,从而实现让其说脏话甚至发表敏感言论的目的。
在业务安全领域,阿里集团安全资深总监路全在CCF大会上也分享过一个数据中毒的例子 :
“阿里的有些端口每天会来很多爬虫。有些爬虫即使被杀掉了,还是不断的来。
后来我们发现,这些爬虫其实也是在用一种非常聪明的方式污染模型,因为他除了有大量低级爬虫或者说低级流量外,他还有一部分高级的爬虫。他不怕低级的被模型识别和杀掉,但是他知道模型会被大量低级爬虫样本的特征所带偏,所以他实际上是用低级爬虫做诱饵,然后让高级爬虫帮他达到目的。”
通过前面的例子,细心的小伙伴可能也发现了,数据中毒的根本原因,其实是传统机器学习方法并没有假设输入模型的数据可能有误,甚至有人会故意搅乱数据的分布。
通常情况下,如果我们通过时间滑窗的方式来生成模型,我们期望的是今天的数据和上周数据的平均分布是差不多的,或者说每周一的数据分布情况都差不多。基于这个假设,模型才成立。而这个假设恰好就让攻击者有机可乘了。
模型偏斜是指攻击者试图污染训练数据,来让模型对好坏输入的分类发生偏移,从而降低模型的准确率。
例如,Google反滥用研究团队的主管曾经介绍过发生在Google垃圾邮件分类器上的数据投毒攻击案例。一些高级垃圾邮件制造者试图通过将大量垃圾邮件提交为非垃圾邮件来使 Gmail 邮件分类器发生偏斜。
如图所示,2017 年 11 月底至 2018 年初,Gmail遭遇了至少 4 次大规模恶意攻击试图让分类器偏斜。
因此,在设计 AI 防御机制时,需要考虑以下事实:
攻击者一定会非常积极地将正常数据和异常数据之间的那条分界线转移到对他们有利的位置。
这种攻击的解决方案,通常有三种:
反馈武器化是指将用户反馈系统武器化,来攻击合法用户和内容。一旦攻击者意识到模型利用了用户反馈对模型进行惩罚(penalization),他们就会试图利用这一事实为自己谋利。
比如说如果我们想攻击一个交互系统,比如说智能客服,每次它回答问题后,下面会弹出一个服务评分选项。那只要我们持续地给正确答案打1星,错误答案打5星,如果背后的模型没有对数据投毒攻击有所防范,那这个智能客服模型就会被成功干扰。
因此,在构建系统时,需要考虑以下假设:
任何反馈机制都将被武器化以攻击合法用户和内容。
解决方案: