由于目前已知的IP电话攻击并不多见,所以想说服CEO们和预算管理人员在IP电话安全方面增加资金投入还是有一定难度的,网络管理员们应该会认同这一点。然而英国国家基础建设安全响应中心(NISCC)报导他们发现了目前被普遍认为是在分组网上支持语音、图像和数据业务最成熟的H.323协议的多个漏洞,而其中又以负责建立IP电话连接的H.225.0子协议里问题最多。如果漏洞遭到攻击,结果可能造成恶意代码的执行或是拒绝服务攻击(DoS)。
从原理上说,利用漏洞可以发起各种类型的攻击。比如一旦网关被黑客攻破,IP电话不用经过认证就可随意拨打,未经保护的语音通话有可能遭到拦截和窃听而且可以被随时截断。黑客利用重定向攻击可以把语音邮件地址替换成自己指定的特定IP地址,为自己打开秘密通道和后门等等。
与此同时,其他流行的攻击手段也会对网络语音环境造成巨大的威胁,除了DoS和分布式DoS攻击外,如果pc中了特洛伊木马的话,窃听就随时可能发生,类似的,乱序语音数据报(比如媒体数据报在会话数据报之前被接收到)和过长的电话号码都可能为缓冲区溢出攻击打开方便之门,而VoIP滥用(类似垃圾邮件)则可以通过不停播打同一号码使该号码陷于瘫痪。
另一个复杂的问题是,如果在防火墙之上同时运行网络地址转换(NAT)服务的话,外呼请求可能就无法正常工作。虽然NAT能够转换语音数据报中IP层和传输层的源地址与端口号,但NAT并不理会语音数据报中其他更底层的源地址信息,所以对VoIP来说这意味着主叫方的地址将是个内部地址,而被叫方在试图建立通话时则会被导向错误的源地址。
当涉及到外部呼叫者时,VoIP面临的安全挑战就愈加复杂了。典型的情况是,对于一个公司搭建的IP电话网络来说,防火墙只认可从该网络内部发起的会话请求,然而对IP电话来说公司外部的人也可能需要打电话进来。对于内部用户来说,为他们安装VPN客户端是个暂时的解决方案,但长远来说这肯定不够,外部呼叫者可能是个陌生人所以不可能为他们预装VPN客户端。
防火墙保障IP电话安全的实现方案
为了对抗针对IP电话的攻击,防火墙必须要更智能更高效地检验进来的数据报里与SIP相关的信息。对此,不同的防火墙厂商采取了不同的方案,但大体来看各方案或多或少都存在一些问题。
对于具有全状态检测(stateful-inspection)功能的防火墙来说,它本身并不具有应付应用层攻击的防护能力,这种防火墙在传输层对数据进行检查,它首先跟踪从公司IP电话网络出去的会话连接,然后利用这些信息来决定哪些外部数据是安全的可以进入公司网络的数据。
基于代理的防火墙如TIS的Guantlet具有在应用层对具体应用进行安全保护的能力,它的工作方式是首先检测从外部进来的会话连接,分析其所使用的协议,然后掐断该外部连接,最后从自己这方重新发起一个到对方的新连接。这种防火墙虽然能直接在应用层对不同的具体应用提供相应的保护,但它是以牺牲性能为条件的,并且需要对每个具体应用进行特别调整。
没有任何一款VoIP防火墙(包括全状态检测防火墙)是纯粹工作在网络层和传输层的,最起码它们也要利用应用层网关(ALG)在网络层、传输层和应用层查找地址信息并进行相应修改。ALG对终端设备来说是透明的,所以在处理SIP时,它们并不会向请求连接一方发送TRYING消息。
有些防火墙在处理SIP数据报时会利用DPI查看数据报更细节的信息,比如在应用层检查数据报是否符合标准格式,这样这些基于DPI的防火墙就能防住某些缓冲区溢出攻击,比如如果数据报里的电话号码超出标准规定的长度的话,防火墙会直接拒之门外。
基于代理的防火墙(用SIP领域的术语来说也叫背对背用户代理,Back-2-Back User Agent,B2BUAs)位处主叫方和被叫方中间,截取两端的通话信号和媒体流,这些设备工作方式类似SIP代理服务器,只不过它们同时还能进行协议正确性校验和检查。边界会话控制器(Session Border Controllers,SBcs)是一种被众多运营商用于连接VoIP服务和支持QoS的设备,它们也属于基于代理的防火墙这一类。很多制造SBC的厂商同时也为企业提供类似的防火墙产品,如Jasomi Networks、Kagoor Networks、Ingate Systems和Acme Packet等。