如何在網(wǎng)站后臺找到死鏈接群站優(yōu)化之鏈輪模式
不同于安卓的開源生態(tài),iOS一直秉承著安全性更高的閉源生態(tài),系統(tǒng)中的硬件、軟件和服務(wù)會經(jīng)過嚴(yán)格審核和測試,來保障安全性與穩(wěn)定性。
據(jù)FairGurd觀察,雖然iOS系統(tǒng)具備一定的安全性,但并非沒有漏洞,如市面上常見的作弊手段——iOS越獄。
iOS越獄工具Unc0ver
iOS越獄是指通過軟件或硬件漏洞,移除或繞過蘋果在iOS設(shè)備上的操作系統(tǒng)限制,從而獲得設(shè)備的最高權(quán)限。
設(shè)備越獄后,用戶可以通過獲取的最高權(quán)限,安裝 Cydia 管理器等軟件,從而繞過 App Store 安裝各種未審核的插件、外掛,來修改系統(tǒng)文件,甚至訪問系統(tǒng)級別的API。
Cydia管理器
而具體到游戲作弊場景,外掛作者可以對游戲程序砸殼用于逆向分析,也可以利用 substrate 對游戲邏輯進(jìn)行 hook 從而制作出各種游戲外掛。
這些游戲外掛程序可以被其他越獄玩家直接安裝,也可以通過 Cydia 管理器進(jìn)行分發(fā)。鑒于用戶使用越獄設(shè)備可能帶來不良影響,所以很多游戲都會檢測設(shè)備是否越獄。
常見的越獄檢測手段有:檢查越獄文件和目錄、檢查權(quán)限、檢查Sandbox等,可以通過這些維度來判斷設(shè)備是否處于越獄狀態(tài),但這其中也存在一些問題。
常見的iOS越獄檢測手段
如:在檢查越獄文件和目錄時,通常會檢查 /Application/Cydia.app 是否存在,但如果一臺越獄設(shè)備未使用 Cydia 商店,就會造成漏報。
還有一種情況,如果一臺設(shè)備使用了不完美越獄,并使用了 Cydia 商店,設(shè)備重啟后會恢復(fù)到未越獄狀態(tài),但 /Application/Cydia.app 依然存在,這種情況下就會造成誤報。
其他情況下,作弊者可以使用反越獄檢測插件來躲避檢測。常見的插件有HideJB/abapass/fyjb 等。
這些插件對系統(tǒng)接口層做了許多 hook,能夠過濾所有與越獄相關(guān)的字符串,從而使得應(yīng)用層無法正常檢測。
HideJB操作界面
此外,FairGuard收集并分析了大量反越獄檢測插件,總結(jié)了一些它們繞過越獄檢測的常用手段:
-
Hook NSFileManager 的 fileExistsAtPath,過濾越獄相關(guān)字符串。
-
偽造進(jìn)程模塊列表,防止越獄相關(guān)模塊被檢測。
-
Hook stat / access / lstat 等 c 層 api, 過濾越獄相關(guān)文件。
-
對 app 代碼中的 svc 匯編代碼進(jìn)行 patch hook, 隱藏越獄相關(guān)文件。
針對iOS端面臨的越獄難題,FairGuard在分析了大量反越獄插件的基礎(chǔ)上,針對性地開發(fā)了越獄檢測模塊及配套的安全功能,并接入多款熱門游戲并驗證了出色的保護(hù)能力。
反越獄保護(hù)
采用獨家檢測技術(shù),做到精準(zhǔn)識別不誤報,會根據(jù)多種運行時信息綜合判斷,對未知反越獄插件/越獄方式做檢測,針對反越獄插件做處理,不漏報。
反調(diào)試保護(hù)
雙重防護(hù),先使用ptrace、syscall、sysctl、異常等檢測方式,再對防護(hù)代碼進(jìn)行加密保護(hù),效果更佳。
反重簽名保護(hù)
精準(zhǔn)校驗包體內(nèi)簽名,使用加固時存儲的簽名,與運行時獲取的簽名進(jìn)行對比。
反修改器保護(hù)
在代碼對抗防護(hù)階段,FairGuard提供本地檢測代碼,并保護(hù)其有效性。
此外,FairGuard研發(fā)了在線特征更新檢測功能,獲取樣本后可第一時間下發(fā)特征,用最短的時間保護(hù)App的安全性。