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


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

手游外掛八大危害

 

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

 

《夢幻誅仙手游》的加入

《夢幻誅仙手游》是由祖龍(天津)科技有限公司研發的一款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 申請預約!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM