导读:2017年8月31日,由腾讯安全科恩实验室主办的“2017腾讯安全国际技术峰会(TenSec 2017)”落下帷幕,本次峰会聚焦安全行业前沿技术,覆盖时下最热的安全议题。在为期两天的议程中,来自腾讯、微软、谷歌等国际工业界和学术界顶级的研究员共带来15个安全议题,现场干货满满,堪称一场技术研究人员的盛会。
本篇文章正是选择了AI的这个热点,全文刊登了腾讯安全平台部总经理coolc关于“AI技术在信息安全领域的应用”的现场演讲发言。
本篇文章共7933字 读完大约需11分钟
首先跟大家做一下自我介绍,我在安全行业已经工作十几年了,可以说在安全攻防这个领域,我是一个老兵,但是在AI安全相关的内容上,我觉得我还是一个新人。其实大家担忧AI会抢去我们工作,这件事情发生或没有发生,或者在某些领域正在发生。
作为安全行业来说,我们确实也感受到AI给我们带来一些实实在在的好处,比如说我们传统的安全领域最常用的,如用密码来鉴别用户身份这个领域。随着AI技术的到来,其实我们在慢慢让生物识别变成可能,比如人脸的识别,我们这里就使用了很多AI中图像识别的技术,让这些功能成为可能。
同时,当我们把机器学习的方法用于恶意代码的识别,其实也极大地提升了对恶意代码的对抗和识别能力,我觉得这都是一些积极的变化。但在安全这个领域,我们确实也在学术界发现了很多问题。人工智能应用最广泛的应该是三个领域,第一个是图像识别领域,第二个是语音识别领域,保证自然语音识别,第三个是包括机器学习的通用技术的使用。
在图像识别领域,生成对抗网络这块,已经有很多学术界的专家或者学术界的人,他们已经做出一些样例。比如说下面这幅图,这是交通标志的一个图,实际上通过加一些特定的噪点,可以让对方对交通标志的识别出现错乱,进行错误的识别。
而下面这幅图就是在人脸识别领域,这是一个大学的研究团队,他们制造了一个比较特殊的研究,当你带这个特殊眼镜的时候,会引导机器做出错误判断,把自然人A识别成自然人B,这都是学术界已经开始发现并且指出的一些问题,并且在特定的实验环境上得到了验证。
实际上这些学术上的尝试,我觉得都是很积极的,而且他们确实也告诉我们,在我们大量地使用这种机器学习、算法和AI识别算法的时候,其实我们还是有很多隐患和安全问题是有待解决的,这些隐患是真实存在的。
所以我觉得这些东西,我们大概是在差不多一年多、两年前也关注到了这些变化,实际上当我们看到各个知识社区,包括安全社区,大家谈到越来越多的人工智能问题,机器学习问题的时候,我们也意识到几个问题:
第一,在实践中更多地去尝试和探讨AI技术作为实际工作中的一个技术的使用可能。
第二,随着越来越多的业务使用,这种AI技术、机器学习技术,包括我们也在尝试着使用这种机器学习技术,是否黑客也在尝试使用这种技术。
第三,当我们和业务去使用这种技术用于业务和安全建设的时候,当我们不恰当地使用,或者使用的算法存在某种缺陷,会导致黑客或黑产利用缺陷达成一种攻击,或者取得更高的获利或效果?这是我们的思考,所以在这一年多、两年的时间进行了一些实践,下面我跟大家分享的就是我们一些实践的经验。
首先我讲的是在业务安全领域的人机识别场景的黑产对抗和应用的情况。腾讯作为中国最大的社交网络,一天大概会受到针对帐号的45亿次攻击尝试。尝试成功一个账号,会给他0.008元人民币,换算下来,一天3600万元人民币(大概数字)。正是这样一笔获利丰厚的生意,很多技术非常优秀的人投身黑产。而正是因为社交网络背后的价值非常巨大,包括用户的数据、隐私,包括背后所衍生的,比如说电子商务、虚拟财产安全等等,而且这些东西会变成十倍、百倍的利益。正因为有如此大的利益驱动,让从事黑产的人非常有动力投入和进行技术的探索。
大家经常会听到黑产,黑产到底是什么样?我很难用具体的词汇描述,但跟传统意义的黑客、极客不一样,这种黑产更多是以金钱为目的,而并不是以技术精神达到极致为目的。
上面所说的黑产有几大特点。第一,具备工具化,是以规模化、批量化生产为依托,实际上更像一个小型的工厂或工业体系。而且大家可以看到,这里面有很多配套的硬件设施和设备去支持它。
大家可以看到,右侧插着很多卡的图,这个在国内我们叫做猫池,实际上是一个一个猫,上面插了大量电话卡,可以实现电话卡的拨号,实际上很多体系是基于电话卡来进行自然人识别,但实际上在黑产下完全无效,因为他们有专业的设备和大量的电话卡去使用,完全可以突破这种体系。
再往下大家可以看到,就是像墙一样放满各种各样手机的设备,实际上在对抗很多自动机的场景下,很多人会觉得,如果我有一些模拟软件的识别,我加上一些协议识别是可以对抗的。现在已经进行到可以构建这样一个墙,装满真实的手机,在上面进行自动化模拟,这里的对抗实际上非常剧烈,而且大家也可以通过这个,这实际是我们抓到的一个黑产团伙,大家可以通过这个团伙看到,对方的武器装备也是非常先进的,对方不仅仅是像我们想象那样,仅仅有大刀、长矛,实际上人家也是有坦克、飞机、大炮的。
这是我们最终起获的,前面是硬件装备,这是软环境,或者说可以是研发环境的简单陈述。他本身的架构设计还是非常有条理性的,并且有蛮豪华的硬件设施,而且他搭建了一个用人工智能去识别验证码的平台,可以批量化地去攻破这种账号登录体系。当他批量化地登录账号体系时,每攻破一个就可以达到0.008人民币,拿到这笔钱,如果用机器跑一天可以跑多少?一天可以跑上千万次,这是一个非常丰厚的收入回报。
同时,他搭建的这套人工智能体系是基于神经网络的,我们当时查获以后去测试了一下,对市面上几乎所有的验证码识别率很高,也就是对市面上的所有的识别完全失效,这个团伙实现了工业化的进步,用人工智能达到了他这个行业的垄断和霸主地位。我们当时去预估了一下,这个打码平台占到黑产在这个行业攻破自动机80%的市场份额,可以说是完全垄断了这个行业。
像这种人工智能打码,他跟以前的OCR有什么区别?OCR也有很多是可以做到比较高的识别率,我这里给大家一个很有意思的例子来让大家感受一下,不仅仅是简单的图像识别问题,确实包含一些深层次的智能对抗问题。因为验证码往往是分层的,在这种情况下已经是被识别成比较可能是坏人的情况下,所以这个验证码是比较难于识辨的,或者人类看起来有点费劲,人类肉眼已经比较难识别出这一串字母了。这已经是我们识别高概率,但实际上他的机器还是可以识别到95%。那怎么办?我们当时使用了一些小技巧,大家可以看到上面的小字是中文,请你按顺序输入第5位、第2位和第3位,目的是为了避免他用人工智能图像识别的技术,把这些字母输入识别出来以后,按顺序直接输出,于是我们调整了一些语义,让他按次序进入,这样我们就可以大家对抗图像识别的能力来进行对抗。
我们用了这个小技巧以后,作为对方使用了神经网络的对抗体系跟我们对抗的时候,他们用了大概是一天半的时间攻破。一天的时间我们观测了一下,从我们自己构建一个蓝军平台看,一天可以做到百分之四五十,就很快了。黑产我们观测了一下,大概在一天半左右,对于这种比较简单语义的,他打开是一天半的时间就可以做到80%、90%,所以神经网络对于比较简单的逻辑,比较相对固定的答案,或者逻辑不是很复杂的这种情况下,他的变种能力、对抗能力是非常强的,不仅仅是一个图像领域的对抗问题,他就是智力领域的对抗问题。
这也给我们一个深深的启示,实际上我们传统用于黑客攻防对抗的,不管是攻方还是防御方,你的策略对抗这个领域其实慢慢在分级,也许一些弱的逻辑,一些简单的策略,慢慢机器会越来越有优势,而人类的优势已经不在,人类也许需要 ,才能我们能固守的领域,从现有来看,这就是一个现实的例证。
前面大家看到的机架上的,那套我认为非常奢华的服务器,就是我们起获的。这个所谓的“企业”其实只有80个人,他们一天就可以挣到30万。这80个人里,其实有相当一部分人的收入非常低,因为他们是客服。这80人的核心团队里,只有两到三名是最核心的研发和搭建体系的人,这些人是真正的大头。一旦这种技术被扩散和广泛使用,在人机对抗领域,我们面临的挑战是非常大的。
大概是一两年前,我们发现并开始应对、处置了这种问题,在今年各种场合下的安全会议上,包括工业的会议上,大家对人工智能的话题谈的越来越多。黑产学习研究并且付诸于实施和使用的时间已经是在将近三年前了。对手的能力和速度,对技术的执着和进取心,我觉得对我是一个很大的鞭策。
我们受这件事的启发,开始反思,在传统领域跟他进行对抗的同时,尝试引入了一些AI的技术。
下面的这个例子,我们依然是打出验证码,我们根据各种各样的策略信息判断出他使用的是一套AI平台,但AI也会犯错,所以我们也在研究AI在图形、图片领域的缺陷和问题。比如像之前的CSS大会他们提到的,可以进行错误的引导和训练。我们尝试把这种技术用在验证码领域,我们发现在这种技术使用的时候,其实我们可以引导机器去做出错误的识别和判断。比如说验证码hsql,实际上我们引导机器做出了错误的识别,把s识别成b。这种技术提升了用户的体验,但没有增加用户识别的的难度。
我们有什么办法让AI不再进行那么高效的识别?我们想到把这套技术加进了中间,并且把我们AI在尝试识别的验证码里加入了一些代码进行混淆识别,我们发现如果进行适当的算法调整,可以引导AI的错误识别率提升33.5%,所以我认为这里面有一个非常大的研究潜力。因为当AI技术和机器学习技术进入了攻击这个领域,这个趋势是不可阻挡的,如果你想做好防御和对抗工作,那在这个领域,你保持学习进取和创新探索,就非常必要。
而实际工业上的实践结果证明,经过不长一段时间的探索,这里提升和完善的空间还是很大的。请大家注意,刚才我们看到的验证码实际上尺寸是非常小的,如果我们相对来说有一个比较大的人机对抗的界面和场景,这里的改善空间、完善空间和优化空间会更大。因为比较小的验证码做图像对抗的战场也过小,所以你优化和对抗的空间也会很小。
当我们跟黑客对抗的时候,我们想到了一个有趣的思路:既然用神经网络来识别我们的字符,那我们就制造出更多的字符库,使用更多的字符库跟你进行对抗。但很不幸,我们发现机器的算力和人力创造字符的算力完全是不成比例的,而且因为他是可牟利的,所以他只要有百分之三四十的盈利空间就可以做,他不需要做到非常高的标准。但你作为防御方,如果你做不到95%、99%的防御标准,你的防御可以说就是失败的,所以这是非常不对称的一个战场,但并不意味着我们并没有机会。因为我们发现就像传统安全一样,很多黑客的技术和手段稍加改善,其实对于防御非常有帮助。
比如像生成对抗网络的手段,也可以很好地来生成字库和字体,这个对于拖缓他们的攻击效率是非常有帮助的。但也不是完全有效,对AI攻防对抗有更深层次的理解后,我们发现由于技术发展的水平的不均衡,和黑客在如图片识别等有成熟算法和成熟体系的领域去对抗,非常吃亏。所以我们引入了更多的想法。我认为攻防成功的关键,第一个是数据,这个数据决定了天花板的高低。第二个是算法,算法决定了你有多大程度上去接近这个天花板。所以对腾讯来说,我们数据积累非常多,而且非常注重数据的积累,只要把用于此处的安全数据做好,可以做出非常高的天花板。
如果我们在算法上将数据和业务的行为数据进行关联,可以很大程度上接近于天花板。这是我们做的一个模型,我们把多个用户行为和黑客行为进行了关联,然后把这种行为数据和图像上的对抗数据结合,做成一个完整的链去考虑,用一个完整的时间窗去识别。而不仅仅是在图像领域对抗,可以发现正常用户和黑客、黑产是有显著性的行为差异。一旦建好这个模型,是可以真正抵御它的。当然,这些也非常需要你在AI的算法和数据上的理解和建设工作。
所以总结一下,在业务安全上,我们这一两年来的体会,其实在AI攻防这个领域,我们觉得实际上并没有一个一招致敌的方法论,更多的是持续运营的过程,这个持续运营的过程有两个关键因素,第一,在数据的积累和剖析上,选择什么样的数据,积累什么样的数据,以及你积累的长时间的有效性和效率,这是非常关键的事。其次,你要对于数据的理解,也就是说对于业务的理解,不仅仅是基于安全层面,你也要理解本身的业务,这样对于数据的挖掘能力比较强,你就能设计出一个更高效的算法用于线上的对抗,所以这两个关键点是你决胜的关键。也就是说我们最后总结下来,就是一个持续运营和对抗的过程。
第二个领域是传统的安全领域,第一个风控领域实际上是非常好写好做,而且效果非常突出。说一个没跟大家分享过的案例,在登录领域,除了自动机识别,还有其他一些恶意行为。比如说电子商务登录上的恶意行为,包括一些刷单、刷粉的行为,非常普遍。我们通过引入人工智能,大概在3个月的时间,识别率同比提高了百分之二三十。并且机器学习的技术,让我们发现并提取了很多之前没有发现的关键因子。这些关键因子的引入,让我们极大地提升了识别率。但在传统安全领域去构建攻防的技术体系非常困难,挑战也非常多。
这是我们现在的传统安全领域,也就是黑客攻防这个领域的现状,我的理解是可以用两个词来概括它,第一个叫做快,第二个词叫做专。越来越多的黑客攻防攻击,是以数据的获取为目的,以专业团体非常隐蔽的渗透为目的,而且他们所有的行为非常具有自我保护意识。这样的趋势,从外部环境来看,苹果、谷歌、腾讯这些世界上最大的公司,他们的数据是高价值的,当黑客进行攻击的时候,是可以很容易进行变现和获取利益的,所以黑客更有动机去获取这些数据。而获取这些高数据行为,很容易被抓获受到惩处,所以他们需要保护自己。外部的打击和趋势会逼着他们越来越快和专业,并且学会了隐藏。适者生存,生下来的这些专业的团体越来越善于使用零备和未公开的技巧,所以也越来越被难以发现。所以我们这个行业出现了一个趋势,黑客的行为越来越非显性化。
下图是一个现网数据,大家可以看到最高的尖刺是图表的零点,达到了三四千次一秒。从这个漏洞在社区公布出来到尖刺,半个小时我们就达到了最高峰。半个小时以后反而下降了,然后再出现几次高峰。
所以当一个漏洞公布出来,给你的反应时间大概就是半个小时。而对方攻击的所有对象都是我们的资产服务器,有相当一部分人已经把核心资产服务器纳入攻击列表,他们缺的只是一个未公开的技巧或很新鲜的漏洞,会在半个小时内完成漏洞进行马上使用,这就是我们面临的现实。
因为这个越来越隐性化,所以也是为了应对这种风险慢慢对AI进行探索。比如说DDoS攻击,我们现在发现也是越来越多的攻击去给我们发包,越来越多地去模拟这种游戏。我们在这里越来越多地模拟业务协议,实际上导致我们越来越难以去识别这里攻击的行为。我们引入了AI,发现他给我们带来一个很好的帮助。我们可以做到“千人千面”。我们发现人工智能是可以学习的,既然他可以学习,那我们就让他学习各种各样的业务。当他学习各种各样的业务以后,就可以做到不管你是什么样的攻击,不管是什么样的模拟,但因为你跟他长得不太像,所以我们就可以把你识别出来,而并不是根据黑客上识别对方,而是根据我们拥有的巨量数据,用一个比较长的时间线,让我们的机器、安全系统去正确认知一个业务,然后在这个基础上做识别。
这是在渗透方面的一个案例,也是想向大家展示一下这里的挑战性,这是我们抓到的两个真实的专业团体对我们进行渗透的木马,大家可以看到这两个木马其实代表了两代人,或者说两代技术。大家可以看到右侧的木马代表的是比较原始的技术,他实际上是一个网页木马,里面有一个很明显的特征,黑客的后门特征非常显性,我下面画的这些红框的部分都是显性特征,用传统的做法这种木马非常好识别。大家看一下我们从今年以来抓到的大多数木马都是像左侧的木马,并没有非常显性的特征,所以如果你用传统的特征、阈值、方法,对这种东西的识别是非常困难的,非常容易跟正常的文件混淆,并且有一个巨大的问题是,虽然云计算和这种互联网企业规模的扩大,当你去管一个巨量、海量的业务时,你真正面临的误报是不可承受的,这是这里最大的一个挑战,就是黑客的非显性化,越来越不容易跟正常业务区分,而本身的业务规模和体量又不断增大,这是一个矛盾体,对你传统的安全架构和安全思路提出了巨大的挑战。
这是我们最佳实践的一个尝试,严格意义上这是一个实验,并不是一个最佳实验,我相信这里未来的路还很长。我们这里做的实验是这样,一个是算法优化,我们发现用了两套机器学习的算法,一套是68.75%,另外一套是92.19%,我们发现都不能在实际应用中,满足我们95%以上识别率的要求,这个是指webshell的识别,我们这里想到一个方法,根据人的特征引用变量,并把A和B两套算法的结合,随着新特征的引入和算法的引入,进行权重和模型的重新搭建以后,可以达到96.88%,所以我觉得算法的优化,其实选择什么样的算法和特征是这里面的关键。其次,如何选择算法也是在实际工业领域中很重要的思考点。大家可以看到,我这里的这两幅图,大家可以看到,如果用前面的思路,我们去长时间学习业务,其实我们是可以做到有一个很好的帮助。大家可以看到右边这幅图,有几个白点在模型之外,在常见的领域我们可以看到防御方最痛苦的是什么?有一个巨大的难点,你要不断地加白名单,因为正常的业务和操作员的行为是异常的,但又是正常用户的行为,如果你对这种行为,现在的传统方法只能不断地加白名单,而到一定程度是有问题的。如果用机器学习的方法,实际上可以很好地去学习,虽然是一个异常点,但依然可以识别出这是一个好人,并且对坏点进行标注,所以这是在机器学习领域和数据保护领域非常大的帮助,可以帮助我们极大地释放人力,解决传统领域的一些白名单的运用以及自然人的定性、定位问题。
在实际工作中这种方法论并不是完美的,也面临一个挑战,深度学习在实际工作领域,我们发现效果非常好,但是在线上的时候效率问题会非常大,尤其对于腾讯这样一个体量的公司,或者对于Facebook或谷歌这样的公司,运算挑战在某些场景几乎不可接受。怎么解决?我们也想了一些有意思的想法,就是我们用深度学习来思考,用浅度学习来检测,我们用深度学习模型来发觉黑客攻防领域,或者前面提到的业务安全领域的一些本质问题,一些我们没有发现的特征问题,我们用它来提取。但构建线上实时打击模型的时候,我们引用浅度模型,这样在效率、精准度和透析事物的本质之间取得平衡,我们觉得这是一个很好的收获,在工业实践中可能会对大家有参考价值的东西。
最后我进入一个尾声,再次跟大家总结一下,经过我们这段时间的实践有三个经验跟大家分享。第一,人工智能想跟安全结合,或者我们想更多地把安全领域进入下一个时代,我觉得最主要的三件事是需要我们思考的。第一,数据,我们需要有海量的数据,需要有一个真实的战场,在这个真实的战场截取海量的数据,去训练我们的AI,因为这决定了AI到底能走多远,天花板有多高。第二个事情是算法,不仅仅要对人工智能的算法有理解,更重要的是要对业务有理解,这样的话在构建算法的时候,可以更有针对性,能发掘出更多的变量,这样在识别的时候有更高精度。第三,耐心,因为这毕竟是一个长期对抗的过程。
作为AI来说,或者AI安全来说,我觉得我们不妨这样想,如果我们现在看27年前的互联网,在刚刚发明的时候,我们会告诉他们你这不是真正的互联网,我觉得对于AI安全来说也是一样,这条路还非常长,AI或AI安全刚刚起步,这意味着我们有无限美好未来的可能,所以希望能有更多的机会跟大家交流,我们一起去探索美好的未来,谢谢大家。
转自: https://www.qcloud.com/community/article/455247