常國鋒 ,焦大軍 ,孫 悅
(1.新鄉(xiāng)學(xué)院 新鄉(xiāng) 453003;2.北京郵電大學(xué)網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室 北京 100876)
IMS是3GPP在R5版本標(biāo)準(zhǔn)中提出的支持IP多媒體業(yè)務(wù)的子系統(tǒng)。它基于SIP的體系,使用SIP呼叫控制機(jī)制創(chuàng)建、管理和終結(jié)各種類型的多媒體業(yè)務(wù)。各種類型的客戶端通過IMS都可以建立起端到端的IP通信,并可獲得所需要的服務(wù)質(zhì)量。在網(wǎng)絡(luò)融合的發(fā)展趨勢(shì)下,IMS技術(shù)為基于IP的移動(dòng)和固定通信融合提供了基礎(chǔ),并被業(yè)界認(rèn)為是網(wǎng)絡(luò)演進(jìn)的一個(gè)重要階段。
在傳統(tǒng)的電信網(wǎng)中,由于網(wǎng)絡(luò)封閉組網(wǎng)的特性,安全問題并不突出,然而當(dāng)網(wǎng)絡(luò)融合的趨勢(shì)逐漸明顯,網(wǎng)絡(luò)IP化、組網(wǎng)開放式的特性逐漸顯著時(shí),電信網(wǎng)將迎來原有互聯(lián)網(wǎng)上各種安全威脅的挑戰(zhàn),IMS的引入將使電信領(lǐng)域進(jìn)入互聯(lián)網(wǎng)時(shí)代,安全問題將成為電信運(yùn)營商的頭號(hào)大敵。
在眾多安全問題中,互聯(lián)網(wǎng)中較為常見的DoS(denial of service)攻擊將成為IMS網(wǎng)絡(luò)中比較主要的安全威脅。DoS往往是針對(duì)網(wǎng)絡(luò)協(xié)議中的弱點(diǎn)或者系統(tǒng)存在的漏洞,對(duì)系統(tǒng)發(fā)起攻擊,通過消耗系統(tǒng)有限的不可恢復(fù)的資源,使合法用戶的服務(wù)性能降低或者遭到拒絕。攻擊者不正當(dāng)?shù)夭捎脴?biāo)準(zhǔn)協(xié)議或連接方法,向目標(biāo)發(fā)送大量的信息,消耗攻擊目標(biāo)的資源,使攻擊目標(biāo)不能正常地為用戶服務(wù)。DoS中最典型的是泛洪攻擊?;ヂ?lián)網(wǎng)中常見的傳輸層TCP SYN/UDP泛洪攻擊在IMS網(wǎng)絡(luò)中將繼續(xù)存在,同時(shí)應(yīng)用層基于SIP協(xié)議的SIP消息泛洪攻擊、錯(cuò)誤的SIP消息體攻擊也將嚴(yán)重地威脅IMS網(wǎng)絡(luò),在消耗系統(tǒng)資源的同時(shí),對(duì)IMS網(wǎng)絡(luò)造成巨大的威脅[1]。
DoS在互聯(lián)網(wǎng)上出現(xiàn)已久,隨著入侵檢測(cè)技術(shù)的發(fā)展,各種針對(duì)DoS的攻擊檢測(cè)技術(shù)和防范技術(shù)也層出不窮。然而,針對(duì)IMS網(wǎng)絡(luò)攻擊檢測(cè)尤其是SIP泛洪攻擊檢測(cè)的技術(shù)普遍較少,目前尚沒有令人滿意的研究成果[2]。
[3]將IMS網(wǎng)絡(luò)中會(huì)話功能實(shí)體CPU的利用率作為檢測(cè)特征,如果利用率超過設(shè)定的閾值,表明遭到SIP泛洪攻擊。該方法雖然簡單,但存在以下兩個(gè)缺點(diǎn):其一,攻擊者可以通過手工構(gòu)造攻擊數(shù)據(jù)分組,在保持CPU利用率低于設(shè)定閾值的情況下發(fā)動(dòng)攻擊,上述檢測(cè)方法將失效;其二,該方法無法區(qū)分瞬間擁塞與泛洪攻擊,可能導(dǎo)致誤報(bào)。參考文獻(xiàn)[4]提出了一種基于人工免疫系統(tǒng)算法的檢測(cè)框架,用于檢測(cè)IMS網(wǎng)絡(luò)中的SIP泛洪攻擊,并將其檢測(cè)性能與基于特征的檢測(cè)算法進(jìn)行比較。該方法的缺點(diǎn)是不能在攻擊的早期檢測(cè)到攻擊,導(dǎo)致檢測(cè)時(shí)間過長。參考文獻(xiàn)[5]將互聯(lián)網(wǎng)泛洪攻擊檢測(cè)常用的3種算法(即門限值算法、累計(jì)和算法(cumulative sum,CUSUM)和Hellinger距離算法)用于IMS網(wǎng)絡(luò)中SIP泛洪攻擊的檢測(cè),并對(duì)3種算法的性能進(jìn)行比較,3種算法各有優(yōu)勢(shì),本文選擇第2種。參考文獻(xiàn)[6]針對(duì)IMS網(wǎng)絡(luò)中的移動(dòng)多媒體通信面臨的與SIP、RTP、IP有關(guān)的DoS攻擊進(jìn)行了分析,并在IMS已有的標(biāo)準(zhǔn)安全機(jī)制的基礎(chǔ)上提出一種安全體系架構(gòu)機(jī)制,用來為客戶和服務(wù)提供商提供可靠的通信環(huán)境,但該框架仍然無法有效解決SIP攻擊問題。
針對(duì)上述分析,為高效準(zhǔn)確地檢測(cè)出IMS網(wǎng)絡(luò)中面臨的SIP泛洪攻擊,本文提出一種新的SIP泛洪攻擊的檢測(cè)方法。該方法的核心是對(duì)invite消息流進(jìn)行分析,將抽樣間隔內(nèi)進(jìn)入IMS網(wǎng)絡(luò)中的所有初始invite請(qǐng)求消息的數(shù)量與正常 (信令)消息流數(shù)量的差作為檢測(cè)特征,使用累積和算法檢測(cè)上述差值所包含的信息,以判決攻擊是否發(fā)生。實(shí)驗(yàn)結(jié)果表明,本文提出的方法具有較高的檢測(cè)率。
SIP協(xié)議的信令連接方式也基于3次握手策略,與TCP的連接方式有相似之處,因此,在IMS網(wǎng)絡(luò)上對(duì)SIP消息發(fā)起泛洪攻擊也是主要的攻擊方式。SIP消息泛洪攻擊主要有invite消息泛洪和register消息泛洪,攻擊者向攻擊目標(biāo)發(fā)送大量的SIP invite消息(源IP地址使用IP地址欺騙),被攻擊的服務(wù)器忙于處理大量的invite消息,從而耗盡服務(wù)器資源無法處理正常合法的消息。攻擊原理如圖1所示。register消息泛洪攻擊與invite消息泛洪攻擊相似。
圖2(a)的消息流程代表的是呼叫過程因出現(xiàn)錯(cuò)誤而中斷的情況,可以看出,沒有出現(xiàn) (invite,200 OK,ACK)消息序列,取代200 OK的是4XX的錯(cuò)誤消息,例如目的地正忙 (486 destination busy)、目的地服務(wù)拒絕(403 destination service denied)、目的地在覆蓋范圍內(nèi)(480 destination currently out of coverage)或者其他的錯(cuò)誤。
圖2(b)的消息流程代表的是用戶會(huì)話終止或資源預(yù)留失敗,可以看出,主叫方可能在呼叫會(huì)話建立之前主動(dòng)發(fā)送cancel消息終止會(huì)話,也可能是因?yàn)橘Y源預(yù)留失敗發(fā)送cancel消息終止會(huì)話。如果是用戶主動(dòng)終止,cancel消息可能出現(xiàn)在(2)~(12),如果是因?yàn)橘Y源預(yù)留失敗,cancel消息可能出現(xiàn)在 (4)~(12)。同時(shí),該流程中也沒有出現(xiàn)(invite,200 OK,ACK)消息序列,取代 200 OK 的是請(qǐng)求中止(487 request terminated)消息。
這兩種呼叫失敗的過程并不是惡意的invite泛洪攻擊的特征。相反,如果終端與IMS網(wǎng)絡(luò)出現(xiàn)上述交互流程,表明該終端發(fā)起的是正常的呼叫。invite泛洪通過攻擊端發(fā)送大量的invite消息,試圖在IMS網(wǎng)絡(luò)中建立大量的半開放連接以耗盡資源。攻擊端不會(huì)對(duì)IMS網(wǎng)絡(luò)的請(qǐng)求響應(yīng)作相應(yīng)的回復(fù)。因此,如果簡單地使用(invite,200 OK,ACK)消息序列作為正常呼叫的特征,將會(huì)把用戶合法的呼叫終端的會(huì)話終止或資源預(yù)留失敗情況當(dāng)作泛洪攻擊。
總結(jié)上述流程,本文使用(invite,RES,ACK)作為正常呼叫的消息序列進(jìn)行消息提取。其中,RES代表所有可能出現(xiàn)的IMS網(wǎng)絡(luò)側(cè)響應(yīng),如正常的200 OK響應(yīng),異常的486、403、406、487 響應(yīng)等。
將 Tn時(shí)間段內(nèi)(invite,RES,ACK)消息序列數(shù)目記為Sinvite,將該時(shí)間段內(nèi)所有invite消息的數(shù)目記為Tinvite,攻擊出現(xiàn)時(shí),Tinvite>Sinvite,并且該數(shù)值差將出現(xiàn)激增。
分析可知,Reinvite 消息也會(huì)形成(invite,RES,ACK)消息序列,也就是說REinvite消息對(duì)Sinvite和Tinvite產(chǎn)生的影響相同,因此當(dāng)Tinvite與Sinvite數(shù)值相減之后,該影響即會(huì)消除。通過監(jiān)控Tinvite和Sinvite的數(shù)量差判斷該網(wǎng)絡(luò)是否正在接收異常的invite連接,是本文invite泛洪攻擊檢測(cè)機(jī)制的主要思想。
累積和算法是在統(tǒng)計(jì)過程控制中常用的算法,它可以檢測(cè)統(tǒng)計(jì)過程均值的變化。CUSUM基于這樣一個(gè)事實(shí):如果有變化發(fā)生,隨機(jī)序列的概率分布也會(huì)改變。通常CUSUM需要隨機(jī)序列的參數(shù)模型,以便可以用概率密度函數(shù)監(jiān)控序列。不幸的是,互聯(lián)網(wǎng)是一個(gè)非常動(dòng)態(tài)而復(fù)雜的實(shí)體,其業(yè)務(wù)模型的理論結(jié)構(gòu)非常復(fù)雜,因而,一個(gè)主要的難題是如何模擬隨機(jī)序列{Xn}。CUSUM背后的主要思想是:累積明顯比正常運(yùn)行情況下平均水平高的Xn的值。這一算法的優(yōu)點(diǎn)是能以連續(xù)方式監(jiān)控輸入隨機(jī)變量,從而達(dá)到實(shí)時(shí)檢測(cè)的目的。
設(shè)△n為第n個(gè)抽樣間隔內(nèi)檢測(cè)到的SYN分組與FIN(RST active)分組的數(shù)量差。在實(shí)際情況中,隨機(jī)序列{△n,n=0,1,…}的均值有一定的依賴性,隨著網(wǎng)絡(luò)規(guī)模大小的變化而變化,并且抽樣時(shí)刻不同,結(jié)果也不一樣。因此為降低相關(guān)性,使檢測(cè)適用于大部分情況,就要對(duì)△n作歸一化定義。用定義抽樣間隔內(nèi)FIN(RST active)數(shù)據(jù)分組數(shù)量的平均值,即抽樣時(shí)間間隔內(nèi)成功連接并釋放的會(huì)話數(shù)定義為:
其中,0<λ<1。
為了保證短時(shí)間內(nèi)高數(shù)據(jù)量的攻擊和長時(shí)間內(nèi)低數(shù)據(jù)量的攻擊都能被正確地檢測(cè)出來,該算法在抽樣時(shí)間序列的技術(shù)上增加了一個(gè)累積和的模塊。Yn定義如下:
攻擊的檢測(cè)由Yn的值確定。如果Yn超過了預(yù)定義的閾值N,說明該系統(tǒng)現(xiàn)在正在遭受攻擊。
本仿真實(shí)驗(yàn)環(huán)境部署在一臺(tái)CPU為Intel Pentium○R2、主頻為2 GHz、內(nèi)存為2 GB的PC機(jī)上,采用Windows XP SP2操作系統(tǒng),開發(fā)語言采用Java,運(yùn)行的Java虛擬機(jī)為J2SE 1.4.2-05,在Eclipse 3.2.1上運(yùn)行。該實(shí)驗(yàn)的目的在于驗(yàn)證本文提出的CUSUM檢測(cè)SIP消息泛洪攻擊的有效性。圖3給出了仿真實(shí)驗(yàn)的實(shí)驗(yàn)架構(gòu)。
在圖3中,SIP消息泛洪攻擊生成器負(fù)責(zé)向消息總線發(fā)送正常的消息序列(invite,200 OK,ACK)和泛洪攻擊消息(大量的invite消息),分別用來模擬正常的呼叫會(huì)話和可能發(fā)生的泛洪攻擊;事件隊(duì)列管理器維護(hù)整體檢測(cè)模塊的消息事件總線,在緩存大量消息事件的同時(shí),根據(jù)事件格式中的參數(shù)將事件發(fā)送至invite泛洪檢測(cè)模塊和CUSUM及輸出模塊,維持消息總線的正常運(yùn)作;invite泛洪檢測(cè)模塊緩存事件隊(duì)列管理器發(fā)送的消息事件,并維護(hù)invite泛洪檢測(cè)的狀態(tài)機(jī),用以判定正常和異常的invite信令建立流程,并將每一次的檢測(cè)結(jié)果按其消息結(jié)構(gòu)的格式發(fā)送至事件總線;CUSUM及輸出模塊對(duì)檢測(cè)模塊發(fā)送的結(jié)果事件進(jìn)行統(tǒng)計(jì),在模塊內(nèi)實(shí)現(xiàn)CUSUM的思想,維護(hù)時(shí)鐘對(duì)統(tǒng)計(jì)值進(jìn)行抽樣計(jì)算,達(dá)到相應(yīng)閾值則調(diào)用輸出函數(shù),將威脅的細(xì)節(jié)報(bào)告輸出,并使用恢復(fù)函數(shù)將模塊內(nèi)部的中間結(jié)果值恢復(fù)。
表1為本文提出方法中的實(shí)驗(yàn)參數(shù)設(shè)置。
表1 仿真實(shí)驗(yàn)參數(shù)設(shè)置
根據(jù)圖4設(shè)計(jì)的仿真系統(tǒng),對(duì)本文方法進(jìn)行了大量的實(shí)驗(yàn)驗(yàn)證,其中的一個(gè)實(shí)驗(yàn)結(jié)果如圖4所示。
從檢測(cè)結(jié)果可以看出,在抽樣間隔150 s以前,由于沒有發(fā)生攻擊,正常的呼叫不影響Yn值的變化,所以Yn一直為0,當(dāng)攻擊發(fā)生時(shí),由于攻擊生成器發(fā)送大量的invite消息并沒有后續(xù)響應(yīng),Yn值將發(fā)生激變,Yn的值遠(yuǎn)遠(yuǎn)大于1(當(dāng)前的閾值設(shè)定為1)。因此從圖4中可以看出,攻擊發(fā)生后,在不超過60 s的時(shí)間內(nèi),本文提出的方法能夠有效地檢測(cè)到泛洪攻擊的存在。
另外,其他的大量實(shí)驗(yàn)結(jié)果表明,本文提出的方法的平均檢測(cè)率為94%,平均誤報(bào)率不超過5%,平均檢測(cè)時(shí)間為67 s。因此,可以看出,本文提出的方法對(duì)于IMS網(wǎng)絡(luò)中的SIP消息泛洪攻擊的檢測(cè)是有效的。
根據(jù)取得的實(shí)驗(yàn)結(jié)果,如圖4所示,可以看出,CUSUM能夠有效地檢測(cè)出SIP消息泛洪攻擊的發(fā)生。當(dāng)正常呼叫進(jìn)行時(shí),Yn的值不受影響;當(dāng)攻擊發(fā)生時(shí),Yn能在較短的時(shí)間內(nèi)發(fā)生激變,能在較短時(shí)間內(nèi)準(zhǔn)確地發(fā)現(xiàn)攻擊,從而為防御系統(tǒng)的啟動(dòng)贏得了寶貴的時(shí)間,有利于最大化地減少SIP消息泛洪攻擊對(duì)系統(tǒng)造成的破壞。
另外,由于篇幅限制,本實(shí)驗(yàn)旨在驗(yàn)證CUSUM的正確性,對(duì)正常情況的消息序列只模擬了(invite,200 OK,ACK)消息序列,沒有對(duì)IMS網(wǎng)絡(luò)中出現(xiàn)的各種消息形式進(jìn)行驗(yàn)證,而這將在本文后續(xù)的研究中做進(jìn)一步的實(shí)驗(yàn)分析。
參考文獻(xiàn)
1 孫悅.IMS網(wǎng)絡(luò)中SIP泛洪檢測(cè)方法的研究與實(shí)現(xiàn).北京郵電大學(xué)碩士學(xué)位論文,2008
2 王尚廣,孫其博,楊放春.IMS網(wǎng)絡(luò)中的SIP泛洪攻擊檢測(cè).軟件學(xué)報(bào),2011,22(4):761~772
3 Sher M.Secure service provisioning (SSP)framework for IP multimedia subsystem (IMS).In:Technical University Berlin,2007
4 AwaisA,Farooq M,Younus Javed M.Attack analysis bio-inspired security framework for IP multimedia subsystem.In:the 10th Annual Conf on Genetic and Evolutionary Computation,2008
5 Akbar M A,Tariq Z,Farooq M.A comparative study of anomaly detection algorithms for detection of SIP flooding in IMS.In:Proc of the 2nd Int’l Conf on Internet Multimedia Services Architecture and Application,2008
6 Sher M, Magedanz T. Mobile multimedia broadcasting vulnerability threats,attacks and security solutions.In:the 9th Int’l Conf on Mobile and Wireless Communications Networks,2007