林振文
(廈門軟件職業(yè)技術(shù)學(xué)院,福建廈門 361024)
隨著智能芯片技術(shù)的不斷發(fā)展,智能終端在過去一段時間獲得長足發(fā)展,當(dāng)前移動智能終端已經(jīng)與人們的生活緊密結(jié)合在一起,并通過其自身搭載的系統(tǒng)實現(xiàn)各種生活需求。Android系統(tǒng)便是在該背景下被應(yīng)用到智能終端中,并已經(jīng)成為當(dāng)前移動智能終端占比最大的應(yīng)用系統(tǒng)。隨著Android平臺應(yīng)用范圍的不斷擴(kuò)大,該種系統(tǒng)帶來的安全問題也逐漸受到人們的重視。Android平臺與其他系統(tǒng)能夠?qū)崿F(xiàn)有效兼容,在此背景下Android為人們帶來極大便利,同時也帶來一些安全隱患,因此合理構(gòu)建基于Android平臺的移動智能終端安全防護(hù)系統(tǒng)尤為重要。
結(jié)合當(dāng)前移動智能終端用戶實際需求,在研發(fā)安全防護(hù)系統(tǒng)時需要其具備三方面功能,分別為防盜模塊、程序鎖模塊、垃圾信號攔截模塊。這三個模塊在移動智能終端運行過程中實時展開工作,為移動智能終端的運行奠定堅實基礎(chǔ)[1]。
當(dāng)前移動智能終端均需在其內(nèi)部安裝一個移動運營商通信卡,該卡的卡號是唯一的。例如手機(jī)里面的SIM卡,用戶可通過將SIM卡號綁定方式保證其安全。Android系統(tǒng)在實際操作中會將其保存到系統(tǒng)后臺中,此時該移動智能終端便成為唯一產(chǎn)品。若移動智能終端出現(xiàn)丟失情況,即使別人更換里面的SIM卡也無法使用,卡被更換后系統(tǒng)在開機(jī)時會自動產(chǎn)生開機(jī)信息,并通過后臺系統(tǒng)自動判斷當(dāng)前卡號是否與之前卡號一致,若不一致則將當(dāng)前卡號記錄并發(fā)送至用戶規(guī)定的另一個密保移動智能終端上,并開始對更換卡后的移動智能終端進(jìn)行實時定位,幫助用戶找尋到自己的移動智能終端。用戶需要通過該程序設(shè)定其安全密碼,一般而言安全密碼十分重要,用戶設(shè)置該安全密碼后實現(xiàn)對移動智能終端的遠(yuǎn)程控制,只要用戶發(fā)現(xiàn)手機(jī)丟失便可通過網(wǎng)絡(luò)驗證方式獲得控制權(quán)限,保障移動智能終端丟失后自己信息不被泄露,同時也可及時找回丟失的移動智能終端。
用戶可將自己的隱私通過移動智能終端添加到網(wǎng)絡(luò)數(shù)據(jù)庫中,用戶在某些時候不希望自己的這些信息被別人看見,此時就會對這些信息進(jìn)行上鎖,此即為程序鎖。在此基礎(chǔ)上用戶便可自由地對想保密的文件進(jìn)行上鎖后將其加入數(shù)據(jù)庫。對于確定需要打開的程序后臺會首先判斷該程序是否位于數(shù)據(jù)庫中,此時用戶移動智能終端便會通過后臺服務(wù)器打開相應(yīng)程序,在打開過程中將受保護(hù)的文件列出來,將需要輸入密碼才能打開的文件顯現(xiàn)出來,用戶必須輸入與數(shù)據(jù)庫中密碼一致的結(jié)果才能打開該文件[2]。
垃圾信息攔截則是Android系統(tǒng)的一項重要安全防護(hù)功能,通過該功能可對外來信息進(jìn)行過濾,挑選出其中一些疑似垃圾信息。當(dāng)前Android系統(tǒng)在判斷信息是否為垃圾信息時均通過關(guān)鍵詞時間,例如當(dāng)信息中含有敏感字眼便會提醒用戶是否為垃圾信息,同時也可根據(jù)信息是否被多次舉報來判斷。
圖1為本研究構(gòu)建的Android防護(hù)系統(tǒng)框架結(jié)構(gòu),系統(tǒng)在運行過程中對運行程序進(jìn)行掃描,檢驗系統(tǒng)中是否存在惡意程序,在系統(tǒng)運行中主要通過特征碼比對方式進(jìn)行檢驗,發(fā)現(xiàn)系統(tǒng)中存在的病毒,并在檢測到惡意程序后將其加入黑名單,并提醒用戶刪除惡意程序[3]。
圖1 Android防護(hù)系統(tǒng)框架結(jié)構(gòu)
對系統(tǒng)中存在的應(yīng)用程序進(jìn)行實時監(jiān)測,消息可以被接收或發(fā)送到應(yīng)用程序,通過電話進(jìn)行竊聽,并建立Wi-Fi連接方式,通過無線連接監(jiān)控互聯(lián)網(wǎng)連接的行為。當(dāng)應(yīng)用程序生成這些行為時,可以通過技術(shù)手段截獲系統(tǒng)廣播消息,如果系統(tǒng)敏感且可疑,則該系統(tǒng)彈出一個對話框,詢問用戶是否允許。即使我們不能確定應(yīng)用程序是否是惡意的,也可以監(jiān)視其行為,停止其危險行為,最后通過應(yīng)用管理程序禁止操作甚至卸載。
嚴(yán)格控制授予應(yīng)用程序的所有權(quán)限。將隱私安全權(quán)限分為兩方面,短信、聯(lián)系人記錄、通話記錄、手機(jī)定位、識別碼、記錄和視頻相機(jī)等屬于隱私權(quán);發(fā)短信、接聽電話、打開移動網(wǎng)絡(luò)、打開Wi-Fi、藍(lán)牙軟件信息公開、閱讀屬于安全權(quán)限。獲得所有應(yīng)用程序的權(quán)限,并根據(jù)權(quán)限對它們進(jìn)行分類。對被監(jiān)視的軟件設(shè)置規(guī)則,包括允許、提示和禁止[4]。
2.2.1 代碼注入
代碼注入主要有兩種形式,分別為靜態(tài)注入和動態(tài)注入。其中,靜態(tài)注入主要針對可執(zhí)行文件,包括ELF、DEX等文件,其輔助工具較多,包括IDA、JEB、ApkTool等。動態(tài)注入針對進(jìn)程,如對系統(tǒng)進(jìn)程寄存器以及內(nèi)存值的修改等。
2.2.2 Binder Proxy技術(shù)分析
在Android系統(tǒng)安全防護(hù)中需要首先對Broadcast Receiver的優(yōu)先級進(jìn)行提升,即對Android系統(tǒng)開機(jī)廣播事件BOOT_COMPLETED進(jìn)行監(jiān)聽,系統(tǒng)啟動后開啟一個Service,并進(jìn)行動態(tài)的注冊BroadcastReceiver,將注冊的優(yōu)先級調(diào)整到最高級integer.MAX_VALUE.該過程涉及代碼如下:
Intent Filter filter=new
Intent Filter("android.provider.Telephony.SMS_RECEIVED");
filter.set Priority(Integer.MAX_VALUE);
register Receiver(new Sms Receiver(), filter);
為提高系統(tǒng)應(yīng)對高級惡意軟件的效果,在向系統(tǒng)中額外添加以下幾個出發(fā)點:
WIFI_STATE_CHANED
CONNECTIVITY_CHANGE
ACCESS_NETWORK_STATE
ACCESS_WIFI_STATE
這些系統(tǒng)時間較之BOOT_COMPLETED均觸發(fā)更早,因此惡意軟件可能優(yōu)先攔截到短信。Android在廣播發(fā)送過程中通過Activity Manager Service(AMS)進(jìn)行轉(zhuǎn)發(fā),因此Activity Manager Service(AMS)中存有多個Broadcast Receiver的相關(guān)信息,可通過Binder Proxy進(jìn)行調(diào)整,將代碼注入進(jìn)程中,調(diào)整廣播順序。Android系統(tǒng)Binder機(jī)制中的四個組件Client、Server、Service Manager和Binder 驅(qū)動程序的關(guān)系如圖2所示[5]。
圖2 Binder機(jī)制關(guān)系圖
在圖2中,Service Manager、Client、Server的功能是在用戶空間實現(xiàn),Binder的功能是在內(nèi)核空間實現(xiàn)。Binder和Service Manager封裝于系統(tǒng)中,通過接口與外界空間相連,用戶通過這些接口實現(xiàn)對應(yīng)的Client、Server的功能;用戶在與系統(tǒng)進(jìn)行交接的過程中需通過Binder提供設(shè)備文件/dev/binder,Client、Server和Service Manager則以open和ioctl文件操作函數(shù)實現(xiàn)與Binder的通信;在系統(tǒng)運行過程中需要通過Binder實現(xiàn)Client和Server之間的通信,并以Service Manager對Server進(jìn)行管理。在Android系統(tǒng)中,幾乎所有的IPC都是通過綁定機(jī)制進(jìn)行的,包括客戶端與服務(wù)器之間的通信,將所有的服務(wù)稱為本地服務(wù),多個客戶機(jī)可以對應(yīng)同一個本地服務(wù)。
該模塊的主要作用是對系統(tǒng)中的程序進(jìn)行掃描,檢查其是否為惡意軟件,且在系統(tǒng)運行過程中需要讓用戶直觀地觀察系統(tǒng)程序運營情況,檢測APP是否為安全的。在實際設(shè)計過程中可將界面劃分為三部分,自上而下分別為正在掃描的信息、掃描進(jìn)度條、被掃描用于程序名稱及檢測結(jié)果。其具體界面顯示見圖3。
圖3 病毒掃描模塊界面
在系統(tǒng)運行過程中首先需要獲取病毒庫資源,其中病毒樣本信息主要通過Andro Mal Share等平臺得到,之后將其集中存儲于Virus.db數(shù)據(jù)庫中,并建立其本地存儲空間,便于將掃描的APP HASH值與系統(tǒng) DATABASE中的樣本HASH值進(jìn)行匹配。其具體實現(xiàn)過程如下:(1)通過系統(tǒng)連接網(wǎng)絡(luò),從服務(wù)器端下載最新數(shù)據(jù)庫,之后將其作為本地存儲文件存儲于本地數(shù)據(jù)庫;(2)從Android端獲取所有APP的程序名稱以及簽名;(3)對獲取的信息進(jìn)行MDS加密處理,并得到對應(yīng)HASH值;(4)將得到的對應(yīng)HASH值與病毒文件庫中的程序簽名進(jìn)行比對;(5)通過Scroll View標(biāo)簽將得到的結(jié)果進(jìn)行滾動顯示。流程如圖4所示[6]。
圖4 病毒查殺流程圖
本文在設(shè)計結(jié)構(gòu)模型時采用MVC模式,通過View層以及Controller層建立模型方式,該種方式不僅可保證系統(tǒng)充分發(fā)揮其功能,還能從根本上消除系統(tǒng)中存在的不足。該種結(jié)構(gòu)在應(yīng)用中可將不同邏輯功能代碼進(jìn)行分層管理,在此基礎(chǔ)上得到一個與之相應(yīng)的應(yīng)用程序,保證程序結(jié)構(gòu)的邏輯性和清晰度,并需要保證Model以及View的同步性,當(dāng)該結(jié)構(gòu)中的Model發(fā)生變化時系統(tǒng)中的View也會發(fā)生同步改變,因此就要采用結(jié)構(gòu)中的Controller對其進(jìn)行控制。
防盜模塊是移動智能終端的重要組成部分,該部分的主要作用是通過設(shè)置各種密碼并將移動智能終端信息與SIM卡進(jìn)行綁定實現(xiàn)相應(yīng)功能。在開機(jī)時便需要驗證,驗證方式可以是指紋識別,也可以是輸入數(shù)字密碼方式,并可通過SIM卡信息識別進(jìn)行驗證,在開機(jī)時會自動產(chǎn)生開機(jī)信息,并通過后臺系統(tǒng)自動判斷當(dāng)前卡號是否與之前卡號一致,若不一致則將當(dāng)前卡號記錄并發(fā)送至用戶規(guī)定的另一個密保移動智能終端上,并開始對更換卡后的移動智能終端進(jìn)行實時定位,幫助用戶找尋到自己的移動智能終端。垃圾信息攔截模塊與防盜模塊工作原理類似,并且構(gòu)建系統(tǒng)的模式較為類似,因此在本研究不再對此進(jìn)行詳細(xì)概述。
在設(shè)計程序鎖模塊時主要通過建立表的方式,將用戶需要進(jìn)行保護(hù)的文件進(jìn)行加密處理后存放于數(shù)據(jù)庫中,在下次使用時需要進(jìn)行驗證,只有在驗證無誤的情況下才能獲得相應(yīng)文件的訪問權(quán)限。基于Android系統(tǒng)的程序鎖模塊較為簡單,所有程序自身包含的程序包名都是一致的,因此在實際設(shè)計中應(yīng)該通過已設(shè)定的標(biāo)準(zhǔn)比對判斷其正誤。表1為一種常見的程序表數(shù)據(jù)結(jié)構(gòu)。
表1 程序鎖數(shù)據(jù)結(jié)構(gòu)表
在以上設(shè)計的基礎(chǔ)上,可將垃圾信息攔截模塊設(shè)置于系統(tǒng)中,本文設(shè)計的系統(tǒng)是以關(guān)鍵詞作為判斷依據(jù),判斷Android系統(tǒng)接收到的信息是否為垃圾信息。當(dāng)收到垃圾信息時系統(tǒng)便會自動發(fā)出關(guān)于垃圾信息處理的廣播,并通過相關(guān)應(yīng)用程序?qū)畔⒌膬?nèi)容進(jìn)行比對處理,若最終確定其為垃圾信息則將其標(biāo)記并提醒用戶謹(jǐn)慎打開,防止不良程序在移動智能終端中擴(kuò)散,以此實現(xiàn)對垃圾信息的有效攔截,從根本上降低垃圾信息的危害。
本研究對Android平臺的移動智能終端安全防護(hù)系統(tǒng)應(yīng)用設(shè)計進(jìn)行分析,結(jié)合當(dāng)前移動智能終端用戶實際需求,所研發(fā)的安全防護(hù)系統(tǒng)具備三方面功能,分別為防盜模塊、程序鎖模塊、垃圾信號攔截模塊。在實際設(shè)計中設(shè)置病毒掃描模塊、防盜模塊、程序鎖模塊、垃圾信息攔截模塊,對系統(tǒng)中存在的應(yīng)用程序進(jìn)行實時監(jiān)測,消息被接收或發(fā)送到應(yīng)用程序,通過電話竊聽、Wi-Fi連接方式、無線連接監(jiān)控互聯(lián)網(wǎng)連接等操作,及時發(fā)現(xiàn)系統(tǒng)中存在的安全威脅,保障Android平臺安全穩(wěn)定運行。
[參考文獻(xiàn)]
[1]儲小寶,馬兆豐,黃勤龍.基于Android平臺的移動智能終端敏感信息安全防護(hù)技術(shù)的研究與實現(xiàn)[D].北京:北京郵電大學(xué),2015.
[2]吳斌,逯全芳.基于Linux日志系統(tǒng)的Android移動智能終端操作系統(tǒng)攻擊測評[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2015(12):75-76.
[3]李春杰,史正樂,高慧敏,等.移動智能終端的個人隱私保護(hù)系統(tǒng)的開發(fā)設(shè)計[J].計算機(jī)應(yīng)用與軟件,2017(6):217-220.
[4]吳斌,逯全芳.Android移動智能終端操作系統(tǒng)權(quán)限機(jī)制的安全評估[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2015(12):74.
[5]龍則靈,李祎.基于Android移動平臺的檔案利用服務(wù)系統(tǒng)[J].蘭臺世界,2016(8):9-11.
[6]周克輝.基于Android平臺的手機(jī)導(dǎo)航系統(tǒng)設(shè)計[J].現(xiàn)代商貿(mào)工業(yè),2016(33):383-384.