肖榮 陸晉軍 馬思峻
摘要:隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,移動辦公已經(jīng)成為政府、企業(yè)提供業(yè)務(wù)和服務(wù)的最主要的方式。本文研究了一種基于分層保護技術(shù)的移動應(yīng)用安全保護方法,實現(xiàn)對移動應(yīng)用的多層次的保護。
Abstract: With the rapid development of mobile Internet, mobile application has become the key way for the government and enterprises to provide business and services. In the paper, a method of mobile security protection based on multi-level protection is studied and realized.
關(guān)鍵詞:移動應(yīng)用安全;惡意軟件;Hook;ASM;移動設(shè)備管理
Key words: mobile application security;malicious software;Hook;ASM;mobile device management
中圖分類號:TP316? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號:1006-4311(2020)21-0176-03
0? 引言
隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,移動辦公日漸興起,智能手機、Pad等移動設(shè)備已經(jīng)成為企業(yè)業(yè)務(wù)承載和個人日常生活的最主要的載體。在移動設(shè)備中,存貯了企業(yè)辦公所需的郵件、數(shù)據(jù)、通信錄、照片、視頻等重要信息。頻繁的網(wǎng)絡(luò)交互以及使用第三方移動應(yīng)用等,使得移動設(shè)備被入侵、被惡意應(yīng)用程序竊取信息等風(fēng)險越來越大,給企業(yè)、個人的信息安全帶來巨大的安全隱患。
企業(yè)移動辦公面臨的風(fēng)險主要包括以下幾個方面:
1? 無法定位移動應(yīng)用故障和性能問題
企業(yè)自有移動應(yīng)用的來源主要包括自有開發(fā)和委托第三方開發(fā)。移動應(yīng)用的開發(fā)因為技術(shù)能力的差異,經(jīng)常會面臨移動應(yīng)用的開發(fā)的質(zhì)量問題,造成移動應(yīng)用的閃退、無響應(yīng)、耗電量高、流量開銷大等問題,甚至出現(xiàn)安全風(fēng)險和隱患,從而導(dǎo)致用戶體驗下降,故障、性能和安全問題是企業(yè)自有移動應(yīng)用面臨的主要問題。
2? 使用第三方移動應(yīng)用帶來信息安全問題
移動應(yīng)用的環(huán)境過于開放,使得在使用第三方的移動應(yīng)用時,容易產(chǎn)生安全隱患,發(fā)生數(shù)據(jù)泄露。根據(jù)工信部發(fā)布的報告中[1],多款A(yù)PP涉嫌侵犯用戶的隱私,其中主要包括:私自啟用設(shè)備功能進行竊聽、非法訪問照片和通信錄、偷傳移動設(shè)備信息等問題。因此,需要對第三方移動應(yīng)用的進行安全運行環(huán)境,限制第三方APP非授權(quán)訪問移動設(shè)備的通信錄、語音、攝像頭等功能,防止偷取、竊聽、篡改用戶的信息,保障移動環(huán)境下的企業(yè)移動辦公的安全[2]。
3? 移動設(shè)備丟失造成數(shù)據(jù)泄密問題
移動性、便攜性是移動辦公的最大優(yōu)勢,但同時也使移動設(shè)備存在丟失的風(fēng)險。一旦包含敏感信息的政務(wù)、企業(yè)移動辦公的設(shè)備丟失,則可能造成信息泄露,并可能成為被攻擊的漏洞。
因此,對政務(wù)、企業(yè)的移動辦公的安全防護,重點在于保障移動應(yīng)用安全、移動運行環(huán)境安全和移動設(shè)備安全。
3.1 基于Hook技術(shù)的安全運行環(huán)境
Hook技術(shù)是一種用于監(jiān)控Windows系統(tǒng)消息的技術(shù)。Hook技術(shù)能夠在功能函數(shù)執(zhí)行前,過濾一些關(guān)鍵函數(shù)調(diào)用,使得系統(tǒng)先執(zhí)行自己的掛鉤函數(shù),從而達到監(jiān)控系統(tǒng)函數(shù)調(diào)用,改變被鉤函數(shù)功能的目的。
根據(jù)操作系統(tǒng)訪問權(quán)限的不同,Hook技術(shù)主要分為兩種不同的類型:內(nèi)核級Hook和用戶級Hook。其中,用戶級Hook工作在操作系統(tǒng)的用戶層,主要通過動態(tài)鏈接庫注入和導(dǎo)入地址表的方式進行Hook,即將動態(tài)鏈接庫注入到用戶空間進程,修改導(dǎo)入地址表,將截取的目標函數(shù)的地址修改為鉤子函數(shù)的地址進而達到Hook的目的。(圖1)
基于Android平臺Hook技術(shù)的研究主要集中在用戶級Hook。根據(jù)不同運行時體系結(jié)構(gòu),搜索目標函數(shù)在內(nèi)存中的入口地址,通過修改目標函數(shù)方法結(jié)構(gòu)體中函數(shù)地址值,進行Dex Hook函數(shù)加載及函數(shù)Hook,完成運行時Hook過程。通過Hook技術(shù)實現(xiàn)對Android終端的安全保護,混合支持Android Dalvik和Android ART虛擬機[3],實現(xiàn)智能終端的安全保護。通過動態(tài)獲取目標函數(shù)修改目標內(nèi)存塊的讀取權(quán)限,將該內(nèi)存塊存儲的目標函數(shù)入口地址替換成自定義函數(shù)地址,當(dāng)應(yīng)用調(diào)用目標函數(shù)時,最終會執(zhí)行自定義函數(shù),自定義函數(shù)中加入了安全保護代碼,執(zhí)行結(jié)束后再跳轉(zhuǎn)到原有目標函數(shù)入口地址,從而實現(xiàn)將應(yīng)用程序中的目標函數(shù)入口地址改變?yōu)殂^子函數(shù)的地址達到Hook的目的。
通過Hook技術(shù),可以對需要使用的第三方應(yīng)用進行防護,對于移動設(shè)備中重要的系統(tǒng)級調(diào)用進行保護,通過Hook對這些系統(tǒng)級調(diào)用進行加“殼”保護,使用自定義的函數(shù),來進行授權(quán)、執(zhí)行、記錄等操作,可以禁止第三方應(yīng)用私自調(diào)用這些功能和接口,并對每一次系統(tǒng)級調(diào)用進行記錄,從而防止第三方移動應(yīng)用非法竊取移動設(shè)備上的用戶數(shù)據(jù)隱私,并保留可以進行系統(tǒng)安全審計和追溯的痕跡。
3.2 面向切面編程技術(shù)的移動應(yīng)用監(jiān)控
基于字節(jié)碼增強方法,使用面向切面編程技術(shù),對已有應(yīng)用的Android源代碼進行預(yù)編譯處理,在應(yīng)用編譯打包時,實現(xiàn)在不需要源代碼的情況下,給程序動態(tài)統(tǒng)一添加探針代碼,實現(xiàn)對已有的移動應(yīng)用增加移動應(yīng)用實時監(jiān)控能力,實現(xiàn)移動應(yīng)用的業(yè)務(wù)邏輯和系統(tǒng)監(jiān)控保護服務(wù)的分離。
基于字節(jié)碼增強方法,通過java rewriter重寫jar包,匹配類名和方法名注入替換類和替換方法。具體如圖2。
在被監(jiān)測的移動應(yīng)用側(cè),在Java虛擬機中部署Agent代理,應(yīng)用程序加載入JVM時,Agent使用Java字節(jié)碼操縱框架ASM修改加載入JVM的Class類,動態(tài)插入采集應(yīng)用程序運行時各種事件和測量值的代碼,新增代碼執(zhí)行獲取各項數(shù)據(jù)后發(fā)送至監(jiān)控平臺側(cè)。
通過遵循ASM方法[4],建立字節(jié)碼轉(zhuǎn)換適配器Class Visitor Factory,在Class Visitor Factory中創(chuàng)建類適配器Class Adapter,并在類適配器Class Adapter中創(chuàng)建類方法轉(zhuǎn)換工廠Method Visitor Factory,類方法轉(zhuǎn)換工廠中創(chuàng)建Method Visitor對象,Method Visitor對象實現(xiàn)on Method Enter方法,on Method Enter方法調(diào)用Invocation? Dispatcher類的invoke函數(shù)。
其中,上述java rewriter重寫jar包,具體如下:Invoke函數(shù)負責(zé)替換Android SDK和第三方類庫,使用Decorator模式按照順序替換應(yīng)用管理、Activity(頁面)、異步任務(wù)、剪貼板、USB、藍牙等安全保護相關(guān)的類,對應(yīng)的Class Visitor分別為Package Manager Class Visitor、Activity Class Visitor、Async Task Class Visitor、Clipboard Service Class Visitor、Device Manager Class Visitor、Location Manager Class Visitor,這些類使用ASM技術(shù)替換需要移動應(yīng)用安全保護的類和方法,重寫jar包中包含配置文件說明原有方法和替換方法的對應(yīng)關(guān)系和替換方式,Jvm加載原有類的方法時,根據(jù)方法名在配置文件進行查找,如果發(fā)現(xiàn)有替換的方法,就替換原有方法的字節(jié)碼,替換的字節(jié)碼中包含原有代碼的執(zhí)行邏輯和新增的安全保護代碼。
通過面向切面的編程技術(shù),可以有效的監(jiān)控移動應(yīng)用,對移動應(yīng)用中的內(nèi)存、數(shù)據(jù)庫、線程以及特定的函數(shù)的使用情況,可以進行感知和分析,進而進行調(diào)用鏈分析。在移動應(yīng)用出現(xiàn)問題的時候,可以進行相應(yīng)的代碼段定位,從而實現(xiàn)移動應(yīng)用的精確的故障診斷,可以有效的改善移動應(yīng)用的質(zhì)量,提升移動應(yīng)用的安全性。
3.3 移動應(yīng)用分層安全保護框架
為了保證政務(wù)、企業(yè)移動辦公的移動應(yīng)用安全、移動運行環(huán)境安全和移動設(shè)備安全??梢詮牟僮飨到y(tǒng)內(nèi)核層、虛擬機層和應(yīng)用層提供混合保護機制。在內(nèi)核層,進行內(nèi)核函數(shù)的交互控制;在JVM層,監(jiān)控移動應(yīng)用的故障和性能;在應(yīng)用層,基于MDM協(xié)議,對移動應(yīng)用進行設(shè)備和應(yīng)用的遠程管理。移動辦公安全的混合保護框架如圖3所示。
3.3.1 基于內(nèi)核層的保護
內(nèi)核層是移動應(yīng)用最終通過與操作系統(tǒng)內(nèi)核的交互實現(xiàn)其功能,在內(nèi)核層,通過Hook技術(shù),對重要的方法進行重構(gòu),從而可以構(gòu)建移動辦公安全保護殼。通過Hook技術(shù),實現(xiàn)移動應(yīng)用與內(nèi)核層交互的調(diào)用方法保護,包括文件讀取、數(shù)據(jù)加密、網(wǎng)絡(luò)控制等功能。
通過Hook技術(shù),還能在內(nèi)核層對移動設(shè)備的各種硬件驅(qū)動進行管理,如錄音、攝像頭、Wifi、藍牙、USB等,從內(nèi)核層安全實時的響應(yīng)管理平臺下發(fā)的各種策略。
3.3.2 基于JVM的保護
在JVM層,通過字節(jié)碼增強方法,基于面向切面的編程技術(shù),未移動應(yīng)用加載探針,可以在虛擬機層面的函數(shù)方法上進行監(jiān)控,對移動應(yīng)用進行實時數(shù)據(jù)的采集,及時準確發(fā)現(xiàn)移動應(yīng)用的故障和性能,并進行精確定位問題代碼。
通過利用移動應(yīng)用的監(jiān)控,對涉及的多級函數(shù)調(diào)用進行調(diào)用鏈分析,可以及時發(fā)現(xiàn)和預(yù)警移動應(yīng)用存在的安全和性能問題。
3.3.3 基于應(yīng)用層的保護
在應(yīng)用層,基于MDM移動設(shè)備管理協(xié)議,可以對在使用層面對移動應(yīng)用進行控制,通過移動應(yīng)用的名單制管理,控制企業(yè)允許使用的各種應(yīng)用,未得到授權(quán)的移動應(yīng)用在移動設(shè)備上將被禁止運行,對非授權(quán)的移動應(yīng)用,企業(yè)可以進行遠程靜默刪除。
此外,在應(yīng)用層,可以遠程進行鎖屏、恢復(fù)出廠設(shè)置、更改密碼和數(shù)據(jù)擦除等,在設(shè)備丟失等情況下,保護終端設(shè)備的數(shù)據(jù)安全。
4? 結(jié)束語
隨著移動互聯(lián)網(wǎng)的飛速發(fā)展,移動辦公已經(jīng)成為政務(wù)、企業(yè)開展業(yè)務(wù)和服務(wù)的最主要的方式。隨身攜帶的設(shè)備、無處不在的網(wǎng)絡(luò)、不同來源的應(yīng)用,使得政務(wù)、企業(yè)的關(guān)鍵業(yè)務(wù)和核心數(shù)據(jù)也必然將面臨更多的風(fēng)險。通過對移動辦公進行分層混合保護管理,加強對企業(yè)自有移動應(yīng)用的監(jiān)控、對第三方移動應(yīng)用安全的使用限制、對設(shè)備上的數(shù)據(jù)安全有效的管理,實現(xiàn)對移動辦公的全方位、多層次的保護,具有十分重要的價值和社會效益。
參考文獻:
[1]關(guān)于侵害用戶權(quán)益行為的APP通報(2020年第一批)[EB/OL]. 2020-05-15.http://www.miit.gov.cn/n1146290/n1146402/c7911974/content.html.
[2]徐震,張妍. 面向政務(wù)領(lǐng)域移動辦公的安全移動終端防護技術(shù)分析與研究[J].保密科學(xué)技術(shù),2020(3):7-11.
[3]侯留洋,羅森林,潘麗敏,張笈.融合多特征的Android 惡意軟件檢測方法[J].信息網(wǎng)絡(luò)安全,2020(1):67-74.
[4]程龍,李冶.應(yīng)用ASM修改JAVA字節(jié)碼[J].信息與電腦(理論版),2011(5):124-126.