摘 要 當(dāng)前,隨著公民個人信息保護(hù)意識的不斷增強(qiáng),App移動應(yīng)用的安全性備受關(guān)注,移動應(yīng)用導(dǎo)致公民信息泄露等安全事件頻發(fā)成為社會的熱點。因此,對移動應(yīng)用上架運行前開展安全測試評估顯得尤為迫切和必要。文章著重介紹了移動應(yīng)用安全測試評估流程和技術(shù)原理,通過對安全測試評估工作的介紹,讓讀者對移動應(yīng)用安全測試評估的目的、內(nèi)容、方法和技術(shù)有一個較為全面的了解,旨在提升和加強(qiáng)網(wǎng)絡(luò)運營者、應(yīng)用開發(fā)者和用戶的網(wǎng)絡(luò)安全意識。
關(guān)鍵詞 移動應(yīng)用;安全測試;測評平臺;靜態(tài)引擎;動態(tài)引擎
中圖分類號:TP3 " " " " " " " " " " " " " " " 文獻(xiàn)標(biāo)識碼:A " " DOI:10.16400/j.cnki.kjdk.2025.09.047
Introduction to Internet-based Mobile Application Security Testing and"Evaluation Technologies
SHEN Jun
(Hongshan Branch of Wuhan Public Security Bureau, Wuhan, Hubei 430070)
Abstract Currently, with the continuous enhancement of citizens' awareness of personal information protection, the security of App mobile applications has received much attention. Security incidents such as citizens' information leakage caused by mobile application security have occurred frequently and become a social hot topic. Therefore, it is particularly urgent and necessary to carry out security testing and evaluation before mobile applications are launched and put into operation. This article focuses on introducing the security testing and evaluation process and technical principles of mobile applications. Through the introduction of security testing and evaluation work, readers can have a relatively comprehensive and sufficient understanding of the purpose, content, methods and technologies of mobile application security testing and evaluation, aiming to enhance and strengthen the network security awareness of network operators, application developers and users.
Keywords mobile applications; security testing; testing and evaluation platform; static engine; dynamic engine
1背景介紹
隨著互聯(lián)網(wǎng)新技術(shù)的不斷發(fā)展和智能終端的大量普及,Android和iOS系統(tǒng)作為目前市場最主流的移動應(yīng)用操作系統(tǒng),其應(yīng)用種類、應(yīng)用數(shù)量都在不斷地增長。當(dāng)下智能終端設(shè)備已經(jīng)逐步替代PC終端設(shè)備,成為互聯(lián)網(wǎng)個人信息終端和移動支付的主流工具,其安全問題不容忽視,例如XcodeGhost漏洞、iBackDoor、弱加密、輸入鍵盤劫持等。移動應(yīng)用的這些安全問題不僅可能導(dǎo)致用戶的個人信息和隱私泄露,被犯罪分子非法利用來進(jìn)行電信網(wǎng)絡(luò)詐騙等各類犯罪活動,甚至還可能造成用戶自身的個人財產(chǎn)被竊取,遭受名譽和經(jīng)濟(jì)損失。如何在移動應(yīng)用產(chǎn)品上架之前就對其安全性開展檢測和評估,及時消除安全隱患,已成為應(yīng)用市場和用戶都十分關(guān)注的問題。
本文著重對互聯(lián)網(wǎng)移動應(yīng)用安全測評技術(shù)作一個基本的介紹,讓大家了解其中的技術(shù)原理、實現(xiàn)方法和測評流程,對互聯(lián)網(wǎng)移動應(yīng)用安全測評有一個較為全面、清晰的認(rèn)識,提升移動應(yīng)用安全防范意識。
2" 移動應(yīng)用安全測評的實現(xiàn)方法
目前,移動應(yīng)用的安全測試評估主要通過移動應(yīng)用安全測評平臺的自動化、程序化檢測來實現(xiàn),其通過深度靜態(tài)檢測技術(shù)、動態(tài)檢測技術(shù)和源代碼掃描等能力,全面評估移動應(yīng)用的安全問題,準(zhǔn)確定位問題根源,呈現(xiàn)安全問題詳情,并提供代碼修復(fù)示例。在平臺的管理系統(tǒng)中,可自主實現(xiàn)白名單庫、第三方SDK庫、敏感詞庫等的添加和管理。針對開發(fā)者或用戶認(rèn)可為安全的情形,可自主設(shè)置檢測規(guī)則,打造符合某行業(yè)領(lǐng)域或監(jiān)管規(guī)范的定制化檢測平臺。
測評平臺還提供了靈活多樣的部署形式,支持獨立部署(包括本地部署和公有云部署)及公有云賬號接入。同時,可通過升級管理系統(tǒng)實現(xiàn)平臺系統(tǒng)的自主更新,結(jié)合平臺的測評項目快速擴(kuò)展功能,將檢測中新發(fā)現(xiàn)的應(yīng)用的安全問題更新到樣本庫中,不斷地進(jìn)行樣本積累,使移動應(yīng)用的安全檢測評估能動態(tài)進(jìn)行,更加高效、及時、準(zhǔn)確地全覆蓋檢測。
3" 技術(shù)架構(gòu)
3.1" 平臺的核心模塊
移動應(yīng)用安全測評平臺的技術(shù)架構(gòu)整體設(shè)計需注重系統(tǒng)的高可用性、可擴(kuò)展性和安全性,同時確保數(shù)據(jù)傳輸和存儲過程中的加密與隱私保護(hù),其核心框架通常應(yīng)包括以下六大模塊。
①數(shù)據(jù)采集與解析模塊。通過公開的應(yīng)用市場(如Google" Play、Apple" App" Store)或第三方接口獲取移動應(yīng)用(APK/IPA文件);對應(yīng)用進(jìn)行靜態(tài)分析,提取元數(shù)據(jù)(如包名、版本號、權(quán)限聲明)、代碼結(jié)構(gòu)、資源文件等。②安全檢測引擎模塊。漏洞掃描:基于已知漏洞數(shù)據(jù)庫(如CVE、CNVD)和規(guī)則庫,檢測應(yīng)用中的代碼漏洞(如SQL注入、緩沖區(qū)溢出)和配置漏洞(如不安全的權(quán)限設(shè)置)。惡意行為分析:通過動態(tài)分析技術(shù)(如沙箱環(huán)境運行、行為監(jiān)控)檢測應(yīng)用是否存在惡意行為(如竊取用戶數(shù)據(jù)、惡意扣費)。隱私合規(guī)檢測:檢查應(yīng)用是否符合隱私保護(hù)法規(guī)(如GDPR、CCPA),包括數(shù)據(jù)收集、存儲、傳輸?shù)暮戏ㄐ浴4a加固檢測:評估應(yīng)用的代碼保護(hù)措施(如反編譯、反調(diào)試)是否有效。③數(shù)據(jù)存儲與管理模塊。使用數(shù)據(jù)庫(如MySQL、MongoDB)存儲檢測結(jié)果、應(yīng)用信息、漏洞詳情、用戶報告等;提供安全策略管理功能,允許用戶自定義檢測規(guī)則和警告閾值。④平臺管理與服務(wù)模塊。用戶管理:支持用戶注冊、登錄、權(quán)限控制(如管理員、普通用戶)。任務(wù)調(diào)度與執(zhí)行:支持批量任務(wù)提交,合理分配檢測資源,優(yōu)化檢測效率。報警與通知:當(dāng)檢測到高危漏洞或惡意行為時,通過郵件、短信等方式向用戶報警或通知。⑤可視化界面模塊。提供友好的Web界面,展示檢測結(jié)果、漏洞詳情、修復(fù)建議等;支持多維度的數(shù)據(jù)統(tǒng)計與分析(如漏洞分布、風(fēng)險等級分布);提供檢測報告生成與導(dǎo)出功能,方便用戶存檔或分享。⑥擴(kuò)展與集成模塊。支持與其他安全工具(如代碼掃描工具、威脅情報平臺)的集成;提供API接口,允許第三方系統(tǒng)調(diào)用平臺功能。
3.2" 平臺的核心組件
移動應(yīng)用安全測評平臺是一個基于云計算架構(gòu)的綜合性服務(wù)平臺,旨在為企業(yè)、開發(fā)者和用戶提供移動應(yīng)用安全測評、風(fēng)險評估、合規(guī)性檢測等服務(wù)。從服務(wù)提供的角度來描述,平臺應(yīng)包含以下核心組件及其結(jié)構(gòu)和內(nèi)容。 ①用戶管理與認(rèn)證服務(wù)組件:用戶注冊與登錄模塊、角色與權(quán)限管理模塊、多因素認(rèn)證(MFA)模塊。②應(yīng)用上傳與存儲服務(wù)組件:應(yīng)用文件上傳模塊、文件存儲與管理模塊、版本管理模塊。③安全檢測服務(wù)組件:漏洞掃描模塊、惡意行為分析模塊、隱私合規(guī)檢測模塊、代碼加固檢測模塊。④數(shù)據(jù)存儲與管理服務(wù)組件:檢測結(jié)果存儲模塊、應(yīng)用信息存儲模塊、漏洞庫管理模塊、數(shù)據(jù)統(tǒng)計與分析模塊。⑤平臺管理與運營服務(wù)組件:任務(wù)調(diào)度與執(zhí)行模塊、報警與通知模塊、系統(tǒng)監(jiān)控與維護(hù)模塊、運營數(shù)據(jù)分析模塊。⑥API接口與集成服務(wù)組件:標(biāo)準(zhǔn)API接口模塊、第三方工具集成模塊、威脅情報集成模塊。⑦可視化與報告服務(wù)組件:檢測結(jié)果展示模塊、數(shù)據(jù)統(tǒng)計與分析模塊、報告生成與導(dǎo)出模塊。⑧安全與隱私保護(hù)服務(wù)組件:數(shù)據(jù)加密模塊、訪問控制模塊、隱私保護(hù)模塊。
3.3" 平臺部署結(jié)構(gòu)
移動應(yīng)用安全測評平臺的物理部署結(jié)構(gòu)和整體架構(gòu)設(shè)計通常采用分布式部署架構(gòu),結(jié)合云計算資源,需要考慮高可用性、可擴(kuò)展性、安全性及資源利用率。以下是幾種常見的具體物理部署結(jié)構(gòu)。①公有云部署:選擇主流公有云服務(wù)商(如阿里云、AWS、華為云、騰訊云),適合需要快速上線、彈性擴(kuò)展的場景,其優(yōu)勢為資源豐富、成本低、支持高并發(fā)訪問。②私有云部署:部署在企業(yè)內(nèi)部數(shù)據(jù)中心,適合對數(shù)據(jù)隱私和安全要求較高的場景,其優(yōu)勢為數(shù)據(jù)可控、性能穩(wěn)定。③混合云部署:結(jié)合公有云和私有云的優(yōu)勢,核心數(shù)據(jù)和敏感業(yè)務(wù)部署在私有云,非核心業(yè)務(wù)和擴(kuò)展資源部署在公有云,其優(yōu)勢為靈活性高、成本優(yōu)化。
4" 技術(shù)原理
①分發(fā)隊列技術(shù):分發(fā)隊列管理應(yīng)用提交―任務(wù)分發(fā)―結(jié)果響應(yīng)的整體流程調(diào)度,一般來說應(yīng)用測評平臺使用RabbitMQ隊列服務(wù)器來管理測評的整體任務(wù)流程。RabbitMQ隊列服務(wù)擁有良好的性能和并發(fā)性,集合測評平臺調(diào)度環(huán)境,極大地提高了從應(yīng)用提交到檢測再到各個引擎處理的流程,響應(yīng)快速,并發(fā)性能高。
②Web模塊技術(shù):Web模塊主要用于用戶提交待測應(yīng)用包文件的初步判斷,數(shù)據(jù)展示和管理,發(fā)送用戶提交的測評任務(wù)給RabbitMQ隊列服務(wù)器,同時接收測評引擎的返回結(jié)果,生成數(shù)據(jù)報表,供查閱和下載。
③測評引擎技術(shù):測評引擎分為動態(tài)引擎、靜態(tài)引擎、病毒引擎、源碼引擎和Web引擎,根據(jù)現(xiàn)有漏洞的檢測方式有針對性、快速、準(zhǔn)確地檢測漏洞和風(fēng)險。
5" 測評流程
安全測評是一項系統(tǒng)性、專業(yè)性的工作,旨在發(fā)現(xiàn)系統(tǒng)或應(yīng)用中的安全漏洞和風(fēng)險,提供修復(fù)建議,最終提升系統(tǒng)的安全性。整個安全測評任務(wù)從開始到結(jié)束共有任務(wù)初始化、準(zhǔn)備、執(zhí)行、分析、報告、總結(jié)等六個階段。①任務(wù)初始化階段(任務(wù)啟動):明確測評任務(wù)的基本信息和范圍。②任務(wù)準(zhǔn)備階段:為測評任務(wù)做好準(zhǔn)備工作,確保順利執(zhí)行。③任務(wù)執(zhí)行階段:執(zhí)行實際的測評活動,發(fā)現(xiàn)潛在的安全問題。④任務(wù)分析階段:整理和分析測評結(jié)果,評估風(fēng)險等級。⑤任務(wù)報告階段:生成最終的測評報告,向客戶交付結(jié)果。⑥任務(wù)總結(jié)階段:復(fù)盤整個測評過程,積累經(jīng)驗,優(yōu)化流程。
全流程中任務(wù)狀態(tài)變化:未開始→ 已創(chuàng)建→準(zhǔn)備就緒→執(zhí)行中→分析中→已完成→已歸檔。
一個完整的測評過程主要包括以下幾個方面:用戶提交應(yīng)用、測評隊列獲取任務(wù)、進(jìn)入測評管理器、分發(fā)測評任務(wù)和數(shù)據(jù)、進(jìn)行各項安全測評、發(fā)現(xiàn)和定位漏洞信息、生成測評結(jié)果報告等。見圖1。
測評模塊的核心是用戶應(yīng)用進(jìn)入測評管理器后,被分發(fā)測評任務(wù)和數(shù)據(jù),進(jìn)行各項安全測評,發(fā)現(xiàn)和定位漏洞信息。圖2用來描述測評模塊完成應(yīng)用測評執(zhí)行的流程。
①Android靜態(tài)引擎。靜態(tài)引擎根據(jù)提交的APK文件,使用系統(tǒng)unzip和apktool工具分別解析應(yīng)用包信息,獲取完整的應(yīng)用權(quán)限、組件、行為等各項信息和應(yīng)用smali源代碼文件,結(jié)合漏洞情況,分析源代碼smali的漏洞情況,并定位到具體文件和方法。處理流程:解壓APK文件,提取AndroidManifest.xml;解析_manifest.xml,提取權(quán)限信息;定義一個簡單的漏洞數(shù)據(jù)庫,包含已知的敏感權(quán)限;檢查APK文件的權(quán)限是否在漏洞數(shù)據(jù)庫中;輸出檢測到的漏洞信息。
②Android動態(tài)引擎。動態(tài)檢測引擎根據(jù)漏洞和風(fēng)險的實際情況,在模擬設(shè)備上安裝APK文件,啟動該應(yīng)用,使用gdb" 、busybox、drozer" 等工具來動態(tài)攻擊和獲取應(yīng)用信息,來獲取風(fēng)險信息。處理流程:代碼掃描是否存在疑似漏洞代碼,提高校驗速度;存在則獲取當(dāng)前所在的類信息;安裝當(dāng)前測評APK文件到模擬設(shè)備或真機(jī);動態(tài)啟動測評目標(biāo)類;獲取模擬器信息,判斷結(jié)果是否安全;回調(diào)結(jié)果給引擎調(diào)度。
③Android病毒引擎。病毒檢測結(jié)合現(xiàn)有的最優(yōu)秀的殺毒引擎,通過完全掃描APK文件內(nèi)容,來檢測APK文件安全。病毒庫支持:SOPHOS、Clamv、F_SECURE。處理流程:將APK文件提交給病毒引擎,完整掃描APK文件內(nèi)容,比對病毒庫信息。
④iOS靜態(tài)引擎。iOS" 靜態(tài)掃描引擎利用優(yōu)秀的反匯編工具radare2,反匯編提取用戶源代碼中的關(guān)鍵信息用于分析,與搜集的代碼漏洞進(jìn)行相應(yīng)匹配檢測,快速定位漏洞信息。主要流程:獲取用戶提交的ipa包;解壓縮ipa包,獲取應(yīng)用信息;通過解壓縮的ipa包獲取代碼文件,并使用radare2打開,執(zhí)行初始化反匯編工作;通過radare2獲取代碼信息,讀取漏洞數(shù)據(jù)庫文件;使用正則表達(dá)式匹配反編譯輸出,檢測漏洞;打印輸出檢測到的漏洞結(jié)果。
⑤源碼掃描引擎。測評系統(tǒng)源碼掃描使用sonar" 的掃描引擎,能夠支持多種源代碼檢測,如java、php、javascript、python等,能夠覆蓋眾多的檢測業(yè)務(wù)場景,并可基于源碼掃描檢測規(guī)則定制化開發(fā)特定的代碼檢測邏輯。測評系統(tǒng)基于用戶直接提交的源碼包或者應(yīng)用包關(guān)聯(lián)提交的源碼包,調(diào)用sonar-scanner快速掃描靜態(tài)源代碼漏洞信息,詳細(xì)展示代碼漏洞詳情和修復(fù)示例。
⑥Web掃描引擎。測評系統(tǒng)Web掃描使用OWASP" Zap的掃描引擎,Web掃描引擎主要是在開發(fā)和測試應(yīng)用程序過程中,自動發(fā)現(xiàn)Web應(yīng)用程序中的安全漏洞,評估風(fēng)險漏洞的潛在危害,提供對應(yīng)漏洞的修復(fù)方案等。測評平臺的Web掃描,通過url地址進(jìn)行訪問與掃描,發(fā)現(xiàn)其存在的隱患,主要覆蓋路徑遍歷、文件包含、跨站腳本攻擊、跨站請求偽造、sql注入等內(nèi)容。
⑦引擎調(diào)度。RabbitMQ隊列服務(wù)器將需要測評的引擎信息發(fā)送給引擎調(diào)度,引擎調(diào)度時會反編譯應(yīng)用文件信息,獲取包名、簽名、應(yīng)用包信息、獲取源代碼,更新所選擇的檢測項類型,并繼續(xù)分發(fā)到動態(tài)、靜態(tài)、病毒等引擎進(jìn)行相關(guān)測評工作,獲取當(dāng)前引擎工作進(jìn)度和檢測引擎的回調(diào)結(jié)果。
⑧模擬設(shè)備管理。管理模擬器設(shè)備的創(chuàng)建、啟動、工具安裝、內(nèi)存校驗、設(shè)備的啟動和假死重啟。
⑨測評報告生成。移動應(yīng)用通過上述靜態(tài)檢測、動態(tài)檢測、病毒檢測、源碼掃描、Web掃描等層層檢測掃描完畢后,各項檢測過程中發(fā)現(xiàn)的安全漏洞信息及位置均被詳細(xì)地記錄下來,保存在結(jié)果數(shù)據(jù)庫中,并最終生成檢測評價結(jié)果報告。
6" 結(jié)語
移動安全應(yīng)用檢測評估,是國家網(wǎng)絡(luò)安全監(jiān)管部門加強(qiáng)對網(wǎng)上信息監(jiān)控,督促互聯(lián)網(wǎng)企業(yè)依法履行網(wǎng)絡(luò)安全義務(wù)和主體責(zé)任的一項重要舉措和工作,是維護(hù)網(wǎng)絡(luò)安全的首要任務(wù),是防止當(dāng)前及今后互聯(lián)網(wǎng)移動應(yīng)用運營者提供“帶病”移動應(yīng)用上線運行的有力措施。通過第三方具備網(wǎng)絡(luò)安全檢測評估資質(zhì)的企業(yè)開展針對移動應(yīng)用領(lǐng)域的安全檢測,及時有效地發(fā)現(xiàn)Android 應(yīng)用、Android SDK、iOS 應(yīng)用和 Web 應(yīng)用等應(yīng)用產(chǎn)品中的主流安全問題,準(zhǔn)確定位問題來源,統(tǒng)計和分析安全狀況,提供可自動化操作、可展示、可追溯的安全性管理方式,指導(dǎo)用戶對應(yīng)用中的安全問題進(jìn)行監(jiān)控預(yù)警和有效規(guī)避,為用戶提供安全問題檢測及修復(fù)建議,提供代碼級的修復(fù)方案,為開發(fā)者提供代碼修復(fù)參考,可自主快速地完成安全漏洞修復(fù),大幅降低人力開銷及技術(shù)學(xué)習(xí)成本,為用戶移動應(yīng)用在整個應(yīng)用市場上架運行前提供安全性保障,保護(hù)用戶數(shù)據(jù)及隱私安全。
參考文獻(xiàn)
[1] 楊衛(wèi)軍,秦海權(quán),王鵬.Android移動應(yīng)用軟件檢測平臺[J].信息網(wǎng)絡(luò)安全,2012(8):64-66.
[2] 袁春陽.移動智能終端應(yīng)用軟件安全檢測[J].信息安全與通信保密,2012(1):17-17.
[3] 劉瑋,李蜀瑜.Android移動應(yīng)用檢測研究[J].計算機(jī)應(yīng)用與軟件,2019(6):322-326.
[4] 中華人民共和國國家質(zhì)量監(jiān)督檢驗檢疫總局,中國國家標(biāo)準(zhǔn)化管理委員會.信息安全技術(shù) 公共及商用服務(wù)信息系統(tǒng)個人信息保護(hù)指南:GB/Z 28828-2012[S].北京:中國標(biāo)準(zhǔn)出版社,2012.
[5] 中華人民共和國國家質(zhì)量監(jiān)督檢驗檢疫總局,中國國家標(biāo)準(zhǔn)化管理委員會.信息安全技術(shù) 移動智能終端個人信息保護(hù)技術(shù)要求:GB/T 34978-2017[S].北京:中國標(biāo)準(zhǔn)出版社,2017.
[6] 中華人民共和國信息產(chǎn)業(yè)部.數(shù)字移動臺應(yīng)用層軟件功能要求和測試方法:YD/T 1438-2006[S].北京:中國標(biāo)準(zhǔn)出版社,2006.
[7] 中華人民共和國信息產(chǎn)業(yè)部.數(shù)字移動通信終端通用功能技術(shù)要求和測試方法:YD/T 2307-2011[S].北京:中國標(biāo)準(zhǔn)出版社,2011.