安卓移動應用代碼安全加固系統設計及實現

安卓平臺已經逐漸成爲最受歡迎的移動終端操作系統,基於安卓系統的軟件應用數量衆多,同時安全威脅也在不斷增加。介紹了Android系統的安全風險及加固的核心技術,據此提出了一種安卓應用程序的安全加固系統,設計和實現了基於代碼混淆的加固技術,從而達到了移動應用安全加固的目的。

安卓系統安全風險

在Android應用軟件迅速發展的同時,Android用戶也面臨着許多威脅。常見的惡意威脅如下:

1、惡意扣費

移動應用威脅中最常見的惡意行爲是惡意扣費。威脅手段包括用戶在不知曉或者不知情的情況下,擅自使用非法手段讓用戶訂購各種收費,活在無意識狀態下使用手機支付服務的情況下,它會屏蔽服務短信發送回服務提供商,破壞系統的正常功能。

2、隱私竊取

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

3、遠程控制

病毒會自動在後臺引導載人,並在用戶不知道或不授權的情況下與服務器連接。進一步,通過與服務器交互,在沒有權限的情況下對受害手機進行控制,從而進一步扣除費用,下載惡意軟件和其他惡意行爲。

4、資源消耗

在用戶不知道或者不授權的情況下,導致用戶收費的損失,自動發送短信、多媒體短信、電子郵件、網絡連接等。

5、惡意通信

在用戶不知道或者不授權的情況下,傳播病毒或木馬本身,使得它的衍生工具或者其他移動互聯網惡意代碼可以通過其進行復制、感染或者提供下載。

6、其他

病毒在後臺大量下載軟件,並消耗用戶手機流量,或者執行一些更耗電的操作來消耗手機的功率,從而影響正常手機通信。

幾維安全安卓加固系統的實現

1、防逆向保護

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

2、Dex文件加殼

Dex文件加殼可以防止dex2Jar、Apktool、AndroidKiller、JEB等逆向工具反編譯Dex文件,從而避免Java代碼被惡意分析、核心技術被竊取。Dex文件加殼基於類加載的方式實現,對Classes.dex文件進行整體加密,並拆解存放在APK的資源中,在APP應用運行時先在內存中解密Classes.dex,並讓Dalvik虛擬機動態加載Dex並開始執行。

效果對比:

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

安卓加固-1.png

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

安卓加固-2.png

3、Dex-Java2C保護

Dex-Java2C是針對Java函數進行深度加密,將Java自動化翻譯爲C代碼,並進行Native層的虛擬化加密,相比Dex文件加殼粒度更細,安全更高。攻擊者無法還原Java函數,從而避免關鍵Java代碼被惡意分析、核心技術被竊取。

Dex-Java2C基於LLVM編譯器實現,利用複雜的處理流程將Android-Dex指令代碼轉換成LLVM-IR,然後利用LLVM後端編譯器直接生成【或者與代碼虛擬化配合使用】Native指令。該方案的轉換是不可逆的,從根本上讓逆向工程不具備可行性,從達到保護關鍵Java代碼的目的。

效果對比:

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

安卓加固-3.png

4、So文件加殼

So文件加殼可以防止IDA、ghidra等逆向工具的反編譯分析,從而避免C/C++代碼被惡意分析,核心技術被竊取。So文件加殼技術與Windows平臺的加殼技術類似,利用特殊的算法對文件進行加密處理、抹掉ELF格式中的關鍵節區描述數據,並行文件壓縮存儲,從而造成IDA等工具解析失敗,達到防反編譯,保護C/C++代碼的目的。

效果對比

採用IDA工具反編譯未加殼的So文件,可以看到相關的函數信息。

安卓加固-4.png

採用IDA工具反編譯已加殼的So文件,出現解析錯誤,造成反編譯失敗

安卓加固-5.jpg

幾維安全安卓加固技術優勢

1、安全覆蓋全面

能夠保護應用Dex文件和So文件,並且提供主動防禦保護機制,全面保護APP安全;

2、安全強度高

獨家Dex-Java2C和源碼虛擬化技術配合使用,對Java代碼進行高強度加密,可抵擋專業黑客的逆向攻擊;

3、加密粒度細

以Java/C/C++代碼的函數爲單位進行加密保護,粒度細、可控性高、隱蔽性強;

4、兼容性高

適配APP內的各種業務邏輯,並且高級版的Java2C通過中間代碼進行加密保護,兼容性與原始應用一致;

5、性能損耗低

Dex加殼方案的啓動時間增量小於1s,是業界做得最好的方案。Java函數級加密影響非常小,可以忽略不計。

Android 開發人員已經爲廣大用戶開發出海量的應用程序,這給用戶帶來方便的同時也帶來了巨大的安全隱患。幾維安全在長期的攻防實戰之中推出了一站式、全生命週期移動安全解決方案,面對中小企業免費提供APP檢測與加固服務,登錄幾維安全官網即可免費申請使用。

推薦閱讀:安卓加固:https://www.kiwisec.com/product/KiwiVM-so.html

                   安卓APP之加固技術:https://blog.csdn.net/qq_35703234/article/details/54411567?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158994194719724811803502%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=158994194719724811803502&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~baidu_landing_v2~default-2-54411567.nonecase&utm_term=%E5%AE%89%E5%8D%93%E5%8A%A0%E5%9B%BA

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章