腾讯手游如何提早揭露游戏外挂风险?

商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。

WeTest导读

随着大量外挂、辅助、工作室等非法盈利团队借由移动游戏产业迅猛发展的东风趁虚而入,对游戏开发商和玩家来说都造成了不小的伤害,安全问题成为手游发展不容忽视的前提。本文告诉你如何从技术的角度来提前曝光这些安全问题和外挂风险。

安全无小事---安全测试开展思路

随着智能手机的全面普及和市场泛娱乐化,移动游戏行业发展迅猛,无论是市场收入还是用户规模,手游在游戏市场上已经占据了半壁江山。如此火热的市场吸引了大量外挂、辅助、工作室等非法盈利团队,严重影响了游戏的收益、平衡,缩短游戏的生命周期,下面我们来看看外挂对手游有哪些危害。

手机网游外挂的八大危害

安全无小事,如何从技术的角度来提前曝光这些安全问题和外挂风险呢?腾讯SR(SecurityRadar,安全雷达,腾讯手游安全测试的专项技术方案)手游安全测试团队从2011年初开始对手游安全这个领域进行探索和技术积累,旨在通过提前发现游戏版本的安全漏洞,预警风险,帮助提高腾讯游戏的品牌和口碑。

安全测试,与项目发布同行

为了帮助项目在发布前发现并修复安全问题,在游戏版本转功能测试的阶段SR手游安全专项测试就介入。

SR手游安全测试关键路径

SR手游安全测试经过若干轮的效率优化,已经将一轮安全测试的时间压缩至3天,可以输出《SR手游安全测试报告》。项目修复漏洞后,仍由SR专项团队进行安全漏洞的回归检查,并确保项目按版本计划进行发布。

提早揭露安全漏洞,可以帮助项目在开发阶段进行安全对抗和策略加固,避免在项目运营时,与外挂对抗的被动局面。同时,也从根本上降低了外挂带来的玩家流失和运营损失。

SR手游安全测试内容概述

专家测试

根据手游安全测试的需求,主要涉及到手游项目中的测试范围及测试内容的规定。提供专家手游安全测试服务,会有腾讯内部的手游安全测试专家进行测试、问题沟通跟进、处理优化检查等等。

1. 测试设计,根据相应游戏的内容进行测试设计,找出游戏中的获利点,结合SR安全检查项,可以对游戏的内容进行完整覆盖

2. 专家互评,对风险检查点进行查漏补缺,保证完整覆盖

3. 测试执行,依据风险检查点,使用SR工具执行测试检查,主要进行函数修改、协议修改、内存修改、变速、脚本修改、静态漏洞扫描

4. 提交漏洞,测试专家按照SR漏洞模板提交漏洞,依据《漏洞评级标准》进行漏洞定级和内容的审核

5. 安全报告,由安全专家根据发现的问题和游戏整体对安全性进行评估并输出安全测试报告

6. 漏洞回归,漏洞修复后,从新提交修复版本进行回归,SR评估漏洞修复情况并反馈结论

自动化测试

1. 宕机漏洞扫描服务,通过智能分析协议来填充模糊测试case,发送到服务器,测试服务器的可靠性、健壮性

2. 协议/函数风险扫描,通过AI算法学习安全风险模型,读取游戏函数、协议数据后进行智能分析,具备2小时输出安全测试报告的能力

SR安全测试技术方案

根据以上的规划思路,SR团队聚焦在漏洞挖掘的能力和效率提升上进行手游安全测试技术创新。整个技术方案最大的难点在于,手游与传统的APP差异很大,不同游戏的玩法、技术实现都不一样,我们如何研发一套普适的方案,来满足不同游戏的安全测试需求。经过几年的研发与优化,SR团队终于做到了,兼容了数百款腾讯自研、代理游戏,打造了业界领先的手游安全测试技术方案。

SR独创的安全测试技术

-——业界独创的动态修改手游客户端程序的安全测试技术、基于对象的手游内存安全测试技术

-——多种领先的自动化风险扫描技术

—— 拥有多项国家级技术专利

业界独创的手游安全测试系统

SR手游安全测试团队将审核的内容分为静态安全漏洞和动态安全漏洞。不同类型的问题测试思路和分析手段会有不同,对测试工具和测试方法也会有差别。

手游安全漏洞分析

静态漏洞扫描

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

动态风险分析

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

安全漏洞风险项

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

SR手游安全测试深度覆盖

手游安全测试对于技术的要求也是非常高的,需要专业的技术人员进行逆向分析和工具支持,否则上述的测试点很有可能是纸上谈兵,但毫不夸大地说SR手游安全测试已经拥有了这些技术积累。根据对测试检查点的分析,我们需要的安全测试工具包括:函数修改、内存修改、变速修改、协议修改、脚本修改。

