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

目前腾讯SR手游安全测试限期开放免费专家预约!点击链接:手游安全测试立即预约!

作者:sheldon,腾讯高级安全工程师 
商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处。

文中动图无法显示,可点击链接腾讯手游如何提早揭露游戏外挂风险?,阅读原文查看。

WeTest导读

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

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

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

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

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

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

SR手游安全测试经过若干轮的效率优化,已经将一轮安全测试的时间压缩至3天,可以输出《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工具最新的版本上已经集成了所有安全测试的辅助功能。下面从技术实现和工具效果上来展示各大功能的情况。

1、双端协议修改

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

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


2、函数动态修改

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

方案效果: 
—— 函数动态修改方案共覆盖安全检查风险项81项 
—— 安全审核单个版本时间由15天减少到3天 
—— 函数修改测试成本降低70%

3、内存对象修改 

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

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

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

测试流程如下:

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

自动化效果: 
—— 通过自动化扫描发现服务器宕机问题83例 
—— 检查所有协议字段的异常值填充,平均每款游戏执行协议异常用例120000+条,填补手工测试无法完成的空缺 
—— 单个游戏1小时内可测试用例10000条以上,效率提升巨大 
—— 扫描覆盖检查规则31项,包括空指针、数值溢出、sql注入、格式字符串、缓冲区溢出等测试项

5、函数风险扫描技术:

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

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

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

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

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

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


【案例2】 
韩信 [无情冲锋]技能超远距离释放,利用漏洞进行全图范围内的突进功能。 
[无情冲锋]属于子弹型技能,即释放时需要指定一个突进的方向。将技能类型强制修改为指定施法坐标的类型,指定技能落点位置坐标,就能够获得全图突进效果。 


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

【案例4】

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

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

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

【专家安全测试】 
无漏洞不收费,只需要提供apk包,可在约定时间内拿到一份安全评估报告 
【安全测试工具】(即将开放) 
开放腾讯安全测试专业工具,降低企业手游安全测试技术门槛

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

目前腾讯SR手游安全测试限期开放免费专家预约!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

下面介绍一个开源的OCR引擎Tesseract2。值得庆幸的是虽然是开源的但是它的识别率较高,并不比其他引擎差劲。网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是G

下面介绍一个开源的OCR引擎Tesseract2。值得庆幸的是虽然是开源的但是它的识别率较高,并不比其他引擎差劲。网上介绍Tessnet2也是当时时间排名第三的识别引擎,只是后来慢慢不维护了,目前是Google在维护,大家都知道Google 在搞电子…

分UV教程

第一步 首先,打开一个练习场景“空中预警机1.max”(这事小弟平时的练习做的不好献丑了)。(图01) 图01 第二步 这里我们拿机翼来举例子,隐藏除机翼意外的其他模型。(图02) 图02 第三步…

k8s系列--- dashboard认证及分级授权

http://blog.itpub.net/28916011/viewspace-2215214/ 因版本不一样,略有改动 Dashboard官方地址: https://github.com/kubernetes/dashboard dashbord是作为一个pod来运行,需要serviceaccount账号来登录。 先给dashboad创建一个专用的认证信息…

JAVA项目开发

16年java软件开发经验,全职项目开发,项目可签合同、开普票和专票。 主要承接项目: 1、网站开发项目 自主开发千帆CMS动态发布系统,基于java/springboot2/jpa/easyui开发,简单易用,后台与前端分离&#xff0…

unity3d 任务头上的血条

人物的名称与血条的绘制方法很简单,但是我们需要解决的问题是如何在3D世界中寻找合适的坐标。因为3D世界中的人物是会移动的,它是在3D世界中移动,并不是在2D平面中移动,但是我们需要将3D的人物坐标换算成2D平面中的坐标&#xff0…

unity3d 预制体

首先要说明一下什么是预制体? 在Unity3D里面我们叫它Prefab;我们也可以这样理解:当制作好了游戏组件(场景中的任意一个gameobject ),我们希望将它制作成一个组件模版,用于批量的套用工作,例如说…

Python小数据池,代码块

今日内容一些小的干货 一. id is 二. 代码块三. 小数据池四. 总结python小数据池,代码块的最详细、深入剖析 一. id is 二. 代码块三. 小数据池四. 总结一,id,is, 在Python中,id是什么?id是内存地址…

