1. 程式人生 > >如何做好iOS應用安全?這有一把行之有效的“三板斧”

如何做好iOS應用安全?這有一把行之有效的“三板斧”

網絡安全 IOS 移動安全

iOS應用面臨很多破解問題,常見的有IAP內購破解、山寨版本、破解版本等;大眾應用上,微信搶紅包、微信多開等;而在iOS遊戲上,越來越泛濫的外掛問題也不斷困擾著遊戲廠商。

技術分享圖片

網易雲易盾資深安全開發工程師王桂林

3月17日,Cocoa社區CVP系列開發者沙龍在北京舉辦,網易雲易盾資深安全開發工程師王桂林出席沙龍,並做《iOS遊戲的破解以及防護》的演講,分享了究竟該如何做好App的安全防護工作。

攻防,首先得知道他們是怎麽破的

要想防護的好,必須要知道對手是怎麽破解的,王桂林首先分享了兩個破解分析實例。

技術分享圖片

遊戲加速分析過程

第一個實例就是加速器,“加速器原理都差不多,只是實現方式不一樣。”王桂林說,它們的原理都是通過修改時間相關函數實現加減速功能,實現方式上主要是兩大類,一類是U3D,另外一類是COCOS。如何做的呢?“通過有無UnityAppController來判斷是否為Unity遊戲。如果為Unity遊戲的話,就會用Hook OC的方法;如果不是Unity遊戲,就會采用常規的Hook Gettimeofday方式修改遊戲。”

技術分享圖片

修改參數

技術分享圖片

破解效果

只要是手遊,基本都被外掛侵害,《旅行青蛙》是當下非常火的佛系遊戲,網易雲易盾資深安全開發工程師於是就對它進行了分析:通過iOS和安裝安裝包聯合分析,就可以發現iOS使用的是IL2CPP模式,C#腳本轉成C/C++代碼,使用II2CppDumper還原符號。王桂林說:“知道這些開發情況後,就可以搜索三葉草、抽獎券代碼,通過修改對應的代碼達到三葉草數目無限、抽獎券變成自己想要的效果等。”

不論是加速器,還是外掛,都會傷害正常玩家——包括付費玩家,同時也會影響遊戲開發者的收入,面對這些情況時,我們該怎麽辦?

iOS遊戲安全,行之有效的“三板斧”

那iOS遊戲怎麽才能做好相應的保護?面對現場大家期盼的眼神,王桂林分享了網易雲易盾行之有效的“三板斧”:

· 第一板斧是防靜態分析,這裏包括字符串加密、符號混淆、代碼邏輯混淆和遊戲存檔加密;

· 第二板斧是防動態調試、反調試和通信安全(數據加密);

· 第三板斧是外掛檢測、加速掛、內存修改掛和自動任務掛等。

技術分享圖片

字符串加密

技術分享圖片

代碼邏輯混淆

具體來看字符串加密、符號混淆、代碼邏輯混淆。字符串加密,就是在編譯器編譯源碼時,對程序中的字符串進行加密,運行的時候動態解密;符號混淆,則是將代碼中使用的類名、方法名、屬性替換成其他意義的名字;代碼邏輯混淆,就是在編譯器編譯源碼時,對代碼結構進行變形,提高代碼的復雜度和逆向分析難度,從而保護程序不被輕易破解,裏面也可以加密算法邏輯和特定的驗證邏輯,比如一開始的代碼結構很簡單,改了以後就會變得很復雜。

技術分享圖片

反調試

王桂林說,上面的都屬於放靜態分析範疇,它都是對變量進行加密保護,讓破解者無法搜索。外掛都會有反調試分析,因此靜態分析之外還有防動態調試,比如說反調試,它使應用無法被調試、避免被動態分析的風險;同時,易盾還會做通信數據加密,防止被抓包工具抓包分析。

做好上面防護之外,易盾也采取主動出擊,做外掛檢測、加速掛、內存修改掛和自動任務掛等。

“這就是網易雲易盾行之有效的三板斧——從防靜態分析到防動態調試到最後的外掛識別,全方位保護iOS應用和遊戲安全。”王桂林最後說。

技術分享圖片

“移動安全診斷室”活動

今天的北京,外面大雪紛飛,室內熱情似火。易盾聯合Cocos首次推出面向移動遊戲的診斷室服務,搭配現場分享答疑,切實降低遊戲開發者的破解外掛風險。有不少參與者稱贊易盾的同學有俠之精神——因為幫助他們解決了不少實際問題。


如何做好iOS應用安全?這有一把行之有效的“三板斧”