当前位置:首页 期刊杂志

基于用户数据分析的网页游戏反外挂方法

时间:2024-09-03

杨丹,高员,顾欣,张宝林,胡沛昌

(工业和信息化部电子第五研究所,广东 广州 510610)

0 引言

近年来,我国网络游戏行业已进入蓬勃发展期,网页游戏由于无客户端,上手容易,玩法简单,因而受到了广大用户的喜爱,2014年我国网络游戏的经营收入达到1144.8亿元,其中网页游戏的经营收入为202.7亿元[1],占比近20%。然而,正因为网页游戏不存在客户端,常规的客户端保护方案对其也基本失效;与客户端游戏相比,网页游戏的安全问题更加严重,网页游戏外挂一度泛滥,安全形势不容乐观。

本文针对常见的网页游戏外挂的特性,提出了一种基于用户数据分析的反外挂方法,并通过在部分游戏中的实践,验证了该方案的有效性和可行性。

1 网页游戏简介

网页游戏 (Web Game,简称页游)是指基于网站开发技术,以标准http协议为基础传输形式的无客户端或基于浏览器内核的微客户端游戏。页游不需要下载安装客户端,相对于客户端游戏在玩法和使用方面都更加轻松。页游表现形式丰富,技术实现方式多样,种类也较多,中国互联网络信息中心 (CNNIC:China Internet Network Information Center)将页游主要分为以下几类。

a)社交网页游戏

一种运行在社交网站 (SNS:Social Network Sites)内,通过趣味性游戏方式来增强人与人之间的交互的游戏产品,曾经风靡一时的开心农场、抢车位等均属于社交网页游戏的范畴。

b)大型网页游戏

从大型网络游戏衍生而来,其一般会有一个主题,用户根据剧情的发展进行操作,例如:七雄争霸。

c)网页单机游戏

网页单机游戏指用户在游戏使用过程中不需要与其他的用户进行互动的游戏,例如:4399,3366等。

由于页游的内容相对简单,核心玩法往往也只是机械性和频繁的重复操作,例如:开心农场的收菜和偷菜,因此,为了解放用户的双手,节省用户的时间,网络上出现了较多的帮助用户定时收菜,定时扫描其他的用户的菜地来偷菜的第三方辅助软件,这类第三方辅助软件即为外挂[2]。然而,在游戏中使用外挂实际上是一种作弊行为,因为外挂扰乱了正常的游戏秩序,破坏了游戏的平衡性,影响了用户的体验,以及游戏开发商和运营商的收益。

2 页游外挂的类型和常见的反外挂方法

2.1 页游外挂的类型

按实现方式,可以将页游外挂分为软件界面录制式外挂和高级程序编写式外挂两类。

a)软件界面录制式外挂[3]

该类型外挂的实现原理相当简单,只需在 “按键精灵”中录制平时操作的鼠标动作,再加上几句简单的代码,例如:延时和打开网页等,就可以简单地制作出有自动操作功能的外挂,这类外挂对游戏基本无不利影响,但会影响用户的体验。

b)高级程序编写式外挂[4]

高级程序编写式外挂又可以分为发送和接收解析数据包的外挂两类,是指能够发送和接收解析数据包,并能通过拦截Sock和API函数来修改内存和发送数据到服务器的外挂。

目前,页游中的外挂,以开心农场为例,大多是使用高级程序编写的外挂,其中以农场应用Flash游戏界面的居多,它们都是以Windows开发技术为基础,编写相关的窗口应用界面来发送和接收解析数据包的,用户不需登录游戏即可自动地完成所有的游戏操作。但是,由于其实现难度较大,通过拦截Sock和API函数技术来修改内存和发送数据到服务器的外挂在页游中并不多见[5]。

2.2 常见的反外挂方法

根据以上两种外挂的实现方式,反外挂的策略可以从以下几个方面来切入。

a)对游戏的通信和数据进行加密,可以通过动态和多重加密的方式来防止数据包和加密算法被分析,避免安全策略被绕过[6-7]。

b)采用验证码答题机制,利用动态图片的随机验证码来校验有嫌疑的操作,防止自动化操作工具的使用[8]。

c)源代码反编译混淆,防止关键代码和逻辑被分析[9]。

d)在游戏的设计和策划阶段考虑可能的安全隐患,将重要的计算逻辑上移至服务器,添加服务器数据的校验,定时刷新和同步用户侧的重要数据,防止数据内存被修改。

但是,上述的4种方法均存在一定的不足,主要体现在以下几个方面。

