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

3次阅读

共计 4235 个字符,预计需要花费 11 分钟才能阅读完成。

在近期发布的《2018 年上半年中国移动互联网行业发展分析报告》中提出,在上半年中国移动互联网关键字 TOP1 是“安全”,安全已成为中国移动互联网企业存亡生命线。作为平台,首先要保证输出内容的安全,其次要保证用户的人身财产安全及数据安全。安全,为立“身”之本。
在过去二十多年中,伴随着移动互联网的发展,游戏行业经历很大的变化——不仅仅是从技术上的革新,游戏的实现能力更是有了飞跃的发展,但是在移动游戏逐渐成为大众休闲娱乐的主流方式的背后,其安全正受到网络黑产的巨大威胁。
移动游戏发展迅猛,安全问题如影随形
据相关数据显示,截止到 2018 年 3 季度,全球移动互联网用户已超过 30 亿,欧美、东亚等区域渗透率近 80%。从 3 季度基于移动互联网应用月新增占比分布数据看,游戏行业占比位居第二,且主流手机游戏应用 MAU 同比增长趋势明显。

但是,随着硬件与开发技术的成熟相继发展成型,游戏行业安全问题也随之出现,外挂工具、系统功能漏洞、服务器宕机漏洞等问题频发,也将大幅影响游戏内平衡,使用户体验下降。可以说,无论是移动应用还是游戏,发生安全问题就如同打开“潘多拉魔盒”,不但可能危害用户切身利益,也同样会造成企业的损失。与此同时还会发生企业信誉危机,品牌口碑大幅下滑等一系列问题。
在腾讯安全云鼎实验室于近日发布《2018 年游戏行业安全监测报告及五大攻击趋势》的数据显示,目前游戏行业安全威胁主要包括账号类攻击、DDoS 攻击、外挂和其他四大类。
1. 帐号类攻击
针对游戏行业的帐号类攻击,月均在数亿次 / 月,且持续平稳,具有长期持续性攻击的特征。
(1)攻击类型分布
在针对帐号的攻击中,大部分的帐号扫描其实也是为了撞库攻击做准备,少部分是基于历史密码的登录尝试。因此,在帐号安全侧,撞库相关攻击实际占据了 80% 以上的份额。

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

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

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、结合该公司的特点,拟定端到端的整体安全防护方案:

3.以整体安全体系架构为基础,根据需求进行单产品或产品组合部署
如:在该案例中提供《KiwiVM 虚拟机》和《Unity3D 手游加密》方案,保护企业核心代码,保障手游正常的运营与推广。
(1)提供 KiwiVM 虚拟化服务
KiwiVM 是基于 Clang 编译器扩展实现的 VM 虚拟机编译器, 在编译时直接对指定的函数[代码]实施虚拟化处理。其加密过程不可逆,攻击者无法还原代码,分析核心业务逻辑。可帮助中大型企业在通信、支付、算法、核心技术等模块进行深度加密,避免因逆向破解问题造成的经济损失。

(2)Unity3D 手游加密服务
Unity3D 手游加固服务是在 APP 安全加固的基础之上,针对 Unity3D 手游,扩展了函数级[或整体级]的 DLL 文件加密功能,避免 DLL 文件被 .NET Reflector 等破解工具提取 C# 源代码。与 DEX 加密、防二次打包、内存保护、反调试、防系统加速挂等功能配合形成一套完整的 Unity3D 手游加密方案。
登录移动安全管理平台即可使用。DLL 函数级加密为企业版,其算法有几十种可供选择,同时对这些加密算法都有高强度的加密保护,攻击者无法通过 Dump 内存数据来窃取 C# 源代码。

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

正文完
 0