◆馬敏燕 季瑩瑩
(國家計算機網絡應急技術處理協調中心浙江分中心 浙江 310052)
Google 發布Android 系統以來,憑借開源性和高度的開放性,Android 迅速占領移動終端市場。在移動APP 產業快速發展的同時,在巨大經濟利益的誘惑下,灰產和黑產紛紛盯上這塊大蛋糕,導致各種惡意APP 層出不窮。
本文基于動靜態檢測的方式分析Android APP敏感行為開展研究。動態檢測模塊可對APP 運行時數據進行分析,主要結合API Hook技術監控APP 的API 調用、結合多種網絡流量分析技術監控APP 和網絡數據、結合自動化測試技術提高檢測效率。靜態檢測模塊可對APP 的代碼進行掃描,分析其中的敏感行為,主要結合APP 逆向技術獲取APP 匯編代碼、結合基于抽象語法樹的控制流、數據流分析技術分析APP 中的非安全調用、隱私泄露行為等敏感行為。
Android APP 有如下幾大類影響軟件安全性的問題:
(1)APP 自身含有惡意行為影響用戶的信息安全。Android 惡意APP 通過推送惡意廣告誘騙欺詐、私自下載其他APP 偷跑流量、私發短信惡意吸費、出賣用戶隱私等方式非法獲取利益。
(2)APP 自身編寫存在問題而被惡意利用。由于APP 開發者的水平參差不齊以及APP 測試的不完善,導致了很多APP 自身都存在安全問題,容易被攻擊者惡意利用從而對用戶產生威脅。
(3)APP 過度的隱私收集。為了提高用戶體驗,或是提高廣告投放的精準度,大多數APP 都盡可能多的收集用戶信息,但用戶的手機中存儲著大量個人隱私,一旦過度收集用戶個人數據,甚至是惡意竊取,造成隱私泄露問題。
針對以上問題,本文中通過對Android 安全情況的長期研究、技術積累,對APP 中可能存在的安全問題進行全面、細粒度的檢測。
為實現更加全面、準確的Android APP敏感行為檢測,本文在已有工作基礎上,擬訂在動態方面研究APP 敏感操作的運行時特征與行為,實現APP 動態監控技術,在靜態方面研究相關機器代碼工作流程與常見模式,實現APP 逆向分析技術。
本系統為實現功能,分為以下四個功能層:數據采集層、業務邏輯層、通信層、存儲支撐層。
數據采集層負責APP 信息采集,主要功能為對常見應用商店的爬取,實現APP 信息采集和樣本下載;業務邏輯層包括APP敏感行為動態檢測模塊、APP敏感行為靜態檢測模塊,是系統的核心業務層,功能為對App 樣本進行自動化分析,動態運行獲取App 敏感API 調用、網絡通信數據,靜態反編譯App 進行控制流數據流通過模式匹配獲取APP敏感行為;調度管理層包括業務管理、日志管理、節點管理和結果管理,主要對系統的各節點、業務功能和數據進行管理和調度;存儲支撐層主要為系統提供存儲和算力支撐。

圖1 系統功能

圖2 流程圖
對國內外主流Android APP 市場進行收集,利用爬蟲與分布式下載等技術,進行信息采集及樣本獲取,得到待測APP 信息及樣本文件。進行檢測時,動態檢測任務下發到測試機,通過自動化測試進行敏感API 檢測,同時通過網絡監控模塊對App 的網絡通信數據進行分析,獲取其中敏感數據;靜態任務在服務器上進行,對其進行逆向等預處理后生成抽象語法樹,進行控制流與數據流分析,通過與數據庫中的敏感行為模式進行匹配,從代碼層面分析被檢App 的敏感行為。最后匯總并分析動態檢測和靜態檢測結果,生成報告。
基于動靜態分析技術,實現對Android APP 以下敏感行為的監控,包括但不限于:非法竊取隱私數據、異常數據記錄、異常權限持有、文件系統行為、遠程控制行為、惡意傳播行為。
基于網絡流量監控與分析技術,支持對APP 流量中HTTPS、TLS協議傳輸的加密數據分析,輸出泄露的敏感信息、相關數據及上下文信息。支持對遠程控制、惡意傳播行為的發現,可以分析并記錄相關網絡傳輸目標IP、端口、域名、協議信息。
本文基于動靜態檢測的方式分析Android APP敏感行為開展研究,實現基于動態運行時的Android APP敏感行為檢測方案,實現基于逆向的Android APP 靜態代碼敏感行為檢測,有效發現APP 中多種隱私泄露行為。