【Wax】使用Wax (framework方式,XCode 4.6)

前情提示:【Wax】使用Wax (非framework方式,XCode 4.6) 这次,将以framework的方式来使用Wax 那么,让我们开始吧!!! 准备工作: 下载wax.framework:…

unity3d 简单动画

1,动画系统配置 创建游戏对象并添加Animation组件,然后将动画文件拖入组件。 进入动画文件的Debug属性面板 选中Legacy属性 选中游戏对象,打开Animation编辑窗口 添加动画变化属性 需改关键帧的属性值 配置完成后运行即可得到动画效果 2&…

3dmax导出到unity3d下分割动画

1、在3dmax 导出时候,要导出FBX文件,同时包含动画,骨骼,皮肤等内容 2、把FBX文件导入到Unity3d后会默认有一个超长的大动画,就是一个整体的动画,如图Take001,这个时候要分割哪部分是跑&#xf…

Unity3d之AssetBundle打包与读取

一、创建Assetbundle 在unity3d开发的游戏中,无论模型,音频,还是图片等,我们都做成Prefab,然后打包成Assetbundle,方便我们后面的使用,来达到资源的更新。 一个Assetbundle可以打包一个模型&…

unity3d 各个目录的意思

1.首先,你得理解Unity中各个目录的意思? 我这里说的是移动平台(安卓举例),读,写。所谓读,就是你出大版本的包之后,这个只读的话,就一辈子就这些东西了,不会改…

asp.net core根据用户权限控制页面元素的显示

asp.net core根据用户权限控制页面元素的显示 Intro 在 web 应用中我们经常需要根据用户的不同允许用户访问不同的资源,显示不同的内容,之前做了一个 AccessControlHelper 的项目,就是解决这个问题的。 asp.net core 支持 TagHelper 和 基于 …

Java面向对象(二)

source:http://blog.java1234.com/index.html?typeId1 Java类的继承 1,继承定义以及基本使用 定义:子类能够继承父类的属性和方法; 注意点:Java中只支持单继承; 私有方法不能继承; 2,方法重写 …

游戏通讯方式

农药自从上线以来,依靠着强大的产品力以及腾讯的运营能力,在游戏市场上表现可谓是风生水起,根据第三方的调研数据显示,《王者荣耀》渗透率达到22.3%,用户规模达到2.01亿人,每日的日活跃用户(DAU…

小小c#算法题 - 3 - 字符串语句反转

题目:反转语句。 如I love Beijing! 反转后输出 !Beijing love I 特点是指反转单词的顺序,其他字符(这个可以自己指定)不反转。且不能用内置函数,如Split和Substring。 分析:我们需要保证一个单词的字…

unity5.4.3p2里面的AssetBundle打包流程

unity5.4.3p2里面的AssetBundle打包流程,相比之前unity4.x的打包简单了许多,Unity4.X中打包的时候需要自己去管理依赖关系,各种BuildPipeline.PushAssetDependencies()和BuildPipeline.PopAssetDependencies(),一不小心手一抖&…

主成分分析(PCA)原理详解 2016/12/17 · IT技术 · 主成分分析, 数学 分享到: 21 原文出处: 中科春哥 一、PCA简介 1. 相关背景 主成分分析(Principa

主成分分析(PCA)原理详解 2016/12/17 IT技术 主成分分析, 数学 分享到:21原文出处: 中科春哥 一、PCA简介 1. 相关背景 主成分分析(Principal Component Analysis,PCA), 是一种统…

【Tensorflow】 Object_detection之训练PASCAL VOC数据集

参考:Running Locally 1、检查数据、config文件是否配置好 可参考之前博客: Tensorflow Object_detection之配置Training Pipeline Tensorflow Object_detection之准备数据生成TFRecord 2、训练模型 PIPELINE_CONFIG_PATH/data/zxx/models/research/date…

R文件报错的原因

一般R文件报错,无非是资源文件错误,图片命名错误,但是编译都会报错,可以很快解决。但是前几天,引入一个第三方aar包后,项目编译正确,但是就是R文件报错,找不到R文件,整个…