<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設計應用 > 無線網絡中VoIP的安全隱患及應對技巧

          無線網絡中VoIP的安全隱患及應對技巧

          作者: 時間:2017-06-12 來源:網絡 收藏
          的安全問題主要集中在SIP和RTP協(xié)議上,由于的加入,以及對安全管理的缺乏,安全問題更加突出。如果對VoWiFi系統(tǒng)中不增強對安全的鑒權和對數(shù)據的保密,將會對系統(tǒng)造成很大的威脅,本文分析了幾種安全上的潛在的威脅和存在的攻擊的方式:竊聽(Eavesdropping)和嗅探(Sniffing)呼叫,中間人(Man in the Middle)攻擊,拒絕服務(Denial of Service)攻擊,呼叫中斷(Call Interruption)和建立錯誤呼叫等,這些普遍存在于無線局域網當中的威脅。

          1 簡介

          技術使得基于類似Internet這樣的數(shù)據網絡實現(xiàn)電話業(yè)務成為可能。與傳統(tǒng)電話業(yè)務相比,這種實現(xiàn)模式能夠提供更多的集成功能、更高的通信帶寬、更穩(wěn)定的通信質量以及更靈活的管理能力,并能夠顯著降低成本。

          2 竊聽和嗅探

          竊聽一個電話呼叫,并隨之轉發(fā)通信中的相關部分,這就是最明顯的一種對VoIP的一種攻擊,它可以通過很多技術漏洞對有線網絡發(fā)起中間人攻擊。例如利用ARP病毒強行攻擊SIP服務器,導致具有威脅性的第三方介入而使通話失敗。而在無線通信環(huán)境中,在沒有安全機制的保護下,VoIP更加容易受到攻擊。任何人只要有一臺電腦,合適的無線適配器,再加上一個竊聽軟件,很容易就能竊聽到WiFi網絡中的VoIP呼叫。

          Etherea竊聽軟件可以在竊聽到的數(shù)據包中識別出其中的VoIP呼叫,利用SIP協(xié)議,甚至還可以從竊聽到的RTP數(shù)據包中恢復出語音流。Etherea竊聽軟件還可以用圖表的方式查看通信雙方的通話記錄。

          更有甚者,Etherea竊聽軟件還可以從捕獲的包中識別出不同的RTP流,而后,從不同的包抽取出語音的內容,重新恢復通話雙方的談話內容并保存下來。

          3 中間人攻擊

          在有線交換網絡中,中間人攻擊的對象大多是對網絡業(yè)務的嗅聽,根據802.11 LAN中分享媒體網絡的定義,一旦你獲得了密碼,就可以竊聽所有在LAN中的數(shù)據包。在兩個無線主機之間一旦出現(xiàn)了這樣一個“中間人”,很容易就可以對業(yè)務流中發(fā)起攻擊。中間人對WLAN的攻擊集中在OSI模型中的第一層和第二層,對第一層的攻擊往往會干擾已經存在的無線接入點,這些干擾通常用特殊的干擾軟件來進行,或者直接用垃圾業(yè)務來堵塞接入點信道。這些非法接入點的參數(shù)正是從合法接入點的參數(shù)那里獲取的。

          第二層的攻擊主要集中在使用大量的偽造的結束連接或者結束鑒權幀進行攻擊,使得正在與合法接入點聯(lián)接的目標主機被刪除。這比簡單的信道干擾有效的多,有經驗的攻擊者往往把第一層第二層的攻擊結合起來,以獲得更好的效果。

          攻擊者的目標往往集中于介入到已存在的無線用戶和合法的接入點之間的傳輸通道中去。如果要攻擊某個目標,必須在相同的計算機上安裝無線適配器,我們能模擬下這個過程,我們使用適配器IPW2200b/g,和能夠與之相配的無線適配器DWL-G650,它能使IPW2200b/g成為一個接入點,利用這個非法接入點來探測無線接入點的具體參數(shù)。驅動程序Madwifi將會允許Dwl-G650的無線網卡工作在控制模式下,能建立實際的無線接口,并且還能使DWL-G650還能同時工作在不同的模式下。

          當兩個接入點的信號功率能夠估計時,就可以發(fā)動攻擊了。想要控制在合法接入點相應信道中傳送的信號是非常困難的,非法節(jié)點通常侵入到不同的信道來增加攻擊的可能性??梢岳们懊嬲f到的方法,對OSI模型中的第一層和第二層進行攻擊,它能大大削弱甚至刪除合法接入點的信號。

          DWL-G650的網卡和Madwifi驅動程序能建立兩個網絡邏輯接口,其中一個工作在監(jiān)控模式(ath0),另一個工作在操作模式(ath1),他們和合法接入點一起工作在channel no.1,IPW2200b/g 的適配器(eth2)工作在channel no. 9,并經由無線網卡配置(ESSID)成一個“默認”的合法接入點。

          除了DWL-G650,其他設備想要工作在不同的信道就必須駐留成為無線設備,這是因為由Madwifi創(chuàng)造的邏輯接口不能工作在不同信道,除非它是在監(jiān)控模式下。

          從上面命令序列中,命令“brctl”建立了一個以太網網橋,能夠與其他的以太網互聯(lián)。在命令的最后一行,描述了對“ath0”界面的配置和對aireplay軟件的使用,aireplay軟件通過“ath0”界面把偽造的結束幀框架強行插入到中去,這會導致用戶無法連接到合法的接入點,并且降低channel no. 1的信號質量。

          有很多原因導致基站與非法接入點連接,并聯(lián)接到其他合法接入點中去。比如接入點都是工作在同一個信道內的,最主要的原因是,大部分接入點的信號功率都是可以相互比較而獲得的,我們很難有足夠的設備來監(jiān)控合法接入點的信號。由于在ESSID中有存儲著很多的交換過的幀,只要把轉發(fā)信標隱藏于ESSID中,就會導致網絡的不可用。一旦合法接入點中的信標轉發(fā)幀被監(jiān)測到,只需要少量的偽造結束認證幀,剛才提到的那些攻擊就會成倍的增加,即使合法接入點的信號功率要比非法接入點的高時,也不例外。

          這時正常的無線用戶無法通過channel no. 1連接到網絡時,就會搜索其他的信道。如果運氣好的話,還能搜索到channel no. 9中,預先設置好參數(shù)的接入點還能使用。

          在非法接入點連接到基站期間,合法接入點也在發(fā)送信標幀,偽造的結束認證幀必須插入到活動的通信信道中去才能達到攻擊的效果。在無線基站之間,接入點之間的網橋,使得攻擊者很容易得檢測并發(fā)送任何形式得數(shù)據包到網絡中去,竊聽者已經完全控制了基站間得VoIP業(yè)務流,用Linux下得Netfilter/iptables就可以輕松的過濾交換的數(shù)據包。

          4 DOS(拒絕服務)攻擊

          拒絕服務攻擊同樣威脅著VoIP,一個SIP無用信息就可能導致一項SIP業(yè)務(或者是一個用戶,或者是一個SIP服務器)的失效,這些都是顯而易見的缺陷,如果服務器沒有有效的機制來控制(有時只是簡單的忽略)這些錯誤的信息,很容易成為被攻擊的目標。

          PROTOS Suite Test軟件就能監(jiān)測用戶和SIP服務器的操作情況,檢查每一個PBX (Private Branch Exchange)執(zhí)行的命令。PROTOS利用SIP的底部消息,主要是INVITE命令,找出服務器及相關的SIP用戶中的缺陷。這個監(jiān)測軟件能轉發(fā)由Ad hoc生成的SIP消息,并在其中附加上一些錯誤的語法,錯誤的語法是系統(tǒng)中的異常因素,往往會導致無法接入的情況。

          在捕捉了SIP呼叫中的SIPsetup消息,并找到SIP用戶之后,這個軟件就能很容易的尋找系統(tǒng)相應的缺陷并發(fā)起攻擊。PROTOS主要針對的缺陷有以下幾個:

          Express Talk v.1.03: INVITE消息中包含Content-Lengh長度呈負值導致對系統(tǒng)的沖擊CallConducto

          r v. 1.03: 與Express Talk相同

          X-Lite 1103:INVITE消息中包含Content-Lengh長度等于或超過1073741823 byte導致明顯的大量占用系統(tǒng)資源

          如果掃到了描軟件電話和PBX的缺陷掃描,就能對基站和無線基站進行攻擊了。使用相應的Wifitap軟件后,你可以在不用和網絡直接聯(lián)接的情況下發(fā)起攻擊,它能讓你直接對與基站關聯(lián)的接入點寫入命令,“不要與基站相連接”、“不要與其他節(jié)點交互”。這時,WiFi網絡中的通信業(yè)務已經完全阻塞了。

          5 呼叫中斷攻擊

          在呼叫過程中,發(fā)送前向的BYE消息,可立刻中斷呼叫。如果攻擊者要利用這個缺點攻擊,他首先必須想辦法獲得Call-Dialog中的Call-ID。Call-ID的作用是一組意義明確的標識符,它存儲在呼叫雙方用戶代理撥號時,所發(fā)送的請求和響應的消息中。因此攻擊者會在會在呼叫建立時截取它,并用它來發(fā)起攻擊。

          還可以使用CANCEL的方法來中斷呼叫,利用Pythonscript來實施攻擊,在控制模式下的無線接口建立一個端口。這個軟件可以捕獲SIP的呼叫建立,特別是其中的INVITE消息。當攻擊者截獲了INVITE消息,自己建立了一個Ad hoc SIP CANCEL消息,其中包含的Call-ID與INVITE請求消息中的標簽是完全一樣的。

          偽造的CANCEL消息被插入到了無線信道里去。插入的數(shù)據包中包含的目的地址和源地址,無論從IP層或MAC層來看,都是和INVITE請求消息一樣的。

          6 建立錯誤呼叫

          攻擊者能創(chuàng)建一條SIP INVITE 消息,分別發(fā)給呼叫雙方的用戶代理,在他們之間建立一次錯誤的呼叫,這時被攻擊者根本無法察覺到有任何的異常。INVITE消息中包含了相同的Call-ID ,Cseq以及帶寬參數(shù),但是兩條消息中的源地址和目的地址是被抹去了的。由于SDP協(xié)議的要求,INVITE消息中必須包含相同的關于語音編碼的要求信息,一個簡單的對RTP業(yè)務流的分析就能獲得相關的UDP端口值等信息。

          在發(fā)送了兩份INVITE消息之后,被攻擊的設備開始振鈴和發(fā)送SIP 180 Ringing消息給發(fā)送出INVITE request請求的對端,由于這次是一次非法的呼叫,設備不能識別,所以選擇了丟棄。當用戶選擇了應答呼叫,軟件電話發(fā)送SIP 200 OK的消息給它認為是發(fā)送INVITE request的那一方,同樣的,這個消息也被丟棄。

          當攻擊者成功的捕獲了關于錯誤呼叫(建立在有正確Call-ID的基礎上)的200 OK的消息,就會對同樣的源地址和目的地址發(fā)送自己的INVITE請求。大部分的SIP軟件電話能至少同時處理三個呼叫,因此攻擊者也能在同一個WLAN同時對三個呼叫發(fā)起攻擊,至少能使一個呼叫失敗。這是因為,RTP的數(shù)據包將會發(fā)送到目的地,但是不會送到發(fā)起呼叫的一方,并且這個消息會被丟棄。這種攻擊會造成在網絡中同時存在多個SIP呼叫。即使持續(xù)時間很短,這些呼叫仍然會造成網絡的擁塞,如果情況一直持續(xù),所有的在配置好路由表中的終端都會無法呼叫。

          7 結論

          為了解決這些,必須用安全機制來保證通話的私密性和對數(shù)據的鑒權,我們選擇的安全機制WPA標準是基于802.1 x/EAP協(xié)議來鑒權。WPA系統(tǒng)的密碼標準能夠阻止VoIP呼叫被竊聽,呼叫建立信息被截取,從而提高系統(tǒng)的安全性。在數(shù)據鑒權方面,把鑒權服務器(Radius Server)加到網絡的架構中去。

          盡管整個網絡有如此多的安全性問題,但VoIP技術把語音和數(shù)據結合起來的優(yōu)勢讓人無法拒絕,并且我們說明的發(fā)起攻擊的方式并不僅僅只針對與無線網絡連接的SIP協(xié)議,而是指向了整個網絡,包括語音的通信,數(shù)據的交互,系統(tǒng)帶寬的飽和。大部分的攻擊的目標都是指向系統(tǒng)固有的缺陷(例如,如果SIP服務器不能準確的保證Call-ID的正確性,或者攻擊者有機會截取Call-ID)。

          由于VoIP在價格上的優(yōu)勢,在很多企業(yè)內部,使用軟件電話很容易就可以成為VoIP的用戶,這就把VoIP網絡(企業(yè)內部網絡)完全的暴露在攻擊者面前。隨著VoIP在無線網絡的拓展,通話的安全性和私密性問題更加突出。使用有效的安全機制(如內含EAP的802.11i/AES)802.11i/AES作為安全性的保障十分重要。


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();