賴海超+張君+朱晨鳴
摘 要: 基于安卓APP的安全現(xiàn)狀,分析了移動APP安全問題頻發(fā)的原因。從系統(tǒng)環(huán)境安全、程序安全、數(shù)據(jù)安全、業(yè)務(wù)安全、程序應(yīng)用漏洞等五個方面構(gòu)建一個全面準(zhǔn)確的移動APP安全檢測體系,構(gòu)筑防范惡意應(yīng)用的第一道防線,大大提高移動APP開發(fā)和運(yùn)營企業(yè)的安全意識,提升移動APP的安全性。
關(guān)鍵詞: 移動APP; 安全; 惡意應(yīng)用; 安全檢測體系
中圖分類號:TP393.08 文獻(xiàn)標(biāo)志碼:A 文章編號:1006-8228(2018)01-27-03
The analysis of mobile application safety and security test system
Lai Haichao, Zhang Jun, Zhu Chengming
(Zhejiang Provincial Testing Institute of Electronic information Products, Hangzhou, Zhejiang 310007, China)
Abstract: According to the security status of Android application, the causes of frequent occurred mobile application security problems are analyzed. Building a comprehensive and accurate mobile APP security test system with environmental safety, safety procedures, data security, business security and application vulnerability prevention five aspects, the first line of defense against the malicious applications is constructed, which greatly enhances the safety awareness of mobile APP developer and operation enterprise, enhances the security of mobile APP.
Key words: mobile application; safety; malicious application; security test system
0 引言
隨著移動互聯(lián)網(wǎng)信息技術(shù)的飛速發(fā)展,智能手機(jī)、平板電腦等移動終端用戶數(shù)量呈爆發(fā)式增長,2017 Mary Meeker的互聯(lián)網(wǎng)趨勢報告[1]指出中國移動互聯(lián)網(wǎng)用戶數(shù)量突破7億,同比增長12%,移動互聯(lián)網(wǎng)用戶每日在線時長合計(jì)超過25億小時,同比增長30%。移動APP極大地方便了用戶的日常工作、生活和學(xué)習(xí),提供豐富多彩的娛樂內(nèi)容,但也帶來了較大的安全問題[2]。由于安卓生態(tài)圈的開放性,安卓應(yīng)用更容易被破解[3],本文基于安卓應(yīng)用,根據(jù)移動APP安全現(xiàn)狀分析移動APP安全問題頻發(fā)的原因,針對現(xiàn)有的移動安全問題,構(gòu)建一套全面準(zhǔn)確的移動APP檢測體系[4-5]。
1 移動APP安全現(xiàn)狀
移動APP近年來呈井噴式發(fā)展,作為一個新興的領(lǐng)域,移動APP開發(fā)者為了快速響應(yīng)市場的需求,并沒有將信息安全納入到軟件的生命周期中,對移動APP的業(yè)務(wù)邏輯、功能模塊處理不嚴(yán)謹(jǐn),甚至個別開發(fā)者預(yù)留應(yīng)用后門收集用戶信息,導(dǎo)致市場上部分移動APP存在漏洞、后門等安全隱患。同時,由于Google Play在國內(nèi)使用不方便,催生了大量第三方應(yīng)用商城,其中部分第三方應(yīng)用商城對上線的移動APP審核不嚴(yán),造成用戶下載含惡意行為的移動APP。目前大量移動APP主要存在下列問題。
⑴ 隱私泄露
惡意應(yīng)用在用戶不知情的情況下,讀取用戶的通話記錄、通訊錄信息、短信信息和視頻圖片等用戶隱私信息,并將讀取收集的信息上傳至惡意應(yīng)用開發(fā)者。部分移動APP將用戶敏感數(shù)據(jù)存放在外部存儲空間中,如果存儲空間權(quán)限的限制不嚴(yán)格,也會導(dǎo)致敏感數(shù)據(jù)的泄露。
⑵ 仿冒盜版
盜版應(yīng)用通過偽造LOGO、名稱等誤導(dǎo)用戶安裝,通常知名度較高、用戶群龐大以及銀行類移動APP容易被仿冒盜版。
⑶ 篡改打包
不法分子對市場上比較火爆的移動APP進(jìn)行二次打包,將二次打包后的移動APP通過論壇、第三方商城等途徑誘導(dǎo)用戶下載安裝,通過插入廣告、木馬、病毒等方式竊取用戶隱私、吸資扣費(fèi)、耗費(fèi)流量。二次打包后的盜版APP與正版APP完全相同,用戶肉眼無法分別。
⑷ 流氓行為
惡意應(yīng)用可能在后臺運(yùn)行,強(qiáng)制占用系統(tǒng)內(nèi)存和CPU資源,使智能終端運(yùn)行緩慢,部分惡意應(yīng)用甚至無法被刪除。卸載。這類型惡意應(yīng)用嚴(yán)重?fù)p害用戶體驗(yàn)和用戶的合法權(quán)益。
⑸ 安全漏洞
企業(yè)為了追逐移動互聯(lián)網(wǎng)紅利,更加關(guān)注的是移動APP的開發(fā)上線速度,而非開發(fā)規(guī)范和移動APP的安全性,這導(dǎo)致絕大多數(shù)移動APP都存在安全漏洞,同時開發(fā)的安卓生態(tài)圈也導(dǎo)致安卓系統(tǒng)存在安全漏洞。不法分子利用這些安全漏洞竊取用戶隱私、遠(yuǎn)程控制用戶智能終端。
2 移動APP安全問題的根源分析
移動APP的生態(tài)鏈主要包括智能終端、應(yīng)用商城和移動APP本身,所以移動APP安全問題的根源也來自于這三個環(huán)節(jié)。究其原因,主要有以下幾方面。
⑴ 簡單的應(yīng)用市場安全審查
Google Play在國內(nèi)使用不方便,催生出大量第三方安卓市場,其中大部分安卓市場對上線的移動APP審查不嚴(yán),導(dǎo)致大量仿冒盜版、二次打包等惡意應(yīng)用上線,同時,由于安卓生態(tài)圈的開放性,各種論壇也是移動APP傳播的重要途徑,論壇的審核機(jī)制相對于應(yīng)用商城更加薄弱。endprint
⑵ 有限的系統(tǒng)級安全監(jiān)測
安卓系統(tǒng)是開源的,其系統(tǒng)權(quán)限把控不嚴(yán),移動APP上線時一般都擁有大部分的系統(tǒng)權(quán)限,如果智能終端的系統(tǒng)是ROOT的,那么系統(tǒng)權(quán)限更多更核心。系統(tǒng)權(quán)限的過度開放對用戶隱私保護(hù)、惡意行為防范等方面造成很大風(fēng)險。
⑶ 粗粒度的應(yīng)用安全機(jī)制
移動互聯(lián)網(wǎng)發(fā)展快速,企業(yè)為了緊跟市場的腳步,主要關(guān)注的是移動APP的開發(fā)速度和需求實(shí)現(xiàn),而忽略了移動APP的安全性。大量移動APP在功能實(shí)現(xiàn)后,直接在應(yīng)用商城上線,未對移動APP采取代碼混淆、加固等安全保護(hù)措施,這樣不法分子能夠很簡單的將這里移動APP進(jìn)行破解和二次打包。
3 移動APP安全檢測體系研究
針對基于移動APP突出的安全隱患,一方面,需要將安全機(jī)制貫穿到移動APP生態(tài)鏈的每個環(huán)節(jié);另一方面,全面、準(zhǔn)確、有效的移動安全檢測體系也是移動APP安全的重要保障。移動安全檢測體系主要從系統(tǒng)環(huán)境安全、程序安全、數(shù)據(jù)安全、業(yè)務(wù)安全、程序應(yīng)用漏洞5個方面對移動應(yīng)用進(jìn)行安全評估。
3.1 系統(tǒng)環(huán)境安全
⑴ 會話安全
移動APP客戶端與服務(wù)端連接應(yīng)進(jìn)行超時設(shè)置。
⑵ 終端ROOT利用漏洞
移動APP運(yùn)行時應(yīng)對終端是否ROOT進(jìn)行檢測,檢測到root權(quán)限時,應(yīng)進(jìn)行相應(yīng)的提醒或者禁止軟件運(yùn)行。
⑶ 輸入監(jiān)聽漏洞
移動APP在敏感數(shù)據(jù)輸入時不應(yīng)使用不安全的系統(tǒng)鍵盤。移動APP在進(jìn)行重要數(shù)據(jù)、敏感數(shù)據(jù)輸入時如果未使用專業(yè)的安全鍵盤而使用系統(tǒng)鍵盤的話,則會存在被輸入時屏幕截屏/錄屏、數(shù)據(jù)輸入攔截/劫持、數(shù)據(jù)輸入篡改等風(fēng)險。
3.2 程序安全
⑴ 移動APP反向編譯
移動APP的核心關(guān)鍵文件應(yīng)采用加花保護(hù),防止移動APP被反向編譯導(dǎo)致核心業(yè)務(wù)邏輯泄露。
⑵ 移動APP篡改
移動APP應(yīng)進(jìn)行加固,避免被篡改后二次打包。
⑶ 權(quán)限濫用檢測
移動APP應(yīng)遵循權(quán)限最小化原則,僅開放移動APP業(yè)務(wù)相關(guān)的系統(tǒng)權(quán)限,避免權(quán)限濫用。
⑷ 代碼混淆檢測
移動APP的代碼應(yīng)進(jìn)行過混淆,避免出現(xiàn)出現(xiàn)被反編譯竊取逆向代碼還原到源工程的危險。
⑸ 應(yīng)用完整性檢測
移動APP應(yīng)進(jìn)行完整性驗(yàn)證保護(hù),防止移動APP被非法篡改、非法刪除、非法新增惡意文件等。
⑹ Intent檢測
移動APP應(yīng)規(guī)避Intent組件隱式調(diào)用風(fēng)險,應(yīng)用創(chuàng)建Intent傳遞數(shù)據(jù)到其他Activity,如果創(chuàng)建的Activity不是在同一個Task中打開,就很可能被其他的Activity劫持讀取到Intent內(nèi)容,跨Task的Activity通過Intent傳遞敏感信息是不安全的。
3.3 數(shù)據(jù)安全
⑴ 存儲安全性檢測
移動APP的敏感數(shù)據(jù)不應(yīng)采用外部存儲(如sdcard卡),任何有權(quán)限訪問Sdcard的應(yīng)用均可以訪問sdcard卡存儲的數(shù)據(jù),容易導(dǎo)致敏感信息泄漏。
⑵ H5文件明文存儲檢測
移動APP中的H5資源文件應(yīng)進(jìn)行混淆加固,避免泄露頁面基本布局和一些重要的信息。
⑶ 資源文件_篡改分析
移動APP中的資源文件如未做資源加密、包簽名驗(yàn)證、包完整性驗(yàn)證等措施,重要資源存在被篡改風(fēng)險的風(fēng)險,造成程序被直接修改資源打包成山寨應(yīng)用。
3.4 業(yè)務(wù)安全
⑴ 證書監(jiān)測檢測
移動APP的證書信息應(yīng)加密處理,避免證書被盜用,對網(wǎng)絡(luò)加密傳輸數(shù)據(jù)進(jìn)行解密,造成用戶賬號、密碼等重要信息泄露。
⑵ 異常處理檢測
移動APP應(yīng)具備異常處理機(jī)制,在異常出現(xiàn)時能夠捕捉到異常信息,并將異常信息記錄下來,或者上傳到異常分析服務(wù)器進(jìn)行分析。
3.5 程序應(yīng)用漏洞
⑴ 病毒檢測
移動APP上線時,應(yīng)對APK進(jìn)行病毒檢測。
⑵ APK靜態(tài)反編譯漏洞
檢測移動APP是否存在APK靜態(tài)反編譯漏洞,APK文件可以被apktool等反編譯工具直接反編譯為smali代碼,如smali代碼未做任何防護(hù)措施,存在軟件破解、內(nèi)購破解、軟件邏輯修改、插入惡意代碼、替換廣告商ID等風(fēng)險。
⑶ 數(shù)據(jù)庫注入漏洞
檢測移動APP是否存在數(shù)據(jù)庫注入漏洞。由于Content provider組件讀寫權(quán)限設(shè)置不當(dāng),并且未對sql查詢語句的字段參數(shù)作過濾判斷,移動APP數(shù)據(jù)庫可能被注入攻擊。這種風(fēng)險可能導(dǎo)致存儲的敏感數(shù)據(jù)信息泄露,例如賬戶名,密碼等,或者產(chǎn)生查詢異常導(dǎo)致應(yīng)用崩潰。
⑷ allowBackup安全漏洞
檢測移動APP是否存在數(shù)據(jù)越權(quán)備份風(fēng)險。Android API Level 8及其以上Android系統(tǒng)提供了為應(yīng)用程序數(shù)據(jù)的備份和恢復(fù)功能。一旦移動APP支持備份和恢復(fù)功能,攻擊者可在其他智能終端恢復(fù)該APP,并查看聊天記錄等敏感信息。對于支付金融類應(yīng)用,攻擊者可通過此來進(jìn)行惡意支付、盜取存款等。
⑸ WebView遠(yuǎn)程代碼執(zhí)行漏洞
檢測移動APP是否存在WebView遠(yuǎn)程代碼執(zhí)行漏洞。Android API level 16以及之前的版本存在遠(yuǎn)程代碼執(zhí)行安全漏洞,該漏洞源于程序沒有正確限制使用WebView.addJavascriptInterface方法,遠(yuǎn)程攻擊者可通過使用Java Reflection API直接操作移動APP的JAVA函數(shù)接口。
⑹ 敏感數(shù)據(jù)內(nèi)存運(yùn)行安全
檢測移動APP是否存在代碼動態(tài)調(diào)試風(fēng)險。Android C層代碼動態(tài)調(diào)試漏洞是指,在程序運(yùn)行過程中,惡意程序或者人工可以通過動態(tài)調(diào)試技術(shù),對程序進(jìn)行內(nèi)存調(diào)試跟蹤,可以竊取目標(biāo)進(jìn)程的數(shù)據(jù)信息,從而了解到移動APP的業(yè)務(wù)邏輯,獲取用戶的隱私內(nèi)容信息。
4 結(jié)束語
移動APP已經(jīng)深入到人們的工作、生活、學(xué)習(xí)和娛樂中,惡意應(yīng)用嚴(yán)重?fù)p害用戶的合法權(quán)益,移動APP安全檢測是防范惡意應(yīng)用的一道重要的防線。本文基于安卓應(yīng)用,從智能終端、應(yīng)用商城和移動APP本身三個環(huán)節(jié)分析移動應(yīng)用安全問題出現(xiàn)的原因,通過分析移動APP系統(tǒng)環(huán)境安全、程序安全、數(shù)據(jù)安全、業(yè)務(wù)安全、程序應(yīng)用漏洞,構(gòu)建出一個全面準(zhǔn)確的移動APP安全檢測體系。
參考文獻(xiàn)(References):
[1] Mary Meeker,2017 Internet Trends[Z].Mary Meeker,2017.
[2] 鄭威,移動互聯(lián)網(wǎng)應(yīng)用安全的問題分析與建議[J].現(xiàn)代電信
科技,2012.9:27-32
[3] 張玉清,王凱,楊歡,方喆君,王志強(qiáng),曹琛.Andriod安全綜述[J].
計(jì)算機(jī)研究與發(fā)展,2014.7:1385-1396
[4] 陳希,劉穎卿,葉蘊(yùn)芳.構(gòu)筑移動應(yīng)用安全評估體系[J].電信工
程技術(shù)與標(biāo)準(zhǔn)化,2015.12:11-16
[5] 費(fèi)會.移動應(yīng)用安全檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京郵電大
學(xué)碩士學(xué)位論文,2015.endprint