2014年05月21日

几维安全:千锤百炼锻造移动游戏安全防护黄金铠甲

  在近期发布的《2018年上半年中国移动互联网行业发展分析报告》中提出,在上半年中国移动互联网关键字TOPl是“安全”,安全已成为中国移动互联网企业存亡生命线。作为平台,首先要输出内容的安全,其次要用户的人身财产安全及数据安全。安全,为立“身”之本。

  据相关数据显示,截止到2018年3季度,全球移动互联网用户已超过30亿,欧美、东亚等区域渗透率近80%。从3季度基于移动互联网应用月新增占比分布数据看,游戏行业占比位居第二,且主流手机游戏应用MAU同比增长趋势明显。

  但是,随着硬件与开发技术的成熟相继发展成型,游戏行业安全问题也随之出现,外挂工具、系统功能漏洞、服务器宕机漏洞等问题频发,也将大幅影响游戏内平衡,使用户体验下降。可以说,无论是移动应用还是游戏,发生安全问题就如同打开“潘多拉魔盒”,不但可能危害用户切身利益,也同样会造成企业的损失。与此同时还会发生企业信誉危机,品牌口碑大幅下滑等一系列问题。

  针对游戏行业的帐号类,月均在数亿次/月,且持续平稳,具有长期持续性的特征。

  在针对帐号的中,大部分的帐号扫描其实也是为了撞库做准备,少部分是基于历史密码的登录尝试。因此,在帐号安全侧,撞库相关实际占据了80%以上的份额。

  从2018年情况统计中,游戏行业仍为DDoS 主要目标,其中移动 Web 游戏被数量明显增加。从被游戏分类看,端游与手游依然占比最大。

  移动游戏安全问题逐渐泛滥已经引起了监管部门的关注,监管部门已明显放慢了版号审批速度,实施网络游戏总量调控,同时也采取了一系列相应措施:

  2017年12月,中央宣传部、中央网信办、工业和信息化部、教育部、、文化部、国家工商总局、国家新闻出版联合印发《关于严格规范网络游戏市场管理的意见》(以下简称《意见》),部署对网络游戏违法违规行为和不良内容进行集中整治。《意见》中明确提出:“网络游戏系统安全、用户信息安全问题较为突出,个人信息泄露、账号非法交易现象较为普遍。同时,管理体制机制与市场发展还不完全匹配,相关法律法规还不够健全,方式手段还不够完善,纠错不足以形成。”

  2018年2月5日下午,浦东网安支队召开浦东地区游戏行业网络安全工作会,会议就目前网业发展所导致的文化内容缺失等突出问题为背景,向浦东地区的114家网络游戏企业下发《网络游戏企业基础排摸调研表》,并开展法律法规教育,要求各单位核实并本单位的信息安全问题。

  与此同时,全国很多监管部门也在加紧行动,全面排查,加紧规范整治。在2018年12月21日举行的中国游戏产业年会上,出版局有关人士表示:“首批送审游戏已经完成审核,正在抓紧核发版号”,说明暂停已久的移动游戏审批重新启动,移动游戏行业又将迎来新的春天。而未来,移动游戏的健康发展更需要安全系统的有力。

  这类游戏所有的数据基本都在本地,面临的分析主要有内购破解,二次打包,游戏修改器等。因为数据基本都在本地,者可以修改本地数据达到一些非法的目的,比如:修改生命值,增加,修改值等。

  还有一些抄袭者将游戏彻底分析,或者重新二次代码,只修改游戏里面的原有包名,和游戏人物角色ui和名称,可以快速开发一款同类产品,减少开发周期。还有就是直接,修改支付链接,转换为自己的,并将付费额度修改为比正版更低的价格。

  这类游戏主要的数据是和服务器进行交互,有些战斗数据计算可能在本地或者是服务器,应对本地计算的,放到服务器计算,这样安全性更高。主要的有:外挂,私服,第三方抄袭等。

  外挂:可以通过分析游戏的核心数据,分析游戏的内部代码达到一些非法操作,比如脱机挂可以自动注册游戏,进行游戏通关操作、刷金币、刷等级等;还有通过外挂可以加速游戏运行,缩短游戏打斗。

  私服:这种情况是通过破解游戏和服务器的通信协议自建服务器,将游戏网络地址给为自建服务器地址。

  第三方抄袭:破解游戏后,分析游戏的数值数据、配置等一系列的数据信息。若为网络数据则通过抓包等手段进行分析,开发者只需要修改ui等手段即可以快速出一款同类游戏,减少了策划等工作。

  通过破解方式,绕过/破解支付校验代码,支付框架、sdk破解,造成收入严重受损。

  通过内存注入、动态调试、内存dump等操意游戏内容,造成游戏平衡性下降。

  游戏代码、更换游戏logo、皮肤、包名,后的游戏,造成扣费、流量损耗、弹广告等等,造成公司名义受损。

  游戏修改器对几乎所有的游戏都会造成严重,修改游戏属性值,严重游戏平衡,付费环节变得没有任何作用,收入变低,用户兴趣低,用户量损失。

  通过破解方式,获取游戏核心代码,对公司自主产权造成严重损害,游戏数据信息丢失、玩家个人信息数据泄露。

  对dex文件进行native指令化,并且以native方式还原到内存中,即使使用dump手段dump出当前部分代码,也是经过native处理过的代码,不会还原成APP源代码。

  防注入,能防止APP运行时通过注入的方式获取APP隐私数据、使用hook等方式劫持APP的正常运行流程等。当加固后的APP检测到注入时,APP会自动退出运行。

  反调试机制能够调试工具的附加操作,调试器对移动应用调试分析其业务逻辑代码,一旦被加固的程序检测到有如gdb等调试操作将自动退出运行。

  防内存dump,能有效gdb dump等操作,同时因为代码采用函数体分离方式和native化,代码都是以单个函数还原到内存中,而内存中的代码也是经过native处理,及时dump出当前代码片段,也是经过native方式处理后的代码,不会还原成源代码。

  对SO文件做加密和自定义加载处理,除此之外还会对SO文件中字符串加密和代码混淆处理,层层防止者提取SO文件和对其二进制代码做反编译和反汇编处理。

  对Objective-C、C、C++编译后的Native代码进行代码混淆处理,被混淆过后的代码中存在多余代码、怪癖语法、冗余逻辑判断,冗余函数调用等难以阅读和理解的代码,结合字符串加密和反调试机制等功能,让者无法反编译,从而有效的源代码安全。

  采用基于LLVM编译器中间层实现的虚拟化编译器,可通过虚拟CPU解释器以及虚拟IR指令,将原始CPU指令进行加密转换处理为只能由虚拟解释器解释执行的虚拟指令,能够完全隐藏函数代码逻辑,以及函数及变量之间的依赖关系。

  iOS安全,为了防止在Android端无法分析出协议,但是可以通过iOS端分析的情况发生,iOS端也做安全加密操作,iOS端源码混淆功能与so文件源码混淆功能相同,字符串加密、代码结构逻辑混淆、指令替换、控制流平坦化,虚假控制流等。

  几维安全作为全球首家实现移动端虚拟化技术的厂商,通过长期研究开发,形成了专有技术KiwiVM虚拟化方案,实现CPU指令虚拟化,对手游的核心代码进行安全编译、生成受的安全模块,从而避免因破解造成的安全风险。

  (1)手游基于Unity3d引擎开发,核心DLL文件存在被逆向破解的风险;

  KiwiVM是基于Clang编译器扩展实现的VM虚拟机编译器, 在编译时直接对指定的函数[代码]实施虚拟化处理。其加密过程不可逆,者无法还原代码,分析核心业务逻辑。可帮助中大型企业在通信、支付、算法、核心技术等模块进行深度加密,避免因逆向破解问题造成的经济损失。

  Unity3D手游加固服务是在APP安全加固的基础之上,针对Unity3D手游,扩展了函数级[或整体级]的DLL文件加密功能,避免DLL文件被Reflector 等破解工具提取C#源代码。与DEX加密、防二次打包、内存、反调试、防系统加速挂等功能配合形成一套完整的Unity3D手游加密方案。

  登录移动安全管理平台即可使用。DLL函数级加密为企业版,其算法有几十种可供选择,同时对这些加密算法都有高强度的加密,者无法通过Dump内存数据来窃取C#源代码。