溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

安卓移動(dòng)應(yīng)用代碼安全加固系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)

發(fā)布時(shí)間:2020-08-10 08:17:49 來源:ITPUB博客 閱讀:179 作者:技術(shù)那些事 欄目:移動(dòng)開發(fā)

安卓平臺(tái)已經(jīng)逐漸成為最受歡迎的移動(dòng)終端操作系統(tǒng),基于安卓系統(tǒng)的軟件應(yīng)用數(shù)量眾多,同時(shí)安全威脅也在不斷增加。介紹了Android系統(tǒng)的安全風(fēng)險(xiǎn)及加固的核心技術(shù),據(jù)此提出了一種安卓應(yīng)用程序的安全加固系統(tǒng),設(shè)計(jì)和實(shí)現(xiàn)了基于代碼混淆的加固技術(shù),從而達(dá)到了移動(dòng)應(yīng)用安全 加固的目的。

安卓系統(tǒng)安全風(fēng)險(xiǎn)

在Android應(yīng)用軟件迅速發(fā)展的同時(shí),Android用戶也面臨著許多威脅。常見的惡意威脅如下:

1、惡意扣費(fèi)

移動(dòng)應(yīng)用威脅中最常見的惡意行為是惡意扣費(fèi)。威脅手段包括用戶在不知曉或者不知情的情況下,擅自使用非法手段讓用戶訂購各種收費(fèi),活在無意識(shí)狀態(tài)下使用手機(jī)支付服務(wù)的情況下,它會(huì)屏蔽服務(wù)短信發(fā)送回服務(wù)提供商,破壞系統(tǒng)的正常功能。

2、隱私竊取

隱私竊取是近年來流行的一種應(yīng)用威脅,它是用戶不知道的情況下擅自竊取用戶的秘密信息。該病毒感染手機(jī)后,開始竊取用戶隱私信息的背景,包括通話記錄、短信內(nèi)容、地理位置、通訊錄、瀏覽器歷史記錄信息,然后通過病毒上傳信息到遠(yuǎn)程服務(wù)器被黑客控制。如果用戶在手機(jī)上有網(wǎng)絡(luò)支付和其他行為,該賬戶的隱私也將是一個(gè)嚴(yán)重的威脅。

3、遠(yuǎn)程控制

病毒會(huì)自動(dòng)在后臺(tái)引導(dǎo)載人,并在用戶不知道或不授權(quán)的情況下與服務(wù)器連接。進(jìn)一步,通過與服務(wù)器交互,在沒有權(quán)限的情況下對(duì)受害手機(jī)進(jìn)行控制,從而進(jìn)一步扣除費(fèi)用,下載惡意軟件和其他惡意行為。

4、資源消耗

在用戶不知道或者不授權(quán)的情況下,導(dǎo)致用戶收費(fèi)的損失,自動(dòng)發(fā)送短信、多媒體短信、電子郵件、網(wǎng)絡(luò)連接等。

5、惡意通信

在用戶不知道或者不授權(quán)的情況下,傳播病毒或木馬本身,使得它的衍生工具或者其他移動(dòng)互聯(lián)網(wǎng)惡意代碼可以通過其進(jìn)行復(fù)制、感染或者提供下載。

6、其他

病毒在后臺(tái)大量下載軟件,并消耗用戶手機(jī)流量,或者執(zhí)行一些更耗電的操作來消耗手機(jī)的功率,從而影響正常手機(jī)通信。

幾維安全 安卓加固系統(tǒng)的實(shí)現(xiàn)

1、防逆向保護(hù)

針對(duì)Android應(yīng)用的Java、C、C++代碼采取混淆、虛擬化、加殼等安全保護(hù)措施,防止攻擊者通過逆向手段反編譯Dex和So文件。同時(shí)滿足等保2.0中的數(shù)據(jù)保密性保護(hù)要求:應(yīng)采取加密、混淆等措施,對(duì)移動(dòng)應(yīng)用程序進(jìn)行保密性保護(hù),防止被反編譯。

2、Dex文件加殼

Dex文件加殼可以防止dex2Jar、Apktool、AndroidKiller、JEB等逆向工具反編譯Dex文件,從而避免Java代碼被惡意分析、核心技術(shù)被竊取。Dex文件加殼基于類加載的方式實(shí)現(xiàn),對(duì)Classes.dex文件進(jìn)行整體加密,并拆解存放在APK的資源中,在APP應(yīng)用運(yùn)行時(shí)先在內(nèi)存中解密Classes.dex,并讓Dalvik虛擬機(jī)動(dòng)態(tài)加載Dex并開始執(zhí)行。

