冯继强(风宁):AI领域 对抗欺骗与安全防御

摘要:随着网络攻防用AI对抗AI情况的增多,声纹识别、人脸识别甚至能被100%秒破。AI行为认证,持续无感知深度学习用户行为特征,可以有效解决网络身份鉴别问题。随着防御越来越强大,使用人工智能手段的攻击也将会发展壮大。在网络安全领域,只有永远的对抗,没有永久的安全。

风宁

冯继强(风宁)    苏州锦佰安信息技术有限公司创始人兼CEO

今天我被邀请谈一谈安全比较新颖的东西,正好我们公司就是做AI安全的,我就把我们在AI安全领域,基于安全的防御、安全对抗经验与大家进行简单交流。议题的名字叫“AI领域对抗欺骗与安全防御”,这和我们公司主研的身份在网络上的对抗相关度多一点。我从2002年开始一直从事网络安全工作,现在在创业,创业的公司就是做AI领域的身份识别认证。

在网络和现实当中最大的区别,比如现实当中,今天我跟这个人吃了个饭,虽然是陌生的,第二次我和这个人有一些熟悉(感)的,“我上次见过你”,不需要再问你在哪里工作,或是“我们上次吃饭是几点几分吃的饭,吃的什么菜”,确认完了,OK,我们上次确认是见过的,因为我是认识的。现实当中不需要这么繁琐。但在网络上,我们每次登录一个网站或登录一个应用,甚至我要向网上应用这是我自己的时候,多多少少都会今天要再输一遍帐号,或再输一遍密码,输得多的时候,他让输验证码的时候,是不是我人在输的,或者我敲的键盘,甚至对比一下人脸,按它的操作做一些非常反人类的行为,这是因为现在网络世界认识人的一些科技的还没有远远达到可以直接识别到本人。所以,导致我们每天在做验证、认证的时候在大量浪费无用、重复的时间。所以,认证的本质,从最基础的帐号登录场景,会发生个问题,它是人还是机器,机器是什么?第一幼可能是软件,第二有可能是恶意的人做了批量的操作。(图)红色是身份认证的帐号和密码,这是大多数人都能接触得到的,蓝色的人机识别是区别,这个人是不是真正的人,但现在大家在日常应用当中应该也经历到的,比如这上面几个最典型的字符,图片拼图,通过一些物体名字点击确认这个物体,“最反人类友好操作”的是数字或文字,按下图所示的一定序列去做鼠标垫选,种种是为了干嘛呢?为了验证你,你是真的人。

这真的能保证验证到是个真的人吗?之前报过一系列的新闻或安全事件,去年报了最有名的腾讯协助警方打掉了快安答题(音),他们的所有验证码在网络上日均调用最多的时候是,我知道腾讯自己有个数据,在安全会议上有过演讲,他们一天面临的验证码攻防攻击是4.5亿次,当时腾讯安全总监杨涌(音)说了一句话,4.5亿次,一次验证是0.08/元,等于3600万人民币/天的损失,这是腾讯一家的。那全国呢?全球呢?这是多大的市场。所以,我们在对抗所有的机器自动化操作,做了这么多事情。

字符验证码,原来的手段,最开使用泰森(音译)的图形库存,去除灰度,再编译,做相符合的文字处理,再用OCR识别,再去破解这个验证码。再后来卷积神经网络,ZGG以及CNN形成以后会形成快速的学习。随着人工智能的发展,有一个模型,出来以后直接就天下大乱,RCA神经网络,神经网络框架,它能在原来需要200多万个字符训练样本的基础上,缩减了不到10个字符就能认识一个数字。我们这里放了一个demo视频。所有这一类的字符验证仅仅需要大概只有300-500个字符集训练完以后,它可以做到百分之百地识别网上所有字符验证。你做这么多,人还没有机器识别得快,这有异议吗?我认为这比较反人类,没有任何意义的。

刚才讲的滑动、拖动的图片,拖动图片具体怎么做?我们每个人在使用PC网络上的应用还是在移动端有时候做一些操作,终归会有一些拖动行为,但你们感觉这个拖动行为比验证码输入方便,它真的是一种比较友好的形式吗?其实也不是的,因为它占用了人的时间精力。我们想一下,每天这么不停地拖动和滑动,去输验证码,占据了每天多少时间?本来科技带来的进步是让人更便捷地应用互联网,现在种种手段都在让人被动式地浪费时间精力,更不友好地接受互联网。

