- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
浅析WLAN中VoIP的安全隐患
摘 要 VoIP的安全问题主要集中在SIP 和RTP协议上,由于无线网络(802.11b)的加入,以及对无线网络安全管理的缺乏,安全问题更加突出。如果对VoWiFi系统中不增强对安全的鉴权和对数据的保密,将会对系统造成很大的威胁,本文分析了几种安全上的潜在的威胁和存在的攻击的方式:窃听(Eavesdropping)和嗅探(Sniffing)VoIP呼叫,中间人(Man in the Middle)攻击,拒绝服务(Denial of Service)攻击,呼叫中断(Call Interruption)和建立错误呼叫等,这些普遍存在于无线局域网当中的威胁。
关键词 VoIP VoWiFi SIP
1 简介
VoIP技术使得基于类似Internet这样的数据网络实现电话业务成为可能。与传统电话业务相比,这种实现模式能够提供更多的集成功能、更高的通信带宽、更稳定的通信质量以及更灵活的管理能力,并能够显著降低成本。
2 窃听和嗅探
窃听一个电话呼叫,并随之转发通信中的相关部分,这就是最明显的一种对VoIP的一种攻击,它可以通过很多技术漏洞对有线网络发起中间人攻击。例如利用ARP病毒强行攻击SIP服务器,导致具有威胁性的第三方介入而使通话失败。而在无线通信环境中,在没有安全机制的保护下,VoIP更加容易受到攻击。任何人只要有一台电脑,合适的无线适配器,再加上一个窃听软件,很容易就能窃听到WiFi网络中的VoIP呼叫。
Etherea窃听软件可以在窃听到的数据包中识别出其中的VoIP呼叫,利用SIP协议,甚至还可以从窃听到的RTP数据包中恢复出语音流。Etherea窃听软件还可以用图表的方式查看通信双方的通话记录(见图1)。
更有甚者,Etherea窃听软件还可以从捕获的包中识别出不同的RTP流,而后,从不同的包抽取出语音的内容,重新恢复通话双方的谈话内容并保存下来。
3 中间人攻击(见图2)
在有线交换网络中,中间人攻击的对象大多是对网络业务的嗅听,根据802.11 LAN中分享媒体网络的定义,一旦你获得了密码,就可以窃听所有在LAN中的数据包。在两个无线主机之间一旦出现了这样一个"中间人",很容易就可以对业务流中发起攻击。中间人对WLAN的攻击集中在OSI模型中的第一层和第二层,对第一层的攻击往往会干扰已经存在的无线接入点,这些干扰通常用特殊的干扰软件来进行,或者直接用垃圾业务来堵塞接入点信道。这些非法接入点的参数正是从合法接入点的参数那里获取的。
第二层的攻击主要集中在使用大量的伪造的结束连接或者结束鉴权帧进行攻击,使得正在与合法接入点联接的目标主机被删除。这比简单的信道干扰有效的多,有经验的攻击者往往把第一层第二层的攻击结合起来,以获得更好的效果。
攻击者的目标往往集中于介入到已存在的无线用户和合法的接入点之间的传输通道中去。如果要攻击某个目标,必须在相同的计算机上安装无线适配器,我们能模拟下这个过程,我们使用适配器IPW2200b/g,和能够与之相配的无线适配器DWL-G650,它能使IPW2200b/g成为一个接入点,利用这个非法接入点来探测无线接入点的具体参数。驱动程序Madwifi将会允许Dwl-G650的无线网卡工作在控制模式下,能建立实际的无线接口,并且还能使DWL-G650还能同时工作在不同的模式下。
当两个接入点的信号功率能够估计时,就可以发动攻击了。想要控制在合法接入点相应信道中传送的信号是非常困难的,非法节点通常侵入到不同的信道来增加攻击的可能性。可以利用前面说到的方法,对OSI模型中的第一层和第二层进行攻击,它能大大削弱甚至删除合法接入点的信号。
具体攻击的流程是怎样执行的,如图3所示。
DWL-G650的网卡和Madwifi驱动程序能建立两个网络逻辑接口,其中一个工作在监控模式(ath0),另一个工作在操作模式(ath1),他们和合法接入点一起工作在channel no.1,IPW2200b/g 的适配器(eth2)工作在channel no. 9,并经由无线网卡配置(ESSID)成一个"默认"的合法接入点。
除了DWL-G650,其他设备想要工作在不同的信道就必须驻留成为无线设备,这是因为由Madwifi创造的逻辑接口不能工作在不同信道,除非它是在监控模式下。
从上面命令序列中,命令"brctl"建立了一个以太网网桥,能够与其他的以太网互联。在命令的最后一行,描述了对"ath0"界面的配置和对aireplay软件的使用,aireplay软件通过"ath0"界面把伪造的结束帧框架强行插入到无线网络中去,这会导致用户无法连接到合法的接入点,并且降低channel no. 1的信号质量。
有很多原因导致基站与非法接入点连接,并联接到其他合法接入点中去。比如接入点都是工作在同一个信道内的,最主要的原因是,大部分接入点的信号功率都是可以相互比较而获得的,我们很难有足够的设备来监控合法接入点的信号。由于在ESSID中有存储着很多的交换过的帧,只要把转发信标隐藏于ESSID中,就会导致网络的不可用。一旦合法接入点中的信标转发帧被监测到,只需要少量的伪造结束认证帧,刚才提到的那些攻击就会成倍的增加,即使合法接入点的信号功率要比非法接入点的高时,也不例外。
这时正常的无线用户无法通过channel no. 1连接到网络时,就会搜索其他的信道。如果运气好的话,还能搜索到channel no. 9中,预先设置好参数的接入点还能使用。
在非法接入点连接到基站期间,合法接入点也在发送信标帧,伪造的结束认证帧必须插入到活动的通信信道中去才能达到攻击的效果。在无线基站之间,接入点之间的网桥,使得攻击者很容易得检测并发送任何形式得数据包到网络中去,窃听者已经完全控制了基站间得VoIP业务流,用Linux下得Netfilter/iptables就可以轻松的过滤交换的数据包。
4 DOS(拒绝服务)攻击
拒绝服务攻击同样威胁着VoIP,一个SIP无用信息就可能导致一项SIP业务(或者是一个用户,或者是一个SIP服务器)的失效,这些都是显而易见的缺陷,如果服务器没有有效的机制来控制(有时只是简单的忽略)这些错误的信息,很容易成为被攻击的目标。
PROTOS Suite Test软件就能监测用户和SIP服务器的操作情况,检查每一个PBX (Private Branch Exchange)执行的命令。PROTOS利用SIP的底部消息,主要是INVITE命令,找出服务器及相关的SIP用户中的缺陷。这个监测软件能转发由Ad hoc生成的SIP消息,并在其中附加上一些错误的语法,错误的语法是系统中的异常因素,往往会导致无法接入的情况。
在捕捉了SIP呼叫中的SIPsetup消息,并找到SIP用户之后,这个软件就能很容易的寻找系统相应的缺陷并发起攻击。PROTOS主要针对的缺陷有以下几个:
Express Talk v.1.03: INVITE消息中包含Content-Lengh长度呈负值导致对系统的冲击
CallConductor v. 1.03: 与Express Talk相同
X-Lite 1103:INVITE消息中包含Content-Lengh长度等于或超过1073741823 byte导致明显的大量占用系统资源
如果扫到了描软件电话和PBX的缺陷扫描,就能对基站和无线基站进行攻击了。使用相应的Wifitap软件后,你可以在不用和网络直接联接的情况下发起攻击,它能让你直接对与基站关联的接入点写入命令,
"不要与基站相连接"
"不要与其他节点交互"
这时,WiFi网络中的通信业务已经完全阻塞了。
5 呼叫中断攻击(见图4)
在呼叫过程中,发送前向的BYE消息,可立刻中断呼叫。如果攻击者要利用这个缺点攻击,他首先必须想办法获得Call-Dialog中的Call-ID。Call-ID的作用是一组意义明确的标识符,它存储在呼叫双方用户代理拨号时,所发送的请求和响应的消息中。因此攻击者会在会在呼叫建立时截取它,并用它来发起攻击。
还可以使用CANCEL的方法来中断呼叫,利用Python script来实施攻击,在控制模式下的无线接口建立一个端口。这个软件可以捕获SIP的呼叫建立,特别是其中的INVITE消息。当攻击者截获了INVITE消息,自己建立了一个Ad hoc SIP CANCEL消息,其中包含的Call-ID与INVITE请求消息中的标签是完全一样的。
如图3所示,伪造的CANCEL消息被插入到了无线信道里去。插入的数据包中包含的目的地址和源地址,无论从IP层或MAC层来看,都是和INVITE请求消息一样的。
6 建立错误呼叫(见图5)
攻击者能创建一条SIP INVITE 消息,分别发给呼叫双方的用户代理,在他们之间建立一次错误的呼叫,这时被攻击者根本无法察觉到有任何的异常。INVITE消息中包含了相同的Call-ID ,Cseq以及带宽参数,但是两条消息中的源地址和目的地址是被抹去了的。由于SDP协议的要求,INVITE消息中必须包含相同的关于语音编码的要求信息,一个简单的对RTP业务流的分析就能获得相关的UDP端口值等信息。
在发送了两份INVITE消息之后,被攻击的设备开始振铃和发送SIP 180 Ringing消息给发送出INVITE request请求的对端,由于这次是一次非法的呼叫,设备不能识别,所以选择了丢弃。当用户选择了应答呼叫,软件电话发送SIP 200 OK的消息给它认为是发送INVITE request的那一方,同样的,这个消息也被丢弃。
当攻击者成功的捕获了关于错误呼叫(建立在有正确Call-ID的基础上)的200 OK的消息,就会对同样的源地址和目的地址发送自己的INVITE请求。大部分的SIP软件电话能至少同时处理三个呼叫,因此攻击者也能在同一个WLAN同时对三个呼叫发起攻击,至少能使一个呼叫失败。这是因为,RTP的数据包将会发送到目的地,但是不会送到发起呼叫的一方,并且这个消息会被丢弃。这种攻击会造成在网络中同时存在多个SIP呼叫。即使持续时间很短,这些呼叫仍然会造成网络的拥塞,如果情况一直持续,所有的在配置好路由表中的终端都会无法呼叫。
7 结论
为了解决这些安全隐患,必须用安全机制来保证通话的私密性和对数据的鉴权,我们选择的安全机制WPA标准是基于802.1 x/EAP协议来鉴权。WPA系统的密码标准能够阻止VoIP呼叫被窃听,呼叫建立信息被截取,从而提高系统的安全性。在数据鉴权方面,把鉴权服务器(Radius Server)加到网络的架构中去。
尽管整个网络有如此多的安全性问题,但VoIP技术把语音和数据结合起来的优势让人无法拒绝,并且我们说明的发起攻击的方式并不仅仅只针对与无线网络连接的SIP协议,而是指向了整个网络,包括语音的通信,数据的交互,系统带宽的饱和。大部分的攻击的目标都是指向系统固有的缺陷(例如,如果SIP服务器不能准确的保证Call-ID的正确性,或者攻击者有机会截取Call-ID)。
由于VoIP在价格上的优势,在很多企业内部,使用软件电话很容易就可以成为VoIP的用户,这就把VoIP网络(企业内部网络)完全的暴露在攻击者面前。随着VoIP在无线网络的拓展,通话的安全性和私密性问题更加突出。使用有效的安全机制(如内含EAP的802.11i/AES)802.11i/AES作为安全性的保障十分重要。
由于本网页不支持图片与公式效果,如有需要请参阅杂志。
作者:衡星 李俭兵 来源:中国新通信(原《中国数据通信》6月)
上一篇:SIP协议在VoIP中的应用
下一篇:VoIP语音质量测量方法