今年7月31日,网易云易盾在云创大会上首家推出了手游智能反外挂服务,服务覆盖99%的各类游戏外挂,主动防御能力国内最强——达95%。
犀利数字的背后是易盾在业界的众多首创,包括在国内率先推出了第三代U3D函数级加密、可热更U3D资源加密、防协议脱机功能、反地理位置模拟功能和反同步器功能等。某客户接入后,外挂作弊数减少了96.6%,客户投诉量降低了90%以上。
深挖卓有成效的产品,你会发现“主刀”产品的居然是一个学材料学的。一个研究材料组成、结构、工艺、性质和使用性能之间相互关系的人,是怎么走上安全这条路的?后来又是如何打怪升级,在安全这个圈子里站稳脚跟的?研发手游智能反外挂产品中,他都付出了哪些?又是如何修炼自己的安全能力的?
“知物由学”栏目近日探访了这位低调的技术人,希望能给大家带来一些启发和思考。
心之所向,素履以往
网易云易盾移动安全专家陈士留
陈士留,网易云易盾移动安全专家,手游智能反外挂服务的操刀“医生”。他致力于安全研究十多年,有六年多从事游戏保护研究,谙熟游戏的黑产生态和操作手法。回顾他过去过去的经历,你一定会好奇:本科、硕士都学的是材料学,第一份工作也是和材料相关的,究竟是什么让他进入了安全领域,成为手游反外挂领域的专家?
这一切可以用八个字来形容——心之所向,素履以往。“凡是心所向往的地方,即便穿着草鞋也要前往。”拿这句话的含义来概括陈士留精彩的“转身”是再恰当不过了。
高考时,由于对专业没什么概念,他错过了计算机。为了能够来到计算机领域,读本科的时候,陈士留就看了大量的计算机方面的书籍。研究生时候,他又把网络工程师的证书考到手,同时,他也把计算机相关的系统理论融会贯通。从事第一份工作的两年里,他一直在为来到安全领域准备着:别人的空闲都用来打游戏,追剧、潇洒,而他则把所有的时间都用来钻研技术,实践之前所学——而且往往一不小心,他就搞到了凌晨两三点。
之所以转身,并不是陈士留的专业学的不好。大学生涯,陈士留基本上每年都能拿到奖学金;科班领域的第一份工作,他也做得卓有成绩。那么没日没夜的痴迷计算机,是因为他真的对安全心有所属。
付出总有回报,而在陈士留身上,则是以一种讶异的形式体现。
他第一份工作是在江苏某家生产光盘的企业,他当时负责技术(材料)研发和采购。当时他们生产的光盘需要在最快的一个刻录机上刻录,他们生产的光盘虽然支持最高速刻录,但对应的设备却不支持它们品牌。“不支持不是说光盘质量不好,而是某品牌的刻录机锁了指定品牌光盘的型号。”陈士留解释,它会先通过光盘里的信息,判断是否为指定品牌,只有是指定品牌才能刻录。
陈士留把固件重新刷下,就能支持他们企业的光盘刻录了。大家这下惊呆了,他们都知道陈士留电脑技术比较强,但不知道他技术居然如此牛逼,破解都能搞!本来只是让他试一下,要是不行,就找外面专业的技术人员参与进来,想不到就这么被他破解了。
为能早日踏入安全行业,放弃华为Offer
陈士留早就知道,自己不属于材料学这个行业,因此他在第一份工作合同期满时,就全心谋划在安全行业的发展。这时,他也面临两个选择:第一个选择是上海的华为,第二个选择是杭州一家做反病毒网关的小公司。
2008年那会,华为虽然还不是世界500强的公司,也没有今天的宏大规模,但在当时的国内外依然算得上是一家颇具影响力的公司。一般人的正常选择,肯定都会想尽办法到这样的大公司历练或镀金,而陈士留在确定可以拿到华为Offer的前提下,却毅然决然地选择去了杭州的小公司。
如此抉择的原因是陈士留渴望早日踏入安全行业。他说,当时华为面试流程有点长,而杭州的这家公司电话沟通后,很快就确定录用他了。“我清晰记得,杭州入职的前两天,华为上海打电话过来说录用了,但我已经确定了,不想再等了。”
那非科班出生的陈士留,究竟是如何过五关斩六将,接连拿到两份Offer,尤其是其中一家公司还比较知名。
他说,安全圈里大都不是科班出身,甚至不少人都不是学计算机的。“行业内的人对出身并不Care,他们关注的是你在安全某个方向上是否有研究和典型的案例、成绩。”陈士留不是科班出身,但他大学、研究生以及第一份工作的“不务正业”让他有了入行的资本。
在杭州的安全公司,陈士留一开始做病毒分析,因为分析做得很不错,领导就让他做恶意网站拦截业务。再后来,由于其特征分析比较深入,通用性和适应性都很好,他做的特征拦截量基本能占到公司的百分之八九十,公司又直接把陈士留提拔为组长,专门负责恶意网址的拦截业务。
那时,反病毒市场上有不少大体量的安全厂商,比如说趋势等。而陈士留负责的业务,却在这些大厂商中硬生生杀出一条血路,脱颖而出,成为他们产品的一个亮点,领先大厂商。
这对小厂商来说这是不太容易实现的事,然而陈士留却做到了。
权限不对等,手游反外挂难做!
几年后,陈士留就来到了网易安全部,开始做端游(PC游戏)的反外挂,和团队一起,帮助公司打击大量端游外挂和非法工作室。
随着时间的推移,移动互联网大潮下越来越多的用户转战手机端,手游(手机端游戏)市场已经占有了游戏市场的大部分份额。因此,各路工作室、黑产都已经转战手游,只要人气比较旺的手游,都会有很多破解者盯者。
“如果一款没有专业保护的游戏上线,半天内就会出现针对性的外挂或破解版。”对于游戏生态环境,陈士留这么告诉“知物由学”栏目。在易盾总经理周森、移动安全部门总监支持下,陈士留决心帮中小游戏公司解决在手游外挂上的痛点。
然而现实是,手游的反外挂很难做。端游的游戏基本都会有管理员权限,跟外挂的权限是一样的,外挂能做的操作,游戏防护也可以做,属于对等的对抗。手机上的权限是不对等的,外挂可以有Root权限,游戏防护却没有这样的权限。“外挂能做的,比如跨进程操作、注入模块等操作,游戏保护是做不了的。”陈士留接着指出,手游保护的实现难度更大,在实现思路上跟端游有很大不同。
尽管充满艰难险阻,有太多不确定因素,陈士留依然选择逃离舒适区,挑起这个重担。为了让项目启动顺利,他一个人完成项目的框架搭建、加密保护策略等的大部分代码。打好开头炮,奠定基础后,他才逐渐把重心转向核心保护策略的制定、保护功能的拓展以及项目质量的把控上。
开发独有功能
开发出来,在网易内部广泛应用后,2018年7月底,经过千锤百炼和各种进化的手游智能反外挂服务,正式对外服务。
前后几批次的外部游戏客户接入后,对应的游戏客服投诉量立马降低了90%以上,有的游戏外挂作弊数减少了30倍。效果显著的背后是陈士留在手游智能反外挂上研发的业务独有的功能:第三代Unity3D函数级加密、可热更U3D资源加密等。
对于为什么要开发这些独有的功能,陈士留说:“在做Unity3D的脚本函数级加密之前,我们分析发现,市面上所有加密过的脚本,在加载的时候一次就完全解密,存在爆破点。即在某个代码点上做钩子,就可以把完整的解密后的脚本拿到。”基于这个背景,易盾因此研发了边运行边解密,运行到哪个函数才解密哪个函数的方案,“这样破解者就无法拿到完整解密后的脚本。”陈士留稍微有点得意地笑着说。
Unity3D的资源是除了脚本外,游戏的另外一个核心要素,包含了游戏场景,游戏脚本等内容。破解者如果拿到这些资源,可以实现资源修改类型的外挂;竞品拿到资源,也会对游戏本身不利……所以资源加密是件非常重要的事。“我们独特的资源加密方案对开发者透明,性能消耗非常小,不需要任何接入性的工作,只要使用加固工具输入游戏包,输出的游戏包就会把游戏内包含的资源全部作过加密,另外还支持对动态更新的资源进行加密。”
易盾手游智能反外挂服务对手游性能的影响非常小
效果好,稳定、性能消耗小、兼容性强、接入简单,这一切是怎么做到的?陈士留指出,这主要是他们做了很多功课,为了打造一个匠心级的产品,在项目立项之前做了很多市场调研和竞品分析。
经过充分周密的调研,他们发现,市场上的手游保护产品存在两种情况。一种是做应用保护转过来的,这种类型的厂商基本就是把游戏当成应用来保护,除了不具备对抗修改器、加速器等手游保护的核心功能外,还存在应用加固娘胎里带出的毛病——兼容性差,启动时间长,运行消耗大等固有缺陷。另外一种是专门针对游戏的保护,但是还在沿用做端游的思路做手游保护,接入和加固使用都非常麻烦,安全强度也比较一般。
“我们立项之初就决心解决这些行业的痛点,打造一个稳定、高效、安全、兼容性好、接入简单的手游保护产品。”
陈士留偶尔会在白板上写写画画,寻找一些灵感
因此,陈士留和他的团队在保护的架构上下了很多功夫,抛弃了传统游戏上做Dex加固的陈旧思路,完全从Native层着手去做保护。由于Native层不涉及到虚拟机,因此兼容性非常好,可以做到系统升级,保护不需要针对兼容做特殊处理,而且更重要的是运行效率也非常高。
由于这个方案实现的技术门槛很高,陈士留利用了自身积攒的多年技术储备,专门为手游做了定制的引擎So加固工具,很好地解决了兼容性和运行效率的问题。
卓有成效的背后:好奇、求知
随着项目进入“深水区”,他们不得不创新,去解决独有功能和安全强度背后的难题,这也就意味着需要自己摸索和分析,踩过一个个坑,花费大量心力,才能达到一定的预期。
其次,手游保护看上去是个开发项目,但是实际上是跟成千上万的破解者去做技术竞赛。做开发的同时,需要主动去了解和刺探最新的破解技术、手法,在速度和技术上跟破解者竞争。这也意味着“主刀”的人思维得开阔,不能闷头做,否则你做得再好,也不能适应市场的动态,无法防御最新的***。无形中,也要求负责人得具备破解技能,至少要达到资深破解者的水准,做到知己知彼才能做好保护。
非科班出身的陈士留是怎么做到这些的?随着深入的沟通,“知物游学”栏目发现,是他的好奇心和始终维持的学习心态,让他得已游刃有余。
学习心态,让他哪怕不是从事专业挖漏洞的,也会对Web安全、二进制安全、漏洞构造等领域有所涉猎。而好奇心,则让他有一次对某个亿级新闻APP的登录进行抓包分析时,发现居然可以重放实现登录,敏感地意识到这里面很可能存在登录漏洞,于是他挖掘到这个亿级APP客户端的任意密码登录漏洞,了解完毕后就报告给对方修复了。同样是好奇心,也让他无意中破解了某过亿级App商用核心算法。
除了沉淀经验和做到信息互通有无,陈士留维护着一个博客和社群,整理自己所思思考,分享自己心得的同时,也能够获得别人的反馈,让他再次获得提升。
也正是这些一段段经历,让他得以胜任各种挑战,同时也让他在二进制混淆保护方面有多个独创×××成果。现阶段比较流行的二进制混淆方法要么指令虚拟化稳定性不够,要么OLLVM性能开销太大,而手游保护需要稳定性和性能两者都要兼顾。为了满足需求,陈士留研究了多个源码层面的混淆方法,多个方法互相配合,在保证稳定性和开销的同时,做到比OLLVM更好的混淆效果。“手游保护上线至今,暂时还没有加密算法被破解的案例。”陈士留指出。
结束语
“手游防护如下水道工程,展现出来的只是表面功能点。对于安全强度,各种复杂条件下的兼容性问题,用户短时间内感知不到。但这才是长久使用中影响游戏平衡、玩家口碑以及对抗外挂与破解的关键点。”这是采访中,陈士留随口说的一句话。
工作中的陈士留
用户或许不知道产品背后的打磨和匠心,但他们却懂得用脚去投票,用实际行动去支持。今天,陈士留研发的手游智能反外挂服务续费率非常高,还有很多客户通过口碑传播介绍而来……
对于未来,求真务实、脚踏实地陈士留说,反外挂实际上是一场永无止境的战争。未来,他还将结合人工智能,带领团队不断优化手游智能反外挂,对游戏场景和游戏类型进行细化,保护合法玩家的游戏生态,保护好中小公司的利益。
原文地址:http://blog.51cto.com/13610827/2316553