SR手游安全测试深度解密

在SR工具最新的版本上已经集成了所有安全测试的辅助功能。下面从技术实现和工具效果上来展示各大功能的情况。

1、双端协议修改

SR协议工具在某枪战游戏上的效果展示

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

SR协议双端工具web效果展示

从目前支持和接入的游戏来看,SR工具已经对目前腾讯在研和运营的游戏达到了100%的支持,从协议类型上支持和引擎类型来看,也基本覆盖了当前所有的游戏类型:

SR协议工具已支持的手游类型/协议情况

2、函数动态修改

函数动态修改原理

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

函数动态web效果展示

方案效果:

—— 函数动态修改方案共覆盖安全检查风险项81项

—— 安全审核单个版本时间由15天减少到3天

—— 函数修改测试成本降低70%

3、内存对象修改

内存对象修改效果展示

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

—— 内存对象 一目了然

获取内存中所有对象、对象名、地址、属性值

—— 对象数据 动态更新

动态更新内存对象

—— 动态修改 实时生效

直接修改对象属性,游戏内即时生效

4、协议字段模糊测试:

拒绝服务攻击即攻击者想办法让目标机器停止提供服务,是黑客常用的攻击手段之一。玩家的异常操作、黑客异常发包、批量发包等都可能导致服务器宕机,影响游戏的正常运营,玩家不能正常游戏。早期的协议测试中有设计异常发包case,检查是否会导致服务器宕机。但是这种方式测试效率很低,覆盖的异常点非常少。SR结合外网模糊测试工具和长期协议测试积累的宕机case,研发了这套系统。

SR字段模糊测试的case覆盖的协议用例类型包括:

协议模糊测试支持的用例类型

通过对于字段类型的分析后,自动填充相关的字段的异常类型值,来组包发送给服务器,进行服务器的模糊测试。解决了传统协议测试执行效率低、定位问题慢、覆盖分支少的问题。

测试流程如下:

协议模糊测试执行流程

模糊测试执行过程中不需要测试人员过多参与,就可以发现大量的安全问题。支持设备并发执行,智能分配测试机执行任务,执行任务的效率之高。发现问题后可以智能定位协议与字段,帮助开发人员快速定位问题。扫描覆盖检查规则31项,包括数值溢出、sql注入、格式字符串、缓冲区溢出,已经完全覆盖协议模糊测试的类型,且数据还在不断增加中。

自动化效果:

—— 通过自动化扫描发现服务器宕机问题83例

—— 检查所有协议字段的异常值填充,平均每款游戏执行协议异常用例120000+条,填补手工测试无法完成的空缺

—— 单个游戏1小时内可测试用例10000条以上,效率提升巨大

—— 扫描覆盖检查规则31项,包括空指针、数值溢出、sql注入、格式字符串、缓冲区溢出等测试项

5、函数风险扫描技术:

函数风险扫描技术原理图

对大量安全漏洞进行风险定义、特征定义与分类,引入模式识别技术,建立手游安全风险分析模型,自动分析出游戏高危风险函数,有效帮助测试人员省掉最为耗时的风险分析环节,实现单个手游版本漏洞测试时长从3个工作日降低到1个工作日。

SR手游安全测试支持项目情况:

2015-2016年腾讯SR渗透测试预警数量

SR手游安全测试方案在工具上已经支持所有腾讯在研和运营的手游项目,依靠自身的技术积累来提高专业程度,持续保持漏洞的发现率。目前在SR手游安全测试团队过审的项目漏洞发现率为100%,得到了越来越多的项目认可。通过对腾讯高星级手游的安全测试发现2213个安全漏洞,且整体的数据呈上升的趋势。各大手游厂商在关注运营留存,收入的同时,这些数据同样值得思考!!

2015-2016年腾讯预警高危漏洞类型

通过数据统计我们发现,高危的漏洞反而在手游安全测试的过程中更容易被发现,带来的风险也是更致命的。在腾讯内部,通过SR手游安全测试的推动,这些安全问题也在项目组得到了修复,为腾讯游戏创造了一个公平竞技,安全运营的游戏生态环境。现在SR手游安全测试正式入驻腾讯WeTest,正式将安全测试能力开放对外,有需要的厂商可以联系腾讯WeTest预约服务(wetest.qq.com)。

和大家分享部分案例,案例中的所有问题都已得到了解决。

【案例1】

PVE模式中,动态修改游戏进程中多处代码逻辑,实现“无敌+全屏秒杀外挂” 

【案例2】

韩信 [无情冲锋]技能超远距离释放,利用漏洞进行全图范围内的突进功能。

[无情冲锋]属于子弹型技能,即释放时需要指定一个突进的方向。将技能类型强制修改为指定施法坐标的类型,指定技能落点位置坐标,就能够获得全图突进效果。

