網(wǎng)易云安全(易盾)移動安全技術(shù)專家卓輝在Unity技術(shù)開放日現(xiàn)場
以下內(nèi)容根據(jù)卓輝現(xiàn)場分享整理,有部分改動:
手游安全風(fēng)險
手游安全問題原因分析
相比以前端游時代,手游開發(fā)基本上是腳本為主,開發(fā)迭代的周期比較短,但是同樣降低了逆向分析的門檻,破解者分析整個游戲變得更加容易。另一方面,一些重本地交互的手游的數(shù)據(jù)是放在客戶端計算,服務(wù)端對客戶端控制相對較弱,可以通過篡改客戶端的數(shù)據(jù)來達到作弊效果。第三,對普通玩家來講,安卓模擬器有很多,在模擬器作弊變得更加簡單。第四就是端游時代所用的保護方案,如驅(qū)動保護,在手機端沒有辦法用,手機端對于APK的權(quán)限限制更加嚴格。而對于破解工作室來講,手游時代的成本更低,比如空間成本、電力成本、機器成本、破解成本,這樣導(dǎo)致大量端游打金工作室涌入手游吸金,給手游的生態(tài)帶來了極大的挑戰(zhàn)。
手游威脅
Unity引擎安全風(fēng)險
對于強校驗的MMORPG手游來講,通過逆向,導(dǎo)致整個通信協(xié)議直接被分析,客戶端和服務(wù)端的通信毫無保留的呈現(xiàn)在破解者面前,他可以修改數(shù)據(jù)包、發(fā)送帶欺騙性的數(shù)據(jù)包,最終可能開發(fā)出脫離客戶端的外掛,通過封包來模擬客戶端行為,這會嚴重危害手游的平衡性。
另外很多手游雖然有很強的校驗,但是對于場景中角色可移動區(qū)域的判斷、角色攻擊范圍的判斷、角色攻擊行為的判斷還是比較弱,這樣通過破解可以達到,穿墻、自動瞄準(zhǔn)、遠程攻擊等作弊效果,對正常玩家的沖擊相當(dāng)厲害,最終玩家會慢慢流失。
對于弱校驗和單機類的手游,可以導(dǎo)致內(nèi)購被破解,角色屬性被修改,導(dǎo)致玩家不需要付費就可以達到甚至超過付費玩家的水平,這會大大打擊付費玩家的積極性,最終影響開發(fā)商收益。
Unity引擎安全解決方案
如何保護Unity引擎安全?很多開發(fā)團隊可能也有自己開發(fā)加固保護系統(tǒng)的打算,如果要做好這套保護系統(tǒng),需要解決很多問題,主要包括以下四個:
第一、保護方案自研成本比較高,需要不斷調(diào)研、不斷改進,不但需要了解破解流程,還需要深度掌握Unity引擎的運行原理。
第二、安卓的兼容性問題,安卓設(shè)備碎片化嚴重,系統(tǒng)版本升級、用戶環(huán)境多樣化。需要不斷完善解決方案。網(wǎng)易在這一塊積累了很長時間,才開發(fā)出一套在性能、兼容性和安全強度都滿足的保護方案。如果游戲開發(fā)團隊自研,兼容性會占用團隊大量時間,降低游戲核心邏輯開發(fā)速度。
第三、對于破解來說,本身保護工作是一個矛和盾的過程,是不斷升級和不斷對抗的過程。如果游戲開發(fā)團隊要去自研保護系統(tǒng),需要分析市面上的破解工具,并不斷分析他們破解的方法,然后才能不斷提高整個保護系統(tǒng)強度。
第四、第三方服務(wù)的兼容性,游戲現(xiàn)在越來越是一個精細化開發(fā)的模式,很多游戲團隊只做一些核心的邏輯玩法的開發(fā), 所以保護就需要兼容支付模塊、熱更新方案及質(zhì)量跟蹤等各種第三方服務(wù)。而兼容這些第三方的服務(wù),又給游戲開發(fā)團隊帶來了很大的挑戰(zhàn)。
另外傳統(tǒng)的腳本加密方法也會存在兩個問題。一個是靜態(tài)保護逆向分析難度不高,定位解密算法容易;另一個是動態(tài)保護較弱,反調(diào)試、反HOOK、反DUMP等保護強度不高,非公開的解密方法沒有防護。
要改進傳統(tǒng)加密方法并打造安全的保護方案,首先需要解決以下四個問題:
第一個就是要提供足夠高效的保護方案。對于游戲保護來講,核心點是不能影響游戲運行的性能,不能影響玩家體驗,要既能滿足保護強度、也能滿足性能要求。
第二就是腳本解密的算法和加載函數(shù)足夠復(fù)雜,可以抗靜態(tài)和動態(tài)分析,讓破解者無法獲取解密流程。
第三就是能夠防HOOK,防止在關(guān)鍵API上被下勾子,從而防止動態(tài)拷貝內(nèi)存。
第四是防DUMP,即使全內(nèi)存搜索也讓破解者找不到DLL文件。
網(wǎng)易云安全團隊提供的解決方案加載原理,如下圖所示:
Unity資源保護這一塊原理也類似,處理unity.so的文件,當(dāng)這個資源請求發(fā)出以后,可以把加密后的資源文件進行解密,因為有很多3D游戲資源非常大,有一些有幾百兆,所以對加密方案和算法進行了極大的優(yōu)化,可以保證資源文件解密的時間最多只要10ms,不會影響游戲的性能,對玩家無感知,以及對于游戲的FPS都沒有影響。另外資源加密對于游戲開發(fā)也是完全透明的。
通過一張概覽圖來看網(wǎng)易云安全的加固服務(wù)針對手游提供的功能: