常國鋒 ,焦大軍 ,孫 悅
(1.新鄉學院 新鄉 453003;2.北京郵電大學網絡與交換技術國家重點實驗室 北京 100876)
IMS是3GPP在R5版本標準中提出的支持IP多媒體業務的子系統。它基于SIP的體系,使用SIP呼叫控制機制創建、管理和終結各種類型的多媒體業務。各種類型的客戶端通過IMS都可以建立起端到端的IP通信,并可獲得所需要的服務質量。在網絡融合的發展趨勢下,IMS技術為基于IP的移動和固定通信融合提供了基礎,并被業界認為是網絡演進的一個重要階段。
在傳統的電信網中,由于網絡封閉組網的特性,安全問題并不突出,然而當網絡融合的趨勢逐漸明顯,網絡IP化、組網開放式的特性逐漸顯著時,電信網將迎來原有互聯網上各種安全威脅的挑戰,IMS的引入將使電信領域進入互聯網時代,安全問題將成為電信運營商的頭號大敵。
在眾多安全問題中,互聯網中較為常見的DoS(denial of service)攻擊將成為IMS網絡中比較主要的安全威脅。DoS往往是針對網絡協議中的弱點或者系統存在的漏洞,對系統發起攻擊,通過消耗系統有限的不可恢復的資源,使合法用戶的服務性能降低或者遭到拒絕。攻擊者不正當地采用標準協議或連接方法,向目標發送大量的信息,消耗攻擊目標的資源,使攻擊目標不能正常地為用戶服務。DoS中最典型的是泛洪攻擊?;ヂ摼W中常見的傳輸層TCP SYN/UDP泛洪攻擊在IMS網絡中將繼續存在,同時應用層基于SIP協議的SIP消息泛洪攻擊、錯誤的SIP消息體攻擊也將嚴重地威脅IMS網絡,在消耗系統資源的同時,對IMS網絡造成巨大的威脅[1]。
DoS在互聯網上出現已久,隨著入侵檢測技術的發展,各種針對DoS的攻擊檢測技術和防范技術也層出不窮。然而,針對IMS網絡攻擊檢測尤其是SIP泛洪攻擊檢測的技術普遍較少,目前尚沒有令人滿意的研究成果[2]。
[3]將IMS網絡中會話功能實體CPU的利用率作為檢測特征,如果利用率超過設定的閾值,表明遭到SIP泛洪攻擊。該方法雖然簡單,但存在以下兩個缺點:其一,攻擊者可以通過手工構造攻擊數據分組,在保持CPU利用率低于設定閾值的情況下發動攻擊,上述檢測方法將失效;其二,該方法無法區分瞬間擁塞與泛洪攻擊,可能導致誤報。參考文獻[4]提出了一種基于人工免疫系統算法的檢測框架,用于檢測IMS網絡中的SIP泛洪攻擊,并將其檢測性能與基于特征的檢測算法進行比較。該方法的缺點是不能在攻擊的早期檢測到攻擊,導致檢測時間過長。參考文獻[5]將互聯網泛洪攻擊檢測常用的3種算法(即門限值算法、累計和算法(cumulative sum,CUSUM)和Hellinger距離算法)用于IMS網絡中SIP泛洪攻擊的檢測,并對3種算法的性能進行比較,3種算法各有優勢,本文選擇第2種。參考文獻[6]針對IMS網絡中的移動多媒體通信面臨的與SIP、RTP、IP有關的DoS攻擊進行了分析,并在IMS已有的標準安全機制的基礎上提出一種安全體系架構機制,用來為客戶和服務提供商提供可靠的通信環境,但該框架仍然無法有效解決SIP攻擊問題。
針對上述分析,為高效準確地檢測出IMS網絡中面臨的SIP泛洪攻擊,本文提出一種新的SIP泛洪攻擊的檢測方法。該方法的核心是對invite消息流進行分析,將抽樣間隔內進入IMS網絡中的所有初始invite請求消息的數量與正常 (信令)消息流數量的差作為檢測特征,使用累積和算法檢測上述差值所包含的信息,以判決攻擊是否發生。實驗結果表明,本文提出的方法具有較高的檢測率。
SIP協議的信令連接方式也基于3次握手策略,與TCP的連接方式有相似之處,因此,在IMS網絡上對SIP消息發起泛洪攻擊也是主要的攻擊方式。SIP消息泛洪攻擊主要有invite消息泛洪和register消息泛洪,攻擊者向攻擊目標發送大量的SIP invite消息(源IP地址使用IP地址欺騙),被攻擊的服務器忙于處理大量的invite消息,從而耗盡服務器資源無法處理正常合法的消息。攻擊原理如圖1所示。register消息泛洪攻擊與invite消息泛洪攻擊相似。
圖2(a)的消息流程代表的是呼叫過程因出現錯誤而中斷的情況,可以看出,沒有出現 (invite,200 OK,ACK)消息序列,取代200 OK的是4XX的錯誤消息,例如目的地正忙 (486 destination busy)、目的地服務拒絕(403 destination service denied)、目的地在覆蓋范圍內(480 destination currently out of coverage)或者其他的錯誤。


圖2(b)的消息流程代表的是用戶會話終止或資源預留失敗,可以看出,主叫方可能在呼叫會話建立之前主動發送cancel消息終止會話,也可能是因為資源預留失敗發送cancel消息終止會話。如果是用戶主動終止,cancel消息可能出現在(2)~(12),如果是因為資源預留失敗,cancel消息可能出現在 (4)~(12)。同時,該流程中也沒有出現(invite,200 OK,ACK)消息序列,取代 200 OK 的是請求中止(487 request terminated)消息。
這兩種呼叫失敗的過程并不是惡意的invite泛洪攻擊的特征。相反,如果終端與IMS網絡出現上述交互流程,表明該終端發起的是正常的呼叫。invite泛洪通過攻擊端發送大量的invite消息,試圖在IMS網絡中建立大量的半開放連接以耗盡資源。攻擊端不會對IMS網絡的請求響應作相應的回復。因此,如果簡單地使用(invite,200 OK,ACK)消息序列作為正常呼叫的特征,將會把用戶合法的呼叫終端的會話終止或資源預留失敗情況當作泛洪攻擊。
總結上述流程,本文使用(invite,RES,ACK)作為正常呼叫的消息序列進行消息提取。其中,RES代表所有可能出現的IMS網絡側響應,如正常的200 OK響應,異常的486、403、406、487 響應等。
將 Tn時間段內(invite,RES,ACK)消息序列數目記為Sinvite,將該時間段內所有invite消息的數目記為Tinvite,攻擊出現時,Tinvite>Sinvite,并且該數值差將出現激增。
分析可知,Reinvite 消息也會形成(invite,RES,ACK)消息序列,也就是說REinvite消息對Sinvite和Tinvite產生的影響相同,因此當Tinvite與Sinvite數值相減之后,該影響即會消除。通過監控Tinvite和Sinvite的數量差判斷該網絡是否正在接收異常的invite連接,是本文invite泛洪攻擊檢測機制的主要思想。
累積和算法是在統計過程控制中常用的算法,它可以檢測統計過程均值的變化。CUSUM基于這樣一個事實:如果有變化發生,隨機序列的概率分布也會改變。通常CUSUM需要隨機序列的參數模型,以便可以用概率密度函數監控序列。不幸的是,互聯網是一個非常動態而復雜的實體,其業務模型的理論結構非常復雜,因而,一個主要的難題是如何模擬隨機序列{Xn}。CUSUM背后的主要思想是:累積明顯比正常運行情況下平均水平高的Xn的值。這一算法的優點是能以連續方式監控輸入隨機變量,從而達到實時檢測的目的。
設△n為第n個抽樣間隔內檢測到的SYN分組與FIN(RST active)分組的數量差。在實際情況中,隨機序列{△n,n=0,1,…}的均值有一定的依賴性,隨著網絡規模大小的變化而變化,并且抽樣時刻不同,結果也不一樣。因此為降低相關性,使檢測適用于大部分情況,就要對△n作歸一化定義。用定義抽樣間隔內FIN(RST active)數據分組數量的平均值,即抽樣時間間隔內成功連接并釋放的會話數定義為:

其中,0<λ<1。
為了保證短時間內高數據量的攻擊和長時間內低數據量的攻擊都能被正確地檢測出來,該算法在抽樣時間序列的技術上增加了一個累積和的模塊。Yn定義如下:

攻擊的檢測由Yn的值確定。如果Yn超過了預定義的閾值N,說明該系統現在正在遭受攻擊。
本仿真實驗環境部署在一臺CPU為Intel Pentium○R2、主頻為2 GHz、內存為2 GB的PC機上,采用Windows XP SP2操作系統,開發語言采用Java,運行的Java虛擬機為J2SE 1.4.2-05,在Eclipse 3.2.1上運行。該實驗的目的在于驗證本文提出的CUSUM檢測SIP消息泛洪攻擊的有效性。圖3給出了仿真實驗的實驗架構。

在圖3中,SIP消息泛洪攻擊生成器負責向消息總線發送正常的消息序列(invite,200 OK,ACK)和泛洪攻擊消息(大量的invite消息),分別用來模擬正常的呼叫會話和可能發生的泛洪攻擊;事件隊列管理器維護整體檢測模塊的消息事件總線,在緩存大量消息事件的同時,根據事件格式中的參數將事件發送至invite泛洪檢測模塊和CUSUM及輸出模塊,維持消息總線的正常運作;invite泛洪檢測模塊緩存事件隊列管理器發送的消息事件,并維護invite泛洪檢測的狀態機,用以判定正常和異常的invite信令建立流程,并將每一次的檢測結果按其消息結構的格式發送至事件總線;CUSUM及輸出模塊對檢測模塊發送的結果事件進行統計,在模塊內實現CUSUM的思想,維護時鐘對統計值進行抽樣計算,達到相應閾值則調用輸出函數,將威脅的細節報告輸出,并使用恢復函數將模塊內部的中間結果值恢復。
表1為本文提出方法中的實驗參數設置。

表1 仿真實驗參數設置
根據圖4設計的仿真系統,對本文方法進行了大量的實驗驗證,其中的一個實驗結果如圖4所示。
從檢測結果可以看出,在抽樣間隔150 s以前,由于沒有發生攻擊,正常的呼叫不影響Yn值的變化,所以Yn一直為0,當攻擊發生時,由于攻擊生成器發送大量的invite消息并沒有后續響應,Yn值將發生激變,Yn的值遠遠大于1(當前的閾值設定為1)。因此從圖4中可以看出,攻擊發生后,在不超過60 s的時間內,本文提出的方法能夠有效地檢測到泛洪攻擊的存在。
另外,其他的大量實驗結果表明,本文提出的方法的平均檢測率為94%,平均誤報率不超過5%,平均檢測時間為67 s。因此,可以看出,本文提出的方法對于IMS網絡中的SIP消息泛洪攻擊的檢測是有效的。
根據取得的實驗結果,如圖4所示,可以看出,CUSUM能夠有效地檢測出SIP消息泛洪攻擊的發生。當正常呼叫進行時,Yn的值不受影響;當攻擊發生時,Yn能在較短的時間內發生激變,能在較短時間內準確地發現攻擊,從而為防御系統的啟動贏得了寶貴的時間,有利于最大化地減少SIP消息泛洪攻擊對系統造成的破壞。
另外,由于篇幅限制,本實驗旨在驗證CUSUM的正確性,對正常情況的消息序列只模擬了(invite,200 OK,ACK)消息序列,沒有對IMS網絡中出現的各種消息形式進行驗證,而這將在本文后續的研究中做進一步的實驗分析。

參考文獻
1 孫悅.IMS網絡中SIP泛洪檢測方法的研究與實現.北京郵電大學碩士學位論文,2008
2 王尚廣,孫其博,楊放春.IMS網絡中的SIP泛洪攻擊檢測.軟件學報,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