建一座安全的“天空城” ——揭秘腾讯WeTest如何与祖龙共同挖掘手游安全漏洞

作者:腾讯WeTest手游安全测试团队
商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。


WeTest导读

《九州天空城3D》上线至今,长期稳定在APP Store畅销排行的前五,本文将介绍腾讯WeTest手游安全团队在游戏上线前为《九州天空城3D》挖掘安全漏洞的全过程。



《九州天空城3D》(下文简称《九州》)是祖龙娱乐的一款正版授权次世代3D飞行手游,在8月,正式向全平台开放。作为一个前身是端游研发工作室的研发商,祖龙娱乐在《九州》中将端游中经典的“飞行功能”重新展现给了玩家,《九州》以东方幻想元素为基调,熟练运用了PBR材质渲染、全局动态光影、超清粒子特效、真实物理碰撞等技术,实现了“双人飞行”,“360°全方位自由空战”等创新玩法。在这款手游推出时,我们发现,祖龙娱乐在手游的研发技术上正变得越来越娴熟。

游戏设计方面,《九州》设计了很大的地图,不做任何的地形限制;另外玩家在飞行过程中也能发生战斗,全方位的空战体验在手游中还是相对比较少见的。

玩法方面,《九州》设计了“双人飞行”的特色功能,将玩家之间的互动与这款游戏的核心卖点“飞行”巧妙地结合到一起。不过,《九州》的游戏策划很清楚,作为一款MMO游戏,为了留住玩家,其最终的落脚点还是在社交上,为了让玩法和社交能够更好的结合,游戏的平衡性和游戏社区内的氛围建设非常重要。为了保证游戏的健康运转,祖龙娱乐对反外挂的工作非常重视。

《九州天空城3D》安全测试的开端

安全问题相比游戏的其他问题,由于其测试的门槛较高,经常会被手游开发者忽略。一些手游开发者会抱有“等出现了问题之后再去修复”的想法, 然而等到问题出现的时候,往往对游戏的收入、口碑已经产生了很大的影响,常见的外挂危害包括以下几点:

腾讯游戏从进入游戏行业之后,就遭遇过不少外挂的侵袭,因为不断的踩坑,腾讯在进入手游领域之初,非常的重视安全测试。腾讯WeTest手游安全测试团队从2011年就开始对手游安全领域进行探索和技术积累,旨在通过提前发现游戏版本的安全漏洞,预警风险,帮助提高腾讯游戏的品牌和口碑。目前腾讯WeTest团队对腾讯内部所有游戏都会进行详尽的安全测试,《王者荣耀》、《乱世王者》、《穿越火线:枪战王者》以及《火影忍者手游》等精品游戏每个对外版本都会进行严格的安全测试。

在端游领域沉淀多年的祖龙娱乐,同样非常清楚外挂对于游戏平衡性的危害,由于在游戏质量测试方面与WeTest有过多次成功的合作,因此在《九州》上线前,祖龙方面很果断的就决定与腾讯WeTest手游安全测试进行合作,腾讯WeTest也希望能将自己在手游安全领域的经验传递给《九州》团队。

本文整理了《九州》安全测试过程中的一些思路和实践内容,与手游开发者分享,希望手游开发者能够了解安全测试,重视安全测试。(文中的漏洞均已修复,仅做学习交流参考)

技术难点

手游的使用场景与传统APP有着巨大的差异,不同的游戏玩法, 技术实现都不一样,因此手游安全测试团队需要对《九州》所有模块进行比较全面的风险分析,针对游戏核心玩法和游戏中高价值产出点重点进行漏洞挖掘,提前暴露游戏中潜在的安全风险,最大程度降低线上外挂打击成本。

《九州》游戏客户端使用Unity3D引擎开发,但是手游安全测试团队在接入协议工具中发现客户端并不是100%用C#实现,仅从C#层接入工具无法获取游戏所有通信协议数据。逆向分析游戏客户端后发现实际还有大量游戏逻辑使用Lua开发,对应功能的协议数据也在Lua层进行组包。接入协议工具必须从C#和Lua层进行Hook,获取协议明文数据。

另外,在对协议数据的解析中也遇到一些挑战,游戏同时使用了自定义和PB两种协议结构,需优先对自定义协议结构进行格式转换,实现针对自定义协议Decoder进行解析,PB部分则直接用PB Decoder进行解析。

测试方案

一、测试分析及规划

