張麗娜,何 遠
(大理學院 數學與計算機學院 物聯網實驗室,云南 大理 671003)
隨著國內3G通信的發展,智能終端在國內的市場占有率正在逐步升高,智能電視、智能機頂盒等也進入平常百姓家。上網功能的增強、應用的增加使智能終端感染病毒的機會增大。2004年6月第一款手機病毒“Cabir”被截獲[1],此后手機病毒不斷發展,針對智能手機的病毒也呈上升趨勢,因手機木馬而造成的話費糾紛日漸突出,因而對智能終端業務安全監控引起眾多學者和相關廠商的關注。
針對手機病毒、木馬,許多廠家都推出了相關的殺毒軟件。主要廠商包括AirScanner、F-Secure、McAfee、賽門鐵克等。這些產品具有掃描手機病毒、實時監控等功能。但只要病毒稍加改動,往往能逃過殺毒軟件的查殺。目前手機監控模塊只實現了簡單的功能,例如,幫助用戶檢查下載程序的合法性、檢測安裝程序產生的新文件等[2]。病毒能使手機自動發送短信、自動連網等,從而給用戶帶來話費損失。手機防火墻能對智能終端進行監控,并通過黑白名單對相關業務進行攔截[3-5],但都存在一定局限性,只對木馬病毒的特征或只針對業務行為特征,沒有把用戶意愿和木馬特征結合起來考慮,不能很好地解決木馬的非法業務觸發問題,而本文將重點解決這一問題。
用戶使用手機時都通過界面的導航和按鍵的觸發來完成操作,用戶界面控件提供了在屏幕上畫圖和處理按鍵事件的一般方法。這些控件之所以能有條不紊地對用戶的按鍵輸入進行響應,主要是通過控件棧機制。
程序通過參數aKeyEvent可以獲得按鍵事件,如果這個按鍵事件已經被處理,就會從函數返回EKeyWasCon?sumed,因此App UI就不會把這個按鍵響應事件傳給其他控件。相反,如果一個按鍵響應事件沒有被處理,就會返回EKeyWasNotConsumed,所以這個按鍵響應事件就會被傳遞給其他控件[6]。觸摸屏手機的具體實現過程相對復雜,但控制實現原理與按鍵式手機類似。
新的手機應用程序設計好后,最終打包成一個文件發布到手機上。該文件中包含了程序所需要的資源和相關代碼,所以木馬病毒一般將代碼嵌入到正常的應用程序中。用戶運行含有病毒的應用程序后,程序執行相關功能的同時觸發了病毒進程,從而引起病毒攻擊[7]。病毒線程如圖1所示。

圖1 病毒線程
從圖1可看出,只用進程檢測等手段,很難發現木馬程序。但木馬程序必須首先通過訪問系統中的某些資源或接口才能進行破壞行動。
以短信業務為例,其正常業務流程如圖2所示。用戶操作步驟為開啟手機用戶界面、選擇業務、編輯短信、設置被叫號碼、發送短信,每一步都在用戶界面的導航下通過按鍵事件觸發完成。

圖2 短信業務流程
木馬利用了手機程序和相關協議棧的漏洞取得了相關權限,按號碼簿中的電話號碼生成短信數據包后,調用短信發送模塊,完成短信發送的功能。
從文獻[8]介紹的智能手機體系結構可以看出,各層間的調用過程是單向線性的,也就是說第N層可以調用第N-1層服務,但第N-1層不能保證一定被第N層調用。具體到短信業務來說,就是發送模塊沒有驗證所發消息是用戶通過按鍵觸發的,這樣就給木馬程序留下了破壞的機會。
“用戶意愿”概念的提出是為了準確描述用戶的使用意圖。用戶意愿是用戶的想法及目的,主要用于區分業務的觸發是病毒造成的還是用戶自己的愿望。在安全監控上體現操作是用戶授權的,同時表明授權是真實的,即訪問授權確實是用戶本人發布的,而不是程序偽造的。
借鑒文獻[9-10]的安全監控方法,并在此基礎上融入序列模式挖掘的思想。只有使用過某些按鍵,才可能觸發對應的智能手機安全監控業務。通過對某種型號手機使用的操作步驟進行分析,才能從中提取有代表性的操作。短信發送一般可分為以下幾個序列:1)從通訊錄發短信,其序列為“通訊錄→左鍵→向下→確認鍵→確認鍵→…→左鍵→確認鍵”。2)從菜單發短信,其序列為“左鍵→確認鍵→確認鍵→…→左鍵→確認鍵”。3)回復短信,其序列為“左鍵→向下→確認鍵→確認鍵→左鍵→確認鍵→…→左鍵→確認鍵”。對其進行符號化,可得到如下 對 應 序 列 :{S0S1S2S3S3…S1S3},{S1S3S3…S1S3},{S1S2S3S3S1S3…S1S3}。
這樣就可以通過對用戶按鍵序列的監控得到用戶意愿信息,如果不符合用戶意愿,那就是病毒觸發的業務,換句話說,如果沒有對應的按鍵序列,但有相關業務發生就判斷為非用戶意愿。
通過上面分析可知,如果符合用戶意愿就認為是用戶正常使用的業務,反之,就認為是非法業務。為了對業務進行保護,對相關的接口資源等進行監控,并進行判斷,對正常業務不進行攔截,如果是非法業務則進行攔截并告警。具體流程如圖3所示。

