原創(chuàng)|行業(yè)資訊|編輯:龔雪|2016-06-03 09:58:48.000|閱讀 438 次
概述:這兩天的安全領(lǐng)域被一個(gè)詞刷屏了,XcodeGhost,這種病毒不僅會在應(yīng)用運(yùn)行時(shí)竊取用戶信息,甚至還會模擬收費(fèi)或帳號彈窗來竊取你的iCloud及iTunes密碼。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
這兩天的安全領(lǐng)域被一個(gè)詞刷屏了,XcodeGhost,這種病毒不僅會在應(yīng)用運(yùn)行時(shí)竊取用戶信息,甚至還會模擬收費(fèi)或帳號彈窗來竊取你的iCloud及iTunes密碼。受影響應(yīng)用數(shù)超過76款,涉及用戶多達(dá)1個(gè)億。
那么XcodeGhost究竟是什么?
簡單的說,就是在iOS開發(fā)工具中加入一段惡意代碼,導(dǎo)致凡是使用這個(gè)工具開發(fā)的APP都會被感染,而安裝被感染APP的手機(jī)則會淪為黑客的“玩具”。
在用戶心目中“堅(jiān)不可摧”的蘋果生態(tài)系統(tǒng)這一次遭遇了“信任危機(jī)”,人們開始發(fā)現(xiàn)蘋果的安全防御機(jī)制比想象的更加脆弱。
“信任危機(jī)”是企業(yè)危機(jī)中最嚴(yán)重的之一。“信任危機(jī)”讓企業(yè)無論做什么都會讓用戶產(chǎn)生懷疑,讓企業(yè)的一切舉措都將事倍功半。
從XcodeGhost漏洞事件來看手游領(lǐng)域,手游的安全問題是引發(fā)“信任危機(jī)”的重要導(dǎo)火索,作為安全領(lǐng)域的老鳥,在手游一片紅海的當(dāng)下,想談?wù)勈钟?安全的重要性,同時(shí)想給大家分享一些實(shí)用的手游安全測試方法。
來看看幾種常見的安全問題:
除了這些問題外,還有非常多的安全問題。這些問題都將直接、間接影響游戲游戲的收入、留存,給開發(fā)者造成重大損失。所以,如何預(yù)防安全問題迫在眉睫,安全測試應(yīng)運(yùn)而生。簡單概括安全測試是泛指能夠影響游戲平衡性,并且對游戲有破壞性和惡意影響的問題。包括幾大安全領(lǐng)域:
其實(shí)游戲的本質(zhì),是客戶端與服務(wù)器端的數(shù)據(jù)通信。安全測試的過程也主要是圍繞數(shù)據(jù)來進(jìn)行。手游安全測試,其實(shí)也是手游安全攻擊的過程。在攻擊的過程中,讓其存在的安全問題自動(dòng)顯現(xiàn)出來。通過對數(shù)據(jù)的修改,讓服務(wù)器端承認(rèn)修改后的異常數(shù)據(jù),就是安全測試所需要發(fā)現(xiàn)的問題。首先,開始手游安全測試前,需要對游戲的分類有大概了解。
在PC端游盛行的時(shí)代,網(wǎng)絡(luò)游戲根據(jù)交互實(shí)現(xiàn)的不同就已經(jīng)分為了兩種類型。封包邏輯強(qiáng)校驗(yàn)的游戲,例如MMORPG等類型游戲,這類是主流。還有一類游戲,由于需要考慮到游戲的實(shí)時(shí)操作體驗(yàn),使用的是UDP協(xié)議交互。這類游戲使用了弱校驗(yàn)的封包邏輯。
而到了手游時(shí)代,除了上述兩個(gè)原因,還需要考慮手機(jī)不同于PC端的獨(dú)特情況。因此,弱校驗(yàn)類型的游戲也變得更多。
針對強(qiáng)校驗(yàn)類型的游戲,一般情況只需要測試器游戲協(xié)議封包邏輯。因?yàn)椋@種類型的游戲,在本地的所有關(guān)鍵數(shù)據(jù)都不參與運(yùn)算,均是在服務(wù)器端進(jìn)行的運(yùn)算。
了解了游戲分類,下面從游戲邏輯內(nèi)容的角度,說明常規(guī)的一些測試方法。
1、協(xié)議測試
例如天天富翁和全民小鎮(zhèn)等手機(jī)游戲,就是屬于強(qiáng)校驗(yàn)的手游。玩家在天天富翁游戲內(nèi)的每個(gè)基本操作,都有與服務(wù)器端通信處理。例如投擲骰子。
針對這些類型的游戲,并沒有太多可以本地修改的內(nèi)容。因?yàn)楸镜匦薷牡膬?nèi)容,都會通過每個(gè)封包去與服務(wù)器端交互。
因此,只需要對游戲內(nèi)的每個(gè)封包進(jìn)行安全測試,那么這個(gè)游戲的安全問題,就比較有保證。封包測試時(shí),可以從兩個(gè)角度進(jìn)行測試。
可以根據(jù)游戲的內(nèi)容,對測試內(nèi)容交互封包進(jìn)行羅列,循序漸進(jìn),完成測試。
天天富翁的強(qiáng)制拍賣問題
(在天天富翁的前期版本,可以通過修改發(fā)送封包實(shí)現(xiàn)強(qiáng)制拍賣對方地標(biāo)建筑的問題。該BUG為通過修改封包實(shí)現(xiàn)。)
2、內(nèi)存數(shù)據(jù)修改
而針對弱校驗(yàn)類型的游戲,其在本地有部分的計(jì)算替代了服務(wù)器端的計(jì)算邏輯。目前,更多的做法是在游戲結(jié)束時(shí),將計(jì)算操作的數(shù)據(jù)保留發(fā)送向服務(wù)器端。由服務(wù)器端確認(rèn)計(jì)算邏輯的有效性。
例如天天酷跑內(nèi)角色在游戲內(nèi)的跳躍等動(dòng)作。
這種類型的游戲,測試重點(diǎn)則放在了內(nèi)存數(shù)據(jù)修改和代碼修改上。因?yàn)橛?jì)算的數(shù)據(jù)存放在本地,雖然服務(wù)器端最終有校驗(yàn)處理,但不能夠完全的保證校驗(yàn)處理的全面性。
常用的安卓內(nèi)存修改器
對于手游來說,內(nèi)存數(shù)據(jù)修改測試也是目前門檻最低的測試方法。但是測試的覆蓋度,相對協(xié)議測試來說,沒法準(zhǔn)備的保證。但是可以根據(jù)單局游戲結(jié)束時(shí),客戶端向服務(wù)器端發(fā)送的封包、以及游戲界面上的顯示數(shù)據(jù)等來確認(rèn)可能可以修改的數(shù)據(jù)內(nèi)容。
3、代碼修改測試
繼續(xù)弱校驗(yàn)類游戲,當(dāng)通過修改內(nèi)存數(shù)據(jù)不能實(shí)現(xiàn)部分測試功能時(shí),亦可通過修改代碼實(shí)現(xiàn)。如下圖。
針對于2dx類型的游戲,可以通過IDA分析so中的函數(shù)名稱,定位關(guān)鍵函數(shù),修改實(shí)現(xiàn)安全測試的功能。
而針對與unity類型的游戲,其主要邏輯代碼均存放與C#的dll中。可以通過反編譯獲取源碼后,修改IL代碼實(shí)現(xiàn)測試功能。
4、變速測試
針對于有些游戲,可以通過調(diào)整游戲的運(yùn)行速度來實(shí)現(xiàn)測試功能。
希望的測試結(jié)果是,首先,游戲本身的防護(hù)可以阻止加速插件的加載;其次,如果可以加速效果,那么希望加速后可以不影響到游戲的功能和平衡性。
如果使用加速后,可以降低游戲難度,或者增加游戲得分,那這就屬于安全的問題。
Wetest手游安全測試,主要側(cè)重于APK層面的權(quán)限、策略風(fēng)險(xiǎn)等問題。其主要功能包含有:
敏感權(quán)限檢測、本地?cái)?shù)據(jù)安全、網(wǎng)絡(luò)數(shù)據(jù)安全、應(yīng)用的C#源代碼上的邏輯錯(cuò)誤語法錯(cuò)誤等問題。
目前市面上的其他保護(hù),更多的是安全加固,提供保護(hù)方案。而Wetest的安全測試則側(cè)重于安全掃描的功能,能夠自動(dòng)的發(fā)現(xiàn)一些APK層面的問題,并且無需上傳工程源代碼。
游戲安全領(lǐng)域的攻防向來是道高一尺魔高一丈,攻防雙方都處于不斷的演變和進(jìn)化過程中,因此游戲安全防護(hù)需要長期持續(xù)的研究與投入,是場持久戰(zhàn)。
個(gè)人認(rèn)為,手游的安全問題,不是就單靠技術(shù)就能完全解決的問題。技術(shù)手段只是提高了門檻,并沒有從根本上解決手游的安全問題。
這是需要從多方面多管齊下,例如技術(shù)防護(hù)提高門檻,用戶反饋提供渠道信息,法律角度增強(qiáng)威懾。需要提供從多個(gè)維度來保護(hù)才能達(dá)到比較理想的效果。
原文轉(zhuǎn)載自:
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn