趙一凡 曹晨業 劉斌 黃力冶


針對移動應用出現的個人信息非法泄露和使用等問題,提出一種結合人工滲透測試和漏洞分析的檢測方法,通過靜態和動態檢測相結合,針對移動應用App進行多維度安全檢測。
隨著信息基礎建設的發展和移動應用的普及,用戶個人信息在使用過程中被應用開發者大量收集,出現了對個人信息的非法泄露和使用問題,嚴重威脅到了個人信息安全。據東部某省2020年App個人信息違法違規收集專項行動的數據顯示,85%的App未明示收集使用個人信息的目的、方式和范圍,56%的App未經用戶同意收集使用個人信息,37%的App未按法律規定提供刪除或更正個人信息功能或未公布投訴、舉報方式等信息。
為此,筆者針對移動應用出現的個人信息非法泄露和使用等問題,提出一種結合人工滲透測試和漏洞分析的檢測方法。通過靜態和動態檢測相結合,針對移動應用App進行列的分析,包含基本信息、漏洞信息、收集和使用個人信息行為、通訊傳輸行為、軟件和技術供應鏈情況、技術脆弱性、隱私政策規范性以及App中第三方插件或SDK等進行多維度安全檢測。
靜態檢測
靜態檢測由信息獲取、重打包檢測、權限檢測和特征檢測4個模塊組成,對應用程序的源代碼和文件信息進行掃描分析,解讀應用程序的行為,具體流程如圖1所示:
信息獲取功能。該功能可獲取應用程序的文件信息、權限的信息和組件信息。APK格式文件也可看作一個ZIP壓縮文件,通過查看ZIP文件信息就可以獲取文件相關信息;使用開源工具將Android應用程序中Android Manifest.xml文件轉換成XML文件,然后使用Python中的XML文件處理功能,來讀取該XML文件中的uses-permission權限屬性;Activity列表可獲得應用的界面的類,服務是指后的運算類,可以通過service列表得到應用程序的后臺運算類。
權限檢測。權限檢測技術可以提取到申請權限的Permission信息,根據Permission信息列表即可得出其敏感權限。應用程序的權限是安裝時由用戶確定的,如果一個應用程序在安裝時未獲得相應的權限,就無法正常運行。敏感權限是指App獲取個人信息和個人敏感信息所需要的手機系統權限。如果安裝時應用向系統申請了敏感權限,則應該做進一步檢測。
特征檢測功能。特征檢測能識別出應用中的惡意代碼,但因為特征庫的更新不及時,這種檢測方法有一定的滯后性。由于惡意行為必須通過系統API序列調用才能完成,在檢測時舍棄二進制特征而采用API特征,對API序列進行分析,可以降低傳統特征檢測技術的滯后性。APK的特征參數包括被檢測APK包含的所有的類以及函數名、參數簽名和包名,以此來提高檢測的全面性和準確性。
重打包檢測功能。將APK文件進行反編譯,嵌入惡意代碼,再重新打包放在網絡上供用戶下載,是目前惡意代碼傳播的一種途徑。公鑰信息是由簽名文件生成的,兩個簽名文件一定會生成不一致的公鑰信息。重打包檢測的原理是對比APK文件中和數據庫中的Package Name和公鑰信息,若兩者一致,就判定為安全,如果不一致,則說明APK文件存在被重打包的風險。
動態檢測
動態檢測技術的核心是通過沙箱監測App動態運行行為,獲取App代碼中申請和使用的權限集合。采用的沙箱系統,如沙箱手機和云手機,可監測App在運行過程中的高達100+種行為,包括讀取文件、寫入文件、獲取應用進程、讀取系統配置等行為。同時行為函數調用棧對行為主體進行分析,過濾App或SDK行為,針對性排查違規行為主體,定位行為觸發的代碼位置。
沙箱系統結合DPI技術,對應用通訊傳輸數據進行抓取,分析傳輸數據內容,訪問服務器地址、地理位置、網絡傳輸類型等信息。定位信息接收對象,分析數據內容是否包含個人信息。建立本地websocket服務,瀏覽器連接上后,啟動動態/法規檢測,會給IDB發啟動命令,IDB啟動手機websocket服務,通過ssh通知手機連接IDB手機websocket服務,IDB下載ipa之后,將ipa移動到手機指定路徑,調用命令安裝,然后啟動。手機檢測過程中產生行為數據,經由IDB轉發到瀏覽器端。
漏洞分析
通過靜態和動態的檢測方式對上述軟件系統權限進行檢測,能夠發現常見的一些權限錯配方面的問題,但還需根據代碼測試進行漏洞的分析,以發現相關漏洞帶來的個人信息安全威脅,具體檢測漏洞類型見表1。
檢測分析
檢測樣本選取。本次App個人信息安全檢測對象為從在東部某省注冊的7249個App中隨機選擇50個,分別從華為應用市場、應用寶、安智市場、百度手機助手、魅族市場、360市場等多個應用商城渠道下載獲取,涵蓋公眾服務、衛生健康、新聞傳媒、出行、互聯網金融、兒童教育、網絡游戲等領域,同時兼顧下載次數較高、領域內代表性強、社會熱度較高的移動應用作為本次檢測的對象。
檢測結果分析。本次對東部某省App個人信息安全檢測的結果顯示,移動App在隱私政策、用戶賬號、個人信息收集等方面存在較多問題,具體情況如下:
未在隱私政策中說明個人信息存儲和超期處理方式:存在未明確個人信息存放地域(國內、國外)、存儲期限(法律規定范圍內最短期限或明確的期限)、超期處理方式的問題。檢測情況:經檢測有27款應用不符合此項要求,占比為54%。
未在隱私政策中明示各項業務功能所收集的個人信息類型:存在未詳細列舉收集個人信息的業務功能及其收集的個人信息類型、收集/使用目的、收集具體方式的問題。檢測情況:經檢測有20款應用不符合此項要求,占比為40%。
隱私政策等文件存在免責等不合理條款:存在App運營者在用戶協議、服務協議、隱私政策等文件中出現免除自身責任、加重用戶責任、排除用戶主要權利條款的問題。檢測情況:經檢測有17款應用不符合此項要求,占比為34%。
未在隱私政策中明示收集個人信息的業務功能:存在未逐項列舉收集個人信息的業務功能及其收集的個人信息類型、收集/使用目的、收集具體方式的問題。檢測情況:經檢測有17款應用不符合此項要求,占比為34%。
不支持用戶注銷賬號或是否支持用戶查詢、更正或刪除個人信息:存在未提供App注銷賬號的途徑,App未提供查詢、更正、刪除個人信息的途徑,或因共享、轉讓、批露涉及第三方的,未通知第三方及時刪除的問題。檢測情況:經檢測有16款應用不符合此項要求,占比為32%。
未在隱私政策中明示對外共享、轉讓、公開披漏個人信息規則:存在個人信息對外共享、轉讓、公開批露等情況,但在軟件測試過程中查看隱私政策條款,未明確對外共享轉讓公開批露個人信息的目的、涉及的個人信息的類型、接受方類型或身份及承擔的法律責任等信息的問題。檢測情況:經檢測有14款應用不符合此項要求,占比為28%。
隨著5G技術的普及,移動App與生活聯系將越發緊密,移動App個人信息安全評估將會成為信息安全的重要工作。本文中靜態檢測和動態檢測相結合的方法,可以兼顧測試結果的全面性和準確性。在大數據時代,只有做好個人信息合規建設,才能讓信息更好為人們服務,移動應用行業才能健康發展。
(作者單位:浙江省電子信息產品檢驗研究院)