【案例3】

篡改攻击对象list与伤害逻辑,造成全屏秒杀效果

【案例4】

篡改使用物品协议请求中消耗数量,实现无限开箱子刷装备

安全漏洞说明:以上安全漏洞在正式环境中都已修复,或加入了反外挂机制。本文以白帽渗透测试的角度,介绍在游戏版本发布前的测试阶段,通过“黑盒测试”的方式逐步分析游戏业务逻辑中的风险点,主动挖掘潜在安全漏洞,最大程度避免最终发布版本中的游戏外挂风险。

SR手游安全测试提供的服务

【专家安全测试】

无漏洞不收费,只需要提供apk包,可在约定时间内拿到一份安全评估报告

【安全测试工具】(即将开放)

开放腾讯安全测试专业工具,降低企业手游安全测试技术门槛

腾讯SR手游安全测试团队经过对手游安全领域多年的探索和技术积累, 打造出了业界领先的手游安全测试技术方案——SR手游安全测试方案,在工具上已经支持所有腾讯在研和运营的手游项目,依靠自身的技术积累来提高专业程度,持续保持漏洞的发现率。目前提供了专家测试和自动化测试,希望通过提前发现游戏版本的安全漏洞,预警风险,帮助提高腾讯游戏的品牌和口碑。

关于腾讯WeTest

腾讯WeTest是腾讯游戏官方推出的一站式游戏测试平台,用十年腾讯游戏测试经验帮助广大开发者对游戏开发全生命周期进行质量保障。 腾讯WeTest提供:兼容适配测试;云端真机调试;安全测试;耗电量测试;服务器压力测试;舆情监控等服务。

原文发布于微信公众号 - 腾讯WeTest(TencentWeTest)

原文发表时间:2016-10-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

腾讯TMQ在线沙龙|腾讯手机管家iOS测试实战

腾讯手机管家iOS测试实战 活动时间:2016年11月10日 QQ群视频交流 活动介绍:TMQ在线沙龙第十二期分享 本次分享的主题是老司机给大家分享腾讯手机管家...

2725
来自专栏Java社区

从0开发前后端分离的企业级上线项目

1902
来自专栏云计算D1net

为什么DevOps和云计算在一起至关重要

软件的定义特性是软性的。举个例子,将翻盖手机与智能手机进行对比。如果想改变翻盖手机按键的颜色,由于按键是一个实体塑料件,这将需要更改其制造过程。从提出想法到市场...

3267
来自专栏大数据

适合初学者的软件定义数据中心架构

软件定义数据中心是一种数据管理方式,它通过虚拟化来抽象计算、存储和网络资源,并将其作为服务提供。为了促进这一过程,SDDC包括智能软件以集中管理虚拟化资源,并自...

2267
来自专栏直播系统源码

搭建直播平台过程中的全能“辅助”——流媒体服务器

直播在经历了爆发式增长后,在互联网领域中呈现出稳步增长的状态。前期观望许久的创业开发者们认为“火候到了”,纷纷开始将搭建直播平台项目提上日程。对于平台搭建来讲,...

3090
来自专栏李鹏的专栏

亿级流量电商详情页系统的大型高并发与高可用缓存架构实战

对于高并发的场景来说,比如电商类,o2o,门户,等等互联网类的项目,缓存技术是Java项目中最常见的一种应用技术。然而,行业里很多朋友对缓存技术的了解与掌握,仅...

7132
来自专栏DevOps时代的专栏

手把手教您构建自己的 DevOps 流水线

持续交付是一组能够帮助软件开发团队极大的提高其软件交付的速度和质量的模式和最佳实践组成。

1721
来自专栏携程技术中心

干货 | 携程机票无线测试技术与效能提升

作者简介 罗昭君,携程机票无线高级测试经理,负责机票移动端功能测试、自动化测试、平台开发等。从事开发、测试工作近12年,先后在阿里巴巴、携程任职。 一、敏捷下移...

3075
来自专栏WeTest质量开放平台团队的专栏

腾讯手游如何提早揭露游戏外挂风险?

随着大量外挂、辅助、工作室等非法盈利团队借由移动游戏产业迅猛发展的东风趁虚而入,对游戏开发商和玩家来说都造成了不小的伤害,安全问题成为手游发展不容忽视的前提。本...

8400
来自专栏SDNLAB

适合初学者的软件定义数据中心(SDDC)架构

软件定义数据中心是一种数据管理方式,它通过虚拟化来抽象计算、存储和网络资源,并将其作为服务提供。为了促进这一过程,SDDC包括智能软件以集中管理虚拟化资源,并自...

3828

扫码关注云+社区

领取腾讯云代金券