劉海麗
(安徽新華學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系,安徽合肥230088)
智能手機(jī)成為人們生活的必需品,所以手機(jī)安全問題[1-2]就非常重要,已經(jīng)成為現(xiàn)階段研究的熱點(diǎn)與焦點(diǎn)[3],學(xué)者已提出一些手機(jī)安全檢測(cè)技術(shù)[4-5]。本文在此基礎(chǔ)上,以基于Android平臺(tái)的智能手機(jī)為研究對(duì)象,結(jié)合手機(jī)運(yùn)行過程中存在的安全隱患,設(shè)計(jì)一種基于隱馬爾可夫模型(HMM)的行為模式識(shí)別的手機(jī)安全檢測(cè)系統(tǒng)。
作為典型的層次結(jié)構(gòu)系統(tǒng),Android手機(jī)操作系統(tǒng)至上而下可以分為4層。第1層是基于Linux 2.6的內(nèi)核開發(fā)的底層,其主要作用是管理和抽象硬件,包含各類驅(qū)動(dòng),如內(nèi)存驅(qū)動(dòng)、顯示驅(qū)動(dòng)、鍵盤驅(qū)動(dòng)和音頻驅(qū)動(dòng)等。第2層是虛擬機(jī)和運(yùn)行時(shí)核心的庫(kù)文件,主要的核心庫(kù)包括顯示系統(tǒng)管理、媒體框架、SQLite數(shù)據(jù)庫(kù)、SSL和C庫(kù)等。手機(jī)的大部分多媒體活動(dòng)都是靠這一層的技術(shù)來實(shí)現(xiàn)的。第3層是應(yīng)用框架層,該層是連接應(yīng)用程序和底層技術(shù)的API接口,具備資源管理器、電話管理器、定位管理器、消息管理器等開源的應(yīng)用接口,以便程序開發(fā)者調(diào)用。第4層是頂層的應(yīng)用層,該層提供直接的人機(jī)交互應(yīng)用程序。智能移動(dòng)終端上的各類應(yīng)用,如電話和短信功能、瀏覽器、音視頻等應(yīng)用程序都屬于該層。除了系統(tǒng)自帶的應(yīng)用程序,用戶還可以從在線應(yīng)用商城中添加其他應(yīng)用。
當(dāng)前Android智能手機(jī)平臺(tái)上常見的不安全軟件可分為流氓軟件類、惡意扣費(fèi)類、隱私竊取類、資費(fèi)消耗類、后門軟件類等[6]。Android平臺(tái)上病毒的惡意行為大多是通過在應(yīng)用APK包中植入惡意代碼來實(shí)現(xiàn)。故對(duì)Android手機(jī)安全檢測(cè)研究的重點(diǎn)應(yīng)聚焦于對(duì)Android平臺(tái)的應(yīng)用程序包結(jié)構(gòu)進(jìn)行分析[7]。從Android病毒的運(yùn)行機(jī)理來看,病毒中植入的惡意代碼通常在手機(jī)后臺(tái)運(yùn)行,具備一般的用戶權(quán)限。因此,對(duì)Android手機(jī)進(jìn)行安全檢測(cè),其實(shí)就是對(duì)Android平臺(tái)病毒進(jìn)行檢測(cè)與監(jiān)控。
手機(jī)中存有用戶使用的各類隱私敏感數(shù)據(jù),如電話簿、通話記錄、短息等。對(duì)于用戶來說,這類敏感數(shù)據(jù)的泄露可能會(huì)帶來嚴(yán)重后果,如電信詐騙?,F(xiàn)有的Android平臺(tái)絕大多數(shù)文件是基于Linux系統(tǒng)框架開發(fā)的,不法分子就利用這些開源框架將惡意程序代碼隱藏在一些應(yīng)用中,如植入到短信或網(wǎng)絡(luò)中,當(dāng)用戶使用移動(dòng)互聯(lián)網(wǎng)或者接入無(wú)線局域網(wǎng)時(shí),將觸發(fā)惡意代碼的攻擊,對(duì)用戶的信息進(jìn)行攻擊、泄漏、篡改。本文選擇較容易受到攻擊的短信作為樣例,研究Android手機(jī)安全檢測(cè)技術(shù)。
目前,對(duì)Android手機(jī)安全檢測(cè)的方法有很多,常見的有基于支持向量機(jī)(SVM)的檢測(cè)方法[8]、基于神經(jīng)網(wǎng)絡(luò)(ANN)的檢測(cè)方法[9以及基于機(jī)器學(xué)習(xí)算法的檢測(cè)方法等[10]。本文則提出基于HMM行為模式識(shí)別的Android手機(jī)安全檢測(cè)方法。
HMM是統(tǒng)計(jì)學(xué)中較為經(jīng)典的一種模型,本質(zhì)是發(fā)掘事物的轉(zhuǎn)換規(guī)律。一般來說,事物的狀態(tài)主要分為顯狀態(tài)和隱狀態(tài)兩種。顯狀態(tài)是可以通過直接觀測(cè)得到的狀態(tài)值;隱狀態(tài)則無(wú)法通過直接觀測(cè)獲得,是隱含在事物變化過程中的一種狀態(tài)。在觀察事物狀態(tài)變化時(shí),會(huì)產(chǎn)生觀測(cè)向量序列,這個(gè)序列中的概率密度函數(shù)呈現(xiàn)出相同的模式,這種模式就是著名的隱馬爾可夫模型。
針對(duì)研究中欲識(shí)別的狀態(tài),可設(shè)計(jì)一套模塊,以HMM狀態(tài)的安全檢測(cè)模塊為基礎(chǔ),并稱之為DBPM(dynamic behavior perceive Model),DBPM引用HMM來構(gòu)建上述定義的復(fù)合狀態(tài)轉(zhuǎn)換模式,并可以獲得與之相應(yīng)的對(duì)復(fù)合行為進(jìn)行識(shí)別的能力。
DBPM與以往的檢測(cè)不相同,該模型從兩個(gè)不同的方面對(duì)安全行為進(jìn)行檢測(cè),從而完成對(duì)兩種行為(已知與未知)的識(shí)別。DBPM將上面介紹的行為進(jìn)行不斷學(xué)習(xí),不僅可以識(shí)別該應(yīng)用程序再使用過程中的行為模式,還可以對(duì)用戶和應(yīng)用程序之間的使用進(jìn)行學(xué)習(xí)。從一定意義上說,DBPM描述的模型,在涵蓋了應(yīng)用程序之間的行為模式的同時(shí),也將用戶與應(yīng)用程序之間的行為包含在其中。因此,DBPM可以作為區(qū)分正常應(yīng)用行為與不安全行為應(yīng)用的最佳經(jīng)驗(yàn)?zāi)P汀?/p>
系統(tǒng)架構(gòu)如圖1所示,檢測(cè)系統(tǒng)主要包含5個(gè)模塊:檢測(cè)模塊(負(fù)責(zé)行為檢測(cè))、行為學(xué)習(xí)模塊(對(duì)行為進(jìn)行學(xué)習(xí))、數(shù)據(jù)中心(用于數(shù)據(jù)的存儲(chǔ))、系統(tǒng)監(jiān)控模塊和交互控制模塊(人與應(yīng)用程序之間交互)。
圖1 基于HMM行為模式識(shí)別模塊系統(tǒng)架構(gòu)
監(jiān)控模塊的流程如圖2所示。根據(jù)用戶自定義的信息,確定是否需要監(jiān)聽。在確定需要監(jiān)聽的情況下,獲取該監(jiān)聽信息的狀態(tài)信息,然后對(duì)信息進(jìn)行處理,最終生成觀測(cè)序列并同步到數(shù)據(jù)中心;在不需要監(jiān)聽的狀態(tài)下,則直接生成觀測(cè)序列,以便研發(fā)者對(duì)序列進(jìn)行分析。
圖2 基于HMM應(yīng)用行為識(shí)別監(jiān)控子模塊流程圖
行為檢測(cè)模塊流程如圖3所示。從圖中可以看出,用戶先啟動(dòng)組建,然后設(shè)置檢測(cè)策略,進(jìn)而讀取序列,判斷是否是一次完整的評(píng)估。如果是非完整的,則輸出檢測(cè)的結(jié)果;如果是完整的評(píng)估,讀取模型,進(jìn)而評(píng)估待測(cè)序列。因此,要利用一切代表惡意行為的HMM進(jìn)行多次迭代評(píng)估,綜合多次評(píng)估結(jié)果,輸出最終的檢測(cè)結(jié)果。
圖3 基于HMM應(yīng)用行為識(shí)別檢測(cè)子模塊流程圖
序列評(píng)估依據(jù)如下:
式中:v={v1,…,vT}是指待評(píng)估的可觀測(cè)序列;P(v)表示由各個(gè)隱狀態(tài)序列產(chǎn)生的所有可見序列v的概率的和;vi為顯狀態(tài)也就是可觀狀態(tài),ui為隱狀態(tài),T和L是指序列的長(zhǎng)度,本研究在此處設(shè)隱狀態(tài)集U個(gè)數(shù)為M,顯狀態(tài)集V個(gè)數(shù)為N;P(u(t)/u(t-1))是指與顯狀態(tài)相對(duì)應(yīng)的轉(zhuǎn)換概率aij;P(v(t)/u(t))表示顯狀態(tài)相對(duì)隱狀態(tài)的生成概率bij。
由(1)式得到的評(píng)估復(fù)雜度為O(mTT),很顯然是不能取的,因此,這里利用前向法的原理對(duì)之分解,分解后的下遞歸形式如下:
式中,?j(t)為t時(shí)刻位于隱狀態(tài)uj且己經(jīng)正確產(chǎn)生了序列v的前t個(gè)可見狀態(tài)的概率。其中init表示初始狀態(tài),other表示隱狀態(tài)為非初始狀態(tài)。此時(shí)對(duì)于(1)式中的P(v),可以得到:
學(xué)習(xí)子模塊的流程如圖4所示。該模塊是一個(gè)不斷學(xué)習(xí)的過程。在啟動(dòng)學(xué)習(xí)之后,讀取學(xué)習(xí)型參數(shù),之后進(jìn)入完整學(xué)習(xí)的流程。在一次完整學(xué)習(xí)過程中,先讀取待測(cè)序列,不斷學(xué)習(xí)和修改模型,對(duì)學(xué)習(xí)的結(jié)果進(jìn)行評(píng)估判別。如果學(xué)習(xí)的結(jié)果滿足設(shè)定的閾值,則接受此次學(xué)習(xí)結(jié)果;反之則繼續(xù)循環(huán)下一次的學(xué)習(xí)過程,直至獲得滿意的學(xué)習(xí)結(jié)果。最終將獲取的模型與結(jié)果同步保存到數(shù)據(jù)中心作為知識(shí)庫(kù)。
圖4 基于HMM應(yīng)用行為識(shí)別學(xué)習(xí)子模塊流程圖
本文利用較為經(jīng)典的Baum-Welch算法對(duì)模型進(jìn)行學(xué)習(xí)和修改。Baum-Welch算法是最大似然估計(jì)思想的產(chǎn)物,通過遞歸的方式對(duì)模型λ=(A,B,π)的參數(shù)進(jìn)行修改。定義產(chǎn)生序列v的條件下,從隱狀態(tài)ui(t-1)到uj(t)的概率為γij(t)。
式中,θ表示aij、bjk、P(u(i))合用參數(shù)矢量。
類似于 (2)式中的?i(t),定義βj(t)表示t時(shí)刻位于隱狀態(tài)uj從t+1到T時(shí)刻都己經(jīng)正確生成了可見序列v的概率,則在整個(gè)T時(shí)間的過程中隱狀態(tài)ui(t-1)到uj(t)的轉(zhuǎn)移概率為從而從ui到任意其他狀態(tài)的總概率為由此從ui→uj的轉(zhuǎn)移概率的估計(jì)為類似,可以得到生成概率的估計(jì)為
利用本算法在完成一次完整的學(xué)習(xí)之后,記錄學(xué)習(xí)所得的模型,然后利用(5)式、(6)式對(duì)平均值進(jìn)行計(jì)算,根據(jù)計(jì)算的結(jié)果,修正模型。從最終學(xué)習(xí)到的模型中,隨機(jī)地抽取序列,并對(duì)序列進(jìn)行評(píng)估與計(jì)算,對(duì)評(píng)估后的值求平均,從而得到訓(xùn)練結(jié)束后的模型對(duì)樣本序列的認(rèn)知度。根據(jù)認(rèn)知度的值,設(shè)定上限閾值,當(dāng)相鄰兩次認(rèn)知度的差值小于該閾值時(shí),認(rèn)為結(jié)果收斂;否則認(rèn)為結(jié)果發(fā)散,仍然需要對(duì)模型進(jìn)行學(xué)習(xí)。
本文實(shí)驗(yàn)采用google提供的仿真環(huán)境,以短信的應(yīng)用程序?yàn)槔?,進(jìn)行結(jié)果測(cè)試。將下載和自己編寫的4個(gè)正常與惡意應(yīng)用作為本實(shí)驗(yàn)的測(cè)試對(duì)象,利用virus SMS對(duì)本文提出的安全檢測(cè)系統(tǒng)進(jìn)行測(cè)試,測(cè)試結(jié)果如圖5所示。由分析測(cè)試結(jié)果可知,sys SMS、go SMS都能夠正常被識(shí)別,即當(dāng)系統(tǒng)中被植入了惡意的行為sys時(shí),SMS變成virus SMS,出現(xiàn)異常的行為序列,該序列在后臺(tái)進(jìn)程中表現(xiàn)出惡意的行為。經(jīng)過多次實(shí)驗(yàn),該檢測(cè)系統(tǒng)都表現(xiàn)出較強(qiáng)的安全檢測(cè)能力。通過行為模式識(shí)別技術(shù)可以檢測(cè)各模塊存在的安全隱患,并且,通過不斷學(xué)習(xí)修正模型,訓(xùn)練出檢測(cè)模型,達(dá)到好的檢測(cè)效果。
圖5 對(duì)virus SMS監(jiān)控與評(píng)估
本文通過對(duì)Android平臺(tái)以及Android平臺(tái)病毒進(jìn)行分析,提出了一種基于HMM行為模式識(shí)別的Android手機(jī)安全檢測(cè)系統(tǒng)。在該系統(tǒng)上進(jìn)行病毒檢測(cè)的測(cè)試,實(shí)驗(yàn)結(jié)果表明:該系統(tǒng)能夠很好地檢測(cè)出異常代碼,并標(biāo)記出威脅類型。該系統(tǒng)具備自適應(yīng)的學(xué)習(xí)機(jī)制,能夠根據(jù)每一次檢測(cè)結(jié)果,修正模型并提升檢測(cè)效果。因此,本文所提出的方法有一定的實(shí)際意義與研究?jī)r(jià)值,為我國(guó)移動(dòng)終端安全檢測(cè)奠定了一定的理論基礎(chǔ)。