a)由于游戏的通信协议较多,所以无法对所有的协议都加密,而且加密过的协议也可能在长时间使用后被破解,过重的加密机制和反编译混淆会增加服务器的计算负荷和时间延迟,进而影响到用户的体验。

b)验证码机制在前期具有一定的效果,但是长时间使用后容易被分析弹出规律,因而存在失效的风险。

c)由于浏览器本身为开源,游戏的实现代码均可视,源代码反编译混淆实现的难度较大。

d)在游戏开发和策划设计阶段考虑可能存在的安全隐患,并提前规避这些安全隐患,这的确是最佳的方法,但是此方法无法覆盖全部的细节,此外,游戏版本的频繁更新也会增加安全风险。

因此,本文针对页游的安全现状,分析了常用外挂的实现方式和收益点,提出了一种基于用户数据分析的网页游戏反外挂方法。

3 基于用户数据分析的反外挂方法

3.1 常见的页游外挂行为分析

常见的页游外挂主要以脱机挂为主,其主要的功能覆盖了游戏的核心玩法和收益点,实现用户一键配置、游戏任务自动操作。其主要的特点可以概括为以下几点。

a)脱机操作,无须登录游戏,支持多账号批量设置,多用于游戏工作室。

b)定时、有规律地扫描和操作,频繁调用,以及访问经验、金币和重要材料等重要产出收益点。

c)游戏工作室多账号用户基础属性数据和行为数据呈现出某些聚集特征。

d)游戏版本更新或者修补漏洞后,某1~2个游戏操作或者组合操作的频率会变得较高。

针对页游外挂的特点,本文提出了一种基于用户数据分析的网页游戏反外挂方法。

3.2 整体方案框架

本文提出的方案主要依赖于用户上报的基础属性数据和行为数据,并基于上报的数据进行数学建模,分析游戏外挂用户的基本特征,并通过白名单以及前台的验证组件弹出的验证码,校正数据分析模型的准确率,最终精准地定位出外挂用户,并针对性地对外挂用户进行处罚,以维持游戏的正常秩序。

图1 基于用户数据分析的反外挂方案构成示意图

整体方案由用户数据采集、用户数据建模和前端数据验证,以及白名单模型校正等部分组成,各个部分之间的数据流向关系如图1所示。

3.3 用户数据的采集

用户数据采集的主要实现方式是在用户的浏览器端增加数据上报的接口,将用户登录的基础数据、行为数据,以及心跳数据 (游戏页面JS组件定期上报的工作状态数据)上报至服务器,服务器端按照用户数据的类型对采集到的数据进行实时地处理或者离线存储,为后续的数据分析和建模提供数据来源。需要采集的用户数据主要分为以下3类。

a)用户登录的基础数据

用户登录的基础数据主要包括用户的账号、登录时间、登录IP、登录的大区ID、角色ID和等级等内容。该类数据每次登录均需上报,服务器一方面可以存储用户的基础数据,另一方面可以分析用户在时间维度上的变化情况。

b)用户行为数据

用户行为数据主要包括用户在游戏内的所有操作数据,例如:购买道具、访问好友等。上报的用户数据越详尽,数据建模时可以使用的数据就会越充分,样本数据越丰富,用户的行为分析也就能越精确,进而对外挂用户甄别的准确度也就会越高。

c)用户心跳数据

用户心跳数据是开发者特意埋在游戏前端的数据源,在游戏正常打开或进行时规律性地上报的一种数据,该数据内容本身无意义。数据上报的规律性才是心跳数据的核心,因为它反映了用户的登录状态。

用户数据的采集方式和数据类型简化示意图如图2所示。

图2 基于用户数据采集方式和数据类型简化示意图

3.4 用户数据分析和建模

用户数据分析和建模是本文提出的反外挂方法的核心,为了全方位地评估用户的准确身份,一般的数据分析和建模会包括以下几个部分。

a)基本特征模型

基本特征模型的数据源是用户登录的基础数据,主要是对用户的基础信息做一个初步分析和筛选,基本特征模型的核心在于获取单用户的基本特征和用户群体的特征分布,进而为数据建模提供用户数据样本。

基本特征模型分析的关键信息包括以下几个方面。

1)单用户

收集一定时间内用户登录的基础数据,观察并统计用户的基本信息特征和变化情况,建立用户的基本信息库,例如:等级变化、经验变化和游戏币的变化等。

2)用户群

在不同的数据维度上统计和分析用户群体的特征,并基于高斯模型观察和统计不同维度用户的特征分布,例如:正常用户等级成长时间,获得主体用户的特征及其变化趋势,进而第一步定位和确认正常用户的特性和群体,初步筛选出样本用户。

