一、手游安全應該關注什麼?
之前接到客戶某款遊戲第三方安全測試機構的報告,報告顯示遊戲存在高危,客戶有點納悶:用了第三方專業(易盾)的保護,怎麼還存在高危?接下來,讓我們一起分析一下這些「高危」,是不是真正對手游構成了嚴重的威脅?
第三方的安全測試機構會對手游APP進行安全測試,包括客戶端的靜態安全、客戶端數據安全和客戶端運行時安全等,接下來我們一一分析下:
1。客戶端靜態安全
1.1反編譯安全
某第三方測試機構通過apktool 和dex2jar 工具對APK進行反編譯,如下圖1-1所示,得到該APK不安全的結論:APP可以被反編譯看到java的源碼。
由於目前在眾多的手游架構中,絕大多數的核心邏輯是:
U3D引擎:mono中的dll文件,和il2cpp形式中的libil2cpp.so文件和global-metadata.dat文件;
NX引擎:npk文件;
coscos引擎:lua文件;
layaair:js文件等
核心是上面的這些,而不是遊戲包中的dex文件,因此這種粗粒度的檢測不具有參考價值,更構不成高危信息。
1.2完整性校驗:
該第三方機構通過對該APK替換一個文件,重新打包能運行——粗粒度得到該APK存在高危的安全問題。
由於手游發佈到各個渠道的時,渠道會對APK文件中嵌入些渠道信息,因此母包一般情況下不會加入完整性校驗,並且對於遊戲包中的資源文件等核心文件的保護和校驗處理,易盾有對應的資源文件加密和強文件校驗,進一步針對性的保護遊戲中的核心文件,因此上面那種粗粒度的檢測到高危是不具有參考價值。
2。客戶端數據安全
第三方測試機構首先運行目標APP,使用MemSpcetor查看目標APP進程中的內存段,然後尋找對應的登錄的敏感信息。
這裏先不談論這個工具運行所需要的環境,以及這樣的內存數據是不是手游的核心內存數據,而是先來認知一個關鍵點——對於手游來說,最重要的是什麼?實際上,最重要的是遊戲運行過程中遊戲業務邏輯所展現出來的內存數據安全。比如以GG修改器以及變種代表的一類的攻擊工具;比如通過加速/減速這一類的變速工具以及模擬點擊類工具,通過這一類的工具來實現自動打怪升級、做任務、血量無限、金幣自設置、遊戲速度加減等(內存數據的保護,易盾有對應的修改器檢測和內存數據檢測等)。
3。客戶端運行安全
對於手游運行安全,第三方測試機構只是僅僅測試了對於root的環境;
實際上,手游很多是需要支持模擬器運行的,我們知道模擬器大部分是root的形式存在的,因此直接粗粒度的提示用戶風險是不符合業務邏輯的。
並且隨著Android系統的不斷升級,通過尋找系統本身的漏洞會越來越難,因而陸續出現了magsik和多開助手之類的軟體達到相同的root的功能,因此重點應該關注這些運行環境。易盾除了對於運行時上述安全檢查以外,還有其他所有能夠被攻擊者所利用的各種隱患安全環境檢查。
第三方測試機構在運行安全檢查時,除了檢查上面的root安全,還應檢查客戶端輸入記錄保護和劫持保護等。尤其是成功的Activity劫持將會替換客戶端的啟動界面,對用戶產生很大的誘騙作用。
這些是另一個層面的安全,對於真正的手游安全我們更應該關注另外兩個層面:反破解和反外掛。
二、手游外掛的侵略
寓攻於守,方能破敵,因此作為防守人,首先要知道攻擊者是怎麼進行入侵的?知彼知己,方能百戰不殆。
1。破解
攻擊者破解手段有很多,主要是包括如下兩種邏輯:
1.1直面破解
攻擊者通過去反編譯分析遊戲中的核心文件,比如代碼邏輯或者是資源文件。典型的就是通過U3D mono中的dll文件,找到對應的遊戲邏輯進行篡改,達到自己的破解目的,或者去分析il2cpp中的libil2cpp.so文件,分析其中的關鍵遊戲邏輯進行篡改,進而進行二次打包(如下圖2-1所示)。面對這些破解手段,重要文件的各種加固加殼的保護應運而生,進而阻擋攻擊者的分析。
1.2迂迴破解
部分攻擊者不是直接通過正面的角度去破解,而是通過研究載入重要邏輯文件的流程,通過hook或者注入的操作來達到自己的目的,如圖2-2所示,為某攻擊者通過注入一個so文件達到自己的目的。
也有些攻擊者,重點放在對於libunity.so文件上,如下圖2-3所示,通過修改libunity.so文件的關鍵輸出邏輯達到作弊的效果。
這些攻擊者在面對保護方案的時候,通過HOOK來對一些創建線程或者退出邏輯來成功且巧妙的繞過一些保護,進而達到自己的目的,以下就是某攻擊手段通過對退出邏輯進行HOOK的操作。
2。外掛
手游外掛指通過破壞遊戲運行的正常數據和邏輯的各種工具,或者偽造客戶端玩家「正常」操作的一切手段。
目前手游外掛的表現形式多種多樣,一類包括以模擬點擊類、加速器、修改器以及對應所產生的各種變種,或者是通過修改內存數據的原理結合andlua或者c4droid等框架來達到對應的各種輔助效果,再配合一些外掛所需要的運行環境,比如雲真機,各類各端模擬器,以及多開等環境,進而達到自己的目的。
當然隨著移動遊戲的市場的快速發展,也出現了一些不修改客戶端的邏輯,偽造玩家來達到自己的手段,比如腳本精靈和一些離線掛等等,還有一些諸如打金工作室,想更高效地刷取獲取遊戲幣,從而實現自己的利益化。
2.1 直接掛
直接掛主要指的是通過修改客戶端的執行邏輯,進行修改作弊,大多數情況下是通用的,有一對多的屬性。比如GG修改器,燒餅和葫蘆俠等以及衍生的這類的變種,原理是利用修改器搜索相應數值,再根據數值變化規律定位到在內存中的位置,然後直接進行修改達到對應的效果。
也有各類的加速/減速器,比如光環助手,叉叉變速器等代表。原理上通過HOOK一些關於時間相關的函數,影響遊戲幀更新頻率,實現加速過關、減速躲閃技能等功能。
由於直接掛比較多且成熟,這裏就不舉例說明了。
2.2 間接掛
間接掛在不修改客戶端邏輯的情況下進行自動模擬升級,比較有代表性的是模擬點擊類的掛,一般情況下是一對一。
以下是一個通過藉助於PC端的Android模擬器的模擬掛的實例,通過在/data/local/tmp釋放一些重要文件,然後強求adb連接以後,通過傳遞一些功能標誌來對遊戲的libil2cpp文件進行操作,來達到自動模擬點擊的效果。
三、手游安全的防護
手游安全問題主要包括反外掛和反破解兩個方面,在不斷與各類破解、外掛的攻防對戰中,網易易盾通過總結不同新型外掛的屬性,持續對手游加固和反外掛模塊進行迭代,完善功能、加強防禦,做到了疾如風、徐如林,不動如山。
來源:遊戲陀螺
"真正" - Google 新聞
April 23, 2020 at 03:39PM
https://ift.tt/3bwxuzN
手游安全真正應該關注什麼?-科技新聞 - 臺灣新浪網
"真正" - Google 新聞
https://ift.tt/32IyEEB
Shoes Man Tutorial
Pos News Update
Meme Update
Korean Entertainment News
Japan News Update
Bagikan Berita Ini
0 Response to "手游安全真正應該關注什麼?-科技新聞 - 臺灣新浪網"
Post a Comment