安全AI让黑产成本增加

当我们跟黑客对抗的时候,我们想到了一个有趣的思路:既然用神经网络来识别我们的字符,那我们就制造出更多的字符库,使用更多的字符库跟你进行对抗。但很不幸,我们发现机器的算力和人力创造字符的算力完全是不成比例的,而且因为他是可牟利的,所以他只要有百分之三四十的盈利空间就可以做,他不需要做到非常高的标准。但你作为防御方,如果你做不到95%、99%的防御标准,你的防御可以说就是失败的,所以这是非常不对称的一个战场,但并不意味着我们并没有机会。因为我们发现就像传统安全一样,很多黑客的技术和手段稍加改善,其实对于防御非常有帮助。

比如像生成对抗网络的手段,也可以很好地来生成字库和字体,这个对于拖缓他们的攻击效率是非常有帮助的。但也不是完全有效,对AI攻防对抗有更深层次的理解后,我们发现由于技术发展的水平的不均衡,和黑客在如图片识别等有成熟算法和成熟体系的领域去对抗,非常吃亏。所以我们引入了更多的想法。我认为攻防成功的关键,第一个是数据,这个数据决定了天花板的高低。第二个是算法,算法决定了你有多大程度上去接近这个天花板。所以对腾讯来说,我们数据积累非常多,而且非常注重数据的积累,只要把用于此处的安全数据做好,可以做出非常高的天花板。

如果我们在算法上将数据和业务的行为数据进行关联,可以很大程度上接近于天花板。这是我们做的一个模型,我们把多个用户行为和黑客行为进行了关联,然后把这种行为数据和图像上的对抗数据结合,做成一个完整的链去考虑,用一个完整的时间窗去识别。而不仅仅是在图像领域对抗,可以发现正常用户和黑客、黑产是有显著性的行为差异。一旦建好这个模型,是可以真正抵御它的。当然,这些也非常需要你在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安全刚刚起步,这意味着我们有无限美好未来的可能,所以希望能有更多的机会跟大家交流,我们一起去探索美好的未来,谢谢大家。

更多相关内容详见:用AI怼黑产是一种怎样的体验?(上)

文章来源于腾讯云开发者社区,点击查看原文