千锤百炼,锻造移动游戏安全防护黄金铠甲 – 作者:jiweianquan

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

在过去二十多年中,伴随着移动互联网的发展,游戏行业经历很大的变化——不仅仅是从技术上的革新,游戏的实现能力更是有了飞跃的发展,但是在移动游戏逐渐成为大众休闲娱乐的主流方式的背后,其安全正受到网络黑产的巨大威胁。

移动游戏发展迅猛,安全问题如影随形  

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

移动游戏安全1.png

移动游戏安全2.png

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

在腾讯安全云鼎实验室于近日发布《2018年游戏行业安全监测报告及五大攻击趋势》的数据显示,目前游戏行业安全威胁主要包括账号类攻击、DDoS攻击、外挂和其他四大类。

1. 帐号类攻击

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

(1)攻击类型分布

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

移动游戏安全3.png

2. DDoS 攻击 

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

移动游戏安全4.png

3. 外挂

2018年主要外挂集中在手游的吃鸡类游戏上,其中外挂热度排名前四的吃鸡类手游占据了超过60%的关注度,加上 PC 端的射击类游戏,射击类外挂已然占据了70%以上。

移动游戏安全5.png

4. 其他 

其他攻击还包括主要集中在 App Store 平台的代充值类问题,比如:外币汇率差、黑卡和盗刷信用卡等。

移动游戏行业发展,需与游戏安全比翼齐飞 

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

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

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

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

移动游戏主要安全攻击分析

移动游戏可分为单机游戏和网络游戏两大类,基于不同类别游戏特点进行分析:

1.单机游戏

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

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

2.网络游戏

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

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

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

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

造成安全问题的技术实现分析:

1.内购破解:

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

2.修改内存

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

3.二次打包

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

4.游戏修改器

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

5.核心技术、数据信息丢失

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

移动游戏安全解决方案解析 

1.Java代码vmp加密

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

2.动态调试保护

(1)防动态注入

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

(2)防动态调试

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

(3)防内存dump

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

3.防二次打包

对签名做完整性校验保护,一旦更改签名文件,程序将不会再次运行。

4.So源码混淆

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

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

5.代码虚拟化保护

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

6.其他安全建议

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

实例解构 

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

以几维安全为某移动游戏企业提供的安全加固案例为例进行解构:

1、基于公司现状进行安全风险分析,梳理出该公司的安全加固需求:

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

    (2)不具备正版校验机制,伪冒、盗版手游影响正版手游的正常运营;

    (3)游戏修改器、脱机挂破坏游戏的公平性,付费用户逐渐流失。

2、结合该公司的特点,拟定端到端的整体安全防护方案:

移动游戏安全6.png

3.以整体安全体系架构为基础,根据需求进行单产品或产品组合部署

如:在该案例中提供《KiwiVM虚拟机》和《Unity3D手游加密》方案,保护企业核心代码,保障手游正常的运营与推广。

(1)提供KiwiVM虚拟化服务

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

移动游戏安全7.png

移动游戏安全8.png

(2)Unity3D手游加密服务

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

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

移动游戏安全9.png

移动游戏安全10.png

结语     

移动游戏安全系统价值在于维护公平的游戏环境、保护玩家财产、提高用户体验感。千锤百炼,锻造移动游戏安全防护黄金铠甲,为企业树立可信品牌,使用户安心驰骋在手游疆场,助力游戏行业在移动互联网大发展浪潮中更蓬勃的发展。

来源:freebuf.com 2018-12-28 17:26:09 by: jiweianquan

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论