1. 程式人生 > >夢幻成仙,誅滅外掛——《夢幻誅仙手遊》的阻擊外掛之旅

夢幻成仙,誅滅外掛——《夢幻誅仙手遊》的阻擊外掛之旅

超過 ext 客戶端 left ron 相加 功能 出現 成本

隨著智能手機的全面普及和市場泛娛樂化,移動遊戲行業發展迅猛,無論是市場收入還是用戶規模,手遊在遊戲市場上已經占據了半壁江山。如此火熱的市場吸引了大量外掛、輔助工作室等非法盈利團隊,嚴重影響了遊戲的收益、平衡,縮短遊戲的生命周期,外掛對手遊形成了這些危害:

技術分享

手遊外掛八大危害

為了避免這些損害,騰訊遊戲內部的測試流程已經將“手遊安全測試”設立為必經環節,騰訊大部分手遊上線前都會進行手遊安全測試,《王者榮耀》、《穿越火線:槍戰王者》等六星級遊戲更是每一個版本都主動尋求手遊漏洞掃描。《夢幻誅仙手遊》同樣也是如此。

《夢幻誅仙手遊》的加入

《夢幻誅仙手遊》是由祖龍(天津)科技有限公司研發的一款3D角色、2D場景的回合制手遊,該作由騰訊遊戲運營,於2016年12月13日正式公測。

為了提前暴露遊戲中潛在的安全風險,最大程度降低上線後外掛打擊成本,《夢幻誅仙手遊》測試團隊選擇與騰訊WeTest合作,使用手遊安全測試專家模式,對遊戲的客戶端、服務器、以及通信協議方面的安全質量進行全面檢測和把控,WeTest手遊安全團隊針對遊戲核心玩法和遊戲中高價值產出點重點進行漏洞挖掘。在順利上線後,騰訊WeTest團隊整理了《夢幻誅仙手遊》安全測試過程中的一些思路和實踐內容,對外分享。

一、技術難點

《夢幻誅仙手遊》屬於重度MMORPG類型,遊戲功能系統包含戰力成長相關系統、交易系統、寵物系統、門派、上古戰場、世界BOSS、跨服戰、家園系統,各種類型副本以及運營活動等超過50個功能系統,如何在短時間內全面地完成全量內容的安全漏洞挖掘是當時面臨的最大挑戰。手遊安全測試團隊一方面使用函數風險智能分析系統、盜刷漏洞掃描和拒絕服務攻擊掃描對遊戲進行一輪漏洞自動化檢測,另一方面根據各功能風險性和優先級對遊戲的戰鬥系統、交易所和戰力成長系統進行深度分析和漏洞挖掘。

二、實現方案

測試目標

根據手遊安全測試團隊對騰訊遊戲多年的測試經驗,手遊安全漏洞主要會出現在客戶端、遊戲邏輯和服務器三個層面,為了整體全面的發現手遊外掛情況,測試團隊將手遊外掛的風險項細化情況如下:
技術分享

測試前分析

前文提到不同手遊玩法都會使用不同的技術實現,因此在《夢幻誅仙手遊》安全測試之初,WeTest安全團隊對遊戲進行了一個詳細的分析與拆解。

《夢幻誅仙手遊》核心玩法包括回合制的PVP與多人PVE,經過對戰鬥過程中服務器與客戶端間通信協議的分析,總結遊戲特點為戰鬥實時性要求很弱,客戶端的每次操作均有協議上報,屬於服務器強校驗遊戲。鑒於以上特性,WeTest手遊安全測試團隊確定主要采用協議安全的測試方法為主,函數修改與內存修改測試方法為輔。

以《夢幻誅仙手遊》某個版本為例,根據該版本的新增內容,WeTest手遊安全測試團隊相應的把測試重點聚焦在:

1、經濟系統,商會、商城、擺攤、交易行、背包出售。

2、戰鬥力相關,角色屬性,技能、裝備、法寶、羽翼、寵物、仙侶等。

3、進行0、負值,數據溢出攻擊,並發等漏洞挖掘方式。

測試中發現問題

根據測試前分析確定測試重點後,漏洞挖掘的工作其實就完成了一大半,之後利用安全測試工具對風險進行逐一驗證即可。在遊戲中發現以下幾種類型的漏洞,均屬於致命級漏洞:

1、經濟系統——致命級安全風險