圖3 安全監控的業務流程
第1步,增加一個監控進程,記錄手機的按鍵操作,并將按鍵記錄裝入數據庫中。
第2步,增加一個監控進程,監控手機功能調用操作,針對不同功能監控不同的API調用。
第3步,根據第1步的記錄,挖掘按鍵記錄中的序列模式,提取出對應的序列模式。
第4步,監控到對應的API調用后,先中斷(暫停)執行并進行判斷,判斷規則由第3步的結果與對應的正常序列對比。如果是合法操作,則繼續執行。否則,告警提示用戶并按用戶選擇進行操作。
通過對按鍵事件的序列挖掘,認證了手機業務的用戶觸發,從而實現了基于用戶意愿的安全監控,這樣就能避免因為病毒、木馬而造成的話費糾紛。
智能手機病毒程序具有自動執行的特點,使它可以偽造用戶的授權,從而完成破壞功能。但手機病毒無法像計算機病毒那樣做的太大,病毒程序還無法從硬件驅動層去模擬按鍵信息,所以在目前一段時間內監控程序的安全性。同時對于不同的手機,操作時有一定差異,病毒無法模擬全部的按鍵序列,其安全性進一步得到加強。
3.2.1 實驗驗證方案
目前對感染病毒的手機多數有自動發送短信的特點,所以本實驗選擇短信業務為實驗基礎,并以Symbian的開發環境作為實驗平臺,對基于用戶意愿的安全監控方案的可行性進行了初步的驗證。
一般攻擊者往往把這種程序綁定到游戲、實用軟件中,通過正常使用軟件而觸發病毒,這樣用戶一般就不會有戒備。由于游戲的“有趣”,被攻擊者很可能還會通過自己的宣傳而導致更多的人中毒。從圖3可以看出,可針對不同業務進行監控,本文主要對短信業務進行監控。
為了模擬自動發送短信的病毒,創建一個項目命名為“xuexi”,在程序菜單的“about”菜單項,增加觸發短信發送功能,使其運行時顯示正常的軟件版本信息,同時“悄悄”地在后臺發送短信,從而模擬了手機僵尸病毒的發送短信的特征。
3.2.2 實驗結果
把“xuexi”程序上傳到手機并安裝,然后通過360手機安全衛士對程序進行安全掃描,其結果與手機QQ、游戲(封神榜2)等正常軟件類似,結果為安全未知,建議云查殺。對其進行云查殺后,對QQ程序的結果為“安全,可以放心使用”,但對“xuexi”的結果卻仍然是“安全未知”,結果如圖4所示。從結果可以看出,對于這個“新病毒”,靜態掃描技術無法及時正確判斷,證明了殺毒軟件的滯后性。
在設計xuexi程序時為了能看到發送成功的結果,沒有對短信發送報告等細節進行處理。運行“xuexi”程序,通過點擊about菜單選項后,可以看見程序顯示正常版本信息外自動發送短信,圖5為“xuexi”程序自動發送短信后發送成功的報告。


接下來運行安全監控程序,在設計時為了不影響用戶操作,選擇了后臺運行方式,所以無法直接看到程序正在運行,通過軟件才能看到,“dxjk.EXE”正在運行,具體如圖6所示,然后再次運行“xuexi”程序,可以看到短信被攔截,結果如圖7所示。


本文設計了一種基于用戶的短消息安全監控系統。該系統根據業務行為特征判斷非法業務的觸發并能阻止其進一步的執行,避免因中木馬而產生話費損失,并間接證明了可能有木馬病毒的存在。智能終端的結構和系統與智能手機類似,所以此防毒設計方案,對于智能電視、智能機頂盒等有一定的借鑒意義。
[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]萬霖宜.基于標簽的手機安全實時監控技術研究[D].沈陽:遼寧大學,2007.
[5]連一峰,戴英俠,王航.基于模式挖掘的用戶行為異常檢測[J].計算機學報,2002(3):325–330.
[6]楊長青,彭木根.Symbian S60手機程序開發與實用教程[M].北京:機械工業出版社,2008.
[7]葉徘岑.基于SymbianOS智能手機病毒的原型研究[D].武漢:華中科技大學,2005.
[8]王繼剛,顧國昌.面向智能手機的嵌入式實時操作系統[J].中興通訊技術,2005,11(5):41-44.
[9]吳俊軍,方明偉.基于啟發式行為監測的手機病毒防治研究[J].計算機工程與科學,2010(1):35-38.
[10]張毅,何遠,唐紅.加權行為特征的智能手機安全監控研究[J].電視技術,2011,35(1):122–123.