WLAN中VoIP的安全隱患
在捕捉了SIP呼叫中的SIPsetup消息,并找到SIP用戶之后,這個軟件就能很容易的尋找系統相應的缺陷并發(fā)起攻擊。PROTOS主要針對的缺陷有以下幾個:
ExpressTalkv.1.03:INVITE消息中包含Content-Lengh長度呈負值導致對系統的沖擊
CallConductorv.1.03:與Express Talk相同
X-Lite1103:INVITE消息中包含Content-Lengh長度等于或超過1073741823byte導致明顯的大量占用系統資源
如果掃到了描軟件電話和PBX的缺陷掃描,就能對基站和無線基站進行攻擊了。使用相應的Wifitap軟件后,你可以在不用和網絡直接聯接的情況下發(fā)起攻擊,它能讓你直接對與基站關聯的接入點寫入命令,“不要與基站相連接”、“不要與其他節(jié)點交互”。這時,WiFi網絡中的通信業(yè)務已經完全阻塞了。
5呼叫中斷攻擊
在呼叫過程中,發(fā)送前向的BYE消息,可立刻中斷呼叫。如果攻擊者要利用這個缺點攻擊,他首先必須想辦法獲得Call-Dialog中的Call-ID。Call-ID的作用是一組意義明確的標識符,它存儲在呼叫雙方用戶代理撥號時,所發(fā)送的請求和響應的消息中。因此攻擊者會在會在呼叫建立時截取它,并用它來發(fā)起攻擊。
還可以使用CANCEL的方法來中斷呼叫,利用Pythonscript來實施攻擊,在控制模式下的無線接口建立一個端口。這個軟件可以捕獲SIP的呼叫建立,特別是其中的INVITE消息。當攻擊者截獲了INVITE消息,自己建立了一個AdhocSIPCANCEL消息,其中包含的Call-ID與INVITE請求消息中的標簽是完全一樣的。
偽造的CANCEL消息被插入到了無線信道里去。插入的數據包中包含的目的地址和源地址,無論從IP層或MAC層來看,都是和INVITE請求消息一樣的。
6建立錯誤呼叫
攻擊者能創(chuàng)建一條SIPINVITE消息,分別發(fā)給呼叫雙方的用戶代理,在他們之間建立一次錯誤的呼叫,這時被攻擊者根本無法察覺到有任何的異常。INVITE消息中包含了相同的Call-ID,Cseq以及帶寬參數,但是兩條消息中的源地址和目的地址是被抹去了的。由于SDP協議的要求,INVITE消息中必須包含相同的關于語音編碼的要求信息,一個簡單的對RTP業(yè)務流的分析就能獲得相關的UDP端口值等信息。
在發(fā)送了兩份INVITE消息之后,被攻擊的設備開始振鈴和發(fā)送SIP180Ringing消息給發(fā)送出INVITErequest請求的對端,由于這次是一次非法的呼叫,設備不能識別,所以選擇了丟棄。當用戶選擇了應答呼叫,軟件電話發(fā)送SIP 200 OK的消息給它認為是發(fā)送INVITE request的那一方,同樣的,這個消息也被丟棄。
當攻擊者成功的捕獲了關于錯誤呼叫(建立在有正確Call-ID的基礎上)的200OK的消息,就會對同樣的源地址和目的地址發(fā)送自己的INVITE請求。大部分的SIP軟件電話能至少同時處理三個呼叫,因此攻擊者也能在同一個WLAN同時對三個呼叫發(fā)起攻擊,至少能使一個呼叫失敗。這是因為,RTP的數據包將會發(fā)送到目的地,但是不會送到發(fā)起呼叫的一方,并且這個消息會被丟棄。這種攻擊會造成在網絡中同時存在多個SIP呼叫。即使持續(xù)時間很短,這些呼叫仍然會造成網絡的擁塞,如果情況一直持續(xù),所有的在配置好路由表中的終端都會無法呼叫。
7結論
為了解決這些安全隱患,必須用安全機制來保證通話的私密性和對數據的鑒權,我們選擇的安全機制WPA標準是基于802.1x/EAP協議來鑒權。WPA系統的密碼標準能夠阻止VoIP呼叫被竊聽,呼叫建立信息被截取,從而提高系統的安全性。在數據鑒權方面,把鑒權服務器(RadiusServer)加到網絡的架構中去。
盡管整個網絡有如此多的安全性問題,但VoIP技術把語音和數據結合起來的優(yōu)勢讓人無法拒絕,并且我們說明的發(fā)起攻擊的方式并不僅僅只針對與無線網絡連接的SIP協議,而是指向了整個網絡,包括語音的通信,數據的交互,系統帶寬的飽和。大部分的攻擊的目標都是指向系統固有的缺陷(例如,如果SIP服務器不能準確的保證Call-ID的正確性,或者攻擊者有機會截取Call-ID)。
由于VoIP在價格上的優(yōu)勢,在很多企業(yè)內部,使用軟件電話很容易就可以成為VoIP的用戶,這就把VoIP網絡(企業(yè)內部網絡)完全的暴露在攻擊者面前。隨著VoIP在無線網絡的拓展,通話的安全性和私密性問題更加突出。使用有效的安全機制(如內含EAP的802.11i/AES)802.11i/AES作為安全性的保障十分重要。
評論