效果對(duì)比:

利用JEB反編譯原始Dex文件效果如下,可以清晰看到原始的Java代碼。

安卓移動(dòng)應(yīng)用代碼安全加固系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)

利用JEB反編譯已加密Dex文件效果如下,只能看到kiwivm殼的代碼,無法查看原始Java代碼。

安卓移動(dòng)應(yīng)用代碼安全加固系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)

3、Dex-Java2C保護(hù)

Dex-Java2C是針對(duì)Java函數(shù)進(jìn)行深度加密,將Java自動(dòng)化翻譯為C代碼,并進(jìn)行Native層的虛擬化加密,相比Dex文件加殼粒度更細(xì),安全更高。攻擊者無法還原Java函數(shù),從而避免關(guān)鍵Java代碼被惡意分析、核心技術(shù)被竊取。

Dex-Java2C基于LLVM編譯器實(shí)現(xiàn),利用復(fù)雜的處理流程將Android-Dex指令代碼轉(zhuǎn)換成LLVM-IR,然后利用LLVM后端編譯器直接生成【或者與代碼虛擬化配合使用】Native指令。該方案的轉(zhuǎn)換是不可逆的,從根本上讓逆向工程不具備可行性,從達(dá)到保護(hù)關(guān)鍵Java代碼的目的。

效果對(duì)比:

利用JEB反編譯原始Dex文件效果如下,可以清晰看到原始的Java代碼的函數(shù)體。

安卓移動(dòng)應(yīng)用代碼安全加固系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)

4、So文件加殼

So文件加殼可以防止IDA、ghidra等逆向工具的反編譯分析,從而避免C/C++代碼被惡意分析,核心技術(shù)被竊取。So文件加殼技術(shù)與Windows平臺(tái)的加殼技術(shù)類似,利用特殊的算法對(duì)文件進(jìn)行加密處理、抹掉ELF格式中的關(guān)鍵節(jié)區(qū)描述數(shù)據(jù),并行文件壓縮存儲(chǔ),從而造成IDA等工具解析失敗,達(dá)到防反編譯,保護(hù)C/C++代碼的目的。

效果對(duì)比

采用IDA工具反編譯未加殼的So文件,可以看到相關(guān)的函數(shù)信息。

安卓移動(dòng)應(yīng)用代碼安全加固系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)

采用IDA工具反編譯已加殼的So文件,出現(xiàn)解析錯(cuò)誤,造成反編譯失敗

安卓移動(dòng)應(yīng)用代碼安全加固系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)

幾維安全安卓加固技術(shù)優(yōu)勢(shì)

1、安全覆蓋全面

能夠保護(hù)應(yīng)用Dex文件和So文件,并且提供主動(dòng)防御保護(hù)機(jī)制,全面保護(hù)APP安全;

2、安全強(qiáng)度高

獨(dú)家Dex-Java2C和源碼虛擬化技術(shù)配合使用,對(duì)Java代碼進(jìn)行高強(qiáng)度加密,可抵擋專業(yè)黑客的逆向攻擊;

3、加密粒度細(xì)

以Java/C/C++代碼的函數(shù)為單位進(jìn)行加密保護(hù),粒度細(xì)、可控性高、隱蔽性強(qiáng);

4、兼容性高

適配APP內(nèi)的各種業(yè)務(wù)邏輯,并且高級(jí)版的Java2C通過中間代碼進(jìn)行加密保護(hù),兼容性與原始應(yīng)用一致;

5、性能損耗低

Dex加殼方案的啟動(dòng)時(shí)間增量小于1s,是業(yè)界做得最好的方案。Java函數(shù)級(jí)加密影響非常小,可以忽略不計(jì)。

Android 開發(fā)人員已經(jīng)為廣大用戶開發(fā)出海量的應(yīng)用程序,這給用戶帶來方便的同時(shí)也帶來了巨大的安全隱患。幾維安全在長(zhǎng)期的攻防實(shí)戰(zhàn)之中推出了一站式、全生命周期移動(dòng)安全解決方案,面對(duì)中小企業(yè)免費(fèi)提供APP檢測(cè)與加固服務(wù),登錄幾維安全官網(wǎng)即可免費(fèi)申請(qǐng)使用。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI