移动安全 安全管理 应用案例 网络威胁 系统安全应用安全 数据安全 云安全
当前位置: 主页 > 信息安全 > 应用安全 >

网络游戏安全小议(端游/页游/手游)

时间:2013-03-11 14:59来源: 点击:
网络游戏安全小议(端游/页游/手游)
Tags钓鱼网站(210)帐号安全(7)网络游(2)  

  一、网络游安全

  一直很想知道魔兽的游戏安全工程师是如何做游戏安全的,毫无疑问,魔兽是目前最流行的网络游戏,有着众多经验丰富的黑客在利润驱动的情况下以这款游戏的外挂作弊技术谋生,游戏黑客的作弊技能在《网络游戏安全解密》这本书里有提到(这是目前为止唯一的质量较高的游戏安全专门书籍),但游戏安全工程师是如何防御的就比较神秘了。咨询过一些做游戏安全的,都倾向于将防御手段隐藏起来,因此在游戏安全研究上基本靠游戏黑客提供资料。

  网络游戏安全很有意思,首先网络游戏安全代表了最高的软件技术(想想MMO可是数以十万计的用户在实时交互,多大的挑战),其次网络游戏的虚拟经济和现实经济之间存在直接的联系(想想上游戏点卡,游戏道具,游戏代练交易,多大的利益诱惑),再次网络游戏安全的重要经验可以直接适用于其他软件(通用性对安全工作者很有帮助),最后游戏安全不仅是技术问题也是法律问题,例如对游戏破坏者的法律制裁,如何平衡玩家隐私权利以及如何保护游戏不被破解(例如使用rooktkit技术检测玩家电脑是否有游戏破坏程序运行的方法涉及个人电脑隐私问题,当然这点也是面临的问题)。

  网络游戏安全将的大多数方面的串联起来了。例如网络帐号的安全(游戏拖库),网络充值的安全,的安全这些属于网络安全的领域;例如客户端的安全,反调试,反逆向,反Hook属于软件安全的领域;还有其他的,例如游戏欺诈(冒充工作内容骗取帐号密码,,帐号纠纷),内部员工(GM的事件爆的最多)非法交易,游戏分级(儿童游戏保护,防沉迷系统)。游戏外挂的逆向分析以及外挂检测与防御就与杀毒行业非常像(想想恶意软件样本分析,游戏外挂对游戏而言就是)。简单的说优秀的游戏安全工作者要既是hacker也是cracker,既要懂技术也要懂侦查。

  二、游戏攻击手段

  博客中有介绍过手游与页游的攻击方法及相应的工具,但没有端游的(我没有端游的安全工作经历,这也是没法说自己是个游戏安全工作者的原因,我觉得没做过端游安全的不是真正的游戏安全工程师),从游戏的共性来说,网络游戏的本质就是客户端与服务端的数据,攻击的对象就是一系列的数据,游戏安装生成的客户端数据(可执行文件,动态链接库,存档文件,资),游戏运行时在进程中的数据、界面数据、时钟数据,游戏通信时从流出的数据,

  我们知道游戏的攻击手段(外挂)总的来说为以下几种:

  1.游戏 端游和页游中广泛存在,例如对战类游戏的自动打怪外挂,手游暂未出现该类型外挂

  2. 内存修改 端游、页游,手游都存在,对端游和页游在单机和弱联网时代比较流行,但随着网游的大方向,这种作弊手段的有效性逐渐弱化,对手游目前为主流作弊手段

  3.存档修改 同内存修改,端游、页游,手游都存在,对端游和页游在单机和弱联网时代比较流行,但随着网游的大方向,这种作弊手段的有效性逐渐弱化,对手游目前为主流作弊手段

  4.封包修改 网络游戏的核心作弊手段,分为脱机挂(不依赖于官方发布的客户端程序,由外挂完全模拟客户端去与进行通信)、内挂(以游戏客户端程序为载体,依靠客户端程序来完成与游戏服务器的通讯),(与脱机挂相反,是完全模拟了官方服务器)。这种类型外挂一般都先通过逆向客户端得到协议(封包)生成算法,然后hook ws2_32.dll(windows sockets的应用程序接口)的send(),receive()函数来重写封包.

  5. 常见与对战类游戏,例如页游通过加速动画播放速度来快速对战

  6.安装包Patch 常见于端游与手游这种富客户端的,例如修改下载的IPA包,去除掉版权保护还原加密部分,例如重打包的包,使试用版变成完整版(verycd上一堆的破解端游)

  7.runtime 攻击(API Hook) 常见于端游与手游这种富客户端的,API hook 运行戏进程,替换原始的动态链接库(windows上的dll,iOS上的dylib,Android上的so),例如iOS上的免费内购外挂。

  8.服务端配置漏洞 例如未上线商品配置为可购买,例如过期运营活动未及时下线

  9.游戏逻辑漏洞 例如游戏经济系统设计的漏洞(经济系统失衡),比如说可以通过创建多个小号将系统赠送的初始物品转移到大号上;例如游戏中个人私密数值可以被其他玩家查看甚至修改;例如超级火爆的宠物精灵对战游戏(魔兽都出了宠物对战,可见有多火了)就会出现新捕捉的初始精灵未初始化而在某些操作中大量获得物品

  10.游戏运行平台的安全问题 例如越狱iOS设备与root后的Android设备就破坏了原本的安全机制,使得设备上运行的游戏需要考虑额外的威胁

  11.帐号安全 属于web常见漏洞

  12.充值安全 属于web常见漏洞

  13.游戏欺诈 帐号归属纠纷,冒充游戏充值网站的钓鱼网站,冒充游戏外挂(特别是号称可以刷游戏币的)的恶意软件,冒充官方工作人员骗取帐号,在游戏中发送恶意中奖信息

  14.游戏服务器的拒绝服务攻击 大并发的请求拖垮服务器

  其中 4.封包修改最广泛,6.安装包Patch 和7.runtime 攻击最据技术含量(其实游戏外挂的最终形态还是从内核操纵客户端)

  三、游戏攻击产业

  依靠游戏攻击盈利是很成熟的产业链,有专门做游戏外挂制作培训的,有专业做外挂制作人员招聘的,有专业做游戏代练或游戏虚拟物品交易的(现阶段的游戏黑客们都比较聪明的选择贩卖外挂服务而不是外挂本身,理由一,卖外挂的方式会让游戏公司的安全人员通过外挂分析快速定位游戏漏洞并给予修复及相应的加固防御。理由二,卖外挂的方式会给法律投诉留下明确的证据。理由三,卖服务的盈利次数明显高于卖外挂),有专业做游戏私服的(游戏私服很大程度上需要拿到源码,可以通过买通内部人员或社工公司内外获得源码),有专业做游戏盗号与钓鱼的,有以游戏外挂为噱头做广告流量的。

  四、游戏外挂制作

  正面的来说通过学习外挂制作也能提高it技能,例如要写一款基本的外挂(以端游外挂为例),我们需要掌握以下技能

  第一步:.学会一种语言,++最好,c#也不错(c#适用于跨平台),虽然现在很多外挂都是E语言写的,不过最好还是学开发在用的语言;

  第二步:会简单的分析游戏,可以使用工具分析游戏窗口,控件,进程,线程,DLL,内存;

  第三步:熟悉windows API,可以编写进程线程操作,内存读写,鼠标键盘模拟;

  第四步:学会用cheat engine查找动态内存基址;

  第五步:学会使用ollydbg来调试游戏找关键CALL 找到一些关键的功能函数入口地址,并分析出该函数的参数,就可以编写CALL代码,来直接调用游戏中的函数,让其实现自动化.

  第六步:学会编写call代码;

  第七步:会加密解密封包。

------分隔线----------------------------

推荐内容