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