您的位置:首頁>遊戲>正文

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

作者:sheldon, 騰訊遊戲漏洞測試高級工程師

原文連結:http://wetest.qq.com/lab/view/317.html

隨著智慧手機的全面普及和市場泛娛樂化, 移動遊戲行業發展迅猛, 無論是市場收入還是使用者規模,

手遊在遊戲市場上已經佔據了半壁江山。 如此火熱的市場吸引了大量外掛、輔助工作室等非法盈利團隊, 嚴重影響了遊戲的收益、平衡, 縮短遊戲的生命週期, 外掛對手游形成了這些危害:

手遊外掛八大危害

為了避免這些損害,

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

《夢幻誅仙手遊》的加入

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

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

在順利上線後, 騰訊WeTest團隊整理了《夢幻誅仙手游》安全測試過程中的一些思路和實踐內容, 對外分享。

一、技術難點

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

二、實現方案

1、測試目標

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

測試前分析

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

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

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

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

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

3、進行0、負值,資料溢出攻擊,併發等漏洞挖掘方式。

2、測試中發現問題

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

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

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

【示例】

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

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

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

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

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

【示例】

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

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

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

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

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

【示例】

漏洞描述:寵物加點協定發送一鍵異常值後導致寵物戰力猛增,寵物直接戰鬥無敵。通過錄製寵物加點協議,然後修改value欄位的值為 2147483647,導致寵物戰力值異常增大。

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

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

三、解決方法

如何修復盜刷類漏洞?

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

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

如何修復宕機類漏洞?

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

四、最終效果

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

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

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

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

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

目前功能已正式對外開放!可以訪問騰訊WeTest預約測試!

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

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

3、進行0、負值,資料溢出攻擊,併發等漏洞挖掘方式。

2、測試中發現問題

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

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

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

【示例】

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

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

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

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

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

【示例】

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

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

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

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

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

【示例】

漏洞描述:寵物加點協定發送一鍵異常值後導致寵物戰力猛增,寵物直接戰鬥無敵。通過錄製寵物加點協議,然後修改value欄位的值為 2147483647,導致寵物戰力值異常增大。

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

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

三、解決方法

如何修復盜刷類漏洞?

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

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

如何修復宕機類漏洞?

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

四、最終效果

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

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

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

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

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

目前功能已正式對外開放!可以訪問騰訊WeTest預約測試!

Next Article
喜欢就按个赞吧!!!
点击关闭提示