1、确定游戏核心玩法
《九州》的核心玩法主要是组队副本及各种活动,另外还有战斗外角色技能学习、装备、宠物等。

2、确定安全测试策略
《九州 》是一款使用Unity引擎开发的RPG游戏,游戏采用自定义的二进制协议 (XML +PB),逻辑使用 c#+lua开发。

本次安全测试目标覆盖整个游戏模块,主要分为周边系统和局内战斗逻辑,针对该游戏类型,本次测试以协议为主,针对部分游戏内的战斗逻辑,采用逻辑修改的方式进行测试。

WeTest手游安全测试针对三方面进行检查:
1)游戏客户端资源安全测试
2)游戏逻辑安全测试
3)服务器稳定性

二、测试的实施

腾讯WeTest手游安全测试团队将审核的内容分为静态安全漏洞和动态安全漏洞。

静态漏洞扫描
主要通过静态扫描的方式,对游戏apk中配置档、资源文件、脚本文件、manifest.xml、so文件,通过自动扫描的方式来进行检查项的确认。(目前此块内容已集成到SR手游安全测试方案中,覆盖了120+条安全检查项和信息安全测试项)

动态风险分析
主要根据游戏特定的内容和玩法,针对性地分析安全风险点,通过协议、函数、内存、脚本等技术,多维度检查游戏服务器对相应的风险点是否有完善的校验或反外挂策略。

根据对漏洞类型的提炼,WeTest手游安全测试团队根据《九州》具体玩法,推导出相应的获益方式。通常根据风险点分析的方式,可以完整覆盖到游戏中涉及到安全的部分,结合检查点,就生成了可以在实际操作中执行的用例,形成闭环。

SR手游安全测试深度覆盖

其中比较典型的检测方式有:

1、双端协议修改
手游安全测试工具通过直接注入游戏的组包函数,自动解析协议结构,免去了需要依赖测试人员分析二进制数据进行协议破解。在没有协议结构文件时也能自动解析协议结构。手机和web端都可以进行协议数据展示,在手机上可以实施地显示协议发包的效果,在web上可以动态一键修改相应字段,互补不足。

双端协议修改工具web效果展示

2、函数动态修改

函数动态修改原理

对于单局类玩法的手游,函数动态修改具备最强的漏洞能力。但是早期的测试方法效率非常低下,需要每个函数单独编写hook函数、定义函数指针变量、申请独立hook资源、重新编译代码。同时,使用门槛很高,只有专业的安全专项测试人员才能操作。手游安全测试团队的函数动态修改工具通过动态通用hook技术,不需要测试人员再进行hook函数编码。

函数动态web效果展示

3、内存对象修改
WeTest手游安全测试团队为测试人员直接展示出游戏中对象列表、对象属性名称、属性值等信息,并且可以以对象为单位进行搜索,告别传统手游内存测试工具搜索“内存数值”方式定位目标内存地址的低效方案,实现该项测试成本降低70%。

WeTest手游安全测试团队为《九州》挖掘出的部分漏洞和修复方案

一、客户端安全漏洞

1、游戏逻辑 DLL未加密,可直接被反编译,降低了外网破解游戏的难度,也存在被外挂利用的风险。

2、游戏LUA脚本未加密,可直接从内存中dump出源码,增加了游戏被外挂利用的风险。

二、游戏逻辑问题

1、部分协议字段冗余,且校验不严格,存在严重逻辑问题。如生活制作功能中,物品 随机应该由服务器下发,而非客户端上报,否则存在制作指定物品的风险;对物品等级缺失 校验,导致低等级可制作高等级物品 。

2、部分验证逻辑只存在于客户端。客户端是不可信任的,客户端验证只能用于UI显示 控制,后台应该同样增加校验,防止客户端伪造或构造数据来绕过验证。如“宠物更名”中,服务器应该检查长度限制,否则由于该数据会写入DB,可能被利用造成客户端对服务器数据库攻击。

问题示例

问题一:生活技能制作漏洞 ,低等级技能可生产高等级物品

【漏洞类型】:越权操作
【问题描述】
生活技能存在漏洞,使用道具制作请求篡改 recipeXXX参数,可生产高于现有等级的道具

【影响面】
属于越权操作风险,利用漏洞可在游戏中获益。

问题二:一个同伴可以重复助战,存在刷评分排行榜的风险
【漏洞类型】:刷战力
【问题描述】
使用一个同伴ID通过forXXXXX_pos多次发送,可用一个同伴重复助战

【影响面】
可用于刷评分,影响游戏平衡

问题三:对达到购买上限的道具,可修改购买方式无限购买
【漏洞类型】:无限购买
【问题描述】
用其他货币可以无限购买道具

操作方法:
1.录制交易系统—商铺购买协议“MalXXXXping”
2.修改协议字段“pa_type”参数为“1”
3.发送协议

银币购买达到上限:

修改用金币购买成功:

【影响面】
突破游戏限制,使用元宝可加快成长。

强调文字解决办法

1、游戏客户端安全方面,需对客户端进行加壳,dll代码文件加密,Lua脚本则建议改为Luac或Jit模式,有效提升客户端被分析和破解的难度。

2、其他协议漏洞大部分属于后台检验疏忽型,需针对性完善后台逻辑校验。

最终效果

在项目测试阶段,手游安全测试团队为《九州天空城3D》发现了数个漏洞,并针对这些漏洞产生的原因和修正都提供了专业意见,并很快顺利修正了问题,与开发商一起将隐患消除。《九州》的技术负责人表示:“外挂问题一直是祖龙在做游戏过程中要跨越的雷区,MMO类型游戏内容很多,需要专业的安全团队来对游戏进行一个全方位的检测,WeTest手游安全测试为《九州天空城3D》正式开启不删档,创造安全、公平、健康的游戏环境提供了坚实支撑和保障。”


关于腾讯WeTest手游安全测试团队

腾讯WeTest手游安全测试团队从2011年初开始对手游安全领域进行探索和技术积累,旨在通过提前发现游戏版本的安全漏洞,预警风险,打造出业界领先的手游安全测试技术方案,在工具上已经支持所有腾讯在研和运营的手游项目。团队通过使用与正式服同样的游戏客户端和服务器,模拟外挂工作室制作外挂的过程,依靠自身的技术积累来提高专业程度,持续保持漏洞的发现率。

目前提供了专家测试服务,希望通过提前发现游戏版本的安全漏洞,预警风险,帮助提高腾讯游戏的品牌和口碑。

服务目前已经对外开放,欢迎前来使用http://wetest.qq.com/product/sr
如果对使用当中有任何疑问,欢迎联系腾讯WeTest企业qq:800024531

时间: 2024-08-25 12:47:48

建一座安全的“天空城” ——揭秘腾讯WeTest如何与祖龙共同挖掘手游安全漏洞的相关文章

三个半月建一座高等级数据中心

深圳盐田港数据中心的实际建设周期只有三个半月,虽然建设速度快.成本低,但是品质没有打折.这一切都要归功于工厂预制这一新的数据中心建设方式.在国外日渐流行的预制模块化数据中心能否经得起中国用户的考验呢?还是让盐田港数据中心的设计者和建设者亲自告诉你吧. 2014年3月29日,深圳云基地暨中国首个预制模块化数据中心正式启用.该数据中心一期工程从2013年9月设备进场到2014年1月整个项目顺利完工,用时不到4个月,其中最让人津津乐道的就是一个"快"字,而这个"快"字正好

揭秘腾讯burberry活动页面中的特效

4月24日,Burberry亚太地区规模最大的旗舰店在上海开幕.Burberry突破性地运用了诸多创新的数字营销模式,借助与腾讯的合作,为更多未能到场的用户创造了一个"平行的体验",也正式开启了Burberry的创新数字营销之旅. 腾讯的营销页面:  其中多次用到了类似于云雾褪去的效果,如下图.我对这种神奇的特效产生的极大的兴趣,于是通过chrome的审查元素里面Resources找到下面这张图片(由于图片是白色的png,为了让大家看清楚我将背景调成了黑色).于是效果的实现方式就显而易

揭秘腾讯大数据冰山一角

一.人群画像 1.什么是人群画像大数据? 人群画像通过收集用户的行为特征.年龄特征.用户场景.地域特征.目标动机等一系列海量真实数据,建立用户模型,抽出典型目标用户针对性分析. 2.人群画像大数据有什么作用? 现有的人群画像大多只是用来进行营销活动,通过已有建立人群画像,发掘潜在用户资源,然后对这类特定群体进行针对性营销.除此之外,在人群画像基础上进行产品经营状况分析也是常用的一种手段.但是,人群画像在工程实践中似乎一直没有得到太好的应用. 二.腾讯大数据--天御系统 1.什么是天御系统? 天御

