輕量級(jí)加固安全不打折 數(shù)字盾甲iOS應(yīng)用加固技術(shù)“守正出奇”
原創(chuàng)【51CTO.com原創(chuàng)稿件】依托智能手機(jī)規(guī)?;瘧?yīng)用,促使移動(dòng)互聯(lián)網(wǎng)得到長(zhǎng)足的發(fā)展,進(jìn)而各種功能豐富的APP走進(jìn)我們的生活,帶來(lái)便捷的同時(shí),App加固也成為剛需。有效的加固,可避免被破解、盜版、二次打包、注入、反編譯等風(fēng)險(xiǎn),提升App的安全性、穩(wěn)定性。當(dāng)下,仍有人覺(jué)得iOS代碼不用做加固,是因?yàn)樘O(píng)果系統(tǒng)的封閉性導(dǎo)致iOS系統(tǒng)下的 App安全性相對(duì)較高。但是實(shí)際上iOS應(yīng)用本身被破解的難度并不高,不管個(gè)人開(kāi)發(fā)者還是大廠皆有保護(hù)代碼安全的需求。
近日,數(shù)字聯(lián)盟iOS加固技術(shù)產(chǎn)品團(tuán)隊(duì)接受了51CTO的專訪,整個(gè)過(guò)程圍繞應(yīng)用加固技術(shù)的演變、業(yè)界常用iOS應(yīng)用加固方法的不足及采用二進(jìn)制研發(fā)的iOS應(yīng)用加固產(chǎn)品“數(shù)字盾甲”展開(kāi)。
應(yīng)用加固技術(shù)的演變
應(yīng)用加固技術(shù)并不是新興技術(shù),在移動(dòng)互聯(lián)網(wǎng)興起前就已經(jīng)存在,主要作用是防止PC端應(yīng)用被破解或盜取。軟件開(kāi)發(fā)商為了保護(hù)版權(quán),會(huì)選擇各種方式,保護(hù)自己的軟件。密鑰常見(jiàn)的應(yīng)用加固技術(shù),起初僅由軟件承載,后續(xù)又與硬相件結(jié)合,進(jìn)行校驗(yàn)和認(rèn)證,旨在增強(qiáng)加固力度。
隨著智能手機(jī)滲透、安卓系統(tǒng)日益趨近成熟,App開(kāi)發(fā)大軍也逐漸龐大起來(lái),主要分為兩大流派:iOS系統(tǒng) 和Android系統(tǒng),分別對(duì)應(yīng) .ipa 和 .apk文件格式。XcodeGhost事件發(fā)生后,人們開(kāi)始對(duì)App的安全倍加重視。從開(kāi)發(fā)角度來(lái)說(shuō),源代碼安全問(wèn)題是基于代碼審計(jì)層次而決定的;從軟件保護(hù)角度來(lái)說(shuō),解決App的安全問(wèn)題則是對(duì)源代碼的代碼混淆、資源加密和邏輯加固等;從用戶角度說(shuō),那就是App本身的安全性,是否會(huì)對(duì)個(gè)人隱私財(cái)產(chǎn)造成損失,是否是值得信賴的第三方平臺(tái)。
安卓端應(yīng)用批量涌現(xiàn),對(duì)應(yīng)的加固技術(shù)也如雨后春筍隨之而生。出現(xiàn)這樣的現(xiàn)象主要有兩個(gè)原因,其一:龐大的用戶群體。其二:編程手段過(guò)于上層。也就是安卓端興起之前,軟件破解通常使用C2、C++等編譯性語(yǔ)言,得到二進(jìn)制的結(jié)果后,造假分子去破解應(yīng)用的難度相對(duì)較大。安卓端最初就選擇Java語(yǔ)言做上層應(yīng)用的開(kāi)發(fā),Java語(yǔ)言擁有標(biāo)準(zhǔn)化、高透明度的特點(diǎn),所以安全性自然就會(huì)相對(duì)下降。造假者很容易便可了解到應(yīng)用開(kāi)發(fā)者的自檢碼、虛擬機(jī)等規(guī)范,破解難度較低。
安卓領(lǐng)域的加固技術(shù)經(jīng)歷關(guān)鍵的幾次迭代:
- 改變?cè)即a,躲避初級(jí)分析;
- 在內(nèi)存中加載代碼;
- 創(chuàng)建虛擬的CPU或虛擬機(jī),把標(biāo)準(zhǔn)官方指令,變成開(kāi)發(fā)者自己私有化的指令,進(jìn)而增加造假者分析和造假的難度。
業(yè)界常見(jiàn)iOS應(yīng)用加固技術(shù)的不足
用戶對(duì)App技術(shù)的核心訴求是無(wú)論采用何種手段,只要保證在不影響產(chǎn)品功能的前提下,提高被分析和調(diào)試難度即可。
張宇平·數(shù)字聯(lián)盟CTO
數(shù)字聯(lián)盟CTO張宇平表示,安卓端的加固市場(chǎng)經(jīng)過(guò)多年的演變已經(jīng)趨近成熟,但市面上還缺乏有效的iOS應(yīng)用加固技術(shù)。在推廣數(shù)字聯(lián)盟反作弊技術(shù)產(chǎn)品“可信ID”的過(guò)程中發(fā)現(xiàn),很多客戶也有iOS應(yīng)用加固的需求。
那么,傳統(tǒng)的iOS應(yīng)用加固技術(shù)有哪些不足呢?傳統(tǒng)的iOS應(yīng)用加固方式一般是通過(guò)編譯器混淆程序代碼,將有效信息淹沒(méi)到各種無(wú)效信息中,干擾造假分析人員的視線。但加密方式大幅度增加代碼體積的同時(shí),還需要將應(yīng)用的代碼提供給第三方加固機(jī)構(gòu),再借助編譯器去做混淆。對(duì)于客戶而言,需要承擔(dān)源代碼泄露的風(fēng)險(xiǎn)。在加密/隱藏/混淆程序代碼的過(guò)程中,應(yīng)用包如果過(guò)大,會(huì)影響用戶體驗(yàn)和下載意愿。
數(shù)字盾甲iOS應(yīng)用加固技術(shù)“守正出奇”
目前看來(lái),移動(dòng)端的加固技術(shù)基本和PC端的發(fā)展軌跡雷同,從Windows平臺(tái)加殼脫殼、反調(diào)試和反反調(diào)試到Andriod平臺(tái).apk加固、反調(diào)試代碼混淆和加強(qiáng)殼。Windows平臺(tái)下,ring3到ring0層的反調(diào)試技術(shù)已經(jīng)非常成熟。相對(duì)于.ipa加固,.apk加固做的相對(duì)較好,業(yè)界已經(jīng)有很多成型的App加固方案。
數(shù)字盾甲iOS應(yīng)用加固技術(shù)“守正出奇”,沿用了PC端高難度的二進(jìn)制加固技術(shù)的同時(shí),給iOS應(yīng)用加殼,既避免應(yīng)用被盜版的風(fēng)險(xiǎn),也防止黑客反編譯進(jìn)而保護(hù)核心業(yè)務(wù)邏輯。此項(xiàng)技術(shù)還融入了高級(jí)反調(diào)試和字符串混淆等技術(shù),進(jìn)一步保護(hù)應(yīng)用不被調(diào)試器分析,防止 IDA Pro 等工具通過(guò)關(guān)鍵字定位破解核心代碼邏輯。
據(jù)悉,使用數(shù)字盾甲 iOS應(yīng)用加固技術(shù)后,原始App體積增加量不會(huì)超過(guò)1M,加固力度不會(huì)受到影響,可謂是“輕量級(jí)加固安全不打折”。對(duì)這項(xiàng)技術(shù)的需求主要體現(xiàn)在付費(fèi)應(yīng)用、企業(yè)應(yīng)用、內(nèi)有交易功能的應(yīng)用和注重知識(shí)產(chǎn)權(quán),以及珍視自己心血的各類中小開(kāi)發(fā)者所開(kāi)發(fā)的應(yīng)用上。
當(dāng)問(wèn)及數(shù)字聯(lián)盟 iOS加固技術(shù)未來(lái)的突破方向,數(shù)字盾甲iOS應(yīng)用加固技術(shù)團(tuán)隊(duì)表示,將在代碼虛擬化和其他資源(圖片/聲音)保護(hù)等方面做進(jìn)一步研發(fā)。目前,數(shù)字聯(lián)盟的App加固技術(shù)還沒(méi)有應(yīng)用于安卓平臺(tái),主要是因?yàn)榘沧科脚_(tái)過(guò)于復(fù)雜,系統(tǒng)版本多、設(shè)備種類多。核心技術(shù)完備的情況下,兼容性方面也需要花費(fèi)大量的時(shí)間去進(jìn)行適配,安卓平臺(tái)會(huì)稍晚上線。
【51CTO原創(chuàng)稿件,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文作者和出處為51CTO.com】