各個交易系統服務器都對協議中各個字段都有校驗,道具購買數量做了0,負值判斷,並且服務器對購買個數有上限限制,不同物品限制個數不同。由於購買邏輯,不同物品服務器處理邏輯不一致,導致積分兌換中通過購買可堆疊物品時未做個數限制,導致數據溢出引發服務器耗盡內存宕機。

【示例】

漏洞描述:積分商城使用競技場積分購買藏寶圖,修改協議中字段數量為一個很大的值,導致服務器內存耗盡,遊戲無法登錄遊戲內無法進行任何操作。
技術分享

技術分享

修改購買數量為一個很大的值,導致服務器宕機

影響面分析:修改商城購買數量,導致服務器宕機,全服玩家無法遊戲。

2、角色屬性系統——致命級安全風險

角色屬性加點對各個正常邏輯字段均有校驗,唯獨對加點數值未做負值判斷和溢出處理,導致修改次要屬性為負值可以獲取更多點數分配到主要屬性,由於未做數據溢出保護,臨界負值相加出現數據溢出,導致結果為超大正值,從而引發刷任意屬性值。

【示例】

漏洞描述:夢幻誅仙有多種職業,每個職業有多種屬性,根據職業的不同屬性加點時配置不同的屬性。服務器未做加點屬性的負值做判斷,可以通過發送負值任意將降低其他屬性從而增強該職業的主要屬性。 物攻職業削減法術屬性以增強其他屬性。
技術分享

技術分享

通過錄制加點協議將某屬性修改為負值,將增加的屬性點分配到其他屬性

影響面分析:任意修改角色屬性,嚴重破壞遊戲玩法。

3、寵物系統——致命級安全風險

寵物屬性加點同角色屬性加點,對各個正常邏輯字段均有校驗,唯獨對加點數值未做負值判斷和溢出處理,導致修改次要屬性為負值可以獲取更多點數分配到主要屬性,由於未做數據溢出保護,臨界負值相加出現數據溢出,導致結果為超大正值,從而引發刷任意屬性值。

【示例】

漏洞描述:寵物加點協議發送一鍵異常值後導致寵物戰力猛增,寵物直接戰鬥無敵。通過錄制寵物加點協議,然後修改value字段的值為 2147483647,導致寵物戰力值異常增大。
技術分享

技術分享

通過修改數值導致寵物戰鬥力異常增大

影響面分析:使用戰力異常的寵物參加戰鬥可以橫掃副本,嚴重影響遊戲平衡,導致玩家可以大量獲取收益。

三、解決方法

如何修復盜刷類漏洞?

√ 遊戲研發初期,規範遊戲通信協議定義,對協議結構中字段數和字段類型進行安全性檢查

√ 服務器處理購買、結算等物品發放請求時,需要加強對請求中各項信息合法性校驗,另外運營側可以接入運營經分系統,對各種道具和金錢的產出進行實時監控與告警。

如何修復宕機類漏洞?

√ 因程序健壯性導致的服務器宕機漏洞被檢測出之後,修復起來比較簡單,針對性做好異常值處理就能夠修復。

四、最終效果

在項目測試階段,手遊安全測試團隊累積為《夢幻誅仙手遊》挖掘出了20個致命級漏洞,19個高危級漏洞,28個中危級漏洞,將遊戲中潛在的盜號、物品盜刷、偽造身份、服務器宕機等各類致命級、高危級漏洞提前揭露出來,提前制定修復方案進行修復,並評估和驗收結果與風險。

WeTest手遊安全測試為《夢幻誅仙手遊》線上運營提供安全保駕護航,項目上線後未發生安全方面的運營故障,為用戶提供安全、公平、健康的遊戲環境提供了堅實技術支撐和安全保障。


關於騰訊WeTest手遊安全測試團隊

騰訊WeTest手遊安全測試團隊從2011年初開始對手遊安全領域進行探索和技術積累,旨在通過提前發現遊戲版本的安全漏洞,預警風險,打造出業界領先的手遊安全測試技術方案,在工具上已經支持所有騰訊在研和運營的手遊項目。團隊通過使用與正式服同樣的遊戲客戶端和服務器,模擬外掛工作室制作外掛的過程,依靠自身的技術積累來提高專業程度,持續保持漏洞的發現率。

目前提供了專家測試服務,希望通過提前發現遊戲版本的安全漏洞,預警風險,幫助提高騰訊遊戲的品牌和口碑。

目前功能已正式對外開放!如需接入請聯系企業QQ:800024531。或者點擊鏈接:http://wetest.qq.com/product/sr 申請預約!

夢幻成仙,誅滅外掛——《夢幻誅仙手遊》的阻擊外掛之旅