基本特征模型的数据流入、流出简化示意图如图3所示。

图3 基本特征模型的数据流入流出简化示意图

根据用户特征仅能从简单的用户基础特征初步对用户分群,确认较粗略的用户画像 (用户在各项基本特征上的统计数据),更丰富的用户画像需要依赖于用户在游戏内的具体表现来确认。

b)规律数据模型

规律数据模型可以分析用户操作的规律行为,其数据源是单用户的行为数据,核心是判断用户行为在短时间内是否存在明显的规律性,规律性分析的切入点包含以下2部分。

1)规律操作

规律操作是针对单个类型的操作,统计和分析同类型的操作在一定时间段内累积出现的次数、总操作数占比以及变化的最大值,判断两个相邻同类型操作的时间间隔是否符合某种规律。

2)时间分片

规律性操作的规律性主要是体现在两次相邻操作的时间间隔的变化上,本文提出的方法采用5个不同粒度的时间切片,包含 [2,5]、 [5,10]、[10, 30]、 [30, 150]、 [150, 300]。 判断两个相邻单类型操作的时间间隔在变化范围内的最大值和数列的标准差是否满足既定的参考值,例如:[30,150]时间分片内操作数占比达到10%,则存满5个时间片,然后计算5个时间间隔的标准差,若算得的标准差小于1,则用户处于可疑状态。规律数据模型的数据流入、流出简化示意图如图4所示。

图4 规律数据模型的数据流入流出简化示意图

规律模型也只能针对较小时间片内指定的某些操作判断用户的行为是否存在既定的规律,针对较频繁进行某项操作的外挂有效,但若外挂用户故意打乱操作顺序,降低操作频率,该模型将不再适用。

c)行为兴趣模型

为了弥补规律性模型的局限性,本文进一步引入了行为兴趣模型,即分析用户在游戏内的常用操作或组合操作等特征,寻找用户的兴趣点。行为兴趣模型分析的用户数据的时间维度可以达到数小时,甚至是全天,主要分析的是用户在较长的时间内的游戏行为,统计和发现用户在游戏内的行为兴趣点,进而对整体用户分群,确认主体用户的兴趣分布,最后进行用户兴趣拟合,判断用户的行为是否属于正常操作。

1)单用户

单用户兴趣模型的核心维度是用户个体,分析的对象是用户的行为特征。根据单用户的行为数据可以获得单个用户在游戏内的主要操作或者操作组合,将用户的行为数据拓展到一定的时间区间,可以分析获得用户的游戏习惯,形成单用户的基本行为特征库,或者叫单用户兴趣群。

2)用户群

用户群兴趣模型的核心维度是行为特征,分析对象是用户或者用户群体,即统计所有的用户在游戏内的行为数据,可以观察和分析所有的用户在游戏中的核心操作和操作组合,基于用户分群的方法,可以获得不同操作和操作组合的用户群体,用户群体的大小可以通过行为序列的协方差矩阵的期望值等来调整。一般而言,游戏内群体越大的用户行为序列越趋近于正常用户的范畴,参考用户基本信息,最终选取正常的用户样本,并获得正常用户的兴趣行为序列组合。行为兴趣模型的数据流入、流出简化示意图如图5所示。

图5 行为兴趣模型的数据流入流出简化示意图

综合单用户的基本特征库、单个操作的频率分布以及所有操作和正常用户行为序列的匹配情况,基本上就可以确认用户是否为正常用户。

d)收益高频模型

利用规律数据模型和行为兴趣模型基本上就能确认用户为正常用户还是外挂用户,但是某些游戏版本存在缺陷,当部分用户利用这些缺陷频繁地使用某一个功能获得收益时,上述2种模型都将无法有效地对其进行预警和处理。因此,需要一个新的模型来监控游戏内所有操作的频率,进而评估游戏的运营安全状况。为了实现上述目的,本文基于用户数据建立了高频模型。高频模型的核心思想是动态分析所有用户所有操作的频次分布,例如:以天为单位,每天更新,并基于高斯分布的统计学原理,根据期望和标准差来确认安全的频率分布范围。高频模型相对简单,本文将不做过多的阐述。收益高频模型的数据流入、流出简化示意图如图6所示。

图6 收益高频征模型的数据流入流出简化示意图

3.5 登录验证组件

