張麗娜,何 遠
(大理學院 數(shù)學與計算機學院 物聯(lián)網(wǎng)實驗室,云南 大理 671003)
隨著國內(nèi)3G通信的發(fā)展,智能終端在國內(nèi)的市場占有率正在逐步升高,智能電視、智能機頂盒等也進入平常百姓家。上網(wǎng)功能的增強、應用的增加使智能終端感染病毒的機會增大。2004年6月第一款手機病毒“Cabir”被截獲[1],此后手機病毒不斷發(fā)展,針對智能手機的病毒也呈上升趨勢,因手機木馬而造成的話費糾紛日漸突出,因而對智能終端業(yè)務安全監(jiān)控引起眾多學者和相關(guān)廠商的關(guān)注。
針對手機病毒、木馬,許多廠家都推出了相關(guān)的殺毒軟件。主要廠商包括AirScanner、F-Secure、McAfee、賽門鐵克等。這些產(chǎn)品具有掃描手機病毒、實時監(jiān)控等功能。但只要病毒稍加改動,往往能逃過殺毒軟件的查殺。目前手機監(jiān)控模塊只實現(xiàn)了簡單的功能,例如,幫助用戶檢查下載程序的合法性、檢測安裝程序產(chǎn)生的新文件等[2]。病毒能使手機自動發(fā)送短信、自動連網(wǎng)等,從而給用戶帶來話費損失。手機防火墻能對智能終端進行監(jiān)控,并通過黑白名單對相關(guān)業(yè)務進行攔截[3-5],但都存在一定局限性,只對木馬病毒的特征或只針對業(yè)務行為特征,沒有把用戶意愿和木馬特征結(jié)合起來考慮,不能很好地解決木馬的非法業(yè)務觸發(fā)問題,而本文將重點解決這一問題。
用戶使用手機時都通過界面的導航和按鍵的觸發(fā)來完成操作,用戶界面控件提供了在屏幕上畫圖和處理按鍵事件的一般方法。這些控件之所以能有條不紊地對用戶的按鍵輸入進行響應,主要是通過控件棧機制。
程序通過參數(shù)aKeyEvent可以獲得按鍵事件,如果這個按鍵事件已經(jīng)被處理,就會從函數(shù)返回EKeyWasCon?sumed,因此App UI就不會把這個按鍵響應事件傳給其他控件。相反,如果一個按鍵響應事件沒有被處理,就會返回EKeyWasNotConsumed,所以這個按鍵響應事件就會被傳遞給其他控件[6]。觸摸屏手機的具體實現(xiàn)過程相對復雜,但控制實現(xiàn)原理與按鍵式手機類似。
新的手機應用程序設計好后,最終打包成一個文件發(fā)布到手機上。該文件中包含了程序所需要的資源和相關(guān)代碼,所以木馬病毒一般將代碼嵌入到正常的應用程序中。用戶運行含有病毒的應用程序后,程序執(zhí)行相關(guān)功能的同時觸發(fā)了病毒進程,從而引起病毒攻擊[7]。病毒線程如圖1所示。
圖1 病毒線程
從圖1可看出,只用進程檢測等手段,很難發(fā)現(xiàn)木馬程序。但木馬程序必須首先通過訪問系統(tǒng)中的某些資源或接口才能進行破壞行動。
以短信業(yè)務為例,其正常業(yè)務流程如圖2所示。用戶操作步驟為開啟手機用戶界面、選擇業(yè)務、編輯短信、設置被叫號碼、發(fā)送短信,每一步都在用戶界面的導航下通過按鍵事件觸發(fā)完成。
圖2 短信業(yè)務流程
木馬利用了手機程序和相關(guān)協(xié)議棧的漏洞取得了相關(guān)權(quán)限,按號碼簿中的電話號碼生成短信數(shù)據(jù)包后,調(diào)用短信發(fā)送模塊,完成短信發(fā)送的功能。
從文獻[8]介紹的智能手機體系結(jié)構(gòu)可以看出,各層間的調(diào)用過程是單向線性的,也就是說第N層可以調(diào)用第N-1層服務,但第N-1層不能保證一定被第N層調(diào)用。具體到短信業(yè)務來說,就是發(fā)送模塊沒有驗證所發(fā)消息是用戶通過按鍵觸發(fā)的,這樣就給木馬程序留下了破壞的機會。
“用戶意愿”概念的提出是為了準確描述用戶的使用意圖。用戶意愿是用戶的想法及目的,主要用于區(qū)分業(yè)務的觸發(fā)是病毒造成的還是用戶自己的愿望。在安全監(jiān)控上體現(xiàn)操作是用戶授權(quán)的,同時表明授權(quán)是真實的,即訪問授權(quán)確實是用戶本人發(fā)布的,而不是程序偽造的。
借鑒文獻[9-10]的安全監(jiān)控方法,并在此基礎上融入序列模式挖掘的思想。只有使用過某些按鍵,才可能觸發(fā)對應的智能手機安全監(jiān)控業(yè)務。通過對某種型號手機使用的操作步驟進行分析,才能從中提取有代表性的操作。短信發(fā)送一般可分為以下幾個序列:1)從通訊錄發(fā)短信,其序列為“通訊錄→左鍵→向下→確認鍵→確認鍵→…→左鍵→確認鍵”。2)從菜單發(fā)短信,其序列為“左鍵→確認鍵→確認鍵→…→左鍵→確認鍵”。3)回復短信,其序列為“左鍵→向下→確認鍵→確認鍵→左鍵→確認鍵→…→左鍵→確認鍵”。對其進行符號化,可得到如下 對 應 序 列 :{S0S1S2S3S3…S1S3},{S1S3S3…S1S3},{S1S2S3S3S1S3…S1S3}。
這樣就可以通過對用戶按鍵序列的監(jiān)控得到用戶意愿信息,如果不符合用戶意愿,那就是病毒觸發(fā)的業(yè)務,換句話說,如果沒有對應的按鍵序列,但有相關(guān)業(yè)務發(fā)生就判斷為非用戶意愿。
通過上面分析可知,如果符合用戶意愿就認為是用戶正常使用的業(yè)務,反之,就認為是非法業(yè)務。為了對業(yè)務進行保護,對相關(guān)的接口資源等進行監(jiān)控,并進行判斷,對正常業(yè)務不進行攔截,如果是非法業(yè)務則進行攔截并告警。具體流程如圖3所示。
圖3 安全監(jiān)控的業(yè)務流程
第1步,增加一個監(jiān)控進程,記錄手機的按鍵操作,并將按鍵記錄裝入數(shù)據(jù)庫中。
第2步,增加一個監(jiān)控進程,監(jiān)控手機功能調(diào)用操作,針對不同功能監(jiān)控不同的API調(diào)用。
第3步,根據(jù)第1步的記錄,挖掘按鍵記錄中的序列模式,提取出對應的序列模式。
第4步,監(jiān)控到對應的API調(diào)用后,先中斷(暫停)執(zhí)行并進行判斷,判斷規(guī)則由第3步的結(jié)果與對應的正常序列對比。如果是合法操作,則繼續(xù)執(zhí)行。否則,告警提示用戶并按用戶選擇進行操作。
通過對按鍵事件的序列挖掘,認證了手機業(yè)務的用戶觸發(fā),從而實現(xiàn)了基于用戶意愿的安全監(jiān)控,這樣就能避免因為病毒、木馬而造成的話費糾紛。
智能手機病毒程序具有自動執(zhí)行的特點,使它可以偽造用戶的授權(quán),從而完成破壞功能。但手機病毒無法像計算機病毒那樣做的太大,病毒程序還無法從硬件驅(qū)動層去模擬按鍵信息,所以在目前一段時間內(nèi)監(jiān)控程序的安全性。同時對于不同的手機,操作時有一定差異,病毒無法模擬全部的按鍵序列,其安全性進一步得到加強。
3.2.1 實驗驗證方案
目前對感染病毒的手機多數(shù)有自動發(fā)送短信的特點,所以本實驗選擇短信業(yè)務為實驗基礎,并以Symbian的開發(fā)環(huán)境作為實驗平臺,對基于用戶意愿的安全監(jiān)控方案的可行性進行了初步的驗證。
一般攻擊者往往把這種程序綁定到游戲、實用軟件中,通過正常使用軟件而觸發(fā)病毒,這樣用戶一般就不會有戒備。由于游戲的“有趣”,被攻擊者很可能還會通過自己的宣傳而導致更多的人中毒。從圖3可以看出,可針對不同業(yè)務進行監(jiān)控,本文主要對短信業(yè)務進行監(jiān)控。
為了模擬自動發(fā)送短信的病毒,創(chuàng)建一個項目命名為“xuexi”,在程序菜單的“about”菜單項,增加觸發(fā)短信發(fā)送功能,使其運行時顯示正常的軟件版本信息,同時“悄悄”地在后臺發(fā)送短信,從而模擬了手機僵尸病毒的發(fā)送短信的特征。
3.2.2 實驗結(jié)果
把“xuexi”程序上傳到手機并安裝,然后通過360手機安全衛(wèi)士對程序進行安全掃描,其結(jié)果與手機QQ、游戲(封神榜2)等正常軟件類似,結(jié)果為安全未知,建議云查殺。對其進行云查殺后,對QQ程序的結(jié)果為“安全,可以放心使用”,但對“xuexi”的結(jié)果卻仍然是“安全未知”,結(jié)果如圖4所示。從結(jié)果可以看出,對于這個“新病毒”,靜態(tài)掃描技術(shù)無法及時正確判斷,證明了殺毒軟件的滯后性。
在設計xuexi程序時為了能看到發(fā)送成功的結(jié)果,沒有對短信發(fā)送報告等細節(jié)進行處理。運行“xuexi”程序,通過點擊about菜單選項后,可以看見程序顯示正常版本信息外自動發(fā)送短信,圖5為“xuexi”程序自動發(fā)送短信后發(fā)送成功的報告。
接下來運行安全監(jiān)控程序,在設計時為了不影響用戶操作,選擇了后臺運行方式,所以無法直接看到程序正在運行,通過軟件才能看到,“dxjk.EXE”正在運行,具體如圖6所示,然后再次運行“xuexi”程序,可以看到短信被攔截,結(jié)果如圖7所示。
本文設計了一種基于用戶的短消息安全監(jiān)控系統(tǒng)。該系統(tǒng)根據(jù)業(yè)務行為特征判斷非法業(yè)務的觸發(fā)并能阻止其進一步的執(zhí)行,避免因中木馬而產(chǎn)生話費損失,并間接證明了可能有木馬病毒的存在。智能終端的結(jié)構(gòu)和系統(tǒng)與智能手機類似,所以此防毒設計方案,對于智能電視、智能機頂盒等有一定的借鑒意義。
[1]PAULSON L D.First smart phone virus is discovered[J].Computer,2004(8):22-23.
[2]王立波.基于嵌入設備的手機反病毒軟件淺析[J].微計算機信息,2007,23(2):78-79.
[3]FENG Song,OUYANG Xin,ZHU Zhining.Design and implementa?tion of short message interception based on content detection and symbian OS cell phone[C]//Proc.CCC2008.[S.l.]:IEEE Press,2008:704–707.
[4]萬霖宜.基于標簽的手機安全實時監(jiān)控技術(shù)研究[D].沈陽:遼寧大學,2007.
[5]連一峰,戴英俠,王航.基于模式挖掘的用戶行為異常檢測[J].計算機學報,2002(3):325–330.
[6]楊長青,彭木根.Symbian S60手機程序開發(fā)與實用教程[M].北京:機械工業(yè)出版社,2008.
[7]葉徘岑.基于SymbianOS智能手機病毒的原型研究[D].武漢:華中科技大學,2005.
[8]王繼剛,顧國昌.面向智能手機的嵌入式實時操作系統(tǒng)[J].中興通訊技術(shù),2005,11(5):41-44.
[9]吳俊軍,方明偉.基于啟發(fā)式行為監(jiān)測的手機病毒防治研究[J].計算機工程與科學,2010(1):35-38.
[10]張毅,何遠,唐紅.加權(quán)行為特征的智能手機安全監(jiān)控研究[J].電視技術(shù),2011,35(1):122–123.