網(wǎng)易云安全(易盾)移動安全技術(shù)專家卓輝在Unity技術(shù)開放日現(xiàn)場

  以下內(nèi)容根據(jù)卓輝現(xiàn)場分享整理,有部分改動:

 手游安全風(fēng)險(xiǎn)

  手游安全問題原因分析

相比以前端游時(shí)代,手游開發(fā)基本上是腳本為主,開發(fā)迭代的周期比較短,但是同樣降低了逆向分析的門檻,破解者分析整個(gè)游戲變得更加容易。另一方面,一些重本地交互的手游的數(shù)據(jù)是放在客戶端計(jì)算,服務(wù)端對客戶端控制相對較弱,可以通過篡改客戶端的數(shù)據(jù)來達(dá)到作弊效果。第三,對普通玩家來講,安卓模擬器有很多,在模擬器作弊變得更加簡單。第四就是端游時(shí)代所用的保護(hù)方案,如驅(qū)動保護(hù),在手機(jī)端沒有辦法用,手機(jī)端對于APK的權(quán)限限制更加嚴(yán)格。而對于破解工作室來講,手游時(shí)代的成本更低,比如空間成本、電力成本、機(jī)器成本、破解成本,這樣導(dǎo)致大量端游打金工作室涌入手游吸金,給手游的生態(tài)帶來了極大的挑戰(zhàn)。

  手游威脅

  

  如此熱門的手游破解領(lǐng)域,手游到底經(jīng)受著哪些安全問題的困擾?首先就是游戲外掛,這個(gè)從端游時(shí)代就出現(xiàn)的問題也困擾著手游,自動打怪、自動升級等輔助類外掛能夠代替手工操作,讓整個(gè)手游完全自動化,這樣雖然表面上提高了單個(gè)用戶時(shí)長,實(shí)際上這都是無效的時(shí)間,因?yàn)檫@樣會大大降低游戲互動性,增加其它玩家的游戲成本,從而流失真正用戶;其次就是游戲破解,破解游戲協(xié)議,找到游戲漏洞,或者直接模擬數(shù)據(jù)發(fā)包,嚴(yán)重威脅游戲的平衡性,縮短游戲的生命周期,大大增加開發(fā)團(tuán)隊(duì)的開發(fā)成本;手游還存在很多游戲加速器和篡改器,玩家可以很方便下載到這些工具,用來修改游戲數(shù)據(jù),直接影響游戲平衡,流失付費(fèi)玩家。

Unity引擎安全風(fēng)險(xiǎn)

 

  網(wǎng)易安全團(tuán)隊(duì)分析了公司內(nèi)外很多Unity游戲的安全問題,概括來講就是靜態(tài)數(shù)據(jù)安全(腳本和資源)、動態(tài)數(shù)據(jù)安全(角色動態(tài)數(shù)據(jù)、運(yùn)行速度)和收益安全(支付和廣告)。Unity引擎的腳本文件作為一個(gè)DLL文件存在,可以用Reflector工具進(jìn)行反編譯,得到如下圖所示代碼:

 

  整個(gè)游戲的腳本代碼毫無保留的呈現(xiàn)出來,對破解者來講,相當(dāng)于和開發(fā)團(tuán)隊(duì)一樣擁有了游戲的源代碼。如果用Unity Studio反編譯U3D引擎的資源文件,也可以拿到相關(guān)游戲的資源數(shù)據(jù),如下圖所示:

 

  那么這些破解會帶來哪些危害?

對于強(qiáng)校驗(yàn)的MMORPG手游來講,通過逆向,導(dǎo)致整個(gè)通信協(xié)議直接被分析,客戶端和服務(wù)端的通信毫無保留的呈現(xiàn)在破解者面前,他可以修改數(shù)據(jù)包、發(fā)送帶欺騙性的數(shù)據(jù)包,最終可能開發(fā)出脫離客戶端的外掛,通過封包來模擬客戶端行為,這會嚴(yán)重危害手游的平衡性。

另外很多手游雖然有很強(qiáng)的校驗(yàn),但是對于場景中角色可移動區(qū)域的判斷、角色攻擊范圍的判斷、角色攻擊行為的判斷還是比較弱,這樣通過破解可以達(dá)到,穿墻、自動瞄準(zhǔn)、遠(yuǎn)程攻擊等作弊效果,對正常玩家的沖擊相當(dāng)厲害,最終玩家會慢慢流失。

對于弱校驗(yàn)和單機(jī)類的手游,可以導(dǎo)致內(nèi)購被破解,角色屬性被修改,導(dǎo)致玩家不需要付費(fèi)就可以達(dá)到甚至超過付費(fèi)玩家的水平,這會大大打擊付費(fèi)玩家的積極性,最終影響開發(fā)商收益。

  Unity引擎安全解決方案

如何保護(hù)Unity引擎安全?很多開發(fā)團(tuán)隊(duì)可能也有自己開發(fā)加固保護(hù)系統(tǒng)的打算,如果要做好這套保護(hù)系統(tǒng),需要解決很多問題,主要包括以下四個(gè):

第一、保護(hù)方案自研成本比較高,需要不斷調(diào)研、不斷改進(jìn),不但需要了解破解流程,還需要深度掌握Unity引擎的運(yùn)行原理。

