文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2015.07.029
中文引用格式: 謝麗霞,趙彬彬. 基于人工免疫系統(tǒng)的僵尸短信入侵檢測[J].電子技術應用,2015,41(7):103-106,110.
英文引用格式: Xie Lixia,Zhao Binbin. The intrusion detection of zombie SMS based on artificial immune system[J].Application of Electronic Technique,2015,41(7):103-106,110.
0 引言
近年來,智能移動技術的迅猛發(fā)展和設備的推陳出新已得到眾多消費者的青睞。然而,智能終端的安全威脅和隱患也迅速出現(xiàn)。2012年以來,移動僵尸網(wǎng)絡開始構成威脅。
2012年底出現(xiàn)的移動僵尸網(wǎng)絡(Android.DDos.1.origin)在后臺攔截短信并發(fā)起UDP Flood攻擊[1];華為《2013年度安全研究報告》顯示,移動僵尸網(wǎng)絡ZitMo的mTAN(國外手機銀行驗證碼)短信攻擊已造成4 700萬美元的經濟損失。2013年出現(xiàn)了以短信作為命令控制通道的最大的移動僵尸網(wǎng)絡(MisoSMS)。近期,移動安全公司Lookout發(fā)現(xiàn)了活躍兩年的迄今防御力最強的移動僵尸網(wǎng)絡(NotCompatible)[2]。移動僵尸網(wǎng)絡正在成為下一個噩夢,對移動僵尸網(wǎng)絡的檢測已刻不容緩。
僵尸短信是指控制移動設備執(zhí)行非授權行為的短信。短信服務由于實時性、可靠性等特性成為目前移動僵尸網(wǎng)絡命令控制通道主要的、不可缺少的方式。因此,僵尸短信的識別與檢測對移動設備的信息安全具有重要的理論和實踐意義。
本文提出了一種基于人工免疫的僵尸短信檢測模型。該模型的創(chuàng)新之處在于:通過量化短信簽名信息生成抗原并采用實值否定選擇[3]算法(Real-valued Negative Selection,RNS)生成抗體。通過抗原與抗體的親密程度識別僵尸短信。
1 相關工作
目前,國內外的許多學者對移動僵尸網(wǎng)絡進行了研究并提出了一系列移動僵尸網(wǎng)絡的模型。Mulliner提出一種基于短信和http協(xié)議的移動僵尸網(wǎng)絡模型[4]。該模型具有較高的應用性,但隱蔽性較低;Zeng提出一種采用P2P結構的基于短信的移動僵尸網(wǎng)絡模型[5]。由于采用P2P結構且以短信作為命令控制通道的主要方式,因此該模型具有較高的應用性和隱蔽性。
在移動僵尸網(wǎng)絡檢測方面,國內外主要采用以下方法:
(1)采用僵尸網(wǎng)絡中基于行為或流量等特征的檢測方式。但是,由于移動設備的IP是變化的,所以上述方式的應用性不高。
(2)采用通用的惡意軟件的檢測方式(靜態(tài)檢測、動態(tài)檢測、混合檢測等),這種方式針對性差,準確率低。
綜上所述,目前移動僵尸網(wǎng)絡的檢測理論和方法還不夠成熟,應用性和適用性有待提高。
2 檢測模型的設計
本文提出的檢測模型有兩個核心模塊:短信過濾和短信識別免疫。短信過濾模塊根據(jù)黑名單信息過濾垃圾短信或廣告。短信識別免疫模塊識別可疑短信,若短信識別為良性,則放行;否則,攔截該短信并通知用戶,若用戶修改短信屬性,則放行該短信并更新抗體。檢測模型的整體架構如圖1所示。
2.1 短信過濾
短信過濾模塊過濾垃圾短信或廣告,然后將可疑僵尸短信發(fā)送到短信識別免疫模塊進行處理。
短信過濾模塊存儲有第三方的以及用戶添加的垃圾短信和廣告的黑名單。當短信過濾模塊攔截到短信時,提取短信的來源或目的地地址與黑名單進行查詢、匹配。若存在匹配的黑名單記錄,則攔截該短信并將其存儲到數(shù)據(jù)庫中,然后以通知的方式通知用戶;反之,則放行該短信。
2.2 短信識別免疫
短信識別免疫模塊是僵尸短信檢測模型的核心模塊。其處理流程主要有4個步驟:量化短信的簽名信息生成抗原;通過改進的RNS算法生成抗體;計算抗體與抗原的親密程度識別僵尸短信;根據(jù)用戶的反饋結果更新抗體。短信識別免疫的處理流程如圖2所示。
2.2.1 量化短信的簽名信息生成抗原
抗原是指移動設備發(fā)送或接收的短信的簽名信息所量化成的n維空間向量。
目前的僵尸短信大都包含有惡意URL鏈接、僵尸指令、惡意聯(lián)系方式等,而且為了防止用戶發(fā)現(xiàn)大都采用指令加密、指令分段、內容掩蓋等方式隱藏僵尸短信的內容。因此,本文定義如下信息作為短信的簽名信息:(1)短信的總長度(包括空格);(2)短信的長度(不包括空格);(3)空格的長度;(4)URL鏈接的數(shù)量;(5)標點符號、特殊字符的數(shù)量;(6)大寫字母的長度;(7)電話號碼(或數(shù)字)的長度;(8)英文字符串的長度。
將上述的簽名信息用一組8維的空間向量表示,這組8維的空間向量即抗原。例如:短信內容為:“尊敬的客戶:您當月的話費為99.99元,當前余額為50.00元。SEND_PHONE,查看收費詳情:請訪問:www.chinamobilexxx.com.aaa”所生成的向量組如圖3所示,其中第一個數(shù)據(jù)“80”表示短信的總長度(包括空格),其他依次類推。
2.2.2 通過RNS算法生成抗體
抗體是一個二元組(x,r),其中x是與抗原維數(shù)相同的n維向量,它表示抗體的中心點,r為抗體的檢測半徑。
傳統(tǒng)RNS算法生成抗體的檢測半徑是固定的,導致抗體對“非我”空間的覆蓋率較低。為覆蓋較多“非我”空間則需較多抗體,這導致算法的效率和準確率下降且時間復雜度增加。為了有效解決上述問題,抗體的檢測半徑不再固定不變,而是根據(jù)“自我”的分布情況決定??贵w的檢測半徑不變與抗體的檢測半徑可變對比如圖4所示。
通過RNS算法生成抗體的步驟如下:
(1)隨機產生候選抗體x。
(2)計算x與抗體庫B中已有抗體bi(i=1,2,…,k)的歐氏距離[6]:
(3)如果di小于任一抗體bi的檢測半徑,說明兩個超球體相交,即表明該抗體能被抗體庫中已有的抗體覆蓋,這與成熟抗體只能覆蓋“非我”是不一致的,因此需要被淘汰,轉步驟(1);否則執(zhí)行步驟(4)。
(4)計算抗體x與良性短信樣本集S(樣本集S是一個二元組(xs,rs),xs是與抗原維數(shù)相同的n維向量,rs為自體半徑)中的所有樣本點sj(j=1,2,…,m)的歐氏距離dj,并求出最小距離dmin:
(5)若dmin大于樣本點的自體半徑,則將dmin-rs作為抗體的檢測半徑,抗體成熟,同時計數(shù)器c=c+1;反之拋棄該候選抗體,轉步驟(1)。
(6)若成熟抗體的數(shù)量c達到期望的最大抗體數(shù)量Nmax,則算法結束;否則轉步驟(1)。
2.2.3 僵尸短信識別
僵尸短信的識別是通過抗體與抗原的親密程度實現(xiàn)的,抗體與抗原的親密程度用它們之間的歐氏距離衡量。
僵尸短信的識別處理流程設計如下:
(1)獲取待識別抗原a。
(2)求出a與抗體庫B中的抗體bi的中心點的歐氏距離并求出最小距離dmin(i=1,2,…,k)
(3)若dmin小于或等于抗體的檢測半徑ri,則該抗原所對應的短信為僵尸短信;否則,該短信為良性短信。
(4)將檢測出的僵尸短信通知用戶。
抗原與抗體的歐氏距離計算示例如圖5所示。
2.2.4 根據(jù)用戶反饋結果更新抗體
雖然抗體的檢測半徑是可變的,但仍無法覆蓋所有的“非我”空間,會出現(xiàn)僵尸短信誤報的現(xiàn)象。因此,需實時更新抗體。
當短信識別免疫模塊識別出僵尸短信時,會以通知的形式通知用戶,用戶可以修改檢測結果。當用戶查看短信詳情并修改短信識別結果時,短信識別免疫模塊會根據(jù)用戶的反饋結果刪除抗體庫中相應的抗體。
3 檢測模型的實現(xiàn)
本文選取Android系統(tǒng)作為僵尸短信檢測模型的實現(xiàn)平臺,它由短信過濾模塊和短信識別免疫模塊組成。
3.1 短信過濾模塊
通過Android系統(tǒng)的廣播接收者組件(BroadcastReceiver)可實現(xiàn)對發(fā)送到該移動設備的短信進行攔截(實現(xiàn)方式:采用代碼方式設置廣播接收的優(yōu)先級最高,安裝該應用前卸載其他具有攔截短信廣播的應用)。對于發(fā)送的短信,在發(fā)送短信之前對短信進行過濾、識別即可。
短信過濾模塊通過SQLite數(shù)據(jù)庫存儲的黑名單數(shù)據(jù)是:垃圾短信或廣告短信的發(fā)送地址。黑名單數(shù)據(jù)的來源是:第三方應用軟件的黑名單庫、用戶添加的黑名單記錄等。
短信過濾的處理流程為:
(1)提取短信的目的地或來源地址。
(2)與黑名單信息進行查找、匹配。若匹配,短信即為垃圾短信或廣告,短信過濾模塊將攔截短信的發(fā)送或接收并通過Android系統(tǒng)的Notification類通知用戶;反之,短信通過該模塊并進入短信識別免疫模塊。
3.2 短信識別免疫模塊
短信識別免疫模塊是僵尸短信檢測模型最核心的模塊,其主要功能為:
(1)根據(jù)短信簽名信息生成抗原并計算出抗原與抗體庫的最小歐氏距離[6]。
(2)將識別出的僵尸短信通過Android系統(tǒng)的Notification類通知用戶;
(3)根據(jù)用戶反饋結果更新抗體。
通過第三方commons-lang.jar工具包提取短信的簽名信息并量化為抗原。短信識別免疫模塊通過SQLite數(shù)據(jù)庫存儲已經成熟的抗體。通過Math.abs()函數(shù)求出抗原與抗體的最小歐氏距離[6]。
用戶可修改識別結果,若短信被修改為良性短信,模塊放行該短信并刪除抗體庫中相應的抗體。
4 檢測實驗與結果
基于本文提出的僵尸短信檢測模型,以Android系統(tǒng)為測試平臺,采用J2SE技術設計并實現(xiàn)了僵尸短信檢測軟件的核心程序。
從相關網(wǎng)站、論壇等收集了1 000條短信,短信類型涉及:問候祝福、商務貿易、銀行支付、生活社交、服務通知等,其中良性短信600條,僵尸短信400條。軟件檢測界面如圖6所示。
1 000條樣本短信的檢測結果如表1所示,檢測結果表明,本文提出的檢測模型能夠有效檢測僵尸短信,證明了其有效性和可行性。
5 結束語
本文模仿人體的免疫結構和機制,提出一種基于人工免疫的僵尸短信檢測模型。在該模型中設計了兩個核心模塊。首先匹配黑名單信息進行初步過濾;然后量化短信的簽名信息生成抗原,通過RNS算法生成抗體,以抗原與抗體的歐氏距離識別僵尸短信,最后根據(jù)用戶反饋更新抗體。該檢測模型能夠有效地發(fā)現(xiàn)移動設備中的僵尸短信,保護設備的信息安全。但該檢測模型仍有不足之處:提取短信的簽名信息的類型較少、抗體的覆蓋率不高、識別率較低等。
未來的僵尸短信檢測模型將做如下改進:增加短信的簽名信息類型、優(yōu)化計算抗體檢測半徑算法、采用加權的方式計算待識別抗原與抗體的親密程度等。
參考文獻
[1] 約翰·薩???華為2013年度安全研究報告[R].深圳:華為公司,2013.
[2] 360安全播報.企業(yè)網(wǎng)絡的下一個噩夢:移動僵尸網(wǎng)絡[EB/OL].[2014-11-21].http://bobao.#/news/detail/916.html.
[3] JIN Q,MING M.A method to construct self set for IDS based on negative selection algorithm[C].Proceedings of the 2011 International Conference on Mechatronic Science,Electric Engineering and Computer.Piscataway:IEEE Press,2011:1051-1053.
[4] MULLINER C,SEIFERTIN J.Rise of the iBots:owning a telco network[C].Proceedings of the 5th IEEE International Conference on Malicious and Unwanted Software(Malware).Piscataway:IEEE Press,2010:19-20.
[5] ZENG Y Y,HU X,SHIN K G.Design of SMS commanded-and-controlled and P2P-structed mobile Botnet[C].Proceedings of the fifth ACM conference on Security and Privacy in Wireless and Mobile Networks.New York:ACM Press,2012:137-148.
[6] JAVED J,YASIN H,ALI S.Human movement recognition using euclidean distance:a tricky approach[C].Proceedings of 2010 3th International Congress on Image and Signal Processing.Piscataway:IEEE Press,2010:317-321.