由于样本的局限性,上述几种模型并不能100%地准确确认用户的身份,因此需要对用户的身份进行再一次或者多次确认。由于页游的外挂大多为脱机挂,而脱机挂采用协议发包,不会进入正常的游戏页面,因而需要我们在游戏的前端加载多个登录验证组件来帮助我们判断用户的行为是否为正常游戏行为。组件能够定期地向后台服务器发送不同的心跳数据,通过分析这些心跳数据就可以判断用户是否正常登录游戏。若服务器持续收到用户的操作数据,但却未收到心跳等数据,服务器认为该行为可疑,则组件便会对用户弹出验证码,后台会根据验证码返回的状态信息,进一步地确认用户的行为是否属于正常游戏行为。该组件的出现可以极大地提高用户身份判断的准确性。

3.6 白名单模型校正

本文提出的方案的核心为用户数据,方案成功的关键在于用户行为建模的合理性和准确性,建模的准确性依赖于样本用户的准确性。为了保证样本用户选择规则的合理性和准确性,我们会选取大量的白名单,分别采用正常游戏行为,利用不同的外挂进行游戏,分析白名单在模型中被命中的概率和原因,进而优化判断规则和用户样本。

白名单的选取可以采用多种形式,本文采用了2种形式:1)建立用户游戏的诚信体系,从诚信体系中选取排名靠前的用户,诚信体系覆盖了运营商所有的正在运营的游戏;2)官方专门新建一部分号码,基础信息匹配单个游戏的分布规则,采用正常和非正常操作模式进行游戏,作为参考系。白名单校验的数据流向简化示意图如图7-8所示。

图7 基础特征和行为兴趣模型用户样本校正的数据流向简化示意图

图8 规律数据和收益高频模型用户和操作校正的数据流向简化示意图

3.7 方案效果

基于本文提出的上述理论,我们搭建了完整的测试体系并选定了某些游戏,在这些游戏中应用该测试体系,得到的结果如图9-11所示。

由图9-11可知,结合登录验证组件和白名单进行校验并持续优化,本文提出的方法可以有效地打击游戏的外挂用户。但是,由于外挂版本的不断更新,以及游戏自身版本的不断更新,上报的数据类型也会不断地变化,因此需要持续地对所有的行为模型进行维护和训练。整体外挂打击的曲线是一个高低起伏,整体趋势向下的曲线。

4 结束语

图9 基于基础特征和行为兴趣的模型定位的外挂用户在处罚后的变化趋势

图10 基于行为规律模型的命中的外挂用户在打击后的变化趋势

图11 校验优化后的收益高频模型定位的外挂操作和用户数示意图

综上所述,本文基于用户自身的数据,包括基础数据和行为数据,采用合适的分析和建模方法,并结合前端安全组件以及白名单,提出了一种基于用户数据分析的网页游戏反外挂方法,该方法可以准确有效地判断出用户当前是否使用外挂,进而对外挂用户进行封号或者封操作等处罚,对于改善页游的安全状况,维护游戏的正常秩序具有一定的积极意义。

[1]游戏工委 (GPC),CNG中新游戏研究 (伽马数据)国际数据公司 (IDC).2014年中国游戏产业报告(摘要版) [M].北京:中国书籍出版社,2014.

[2]兰晓,尹杰.中国网络游戏外挂问题现状分析 [J].软件, 2010, 31 (10): 71-77.

[3]LAN Xiao, ZHANG Yichun, XU Pin.An overview on game cheating and its counter-measures[C]//Proceedings of 2009 International Symposium on Computer Science and Computational Technology (ISCSCT 2009) .Huang-Shan China, 2009: 195-200.

[4]余艳玮,周学海,许华杰.网游自动反外挂系统的设计与实现 [J].通信技术,2012,45(5):17-20.

[5]高翔,张旸旸.游戏软件反外挂技术方案的设计和实现方法 [J].广西科学院学报,2009,25(4):327-329,332.

[6]ATTALLAH M J, BRYANT E D, STYTZ M R.A survey of anti-tamper technologies[J].Journey of Defense Software Engineering, 2004, 17 (11): 12-16.

[7]GREG Hoglund, GARY McGraw.Exploiting online games:cheating massively distributed systems[M].Addison-Wesley Professional, 2007: 14-25, 30-40.

[8]MONCH C, GRIMENT G, MIDTST R.Protecting online games against cheating[C]//Proceedings of 5th ACM SIGCOMM workshop on Network and system support for games.New York,USA,ACM,2006:20-30.

[9]GOLLE P,DUCHENEAUT N.Preventing bots from playing online games[J].Computers in Entertainment, 2005, 3(3): 3-12.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!