王海峻 WANG Hai-jun;張鷙 ZHANG Zhi
(中國移動通信集團遼寧有限公司,沈陽 110179)
隨著移動互聯(lián)網(wǎng)技術(shù)的日益成熟,智能手機普及率不斷提升,智能應(yīng)用(包括APP、小程序和公眾號)蓬勃發(fā)展[1]。智能終端應(yīng)用已經(jīng)成為移動互聯(lián)網(wǎng)時代的流量入口。移動公司近年來面向內(nèi)外部客戶推出和生活愛遼寧、遼友會、移動辦公等多款自有業(yè)務(wù)應(yīng)用,以APP、小程序等方式為用戶提供豐富便捷的業(yè)務(wù)體驗。
業(yè)務(wù)發(fā)展的同時,公司面臨的運營風險與日劇增。外部攻擊方面,利用終端漏洞盜刷用戶賬戶、利用手機信息實施詐騙等安全事件頻發(fā)。法律法規(guī)方面,國家相繼出臺《中華人民共和國網(wǎng)絡(luò)安全法》、《中華人民共和國數(shù)據(jù)安全法》、《中華人民共和國個人信息保護法》,為電信業(yè)務(wù)開展提供法律準則。國家監(jiān)管方面,工業(yè)和信息化部連年組織APP侵害用戶權(quán)益專項整治。僅2022年上半年,累計檢測APP630萬次,通報6批次涉及問題APP超過300項。
為提升自有業(yè)務(wù)智能終端應(yīng)用安全管理水平,降低業(yè)務(wù)安全風險,構(gòu)建面向智能終端應(yīng)用安全的風險管控體系。及時發(fā)現(xiàn)并整改自有APP、小程序安全風險,切實保護用戶合法權(quán)益,確保業(yè)務(wù)合法合規(guī)、健康穩(wěn)定運營。
為實現(xiàn)終端應(yīng)用安全的全流程、全要素、全生命周期管理,結(jié)合運營管理實踐,建立了包括報備管理-安全檢測-整改加固-動態(tài)監(jiān)測等4大模塊的管控工作架構(gòu)。覆蓋業(yè)務(wù)上線前-運行中-下線后的安全管控流程,詳見圖1。
報備管理模塊:通過統(tǒng)一入口收集APP、小程序、公眾號的應(yīng)用信息。包括不限于應(yīng)用名稱、版本號、所屬組織機構(gòu)、應(yīng)用操作系統(tǒng)、應(yīng)用程序包、測試環(huán)境鏈接等。提交后,后臺會自動對應(yīng)用程序進行安全檢測。并可根據(jù)業(yè)務(wù)運營單位需要,啟動專家人工檢測。此模塊收集到的相關(guān)信息也將作為智能終端應(yīng)用管理的基礎(chǔ)數(shù)據(jù)。此外,系統(tǒng)支持下線報備。相關(guān)版本信息將作為動態(tài)監(jiān)測的樣本,在主流應(yīng)用發(fā)布渠道予以監(jiān)測。
安全檢測模塊:搭建AI檢測引擎,通過模擬黑產(chǎn)攻擊以及用戶正常的業(yè)務(wù)訪問行為,構(gòu)建AI檢測模型,實現(xiàn)智能終端應(yīng)用的精準高效自動化檢測。對文本、圖像、表格、序列等類型的數(shù)據(jù)進行自動化測試,并予以量化評分。結(jié)合自然語言語義分析,對隱私協(xié)議文本進行內(nèi)容分析。持續(xù)對正負向行為樣本進行訓練迭代,不斷運用大數(shù)據(jù)手段推進AI模型“檢測—防御—升級”循環(huán)。此外,AI技術(shù)的引用對企業(yè)智能終端應(yīng)用安全運營實現(xiàn)趨勢分析,顯著提升態(tài)勢感知水平。在檢測方式上,通過靜態(tài)檢測、動態(tài)檢測、個人信息保護專項檢測相結(jié)合的方式,全面檢測智能終端應(yīng)用程序存在的邏輯安全、數(shù)據(jù)安全、傳輸安全、存儲安全、代碼安全、隱私安全、信息保護安全等安全風險。
整改加固模塊:技術(shù)手段與管理手段相結(jié)合,推進安全風險及時整改。設(shè)置面向應(yīng)用運營單位的專項管理要求及考核項。對1個月內(nèi)未完成整改并上架運營的智能終端應(yīng)用,納入責任單位的負向考核。對整改后的應(yīng)用程序?qū)嵤┌踩庸?,即對程序包進行“加殼”處理,防范反編譯逆向破解風險。
動態(tài)監(jiān)測模塊:在業(yè)務(wù)運營過程中,建立采集引擎機制,實時跟蹤主流應(yīng)用發(fā)布渠道。比對所發(fā)布的應(yīng)用集,對自有業(yè)務(wù)應(yīng)用未報備、未檢測、未加固的應(yīng)用及其更新版本進行監(jiān)測,第一時間發(fā)現(xiàn)風險并組織完成整改。并通過篡改識別算法,對山寨應(yīng)用、惡意篡改等情況進行監(jiān)測。
遵循中國移動集團公司印發(fā)的《中國移動移動智能終端軟件安全要求》、《中國移動智能硬件安全技術(shù)要求》、《中國移動自有APP安全評測指導(dǎo)手冊》、《移動智能終端安全能力測評方法》等專業(yè)技術(shù)規(guī)范文件[2],構(gòu)建多維多態(tài)風險分析模型和多因子個人信息保護檢測模型。有效識別應(yīng)用程序安全漏洞及業(yè)務(wù)不合規(guī)選項。
2.1.1 安全檢測技術(shù)指標
評測策略包括業(yè)務(wù)安全、代碼安全、存儲安全、傳輸安全、安全保護等多個維度,覆蓋超過100項技術(shù)指標。
業(yè)務(wù)安全檢測內(nèi)容包括:①密碼保護機制;②密碼策略測試;③登錄次數(shù)限制;④會話保護策略。
源代碼安全檢測內(nèi)容包括:①重要函數(shù)邏輯安全;②加密算法;③代碼混淆;④防動態(tài)調(diào)試;⑤Activity暴露;⑥是否存在硬編碼;⑦是否存在代碼反編譯;⑧篡改風險。
安全保護內(nèi)容檢測內(nèi)容包括:①簽名認證;②鍵盤劫持保護;③進程保護;④組件保護;⑤服務(wù)端防滲透。
傳輸安全檢測內(nèi)容包括:①關(guān)鍵數(shù)據(jù)是否加密傳輸;②是否可進行中間人攻擊;③是否進行數(shù)據(jù)合法性驗證。此部分檢測對客戶端和服務(wù)器同時進行檢測。
存儲安全檢測內(nèi)容包括:①是否保存手機號、密碼等敏感信息;②敏感信息是否加密處理;③加密是否易破解;④數(shù)據(jù)是否能被別的應(yīng)用訪問;⑤調(diào)試信息是否泄漏關(guān)鍵信息。
2.1.2 安全檢測建模與實施
創(chuàng)建多維多態(tài)安全風險檢測模型,從代碼、行為、數(shù)據(jù)三個維度定義安全風險,并形成APP靜態(tài)和運行態(tài)的特征映射。通過構(gòu)建各狀態(tài)的特征識別路徑和風險決策樹,形成APP風險深度評測和風險量化評估能力[3]。詳見圖2。
在代碼維度檢測方面,對APK安裝包進行解析。獲取后綴為.dex的源碼編譯文件、AndroidManifest.xml配置文件、資源文件等。對其進行反編譯后獲取源碼,并對源碼、配置文件、資源文件進行分析,獲取應(yīng)用在源代碼方面的風險。如代碼混淆、動態(tài)加載SO、啟動隱藏服務(wù)等。
在行為維度檢測方面,通過在應(yīng)用運行期間抓取堆棧數(shù)據(jù)包,獲取程序所應(yīng)用的網(wǎng)絡(luò)通訊數(shù)據(jù)。并對運行過程中的進程ID、底層API方法名、堆棧信息等信息進行分析,從而研判應(yīng)用在程序行為方面存在的安全風險。
在數(shù)據(jù)維度檢測方面,重點分析AndroidManifest.xml文件,獲取敏感權(quán)限配置。結(jié)合分析底層堆棧調(diào)用信息,獲取用戶在使用IMEI、MAC地址、通訊錄、讀寫SDCard、申請敏感權(quán)限等數(shù)據(jù)維度的風險,攔截數(shù)據(jù)的讀取、寫入請求。
聚合使用業(yè)界通用安全檢測工具,以靜態(tài)、動態(tài)及專項檢測相結(jié)合的方式,確保安全檢測的全面性、準確性和可靠性。通過靜態(tài)掃描測試,進行病毒查殺、木馬查殺以及漏洞檢測。通過靜態(tài)代碼分析,解析程序源代碼,進行代碼合規(guī)性、隱蔽性檢測。以人工方式,對APP進行編輯性測試。通過自動解包、反編譯、反匯編,基本屬性識別,發(fā)現(xiàn)潛在安全風險。通過動態(tài)安全檢測,在程序運行狀態(tài)下,調(diào)試跟蹤代碼工作過程。實施實時監(jiān)控,確認動態(tài)安全風險。并通過動態(tài)檢測結(jié)果,反向驗證靜態(tài)檢測結(jié)論。系統(tǒng)集成或人工檢測使用的通用類安全檢測工具包括不限于:JEB、Android killer、AXMLPrinter等反編譯集成工具,drozer安全評估工具,Sqlmap注入工具,AWVS、Nmap等掃描工具,BurpSuite、Fiddler、Wireshark等抓包工具,以及Kali Linux集成滲透工具。
2.2.1 安全評測要素
為防范APP違規(guī)收集個人信息、違規(guī)使用個人信息、不合理索取用戶權(quán)限等侵害用戶權(quán)益的問題,對標全國信息安全標準化技術(shù)委員會印發(fā)的《移動互聯(lián)網(wǎng)應(yīng)用程序(APP)收集使用個人信息自評估指南》,以及《APP違法違規(guī)收集使用個人信息行為認定方法》,并結(jié)合企業(yè)實際工作流程和業(yè)務(wù)特點,制定了7大類45項個人信息保護?;u估檢測指標。其中,對《移動互聯(lián)網(wǎng)應(yīng)用程序(APP)收集使用個人信息自評估指南》提出的6個評估點28項評測內(nèi)容予以全覆蓋。
著力保護客戶的知情權(quán)、自主選擇權(quán)、隱私權(quán),綜合考慮業(yè)務(wù)場景、風險分布、評測主體專業(yè)劃分等因素,設(shè)計了7大類評測指標分別為:隱私政策、APP收集使用個人信息行為、用戶權(quán)利保障、可疑通信數(shù)據(jù)、軟件和技術(shù)供應(yīng)鏈情況、技術(shù)脆弱性、等級保護及滲透測試。詳見圖3。
其中,隱私政策檢測通過對易讀性、完整性、真實性,以及對客戶權(quán)益的聲明等,評測業(yè)務(wù)是否簡明全面如實地向用戶公開APP、小程序?qū)蛻魯?shù)據(jù)的處理動作。為更好地向用戶提供服務(wù)保障,隱私政策中應(yīng)明確APP運營主體信息,并向用戶提供申訴渠道,及時解決業(yè)務(wù)使用中的問題。
收集使用個人信息行為檢測通過穿越業(yè)務(wù)流程、開展代碼審計、驗證功能權(quán)限列表,驗證隱私政策所述內(nèi)容是否符合應(yīng)用實際情況。檢驗APP本身以及所使用的第三方SDK是否在用戶不知情或未同意的情況下收集和使用用戶個人信息相關(guān)問題。
用戶權(quán)利保障檢測,驗證用戶業(yè)務(wù)變更及退出注銷時,是否如期履約。按照業(yè)務(wù)協(xié)議約定的內(nèi)容,對客戶信息予以銷毀。及時停止保存或使用注銷用戶的個人信息,并防范后續(xù)泄露風險。
考慮傳統(tǒng)軟硬件安全,在專項檢測中加入了網(wǎng)絡(luò)安全掃描、滲透測試、系統(tǒng)安全加固、數(shù)據(jù)安全保護機制、用戶信息出境管理、供應(yīng)鏈安全等相應(yīng)評測內(nèi)容。檢測用戶個人信息是否運行在高安全高可靠的網(wǎng)絡(luò)系統(tǒng)載體,以及數(shù)據(jù)自身是否通過加密存儲、加密傳輸?shù)燃夹g(shù)措施提升業(yè)務(wù)自身的安全性和魯棒性。
2.2.2 安全評測實施
個人信息保護涉及的檢測項目文本類、語義類內(nèi)容較多,故采用系統(tǒng)自動檢測篩選與疑似風險人工研判相結(jié)合的方式對安全風險進行研判。目前已經(jīng)實現(xiàn)對應(yīng)用所需權(quán)限,以及對協(xié)議關(guān)鍵文本特征的自動識別,從而提高檢測效率、準確性及全面性。
①應(yīng)用權(quán)限識別。
全面準確掌握APP應(yīng)用程序獲取的系統(tǒng)權(quán)限,是評估業(yè)務(wù)是否存在過度索權(quán)的前提,也是對隱私政策內(nèi)容真實性評估的基礎(chǔ)。通過讀取應(yīng)用程序運行的堆棧信息,輸出相關(guān)日志文件,實現(xiàn)對APP及其調(diào)用的SDK行為動作的完整監(jiān)聽?;谌粘7e累的安全風險知識庫,重點檢測并跟蹤高風險行為,并精準定位風險行為的調(diào)用堆棧信息。并結(jié)合真實業(yè)務(wù)流程及隱私政策聲明文本,綜合研判APP及SDK的每一項權(quán)限調(diào)用是否合法合規(guī)。輸出基于業(yè)務(wù)個性化特征的識別與檢測結(jié)果,為業(yè)務(wù)人員和開發(fā)人員整改安全風險、完善業(yè)務(wù)流程提供整改依據(jù)。
②隱私協(xié)議風險自動識別。
快速識別隱私政策文本。程序自動化讀取隱私文件中的文字,通過特征要素提取,識別出證件、身份證等關(guān)鍵信息。運用自定義script,分析這些關(guān)鍵字信息字體對應(yīng)的font/display/class等特征值。從而確定關(guān)鍵信息是否按要求予以加粗或其他顯性化標注處理,達到用戶便捷閱讀的要求。對于系統(tǒng)自動判別存在風險的,自動生成疑似問題點鏈接,便于檢查人員、開發(fā)人員通過鏈接迅速檢索到指定文本,順利完成問題確認及后續(xù)整改。
為有效識別APK被篡改,降低非法仿冒APP侵害客戶利益的風險,建立基于樣本結(jié)構(gòu)、代碼邏輯、資源內(nèi)容等多因子空間相似度分析算法。通過提取應(yīng)用程序多因子的數(shù)字特征,并與合規(guī)業(yè)務(wù)的白樣本庫加以比對,對疑似應(yīng)用進行分析,高效識別山寨、篡改APP。目前已經(jīng)實現(xiàn)對主流應(yīng)用發(fā)布渠道的深度監(jiān)測分析,以及對自有業(yè)務(wù)的漏報備版本監(jiān)測。如圖4所示。
以地圖類APP應(yīng)用相似度分析為例,樣本結(jié)構(gòu)因子主要提取程序代碼、應(yīng)用樣本等數(shù)字特征。資源內(nèi)容因子主要提取圖片、地理經(jīng)緯度坐標值、地圖等數(shù)字特征。通過對上述因子的多重相似度計算,將與樣本結(jié)構(gòu)、資源內(nèi)容等白名單內(nèi)容相似度超過判斷閾值或與黑名單內(nèi)容相似的應(yīng)用,判別為篡改應(yīng)用。對確認為訪冒APP的情況,與應(yīng)用發(fā)布方進行溝通,要求對非法資源予以下架處理。如果應(yīng)用發(fā)布于非官方渠道,則對涉及的非法鏈接進行屏蔽,并將應(yīng)用開發(fā)者納入黑名單管理。
為防范系統(tǒng)被篡改風險,通過“加殼”方式,對應(yīng)用程序進行安全加固。具體通過對系統(tǒng)的DEX文件、SO文件、簽名文件以及資源文件進行保護得以實現(xiàn)。
①在DEX保護方面,主要方案如下:
1)利用動態(tài)VMP保護技術(shù),構(gòu)建的虛擬引擎執(zhí)行指令序列。對部分重要指令進行混淆,大幅增加指令分析及破解難度。
2)把Java代碼轉(zhuǎn)換成NDK層的二進制代碼。加固后的應(yīng)用程序包是轉(zhuǎn)換后的二進制結(jié)果,是不可逆的,從而提高安全強度。
3)將應(yīng)用所有DEX代碼進行完整加密。所有被加密的代碼均在內(nèi)存進行解密,手機客戶端不殘留任何代碼明文文件,及任何被編譯優(yōu)化后的明文文件??捎行ё柚轨o態(tài)反編譯代碼,防止三方工具破解。
在實際操作過程中,組合使用上述三種保護手段,以多重加密實現(xiàn)多重保護。
②在SO保護方面,主要方案如下:
將原始SO文件進行格式化處理,將標準的ELF二進制可執(zhí)行格式轉(zhuǎn)換成私有格式,并進行加密保護。轉(zhuǎn)換后的文件成為第三方無法識別的私有文件。
③在簽名文件保護方面,主要方案如下:
提取應(yīng)用程序包中的簽名文件,并將其加密保存在安全加固殼中。加固后的移動應(yīng)用,在運行時會動態(tài)提取當前內(nèi)存中的簽名文件與加密保存在加固殼中的簽名文件進行對比。如發(fā)現(xiàn)簽名不一致,則提示程序已被二次打包,被保護過的移動應(yīng)用做退出處理。
④在資源文件保護方面,主要方案如下:
提取資源文件指紋信息,并針對assets、res等資源文件逆向查看工具特點,通過添加混淆字節(jié),對資源文件進行混淆處理。如果攻擊者嘗試進行反編譯,經(jīng)唯一指紋校驗后,系統(tǒng)將會崩潰退出。
智能終端應(yīng)用安全風險管控體系運行以來,年均檢測自有業(yè)務(wù)APP、小程序、公眾號300余件次,自主發(fā)現(xiàn)風險225項。其中,個人信息保護相關(guān)風險占比最高(見圖5)。所有風險均在正式上線前完成整改,確保了業(yè)務(wù)健康合規(guī)運營。公司近年來,沒有出現(xiàn)被上級單位檢測通報的自有業(yè)務(wù)APP安全風險。
面向智能終端應(yīng)用安全的風險管控體系有力有效管控自有業(yè)務(wù)APP、小程序、公眾號的安全風險。從代碼安全、業(yè)務(wù)合規(guī)、個人信息保護、安全運營監(jiān)測等角度全面檢測安全風險,為業(yè)務(wù)高質(zhì)量發(fā)展,保護客戶權(quán)益作出了積極貢獻。