6月30日,由中国计算机学会主办的全球人工智能与机器人大会(CCF-GAIR)在深圳召开。在智能安全专题论坛,阿里巴巴集团安全部资深总监路全做了题为《对抗“数据中毒”——机器学习在阿里巴巴网络安全的应用》的演讲。以下为演讲全文。
大家好,很高兴能在这个场合和大家分享我们在阿里巴巴网络安全上的一些实践和经验。刚才各位来宾已经对我的演讲做了很好的铺垫,比如说浙大的任教授,他对数据安全各个方面做了非常详尽的总结,百度的聂总也从安全为智能这个角度谈了智能为IOT设备能做什么防护。我今天的演讲也是讲安全为智能,而不是智能为安全。
我还是想以智能汽车为例展开我的演讲,因为大家可能这两天听了很多关于智能汽车的比喻,它确实是一个非常典型的智能安全体。大家想一想,我们有几种方式可以去攻击智能汽车?
第一个方式在这几天各位来宾已经讲了很多,我们可以去改变这些交通标志,来利用智能算法本身的缺陷攻击智能汽车,这个我就不展开讲了,因为各个来宾都讲了例子。
第二个方式是传统的方式,比如在电影《速度与激情8》,它能够控制那些平民的汽车,最后完成它的攻击行为,这是传统的黑客或者渗透入侵的例子。
第三个方式其实刚才任教授(任奎)提到的,通过数据的方式,今天我可以不侵入你的系统,但是我产生一些实时的数据或者说一些你以前已经习惯于走这些道路的数据,我把这些数据输入到云端或者你的系统,可以控制你的车,按照我想要的路径去走,利用数据中毒的方式来攻击人工智能系统。
其实,阿里巴巴面临的挑战还比智能汽车安全更为复杂,因为大家都知道阿里巴巴现在是一个大数据公司,有很强的人工智能方面的开发和研究能力,每个月、每个季度、每半年其实在阿里巴巴这个生态里都会长出很多新的人工智能的算法或人工智能体,作为集团安全来讲,其实我们的防守范围就以前会大很多,因为以前可能更多的是看中这些机器的防护,但现在这些机器变成人工智能的算法或者人工智能体,我们的防护必须要有一些新的改进。
我刚才简单介绍了数据污染或者叫数据中毒,一提这个,大家脑海里浮现出来的可能有些非常直观的例子,比如说微软小冰的例子,它是一个人工智能对话系统,刚上线的时候因为用实时对话的数据进行训练的,所以你给他一些不好的对话,就会被污染,这是非常直观的。
还有一个直观的例子,SEO(搜索引擎优化)也可以当做一种利用数据去掌握或者控制搜索的推荐算法,因为它其实就是根据推荐算法去用新的数据,去让推荐算法或者说搜索算法把你排到他想要的位置。
我现在想举的是两个不是那么直观的例子,这是我们在阿里巴巴的网络安全中遇到的。大家都知道双十一是阿里巴巴非常大的活动,每年双十一对普通百姓来说是能够去买到很多便宜的商品,但我们发现了非常有趣的现象。
平时我们会有很多的爬虫,根据网络的流量来爬取信息,因为阿里巴巴的信息还是非常值钱的,但是在双十一两个星期之前的爬虫流量变小了或者几乎为零,尤其是重要的应用上,我们就奇怪为什么双十一之前他们不来了?你可能会说,也许跟打仗一样,正常打仗之前要有一些静默的方式,然后到双十一采取一种全新的方式,但是这个解释不是很通,后来我们明白了,对抗者知道你的模型一定是用最近期的数据训练的,那他在双十一之前的两周静默之后,我的双十一这一天的模型其实训练数据就偏了,我的模型效果就会很差,所以其实是用故意去把你的时间训练的数据给带偏的方式来试图影响和扭曲你的模型。
还有一个例子也是机器爬虫的例子,也很有趣,因为我们讲安全对抗都是一个成本之间的对抗,我们发现有的端口每天来很多机器流量或者来很多爬虫,我们把它杀掉,它还是不断的来,这个也不合理,因为他是在浪费他的钱,明明每天被你杀掉,还每天都来,这不是很有经济效益的问题。
后来我们也发现了,他们其实也是在用一种非常聪明的方式污染你的模型,因为他有大量的低级爬虫或者说低级流量,其实还有一部分高级的,低级的是大量合在一起不停的攻击你,他不怕低级的被你识别和杀掉,但是他知道你的模型会被大量低级爬虫样本的特征所带偏,所以他实际是看中那些高级的爬虫,达到它的目的,低级的就是给你杀的,就是给你去破坏你的模型。这是两个不是很直观的数据污染的例子。
再总结一下数据中毒和数据污染,其实我用这个图来说,无论是什么样的数据中毒和污染其实都是一个,如果左边是我们的目标,我们的统计模型或者现在所有机器学习的模型都是统计模型,其实昨天有一个嘉宾分享得很好,他说所有的机器学习模型其实都是在做最小化你的目标函数,所有的机器学习模型都是在解一个最小化的问题,然后这个最小化问题是在你的训练样本上,所以你可以想象他最后做的是一张网,每张网是训练样本,但是不能保证样本和样本之间是没有空档的,所以用机器学习来做安全攻防的话,更像一张网,我要训练一张网去覆盖我的正确目标,但是数据中毒的目的就是让你训练的这张网跑偏。
阿里安全除了在传统网络安全上建立安全的防御体系,防御黑客入侵和渗透,还要建立一张网是防止脏数据或者数据中毒,数据污染。
我刚才举的两个例子其实都是机器流量的例子,我们在实际中发现数据污染或者数据中毒,我们叫机器流量是万恶之源,机器流量最后会造成很多的数据中毒,比如说刚才举的是爬虫爬取信息的例子,还有商家的信息泄露,因为任教授说到现在在爬取数据不只是爬整条的,所以爬虫是机器流量很严重的问题,还有在搜索上排序刷单,这些都是用机器流量来完成目的的,所以我们要防止数据中毒或者数据污染,根治机器流量。
阿里在机器流量防控体系的建立实际主要是由三个方面组成,我待会儿会分别给大家做详细介绍。第一个是检测模块,检测模块听起来不是很智能,但其实如果把整个智能系统比作一个人的话,检测模块就是眼睛,没有眼睛的话很多事情是做不了。第二是分类模型,分类模型是机器学习的一种在工业界最常用的模型,如果我们还是把这个比作有机体的话,分类模型就是大脑。最后一个是辅助系统,因为我做机器学习已经很久,有十几年的历史,在工业界来说,昨天英特尔的CTO也讲到他们提供机器学习整个训练的线下的部分,但我的经验是,模型是在有效的系统中占比是有效的,现有的已经有效的机器学习系统还有两个是非常重要需要加进去的,一个是跟控制有关,反馈控制是一个研究的已经很透的领域,但其实在实际系统中,反馈控制往往能起到和机器学习模型叠加组合起来能起到好效果。还有一个要注意的,其实就是在传统的OR领域,运筹学领域做的和信息系统结合,也能产生很好的效果。这是我说的辅助系统的这两个重要的对机器学习系统的帮助。
先讲检测模块,我刚才把检测模块比作整个系统的眼睛,这个眼睛是要满足这四方面的要求,第一个很简单,你必须要能判断出你的目标是0是1,判断不出来就不是一个好的检测系统。
第二个可能经常被忽视,尤其是安全攻防领域,这个检测是想尽量做到被攻击者无感知的,因为在攻防上,传统来讲我们作为防守方,其实是有一个很大的劣势,就是我们好像永远都站在明处,那些攻击者都是站在暗处,他们可以不断的来测试我们的系统,但是我不知道他什么时候在测试我,我完全被动,他可以随时在暗处躲着,随时打我一拳,随时看到我的动作。检测系统实际把刚才我说的攻防不利方面转化了,因为我们有检测系统的话,检测系统如果做到对方无感知,在检测系统上我们是站在暗处,他们站在明处,因为他没有感知到我是在什么时间,什么点去做检测的。
最后这两个也是必须的,第一个是要检测到未知的新攻击,因为机器学习是用历史来告诉未来,用历史的数据来告诉你未来的行为,很容易陷入到你的特征只能表示已知的攻击行为,而对未知的不可预测,所以这个检测系统必须提取的特征是一个对所有的攻击行为都适用。最后一个是无偏的,听起来是非常自然的一件事,但是在实际中会有很多的陷井,如果不注意的话会把你的检测结果带偏。
第二部分我讲的是分类模型,这个是大的分类模型框架,从输入到输出,可以看到输入的信息基本上有四个方面,一个当然你是在检测流量是不是机器流量,所以肯定有流量的信息,第二是生态的数据,这个其实是阿里现在一个越来越有优势或者越来越有利的,因为阿里的生态包括集团、UC浏览器、高德、优酷,这些都是并入到阿里的大生态中,大生态里的各个方面和数据可以做到互相的补充,形成一个联动的防御机制,这是生态数据的重要方面。第三是情报,这里主要是公开有的这些数据,但是去经过分析,可以得到一些有价值的情报,其实安全问题本质上是一个大数据的问题,但这个大数据问题我的观点是通过小数据来解决的,撬动大数据问题的杠杆的小数据,其实就是情报。第四是专家经验,因为昨天大家在会场上也听到讲了很多知识图谱或者知识库,可能那些是比较新的名字,但是在工业界用就是我们要把专家经验作为特征之一结合到系统。有了这些输入之后,特征会用各种各样的方法去计算各种维度的相似度的特征和提取,最后识别出来的结果可以用在离线的识别服务和在线识别服务,这就是一个模型的框架。
最后再讲辅助系统一块,因为我刚才说了,辅助系统在工业界其实是机器模型能够合理的利用和产生价值的必不可少的一些部分,第一个是持续检测,因为如果把检测比作眼睛的话,如果你想整个攻防体系最后是自动化的话,一定需要持续检测,这也是我刚才讲的控制上的应用。第二是多模型防控,机器学习模型其实最后训练出来的是像一张网,这张网覆盖上会有很多洞,我怎么解决这些洞?从模型训练角度讲你只有加更多例子,你可以理解为这个网的节点就更加多了,但这个有的时候数据是不可得的,所以多模型防控就好像用不同模型去训练不同网,我把网叠加起来,希望这种叠加效应能够对我的整个防御体系产生更好的拦截作用。第三是分场景防守,分场景防守也是呼应我刚才讲的,除了控制模块,第二块是我们要在实际中,运筹学或者传统的有条件的优化上,其实已经帮我们指明了很多路,他们在供应链管理上已经做得非常好,分场景防守就是在我们模型的上面加上一些系统,不等同于是采取分段模型,而其实是增加了一个决策系统,去让模型更好的在不同场合、不同策略适应。最后一个在实际中也是必须的,不管你采取多复杂的系统,用什么模型,最后是要兜底的,他们都会有可能产生一些不可预期的结果,所以这个系统现在不管人工智能发展得多好,还是要留一个出口,当我一旦有一些没有预料到的情形发生的时候,我要让人知道这些报警,有专家去做控制。
这主要是我今天想讲的内容,其实我讲的主要是三个观点,第一个是由于我们有越来越多的人工智能算法和人工智能体,这些都成为安全所要保护范围里面的重要成分之后,我们一定要警惕这些智能体被数据中毒或者数据污染,因为他们都是数据驱动。作为像阿里巴巴这样的网络公司来讲,数据中毒或者数据污染的主要途径是通过机器流量,因为这些智能体都是用大数据训练的,他要用数据污染你,一定是用大数据去污染,大数据不大可能是由人产生,一定是机器产生。最后我简单的介绍了阿里安全关于防止机器行为数据中毒的清洗体系的三个组成部分。
在阿里本来有一句话说,我们要像治理酒驾一样去打击假货。现在还要加上一句,因为我们不光要像治理酒驾一样去打击假货,我们还要像呵护我们的孩子一样去呵护AI系统,因为它是数据驱动,你教它什么,给它什么数据,就会出现什么行为。这就是我今天的演讲,谢谢大家。