摘 要 VoIP的安全問(wèn)題主要集中在SIP 和RTP協(xié)議上,由于無(wú)線網(wǎng)絡(luò)(802.11b)的加入,以及對(duì)無(wú)線網(wǎng)絡(luò)安全管理的缺乏,安全問(wèn)題更加突出。如果對(duì)VoWiFi系統(tǒng)中不增強(qiáng)對(duì)安全的鑒權(quán)和對(duì)數(shù)據(jù)的保密,將會(huì)對(duì)系統(tǒng)造成很大的威脅,本文分析了幾種安全上的潛在的威脅和存在的攻擊的方式:竊聽(tīng)(Eavesdropping)和嗅探(Sniffing)VoIP呼叫,中間人(Man in the Middle)攻擊,拒絕服務(wù)(Denial of Service)攻擊,呼叫中斷(Call Interruption)和建立錯(cuò)誤呼叫等,這些普遍存在于無(wú)線局域網(wǎng)當(dāng)中的威脅。
關(guān)鍵詞 VoIP VoWiFi SIP
1 簡(jiǎn)介
VoIP技術(shù)使得基于類(lèi)似Internet這樣的數(shù)據(jù)網(wǎng)絡(luò)實(shí)現(xiàn)電話業(yè)務(wù)成為可能。與傳統(tǒng)電話業(yè)務(wù)相比,這種實(shí)現(xiàn)模式能夠提供更多的集成功能、更高的通信帶寬、更穩(wěn)定的通信質(zhì)量以及更靈活的管理能力,并能夠顯著降低成本。
2 竊聽(tīng)和嗅探
竊聽(tīng)一個(gè)電話呼叫,并隨之轉(zhuǎn)發(fā)通信中的相關(guān)部分,這就是最明顯的一種對(duì)VoIP的一種攻擊,它可以通過(guò)很多技術(shù)漏洞對(duì)有線網(wǎng)絡(luò)發(fā)起中間人攻擊。例如利用ARP病毒強(qiáng)行攻擊SIP服務(wù)器,導(dǎo)致具有威脅性的第三方介入而使通話失敗。而在無(wú)線通信環(huán)境中,在沒(méi)有安全機(jī)制的保護(hù)下,VoIP更加容易受到攻擊。任何人只要有一臺(tái)電腦,合適的無(wú)線適配器,再加上一個(gè)竊聽(tīng)軟件,很容易就能竊聽(tīng)到WiFi網(wǎng)絡(luò)中的VoIP呼叫。
Etherea竊聽(tīng)軟件可以在竊聽(tīng)到的數(shù)據(jù)包中識(shí)別出其中的VoIP呼叫,利用SIP協(xié)議,甚至還可以從竊聽(tīng)到的RTP數(shù)據(jù)包中恢復(fù)出語(yǔ)音流。Etherea竊聽(tīng)軟件還可以用圖表的方式查看通信雙方的通話記錄(見(jiàn)圖1)。
更有甚者,Etherea竊聽(tīng)軟件還可以從捕獲的包中識(shí)別出不同的RTP流,而后,從不同的包抽取出語(yǔ)音的內(nèi)容,重新恢復(fù)通話雙方的談話內(nèi)容并保存下來(lái)。
3 中間人攻擊(見(jiàn)圖2)
在有線交換網(wǎng)絡(luò)中,中間人攻擊的對(duì)象大多是對(duì)網(wǎng)絡(luò)業(yè)務(wù)的嗅聽(tīng),根據(jù)802.11 LAN中分享媒體網(wǎng)絡(luò)的定義,一旦你獲得了密碼,就可以竊聽(tīng)所有在LAN中的數(shù)據(jù)包。在兩個(gè)無(wú)線主機(jī)之間一旦出現(xiàn)了這樣一個(gè)“中間人”,很容易就可以對(duì)業(yè)務(wù)流中發(fā)起攻擊。中間人對(duì)WLAN的攻擊集中在OSI模型中的第一層和第二層,對(duì)第一層的攻擊往往會(huì)干擾已經(jīng)存在的無(wú)線接入點(diǎn),這些干擾通常用特殊的干擾軟件來(lái)進(jìn)行,或者直接用垃圾業(yè)務(wù)來(lái)堵塞接入點(diǎn)信道。這些非法接入點(diǎn)的參數(shù)正是從合法接入點(diǎn)的參數(shù)那里獲取的。
第二層的攻擊主要集中在使用大量的偽造的結(jié)束連接或者結(jié)束鑒權(quán)幀進(jìn)行攻擊,使得正在與合法接入點(diǎn)聯(lián)接的目標(biāo)主機(jī)被刪除。這比簡(jiǎn)單的信道干擾有效的多,有經(jīng)驗(yàn)的攻擊者往往把第一層第二層的攻擊結(jié)合起來(lái),以獲得更好的效果。
攻擊者的目標(biāo)往往集中于介入到已存在的無(wú)線用戶和合法的接入點(diǎn)之間的傳輸通道中去。如果要攻擊某個(gè)目標(biāo),必須在相同的計(jì)算機(jī)上安裝無(wú)線適配器,我們能模擬下這個(gè)過(guò)程,我們使用適配器IPW2200b/g,和能夠與之相配的無(wú)線適配器DWL-G650,它能使IPW2200b/g成為一個(gè)接入點(diǎn),利用這個(gè)非法接入點(diǎn)來(lái)探測(cè)無(wú)線接入點(diǎn)的具體參數(shù)。驅(qū)動(dòng)程序Madwifi將會(huì)允許Dwl-G650的無(wú)線網(wǎng)卡工作在控制模式下,能建立實(shí)際的無(wú)線接口,并且還能使DWL-G650還能同時(shí)工作在不同的模式下。
當(dāng)兩個(gè)接入點(diǎn)的信號(hào)功率能夠估計(jì)時(shí),就可以發(fā)動(dòng)攻擊了。想要控制在合法接入點(diǎn)相應(yīng)信道中傳送的信號(hào)是非常困難的,非法節(jié)點(diǎn)通常侵入到不同的信道來(lái)增加攻擊的可能性?梢岳们懊嬲f(shuō)到的方法,對(duì)OSI模型中的第一層和第二層進(jìn)行攻擊,它能大大削弱甚至刪除合法接入點(diǎn)的信號(hào)。
具體攻擊的流程是怎樣執(zhí)行的,如圖3所示。
DWL-G650的網(wǎng)卡和Madwifi驅(qū)動(dòng)程序能建立兩個(gè)網(wǎng)絡(luò)邏輯接口,其中一個(gè)工作在監(jiān)控模式(ath0),另一個(gè)工作在操作模式(ath1),他們和合法接入點(diǎn)一起工作在channel no.1,IPW2200b/g 的適配器(eth2)工作在channel no. 9,并經(jīng)由無(wú)線網(wǎng)卡配置(ESSID)成一個(gè)“默認(rèn)”的合法接入點(diǎn)。
除了DWL-G650,其他設(shè)備想要工作在不同的信道就必須駐留成為無(wú)線設(shè)備,這是因?yàn)橛蒑adwifi創(chuàng)造的邏輯接口不能工作在不同信道,除非它是在監(jiān)控模式下。
從上面命令序列中,命令“brctl”建立了一個(gè)以太網(wǎng)網(wǎng)橋,能夠與其他的以太網(wǎng)互聯(lián)。在命令的最后一行,描述了對(duì)“ath0”界面的配置和對(duì)aireplay軟件的使用,aireplay軟件通過(guò)“ath0”界面把偽造的結(jié)束幀框架強(qiáng)行插入到無(wú)線網(wǎng)絡(luò)中去,這會(huì)導(dǎo)致用戶無(wú)法連接到合法的接入點(diǎn),并且降低channel no. 1的信號(hào)質(zhì)量。
有很多原因?qū)е禄九c非法接入點(diǎn)連接,并聯(lián)接到其他合法接入點(diǎn)中去。比如接入點(diǎn)都是工作在同一個(gè)信道內(nèi)的,最主要的原因是,大部分接入點(diǎn)的信號(hào)功率都是可以相互比較而獲得的,我們很難有足夠的設(shè)備來(lái)監(jiān)控合法接入點(diǎn)的信號(hào)。由于在ESSID中有存儲(chǔ)著很多的交換過(guò)的幀,只要把轉(zhuǎn)發(fā)信標(biāo)隱藏于ESSID中,就會(huì)導(dǎo)致網(wǎng)絡(luò)的不可用。一旦合法接入點(diǎn)中的信標(biāo)轉(zhuǎn)發(fā)幀被監(jiān)測(cè)到,只需要少量的偽造結(jié)束認(rèn)證幀,剛才提到的那些攻擊就會(huì)成倍的增加,即使合法接入點(diǎn)的信號(hào)功率要比非法接入點(diǎn)的高時(shí),也不例外。
這時(shí)正常的無(wú)線用戶無(wú)法通過(guò)channel no. 1連接到網(wǎng)絡(luò)時(shí),就會(huì)搜索其他的信道。如果運(yùn)氣好的話,還能搜索到channel no. 9中,預(yù)先設(shè)置好參數(shù)的接入點(diǎn)還能使用。
在非法接入點(diǎn)連接到基站期間,合法接入點(diǎn)也在發(fā)送信標(biāo)幀,偽造的結(jié)束認(rèn)證幀必須插入到活動(dòng)的通信信道中去才能達(dá)到攻擊的效果。在無(wú)線基站之間,接入點(diǎn)之間的網(wǎng)橋,使得攻擊者很容易得檢測(cè)并發(fā)送任何形式得數(shù)據(jù)包到網(wǎng)絡(luò)中去,竊聽(tīng)者已經(jīng)完全控制了基站間得VoIP業(yè)務(wù)流,用Linux下得Netfilter/iptables就可以輕松的過(guò)濾交換的數(shù)據(jù)包。
4 DOS(拒絕服務(wù))攻擊
拒絕服務(wù)攻擊同樣威脅著VoIP,一個(gè)SIP無(wú)用信息就可能導(dǎo)致一項(xiàng)SIP業(yè)務(wù)(或者是一個(gè)用戶,或者是一個(gè)SIP服務(wù)器)的失效,這些都是顯而易見(jiàn)的缺陷,如果服務(wù)器沒(méi)有有效的機(jī)制來(lái)控制(有時(shí)只是簡(jiǎn)單的忽略)這些錯(cuò)誤的信息,很容易成為被攻擊的目標(biāo)。
PROTOS Suite Test軟件就能監(jiān)測(cè)用戶和SIP服務(wù)器的操作情況,檢查每一個(gè)PBX (Private Branch Exchange)執(zhí)行的命令。PROTOS利用SIP的底部消息,主要是INVITE命令,找出服務(wù)器及相關(guān)的SIP用戶中的缺陷。這個(gè)監(jiān)測(cè)軟件能轉(zhuǎn)發(fā)由Ad hoc生成的SIP消息,并在其中附加上一些錯(cuò)誤的語(yǔ)法,錯(cuò)誤的語(yǔ)法是系統(tǒng)中的異常因素,往往會(huì)導(dǎo)致無(wú)法接入的情況。
在捕捉了SIP呼叫中的SIPsetup消息,并找到SIP用戶之后,這個(gè)軟件就能很容易的尋找系統(tǒng)相應(yīng)的缺陷并發(fā)起攻擊。PROTOS主要針對(duì)的缺陷有以下幾個(gè):
Express Talk v.1.03: INVITE消息中包含Content-Lengh長(zhǎng)度呈負(fù)值導(dǎo)致對(duì)系統(tǒng)的沖擊
CallConductor v. 1.03: 與Express Talk相同
X-Lite 1103:INVITE消息中包含Content-Lengh長(zhǎng)度等于或超過(guò)1073741823 byte導(dǎo)致明顯的大量占用系統(tǒng)資源
如果掃到了描軟件電話和PBX的缺陷掃描,就能對(duì)基站和無(wú)線基站進(jìn)行攻擊了。使用相應(yīng)的Wifitap軟件后,你可以在不用和網(wǎng)絡(luò)直接聯(lián)接的情況下發(fā)起攻擊,它能讓你直接對(duì)與基站關(guān)聯(lián)的接入點(diǎn)寫(xiě)入命令,
“不要與基站相連接”
“不要與其他節(jié)點(diǎn)交互”
這時(shí),WiFi網(wǎng)絡(luò)中的通信業(yè)務(wù)已經(jīng)完全阻塞了。
5 呼叫中斷攻擊(見(jiàn)圖4)
在呼叫過(guò)程中,發(fā)送前向的BYE消息,可立刻中斷呼叫。如果攻擊者要利用這個(gè)缺點(diǎn)攻擊,他首先必須想辦法獲得Call-Dialog中的Call-ID。Call-ID的作用是一組意義明確的標(biāo)識(shí)符,它存儲(chǔ)在呼叫雙方用戶代理?yè)芴?hào)時(shí),所發(fā)送的請(qǐng)求和響應(yīng)的消息中。因此攻擊者會(huì)在會(huì)在呼叫建立時(shí)截取它,并用它來(lái)發(fā)起攻擊。
還可以使用CANCEL的方法來(lái)中斷呼叫,利用Python script來(lái)實(shí)施攻擊,在控制模式下的無(wú)線接口建立一個(gè)端口。這個(gè)軟件可以捕獲SIP的呼叫建立,特別是其中的INVITE消息。當(dāng)攻擊者截獲了INVITE消息,自己建立了一個(gè)Ad hoc SIP CANCEL消息,其中包含的Call-ID與INVITE請(qǐng)求消息中的標(biāo)簽是完全一樣的。
如圖3所示,偽造的CANCEL消息被插入到了無(wú)線信道里去。插入的數(shù)據(jù)包中包含的目的地址和源地址,無(wú)論從IP層或MAC層來(lái)看,都是和INVITE請(qǐng)求消息一樣的。
6 建立錯(cuò)誤呼叫(見(jiàn)圖5)
攻擊者能創(chuàng)建一條SIP INVITE 消息,分別發(fā)給呼叫雙方的用戶代理,在他們之間建立一次錯(cuò)誤的呼叫,這時(shí)被攻擊者根本無(wú)法察覺(jué)到有任何的異常。INVITE消息中包含了相同的Call-ID ,Cseq以及帶寬參數(shù),但是兩條消息中的源地址和目的地址是被抹去了的。由于SDP協(xié)議的要求,INVITE消息中必須包含相同的關(guān)于語(yǔ)音編碼的要求信息,一個(gè)簡(jiǎn)單的對(duì)RTP業(yè)務(wù)流的分析就能獲得相關(guān)的UDP端口值等信息。
在發(fā)送了兩份INVITE消息之后,被攻擊的設(shè)備開(kāi)始振鈴和發(fā)送SIP 180 Ringing消息給發(fā)送出INVITE request請(qǐng)求的對(duì)端,由于這次是一次非法的呼叫,設(shè)備不能識(shí)別,所以選擇了丟棄。當(dāng)用戶選擇了應(yīng)答呼叫,軟件電話發(fā)送SIP 200 OK的消息給它認(rèn)為是發(fā)送INVITE request的那一方,同樣的,這個(gè)消息也被丟棄。
當(dāng)攻擊者成功的捕獲了關(guān)于錯(cuò)誤呼叫(建立在有正確Call-ID的基礎(chǔ)上)的200 OK的消息,就會(huì)對(duì)同樣的源地址和目的地址發(fā)送自己的INVITE請(qǐng)求。大部分的SIP軟件電話能至少同時(shí)處理三個(gè)呼叫,因此攻擊者也能在同一個(gè)WLAN同時(shí)對(duì)三個(gè)呼叫發(fā)起攻擊,至少能使一個(gè)呼叫失敗。這是因?yàn),RTP的數(shù)據(jù)包將會(huì)發(fā)送到目的地,但是不會(huì)送到發(fā)起呼叫的一方,并且這個(gè)消息會(huì)被丟棄。這種攻擊會(huì)造成在網(wǎng)絡(luò)中同時(shí)存在多個(gè)SIP呼叫。即使持續(xù)時(shí)間很短,這些呼叫仍然會(huì)造成網(wǎng)絡(luò)的擁塞,如果情況一直持續(xù),所有的在配置好路由表中的終端都會(huì)無(wú)法呼叫。
7 結(jié)論
為了解決這些安全隱患,必須用安全機(jī)制來(lái)保證通話的私密性和對(duì)數(shù)據(jù)的鑒權(quán),我們選擇的安全機(jī)制WPA標(biāo)準(zhǔn)是基于802.1 x/EAP協(xié)議來(lái)鑒權(quán)。WPA系統(tǒng)的密碼標(biāo)準(zhǔn)能夠阻止VoIP呼叫被竊聽(tīng),呼叫建立信息被截取,從而提高系統(tǒng)的安全性。在數(shù)據(jù)鑒權(quán)方面,把鑒權(quán)服務(wù)器(Radius Server)加到網(wǎng)絡(luò)的架構(gòu)中去。
盡管整個(gè)網(wǎng)絡(luò)有如此多的安全性問(wèn)題,但VoIP技術(shù)把語(yǔ)音和數(shù)據(jù)結(jié)合起來(lái)的優(yōu)勢(shì)讓人無(wú)法拒絕,并且我們說(shuō)明的發(fā)起攻擊的方式并不僅僅只針對(duì)與無(wú)線網(wǎng)絡(luò)連接的SIP協(xié)議,而是指向了整個(gè)網(wǎng)絡(luò),包括語(yǔ)音的通信,數(shù)據(jù)的交互,系統(tǒng)帶寬的飽和。大部分的攻擊的目標(biāo)都是指向系統(tǒng)固有的缺陷(例如,如果SIP服務(wù)器不能準(zhǔn)確的保證Call-ID的正確性,或者攻擊者有機(jī)會(huì)截取Call-ID)。
由于VoIP在價(jià)格上的優(yōu)勢(shì),在很多企業(yè)內(nèi)部,使用軟件電話很容易就可以成為VoIP的用戶,這就把VoIP網(wǎng)絡(luò)(企業(yè)內(nèi)部網(wǎng)絡(luò))完全的暴露在攻擊者面前。隨著VoIP在無(wú)線網(wǎng)絡(luò)的拓展,通話的安全性和私密性問(wèn)題更加突出。使用有效的安全機(jī)制(如內(nèi)含EAP的802.11i/AES)802.11i/AES作為安全性的保障十分重要。
由于本網(wǎng)頁(yè)不支持圖片與公式效果,如有需要請(qǐng)參閱雜志。
作者:衡星 李儉兵 來(lái)源:中國(guó)新通信(原《中國(guó)數(shù)據(jù)通信》6月)