Cocos2d-x官方在线视频-Cocos2d-x3.2《2048》手游开发揭秘

Cocoachina 官方在线视频 http://cn.cocos2d-x.org/tutorial/lists?id=58 一.游戏介绍 2048游戏是一款风靡全球的休闲类游戏,通过控制4X4范围内的数字块的移动,相同数字的块在移动的过程中累加消除,该游戏即考虑了手机触摸屏幕的操作方式,又在游戏过程中不断产生新块以增加游戏难度和耐玩性,游戏运行效果如下图: 二.创建项目&游戏逻辑分析 2.1 本项目开发环境: Mac OS 10.9 XCode 5.0 Android NDK r9 2.2部署

揭秘腾讯阿里百度的薪酬待遇 简直就是人生目标

揭秘腾讯阿里百度的薪酬待遇 简直就是人生目标 2014-12-28 12:40:39 来源:IT之家作者:IT之家 三大互联网巨头公司,百度腾讯跟阿里如何划分级别?薪资待遇又有多少?除非身居其位,否则很难探知,但是等你到那个位置知道了,却又不能说,至少不能在公开场合谈论.接下来就为大家揭秘,百度.阿里与腾讯内部的级别划分跟薪资待遇.这是一个群众喜闻乐见却又讳莫如深的话题. 各个公司头衔名字都不一样,级别的数目也不一样;有些扁平,有些很多level慢慢升;有些薪水范围严格跟级别挂钩,有些薪水跟级别

揭秘腾讯系软件比阿里系软件用户体验好

作为一名互联网时代的网民,对阿里系软件和腾讯系软件一般都不会陌生,并且体验过,很多人的感受是阿里系软件用户体验都不是很好,还是腾讯的用着舒服些,大部分人都说腾讯系软件比阿里的用户体验好,这是为什么呢? 纽带线CRM小编跟大家分享些干货. 最核心的两点: 1.用户需求大于产品体验.(小孩才分对错,大人只看利弊)新手才谈体验,高手都在思考需求(利益).2.两者侧重点不同.腾讯的优先级在提高体验,阿里的优先级在业务生态. 正因为阿里和腾讯的产品形态的巨大差距,所以产生了需求和体验之间优先级的差异,也直

揭秘腾讯大数据平台与推荐应用架构

内容简介: 腾讯的月活跃用户8.3亿 微信月活跃用户4.4亿 QQ空间月活跃用户6.5亿 游戏月活跃用户过亿 如今腾讯的数据分析已经能做到始终“不落地”,即全部的实时处理.腾讯大数据平台有如下核心模块:TDW.TRC.TDBank.TPR和 Gaia.简单来说,TDW用来做批量的离线计算,TRC负责做流式的实时计算,TPR负责精准推荐,TDBank则作为统一的数据采集入口,而底层的 Gaia则负责整个集群的资源调度和管理.李勇还特别强调了数据平台体系化是应用基础,数据应用商业化是价值导向. 数据

破解者是如何篡改游戏内数值的,揭秘Android手游破解全过程

由于Android系统的开放性,让人人都是开发者成为可能,也正因如此,手机APP遭受破解和盗版问题长期存在,且愈演愈烈.尤其是手游 行业,如刀塔传奇.植物大战僵尸.2048等知名游戏被破解的案例不胜枚举.破解者通过各种工具篡改游戏内存中的数值.参数或广告等,达到过关.升级.谋取暴利的目的. <屌丝保卫战>是一款射击类游戏,游戏内涉及关卡.道具.虚拟金币等内容.通过简单几个破解步骤,即可完成关卡升级.虚拟货币充值等目的. 在游戏未进行任何安全保护措施前,破解者可以轻松将apk文件用winrar打

深度揭秘腾讯云新一代企业级HTAP数据库TBase核心概念

腾讯云PostgreSQL-XZ(PGXZ)经过公司内部多年业务的打磨,在2017年改名为TBase后,正式对外推出,目前已在政务.医疗.公安.消防.电信.金融等行业等行业的解决方案中大量应用.TBase以其功能强大,运行稳定,高性能高可靠性,以及强大的互联网基因得到客户的普遍认可. TBase核心概念: Tbase的重要的技术特性和概念,主要包括以下几个方面: 企业级: 企业级特性包含以下几个方面: 用户友好的事务特性:业务无需关注数据库的事务特性,数据库内核支持完整的分布式事务,保证事务的A