滑动验证,之前都有各种宣称,有一些AI,最顶尖的各种技术保证安全,它真的安全吗?我大概罗列了一个非常简单的流程,稍微有点Pascal编程技术、神经网络框架不熟悉的都可以做到快速地呈现。比方收集几百张的滑动图片,自己手动拖动百十次,把这百十次作为基准的鼠标活动轨迹,再去盯到神经网络框架里训练时,不符合的就直接剔除,符合的在后台永远就认为这是真的人。然后就可以了。这个视频是去年录制以后,每次都会有最新验证,不断更新,现在都还保持远比人类滑动更快更准确,人类滑动的时候经常拖不对的时候还要重新拖,这个视频有半分钟,可以看一下。(视频演示),鼠标是在右上角禁止不动的,并不是鼠标在点击拖动,只不过软件在自动化地处理。总共演示有10次,这是第10次操作,10次的成功率是百分之百,这不是作假的视频,是我们在证明。在网络世界里,有些技术根本没有办法作为有效的人机区分的时候还反而做得那么麻烦,对人操作前是非常大的牺牲。

在做验证的时候,刚才讲到帐号密码,互联网诞生之初是没有密码的,现在种种复杂密码,今天在安全行业传的比较多的网站上千万用户信息密码泄露,他这个密码泄露就被人用来撞库一系列,保证不了自己的安全,为什么还要抢占密码这个反人类的东西。整体发展路线,80年代到1996年PC时代,静态密码以及后面的U盾、PKI、数字令牌一系列防护手段随着移动网络的发展逐步在被淘汰替代,移动网络,很多更偏重于采用短信验证码。短信验证码,在之前国家单位交流时他们也明确提出来,短信只是到达通知的作用,短信第一不是加密的,第二到达率延迟,跨国境、跨区域到达率延迟是个非常大的挑战;第三我没办法证明获取到这个短信,很多人的手机即便处于锁屏状态,它的短信验证码发过来的时候,你的锁屏状态也是能看得到数字的。短信已经在作为密码验证凭证在逐步地被淘汰。后面就有了大家都提到的生物识别特征,人脸、指纹、虹膜、静脉血,包括日本提的掌纹。这些能说安全吗?现在非常火的AI人脸识别,应用最过的苹果Face ID,以及其他厂商现在引入的人脸识别解锁。

这一系列导致AI领域身份验证面非常大的挑战,但在2015年、2016年斯坦福提出来,为什么不从更深层次,更便捷地解决人类身份识别的安全问题呢?比如我们每个人第一次见了一个人以后,这个人停留在他认知初步阶段的时候,第二次这个人换了衣服,戴个帽子,戴个眼镜,他不能说这个人就完全不认识了,这就是和原来的挑战不一样的地方。他的一些五官特征或行为特征,能让识别他的人造成非常深刻的印象,已经就被动式的直接就能识别到身份,网络世界可不可以这样做呢?我们每个人操作屏幕、键盘、力度、习惯以及自己独有的个人习惯,3D、人脸识别,(动图)简单照片就可以输入3D模型,大家可能在“3·15晚会”上看过,用软件建立3D模型绕过人脸时过分地活检。这是我们在中科院一个人工智能研究所,让他们拍的一个屏,他们也帮忙打印了3D硅胶面具,不是这个视频到这一步就完了。通过一个人静态图像输出一个人3D模型以后,还可以输出这个人2毫米,完全停留在另外一个人脸上。比如他两个头像框架、间距、脸形差不多的时候,贴在脸上以后可以绕过现有所有的人脸识别检测手段。最简单的检测手段,是一个人像另外一个人脸,如果有活检,嘴巴动一动,眼睛眨眨眼,直接就可以过掉,太多的人脸验证。所有非在线人脸活检直接就可以(通)过。静态的只是一个没有活检的,像微软的Safari,我自己用Safari,Safari的人脸识别确实很方便。但用这个大头贴往上面一照,它也直接解锁了。

去年,Face ID随着苹果iPhoneX引领了一系列的便捷登录热潮,但没过多久,越南一个安保公司(不是做网络安全的)就把一个打印过的面具放在固定位置上以后,用iPhoneX进行了成功的解锁。直接看到这个头像会感觉到是个木乃伊,这是通过AI识别人脸的逻辑过程,不像原来我给你拍一张照片,身份证照片拍完以后,这十年身份没有换的时候是静止不动的,你的五官再换,它基于一定维度还是可以直接识别掉,是这个身份证的主任。AI是,你每天用,它每天多少有差异的时候,自己会有个容错机制,他们的做法,我们进行了重现,打印一个面具以后放好,让真实的人经过Face ID苹果AI人工智能学习完以后,我再把这个面具贴上2毫米的创可贴,让它识别一下;明天再扩大这个白色贴的标签,让它继续识别,识别将近一个月,基本上这个人脸已经和原来的人脸完全不一样了。随着拉下来,遮糙的那一瞬间,iPhoneX的Face ID成功就识别掉,这个人和一个月前建立手机绑定的是同样一个人,因为它有个容错机制,因为这个人每天脸部都在变,但这个变又在AI可控范围内。这是现在AI领域在人脸认证方面最大的挑战。

