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

0
回復
165
查看
打印 上一主題 下一主題
[復制鏈接]

45

主題

162

帖子

844

安幣

代碼手工藝人

Rank: 4

樓主
發表于 2020-5-20 11:36:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 工作中的那些事 于 2020-5-20 11:38 編輯

安卓平臺已經逐漸成為最受歡迎的移動終端操作系統,基于安卓系統的軟件應用數量眾多,同時安全威脅也在不斷增加。介紹了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代碼。


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


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代碼的函數體。

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

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

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


幾維安全安卓加固技術優勢
1、安全覆蓋全面
能夠保護應用Dex文件和So文件,并且提供主動防御保護機制,全面保護APP安全;
2、安全強度高
獨家Dex-Java2C和源碼虛擬化技術配合使用,對Java代碼進行高強度加密,可抵擋專業黑客的逆向攻擊;
3、加密粒度細
以Java/C/C++代碼的函數為單位進行加密保護,粒度細、可控性高、隱蔽性強;
4、兼容性高
適配APP內的各種業務邏輯,并且高級版的Java2C通過中間代碼進行加密保護,兼容性與原始應用一致;
5、性能損耗低
Dex加殼方案的啟動時間增量小于1s,是業界做得最好的方案。Java函數級加密影響非常小,可以忽略不計。

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

分享到:  QQ好友和群 QQ空間 微信
收藏
收藏0
支持
支持0
反對
反對0
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

領先的中文移動開發者社區
18620764416
7*24全天服務
意見反饋:[email protected]

掃一掃關注我們

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粵ICP備15117877號 )

在柳州学什么小吃赚钱 金蟾捕鱼上下现金游戏 辽宁35选7玩法说明 澳门福乐彩图片图库 国内最安全的股票配资平台 江西快三彩经网 王中王心水王中王资料 优乐麻将为什么打不开 极速时时彩输了100万 6 1体彩开奖结果浙江 捕鱼大富翁免费下载