┊文章閱讀:次
背景
Android App的資源文件中存放了大量的應(yīng)用UI界面圖片、UI布局文件、隱私數(shù)據(jù)文件等,如何保障這些資源文件的安全性一直是開發(fā)者和應(yīng)用安全人員重點關(guān)注的問題。
在Android App中,資源主要分為assets資源和res資源兩類。
1.assets文件夾是存放不進行編譯加工的原生文件,即該文件夾里面的文件不會像xml,java文件被預(yù)編譯,可以存放一些圖片、html、js、css、證書等文件。
2.res資源則存放在App的res目錄下,該類資源在App打包時大多會被編譯,變成二進制文件,應(yīng)用層代碼通過resource id對該類資源進行訪問。
常見方案及問題
目前市場上常見的資源文件保護方案主要有以下兩種思路:
1.資源文件混淆保護,對資源文件的路徑進行混淆,縮短文件夾和文件名,以及替換/刪除某個資源的名稱。
此方式會增加破解者在破解時閱讀難度,但是安全強度有限,僅對資源文件進行重命名并不能有效的保護資源文件,破解者依然能可查看并修改資源文件內(nèi)容,只是破解的時間成本增加了。
2.資源文件加密保護,通過加密手段,將Android資源的assets和res等目錄的內(nèi)容進行加密、隱藏及壓縮,使用時再將文件解壓并對文件解密。
此方式安全強度相對較高,破解者不能輕易查看和修改資源文件。但是一般只是實現(xiàn)了對assets資源文件的部分加密,且運行時Android依舊需要讀取本地解密后的資源文件,依然存在很大的安全隱患和安全漏洞。
通付盾創(chuàng)新方案-簡介
通付盾移動加固團隊在面向Android資源文件加密問題時,實踐出一套更加完美的Android資源文件加密方案,不但能完成對assets和res文件進行更高標(biāo)準(zhǔn)的全部加密保護,同時能在Android加載資源文件的過程中實現(xiàn)資源文件的不落地解密,以此來避免資源文件被再次還原到本地目錄帶來的風(fēng)險,從而對資源文件的保護得到質(zhì)的提升。
圖1 ?Android資源文件加密方式
如圖1所示,在資源文件加密的過程中,程序首先對App安裝包進行分析,獲取其中res和assets目錄的地址,并對這兩個資源文件夾下的內(nèi)容進行抽取。
抽取完成之后,壓縮成一個新的zip文件。再對這個zip文件進行整體加密,存放在App安裝包的assets目錄下,并且會刪除安裝包中原有的assets和res資源文件夾。
這樣攻擊者在拿到App安裝包的時候就無法從res和assets目錄下獲取到原始資源文件,也無法進行重打包等惡意行為。對于被加密處理過的壓縮資源文件,在調(diào)用加載的時候也做了安全保護處理,核心流程如圖2所示。
圖2 ?Android資源文件加載方式
一般市面上對于加密后的資源包,在調(diào)用加載的時候都會進行解密,然后形成一份本地解密后的資源包文件,再由系統(tǒng)直接調(diào)用本地的資源目錄進行讀取或加載。這種方式還是會產(chǎn)生本地的資源目錄和文件,代表著攻擊者從本地目錄中還是能夠獲取到所有的資源文件,無疑產(chǎn)生了極大的安全風(fēng)險隱患。
對于此問題,我們創(chuàng)新性的采用不落地加載資源文件的方式來解決。即在Android加載資源文件的過程中,將加密后的資源包進行不落地解密等操作,并讓系統(tǒng)能夠讀取到資源文件,以此來避免產(chǎn)生本地的文件目錄,更有效的保護資源文件的安全。
在Android加載資源文件的過程中,系統(tǒng)最終是依靠一些關(guān)鍵的讀寫方法進行工作,我們對這些關(guān)鍵方法進行攔截操作,攔截到系統(tǒng)調(diào)用讀寫等動作之后,我們會開始執(zhí)行對應(yīng)目標(biāo)資源文件的解密操作,并直接將解密后的資源文件加載到內(nèi)存當(dāng)中。加載到內(nèi)存后,讓系統(tǒng)去內(nèi)存中直接讀取到資源文件,App內(nèi)就能正常使用到資源文件的內(nèi)容。
通付盾創(chuàng)新方案-加密效果
加密前后資源文件目錄對比如圖3所示:
圖3 ?Android資源文件加固效果
加密后的資源文件內(nèi)容如圖4所示:
圖4 ?Android資源文件加密數(shù)據(jù)
若想體驗資源加密功能,可以到通付盾云平臺進行加固體驗。
圖5通付盾云平臺展示
Copyright @ 2013-2020 中國福建網(wǎng) 版權(quán)所有
聯(lián)系我們
免責(zé)聲明:本站為非營利性網(wǎng)站,部分圖片或文章來源于互聯(lián)網(wǎng)如果無意中對您的權(quán)益構(gòu)成了侵犯,我們深表歉意,請您聯(lián)系,我們立即刪除。