我们和研究这一块的同行交流,大家都在憋着等苹果最新版发布,他们也要向全球秀一把,破掉苹果最新的Face ID。Face ID现在都说引入了结构光,二代更精确。但结构光随着这样的模式也在逐步地被对抗。这是在AI领域人脸识别,整体通过线下无立手段的对抗,这还没有涉及到不停地便利它静态的算法。现在有些机构也有越狱的漏洞,有些Android也在用人脸验证,直接可以概括掉它的算法以后,不停地通过自己的AI框架再去学习,这都是一种深度的对抗。

AI人脸对抗,最简单采用的原理,是之前发布的Cycle GAN运算框架模型,它出现的契机是,深度学习框架,他会把这张图片一定范围内认识成另一张图片,但这个图片扩展到人像或动物,甚至每秒24帧或者800帧,现在高频计算机能拍到上千帧,把这些抽取出来以后让AI学习训练,是不是就可以真正在视频领域里做到欺骗,这是算法产生的初衷。

这是我们自己基于这个算法模型搭的一个框架,对广告进行了非常简短的替换。中间是我们的员工,最边上是我们用AI实时抽取帧数再做的替换,左边是原始的原型人物,这能产生一个什么实验呢?上次我们和公安领域做取证交流时说,至少在视频领域不像以前保留的观念是,我可见就是的可信的,因为如果我完整替代这个视频,时间戳或时间剪辑做得非常完美的时候,法律上是不能作为证据的,这是AI对整个视频非常大的在取证领域的挑战。

搜视频有个特点,便捷性产生的同时不可避免的牺牲了安全性。就像指纹,要真正获取到一个人的指纹其实很容易的,淘宝上3元一套指纹膜就可以复制,自己搞一点静电粉,给对方递个杯子喝个茶,就可以快速把指纹采集下来进行复制。还有高清照相机镜头直接可以在非近场结构,5-20米聚焦区取景,就可以完全把一个人的指纹完全拍清晰以后,这边连着高清打印机直接打个指纹膜,贴在自己所有手指验证手段,又是活体,所有的检测根本没有办法验证这是替代的指纹,都有这样的风险存在。

攻击AI的方式有很多种,最有名的是Google的,Google现在的图片识别,黑猩猩已经不能作为查询词或者已经不再做识别,因为他们之前出过非常严重的(问题),把一位黑人识别成了黑猩猩,引起了非常大的事件,后来他们把这个完全屏蔽掉,这是后台把AI给污染了。攻击AI的方式,主要定义是,原始数据被污染,比方攻击它训练模型的数据集,测试环节以及对抗样本,对抗样本比方用创可贴或绷带对抗苹果的AI人脸识别。还有AI攻击的方式,很多第三方深度学习框架依赖第三方库挖掘出来各种各样的漏洞。

训练模型阶段,算法是固定的,数据样本对模型决策边界起到非常大的作用,训练数据如果本来就是错的,就像有一个论文里替代了斑马和正常的马屁,仅仅因为细微的差别,很多在讲AI时,有研究熊猫和污染糙点就出现识别的数据,稍微的糙点就对学习的结果做到不准确的时候,AI的平台就没有办法做到可适应。这只是简单做了图像处理,有意识地欺骗,大家肉眼可以看到,左右两个图是一样的,(图)左边熊猫的图片只是加了一些凿点,后面99.3%AI识别就直接出现错误。

凿点污染,前两天加拿大的学校也发表了一篇论文,基于这个论文也有一系列的报告,说这是真正的人脸识别领域,把左边的人脸加了一点凿点,再传到后台的时候,它就不再认识本人了。针对预训练的人脸制订图像,Faster R-CNN产生非常小的干扰就检测不出来。我们做批量人脸识别,比如去旅游景点以及刷脸进景区的,虽然有一些干扰,但完全认不得本人的头像。真正做防御对抗的时候,有些视频在国防过程中,做凿点干扰,其他的摄像机拍出去完全是虚化的,想做糙点,做盗版都做不出来,这都是一些应用的方向。

之前有人讲过对抗样本攻击,就是GAN网络,深层对抗网络攻击,一直怎么防,其实一直没有人说过。因为我们公司有两个博士一直关注全球AI领域的发展,英国牛津大学已经提出来增强网络压缩和对抗稳健性,已经可以过滤掉生成对抗样本攻击,后续如果有想了解的可以再做交流,因为这延展出来讲的话,要讲很长时间,国内之前也没有人讲过,只不过我们自己内部做了一些延展性的研究和防御。

