◆郝曉東 孫二鑫 藏丹丹 李瀟瀟
Android應用安全問題與對策思考研究
◆郝曉東 孫二鑫 藏丹丹 李瀟瀟
(天津卡達克數據有限公司 天津 300000)
隨著移動互聯網以及智能移動設備的普及,各型種類的APP出現在用戶的視野,并在 Android 操作系統上獲得了飛速的發展。Android技術進步的同時,由于其獨特的開源特性,各類安全問題尤其是應用的安全問題愈發引起用戶的關注。
應用安全;Android;對策;安全威脅;惡意軟件
中國互聯網絡信息中心(CNNIC)于2019年2月28日在京發布第43次《中國互聯網絡發展狀況統計報告》。數據顯示,截至2018年12月,我國網民總規模達8.29億,其中手機網民的規模達到了8.17億,占比高達98.6%。面對已經全面進入的移動互聯網時代的背景,谷歌的Android系統作為最主要的移動平臺開發類型在我國的使用率占比高達80%。Android移動應用更是爆發性增長。發展至今,數以億計的網民每天通過種類繁多的Android應用進行網絡購物、移動支付、網絡視頻、網絡音樂和網絡游戲等等。面對移動終端市場豐富多樣的應用,加之用戶的應用安全意識還比較淡薄,缺乏權限保護等方面的專業知識,極其容易感染各類手機病毒及安裝下載惡意軟件[1],所以日益凸顯的應用安全問題愈發需要引起我們的重視。
自谷歌Android系統發布以來,由于其獨特的開放性、開源特性和可定制性等特性,Android平臺的開放生態使得每一個Android設備中安裝的軟件大多來自不同的芯片廠商、手機開發商以及不同的應用開發者等?;谶@種現狀,各種軟件組件基本很難達到遵從一個統一的標準,所以開發的質量也會良莠不齊。對于一些不法分子以及惡意攻擊者來說,卻是一個很好的目標。Android智能終端的安全層基本可以分為5個層次[2],分別為:網絡安全層、設備安全層、系統安全層、數據安全層和應用安全層。在此,針對Android APP開發人員,我們主要對Android的應用安全層進行一系列深入的研究和探索。用戶隱私數據的泄漏主要有以下幾種表現形式:
(1)隱私數據被惡意軟件竊取,竊取者利用應用漏洞和途徑,騙取用戶安裝惡意插件,從而利用惡意軟件來獲得用戶隱私數據。
(2)移動終端往往被用戶隨身攜帶,經常移動終端被放置在某些地方,例如開會放在會場,在用戶離開的時候,如果該手機上的涉及錢財或者隱私的應用沒有身份驗證機制,用戶的信息或者錢財就存在著風險。
(3)通信被抓包截獲的風險。目前手機APP通過接口發出的通信消息,很大一部分應用通信都沒有加密,為明文數據,極易被竊取者通過特定技術手段進行截獲和監聽,造成用戶的隱私泄露。
Android應用通常來自第三方應用商店和應用程序下載論壇等。這些Android應用程序中極易存在安全漏洞,給用戶帶來隱患和安全風險。針對Android應用層的安全問題,我們可以從以下幾個方面進行研究和剖析。
生物身份認證是一種分析個人生物和行為特征的技術[3],例如指紋識別,虹膜,視網膜,面部識別等。由于這種唯一性以及傳統密碼等方式的不安全性,越來越多的Android應用采用了生物身份認證?,F在有越來越多的 Android 終端設備以及Android應用搭載了或使用了指紋識別技術,例如指紋識別技術目前在微型支付等APP中的應用。Android應用結合生物身份驗證可以大大減少我們被惡意攻擊的風險以及私密信息泄露的風險。當然,現階段通過生物身份認證的準確率還達不到100%的精準,需要廣大開發者以及各個行業去不斷努力探索,精益求精。將來更多的Android應用可以配合生物身份識別驗證來保證我們的應用安全[4-5]。
通過反編譯等逆向分析方法來獲取應用的特征,比如一些權限、敏感API調用、簽名等,通過針對樣本的應用特征的提取以及分析,來判斷該應用是否屬于惡意應用。另外,針對數量巨大的各類應用,可以引入機器算法對應用進行智能分析。通過智能分析,實現對權限檢查、軟件安裝和卸載、文件接收和發送、后臺撥打和接聽電話、收發短信息、操作數據庫、聯網、攝像頭操作等行為的監控。Burguera 等[6]提出 Crowdroid,在 Android終端用 strace 追蹤器去采集行為數據,然后傳到分析服務端,再利用分類器去訓練這些行為的樣本,使用 KNN 特定算法判斷應用是否含有惡意行為。
Android應用逆向工程的飛速發展,使得開發者辛苦開發出的應用能夠被輕而易舉地破解,甚至被惡意篡改,植入病毒,頁面被劫持等。因此,對Android應用進行針對性的安全加固顯得尤為重要。
關于應用加固,主要是基于核心的加密技術,給Android應用進行深度加密,加殼保護,使應用遠離惡意破解、反編譯、二次打包以及內存抓取等威脅。對classes.dex文件采用高壓縮及加密變形處理,并對關鍵核心邏輯代碼進行保護,要防止破解者通過apktool、jeb、dex2jar等靜態分析工具逆向分析java層代碼;對so文件代碼進行llvm混淆及加密保護,使IDA等逆向工具無法分析邏輯,使得native層代碼安全性得到有效的保證;對應用運行時的進程空間進行防護;阻止代碼注入,屏蔽各種調試器、游戲外掛、應用輔助,防止程序被劫持、數據被修改。
Android 應用程序的加固方式有很多,加密技術也是多種多樣,但是我們還是要不斷探索研發更安全的加密技術,需要引起更多的專家和研發者的重視以及進行更多的研發投入。
為了加強對Android應用產品的安全監測,提高各大Android應用市場對Android產品的安全準入門檻,各大移動應用商店應建立并不斷完善對Android應用的檢測與審核機制。根據移動應用軟件的危害來源,移動應用存在的安全風險分為:監聽或遠程控制等;系統接口側風險,如收集用戶個人信息,捆綁惡意操作等。對于政府相關部門也應該對Android應用市場進行規范化管理。根據應用產生的威脅程度建立一個完善的評估體系和評估標準,從多個角度進行評價,綜合得到一個結果,反映出應用的脆弱性和風險。從而可以最大限度規避可能受到的惡意程序攻擊。
面對層出不窮的Android終端 APP,盡管在技術層面上越來越成熟,越來越智能化,但是在用戶使用應用安全問題上仍然存在著諸多漏洞,在各方設計開發過程中,需要持續不斷創新,了解最新技術,明確 Android 操作系統以及App開發的深層原理與內部構造,在針對各種威脅方面,從應用的特征提取、應用簽名,再到隱私數據加密、應用的安全加固、應用的安全評估等各個方面提出防范措施,保證我們的應用安全,讓惡意的破壞分子無處遁形。
[1]黃海峰. 2011年安卓手機木馬激增六大安全廠商共話移動終端安全趨勢[J].通信世界,2012(9):32-33.
[2]丁麗萍. Android 操作系統的安全性分析[J]. 信息網絡安全,2012(3):28 -31.
[3]邵亞楠.移動終端APP的交互動畫設計與運用[J].大眾文藝,2017,5(24):52-53
[4]魏秀卓,馬瑞,張晉等.APP 開發中安卓操作系統的應用及發展[J].現代職業教育,2017,12(22):150-151.
[5]馮登國,孫悅,張陽.信息安全體系結構[M].北京:清華大學出版社,2008.
[6]BURGUERA I,ZURATUZA U,etal. Crowdroid: behavior-based malware detection system for Android[C]//The 1st ACM Workshop on Security and Privacy in Smartphones and Mobile Devices. New York,USA,c2011:15-26.