第二、安卓的兼容性問題,安卓設(shè)備碎片化嚴(yán)重,系統(tǒng)版本升級、用戶環(huán)境多樣化。需要不斷完善解決方案。網(wǎng)易在這一塊積累了很長時(shí)間,才開發(fā)出一套在性能、兼容性和安全強(qiáng)度都滿足的保護(hù)方案。如果游戲開發(fā)團(tuán)隊(duì)自研,兼容性會占用團(tuán)隊(duì)大量時(shí)間,降低游戲核心邏輯開發(fā)速度。

第三、對于破解來說,本身保護(hù)工作是一個(gè)矛和盾的過程,是不斷升級和不斷對抗的過程。如果游戲開發(fā)團(tuán)隊(duì)要去自研保護(hù)系統(tǒng),需要分析市面上的破解工具,并不斷分析他們破解的方法,然后才能不斷提高整個(gè)保護(hù)系統(tǒng)強(qiáng)度。

第四、第三方服務(wù)的兼容性,游戲現(xiàn)在越來越是一個(gè)精細(xì)化開發(fā)的模式,很多游戲團(tuán)隊(duì)只做一些核心的邏輯玩法的開發(fā), 所以保護(hù)就需要兼容支付模塊、熱更新方案及質(zhì)量跟蹤等各種第三方服務(wù)。而兼容這些第三方的服務(wù),又給游戲開發(fā)團(tuán)隊(duì)帶來了很大的挑戰(zhàn)。

另外傳統(tǒng)的腳本加密方法也會存在兩個(gè)問題。一個(gè)是靜態(tài)保護(hù)逆向分析難度不高,定位解密算法容易;另一個(gè)是動態(tài)保護(hù)較弱,反調(diào)試、反HOOK、反DUMP等保護(hù)強(qiáng)度不高,非公開的解密方法沒有防護(hù)。

  要改進(jìn)傳統(tǒng)加密方法并打造安全的保護(hù)方案,首先需要解決以下四個(gè)問題:

第一個(gè)就是要提供足夠高效的保護(hù)方案。對于游戲保護(hù)來講,核心點(diǎn)是不能影響游戲運(yùn)行的性能,不能影響玩家體驗(yàn),要既能滿足保護(hù)強(qiáng)度、也能滿足性能要求。

第二就是腳本解密的算法和加載函數(shù)足夠復(fù)雜,可以抗靜態(tài)和動態(tài)分析,讓破解者無法獲取解密流程。

第三就是能夠防HOOK,防止在關(guān)鍵API上被下勾子,從而防止動態(tài)拷貝內(nèi)存。

第四是防DUMP,即使全內(nèi)存搜索也讓破解者找不到DLL文件。

 

  具體實(shí)現(xiàn)方法如上圖所示,只有做到靜態(tài)和動態(tài)全方面保護(hù),保護(hù)方法才能抵抗各種破解,各種分析。

網(wǎng)易云安全團(tuán)隊(duì)提供的解決方案加載原理,如下圖所示:

 

  手游開始運(yùn)行后,系統(tǒng)首先會去加載Unity的Mono的so文件,這個(gè)so文件已經(jīng)被網(wǎng)易云加固處理過,對so文件和相應(yīng)API進(jìn)行了保護(hù),并同時(shí)會加載游戲安全模塊。當(dāng)游戲進(jìn)程讀取腳本文件時(shí)候,就會進(jìn)入mono文件,這個(gè)時(shí)候可以完成DLL處理工作,讓Unity引擎可以正常加載加密的腳本文件。整個(gè)過程對開發(fā)者透明,游戲開發(fā)并不需要在開發(fā)的時(shí)候介入或者做什么操作。

Unity資源保護(hù)這一塊原理也類似,處理unity.so的文件,當(dāng)這個(gè)資源請求發(fā)出以后,可以把加密后的資源文件進(jìn)行解密,因?yàn)橛泻芏?D游戲資源非常大,有一些有幾百兆,所以對加密方案和算法進(jìn)行了極大的優(yōu)化,可以保證資源文件解密的時(shí)間最多只要10ms,不會影響游戲的性能,對玩家無感知,以及對于游戲的FPS都沒有影響。另外資源加密對于游戲開發(fā)也是完全透明的。

通過一張概覽圖來看網(wǎng)易云安全的加固服務(wù)針對手游提供的功能:

 

  要打造一個(gè)既安全又高效的保護(hù)方案,需要團(tuán)隊(duì)不斷投入人力和時(shí)間進(jìn)行更新、升級,不斷研究破解方法。穩(wěn)定可靠的第三方服務(wù)既可以有效降低手游安全風(fēng)險(xiǎn),幫助開發(fā)團(tuán)隊(duì)在核心業(yè)務(wù)上贏得更多時(shí)間和精力,降低成本,同時(shí)提高保護(hù)效果。通過網(wǎng)易多年內(nèi)部安全服務(wù)的技術(shù)經(jīng)驗(yàn)積累,網(wǎng)易云安全(易盾)的應(yīng)用加固形成了一套成熟高效的移動安全解決方案,已為公司內(nèi)外數(shù)百款手游提供安全保障。多個(gè)手游技術(shù)負(fù)責(zé)人表示,在接入了網(wǎng)易云安全(易盾)加固服務(wù)之后,游戲破解率直線下降,反外掛功能也大幅降低了外掛入侵,游戲安全隱患得到了及時(shí)有效的扼制。
分享到

songjy

相關(guān)推薦