深度学习框架攻击,漏洞攻击,深度学习应用和框架,框架依赖到第三方,包括其他模块组,整个一系列深度学习AI领域,这一系列的组成,对他们这些,之前新加坡南洋理工就自己根据Defcon 美国国防部CGC自动化发这个漏洞,再GateHub上有个开源AI,自动发漏洞的框架,在座如果有对于漏洞挖掘感兴趣的也可以参考一下那个项目,因为我们自己参考了这个项目,改进了一款针对二进制做的漏洞挖掘平台,都可以检测这些AI各种组件和二进制包漏洞。(图)这个图非常直接引用了TesorFlow库,这里有个函数的循环是存在漏洞的,构造这个例子的时候就可以safe pad不断地缩小,导致循环,无法终止,直接就拒绝服务。这是最简单的框架漏洞。类似这样的漏洞,如果有心去找,AI Fuzz框架基本上现有的,不管是开元的还是闭元的,因为它是基于二进制在做挖掘的,基本每天能找到百十个,如果想出名,做漏洞挖掘,每天找到百十个,随便跟踪调试,每个月产出几十个CVIS(音)是很轻松的事情,这就是需要攻防安全实验室或对漏洞安全有研究的可以做一下。

防止深度学习被攻击的思考。

不要什么事情都按照深度学习框架策略,你直接用统计学,我们自己也用了贝恩斯算法提前过滤,统计算法,一些标签化的数据事先做了个数据预处理,不要把它放在深度学习,第一减少利用资源,二是减少攻击的结构性,在低秩增强网络训练时,收集到对抗样本可以先放到训练集里,对样本做个对抗过滤,现在很多人讲的,针对大量的恶意样本,DNS恶意漏洞库就是用AI在做处理的,其实有些根本不需要用深度学习来做处理。针对框架以及学习平台,研究性角度还是基于功能云厂商的,Google、亚马逊以及国内阿里、百度等,他们都有自己推出深度学习框架,不用自己再搭;自己搭的话,最好就全部都用最新的版本,性能、很多功能都会有比较好的改进,当然,最新版本最好是稳定版本,自己有能力能做到renew(音)代码,比如有些代码原始已经被污染,能找到漏洞。

总体来讲,机器学习能越来越多地应用到安全领域。现在能叫得出来的,第一在风控,第二在大规模的网络DNS恶意网址欺骗检测,第三有的在做病毒样本的分析,还有做对抗模型预测训练,比如黑客攻击模型,已经有公司,像以色列有的创业公司用AI自动化地模拟攻防渗透人员对一个网络进行自动化检测。在网络攻防领域,刚刚我讲的这些,其实只是非常细小的一部分,用AI来对抗AI。我们相信AI很成熟,很完善的时候,需要研究怎么样欺骗它,对抗它的一些过程。总体来讲,网络安全领域永远有一句箴言,“只有永远的对抗,没有永久的安全”,有些安全只不过是建立在现有的认知没有突破漏洞节点。

我今天的演讲就到这里,如果有哪些在场的朋友需要提问的可以简单做一下交流。

Q:冯总,您刚才提到了噪音敏感的时候会产生漏洞,意思是找一个新的算法,它对运算不敏感一直追就行了,还是在实际应用中还要注意其他问题吗?

冯继强(风宁):实际应用中注意其他问题,不是算法对噪音不敏感,漏洞问题就解决了。这可以解决一部分现有的,能通过噪音污染的,但不可能说你的算法就一直感觉它很安全,没有新的噪音污染手段,最直接的还是你把自己可信样本在训练的时候预先做一下过滤,不要让样本首先受到污染,现在所有的人脸识别都是这样的情况。

Q:冯总,我刚才听到您提到美国国防部的CGC,请问您刚才提到基于二进制的自动化Fuzz测试工具是基于哪个部分做的?现在有几个比较知名的,请问您是基于什么基础来做的?

冯继强(风宁):这是我们同事私下课题的研究项目,回头我可以和你做一下分享,因为这不是我们公司的主业,只不过同事私下在工作之余做的一些事情。

Q:我问的问题可能和攻防关系不太大,我以前接触过AI分析语义,尤其是中文语义,当时给我们讲的那个教授说,中文语义分析还是比较初级的阶段,不知道这两年发展得怎么样?

冯继强(风宁):中文语义分析是这样的,原来的模式只是非常固定的,比如文字转语音,或者语音转文字,再后面是一个中文分词是个非常大的挑战,因为中文分词,比如3500个常用汉字,但它的组合在做自动化按照人的理解来做分析是非常大的挑战。现在中文语义分析,市面上宣传,国内做的比较好的也在我们公司隔壁,总部在苏州叫思必驰,他们说是要在语义领域挑战科大讯飞,在语义分析里是目前行业里做得最成功的,这两年他们发展还是蛮快的,如果有时间可以关注一下这个公司,包括他们的产品应用。

上一篇:潘柱廷:主持人

下一篇:宋凯(exp-sky):Chakra引擎的非JIT漏洞与利用