基于Netfilter的深度包检测SIP防火墙的设计

  • 格式:pdf
  • 大小:399.08 KB
  • 文档页数:3

基于Netfilter的深度包检测SIP防火墙的设计张春晓,蔡均平(国防信息学院,湖北武汉430010)摘要:针对传统包过滤防火墙不适用于SIP会话这一情况,采用深度包检测技术,设计了一个基于Netfilter的深度包检测SIP防火墙。

此防火墙能够实施有状态的SIP感知,深度检查SIP消息,并且动态生成媒体流传输通道,达到SIP会话安全防护能力。

关键词:深度包检测;SIP;防火墙中图分类号:TP393.08文献标识码:A文章编号:1673-1131(2013)01-0047-030引言会话初始协议(SIP)是由IETF提出的一种基于IP的应用层信令控制协议,它采用文本编码,结构简单,使用灵活且扩展性强,被广泛应用于多媒体通信中。

然而采用文本形式表示消息的词法和语法分析比较简单,所以SIP协议很容易遭受攻击[1]。

目前对于SIP协议提出了多种安全机制,如HTTP(超文本传输协议)摘要认证、S/MIME(安全/多用途Internet邮件协议扩展)安全机制、TLS(传输层安全)安全机制和IPSec(In-ternet协议安全性)安全机制[2]。

这些安全机制主要解决了关于SIP消息在机密性和完整性方面的安全问题,但对于拒绝服务攻击而言还没有很好的作用。

针对SIP拒绝服务攻击,现有方案多是采用部署包过滤防火墙的方式尽量缓解DoS造成的危害。

传统的数据包检测过滤技术仅分析数据包4层以下内容,包括源地址、目的地址、源端口、目的端口以及协议类型。

它通过端口号来识别应用类型。

对SIP防护而言,传统包过滤防火墙有两个致命缺点:(1)对诸如欺骗攻击的防御能力非常有限,也无法达到深度包检测SIP防火墙的要求。

例如SIP消息一般采用UDP/5060端口进行传输,恶意攻击消息可以把自身的传输端口改为5060端口以冒充SIP消息而躲过传统包过滤防火墙的拦截。

并且即使是真正的SIP消息,也有可能是恶意SIP 洪水攻击包。

(2)无法实现动态的RTP端口配置。

SIP会话双方传输媒体流的RTP端口号是动态协商的,会话建立前是无法知晓的,因此传统包过滤防火墙难以进行合理的规则配置,只能将很大范围的UDP端口打开以确保媒体流的通过,但这又将很大范围的UDP端口暴露给恶意攻击者,与防火墙的初衷相悖。

本文在Linux防火墙框架Netfilter的基础上,采用深度包检测(DPI)技术,设计了一个具有深度包检测功能的SIP防火墙。

此防火墙实施有状态的SIP感知,深度检查SIP消息,动态生成媒体流传输通道,达到增强的安全防护能力。

1基于Netfilter的深度包检测SIP防火墙的设计1.1基于Netfilter的深度包检测SIP防火墙内核结构设计所谓“深度包检测”是和传统包过滤检测技术相比较而言的,它不仅对4层以下内容进行分析,还增加了应用层分析。

在Linux防火墙框架Netfilter[3]中加入一个具有深度包检测功能的SIP-filter模块,即可构成一个深度包检测SIP防火墙。

此防火墙内核模块结构如图1所示:图1深度包检测SIP防火墙内核模块结构SIP-Filter模块钩入Netfilter框架的钩入点与数据包过滤的钩入点是一样的,分别在HOOK2(NF_IP_LOCAL_IN)、HOOK3(NF_IP_FORWARD)和HOOK5(NF_IP_LOCAL_ OUT)处。

三个SIP-Filter模块的作用分别为:SIP-Filter模块A钩入HOOK2过滤点,目的地址是发往本机的SIP消息由它处理;SIP-Filter模块B钩入HOOK3过滤点,需要转发的SIP 消息由它处理;SIP-Filter模块C钩入HOOK5过滤点,本机发出的SIP消息由它处理。

这样,三个SIP-Filter模块刚好覆盖率所有的SIP消息并且不会重复覆盖。

SIP-Filter模块对数据包的处理流程如图2所示:图2SIP-Filter模块对数据包的处理流程2013年第1期(总第123期)2013(Sum.No123)信息通信INFORMATION&COMMUNICATIONS1.2SIP/RTP 会话状态表设计SIP/RTP 会话状态表包含五个字段,分别是:Call-ID (呼叫标识)、sRTPAddr (源RTP 地址)、dRTPAddr (目的RTP 地址)、sRTPPort (源RTP 端口)、dRTPPort (目的RTP 端口)和Session-State (会话状态)字段。

会话状态包括:尝试建立会话(Invite_Trying )、被叫方接受会话请求(Invite_OK )、主叫方确认会话已建立(Invite_ACK )、会话已结束(Bye )等。

1.3SIP/RTP 会话状态表的更新以及媒体流通道动态打开/关闭过程SIP 消息规则匹配过程成功后,进入SIP/RTP 会话状态表更新以及媒体流通道动态打开/关闭流程。

(1)判断消息的类型。

若是INVITE 请求消息,则查找会话状态表中看是否有与其相同的Call-ID ,若无,则在会话状态表中新建此会话表项,把会话状态设置为Invite_Trying ,并且从此SIP 消息中提取出源RTP 地址和源RTP 端口,保存到新建的会话状态表项中。

(2)若是INVITE 请求消息的200OK 响应消息,则根据其Call-ID 查找出其会话状态表项,把原会话表项中的会话状态由Invite_Trying 改为Invite_OK ,并且从此200OK 消息中提取出目的RTP 地址和目的RTP 端口,保存到此会话表项中,此时此会话表项才算完整。

(3)若是ACK 请求消息,则根据其Call-ID 查找出其会话状态表项,把原会话表项中的会话状态由Invite_OK 改为In-vite_ACK ,并且根据此表项中的源RTP 地址、目的RTP 地址、源RTP 端口和目的RTP 端口这四个参数打开媒体流通道。

(4)若是BYE 请求消息,则根据其Call-ID 查找出其会话状态表项,把原会话表项中的会话状态由Invite_ACK 改为End ,并且根据此表项中的源RTP 地址、目的RTP 地址、源RTP 端口和目的RTP 端口这四个参数关闭媒体流通道。

(5)其他消息不会更改会话状态表。

2防火墙功能测试2.1测试环境为了测试深度包检测SIP 防火墙的功能,搭建如图3所示的测试环境:图3测试环境设备的软硬件配置如下:(1)语音客户端:Intel Core-i5处理器,2G 内存。

运行Linux 操作系统,版本为Ubuntu10.10,选用Linux-2.6.35内核。

语音客户端A 、B 的IP 地址分别配置为192.168.1.10和192.168.1.110。

客户端PC 上运行SIP 开源测试工具SIPp 。

SIPp 是一个测试SIP 协议性能的工具软件,它能动态显示测试运行的统计数据,如呼叫速率、信号来回的延迟,以及消息统计等。

(2)攻击设备:攻击设备采用ThreatEx 攻击器。

ThreatEx是由Spirent 公司推出的一种可重现最极端攻击的高级工具,它可真实地模拟数千种攻击及变种,包括:DDos 、病毒、VoIP 攻击、无线攻击、协议模糊攻击和应用渗透等。

(3)深度包检测SIP 防火墙:Intel Core-i5处理器,2G 内存。

运行Linux 操作系统,版本为Ubuntu10.10,选用Lin-ux-2.6.35内核,安装自主开发的深度包检测SIP 防火墙。

(4)SIP 服务器:Intel Core-i5处理器,2G 内存。

运行Linux 操作系统,版本为Ubuntu10.10,选用Linux-2.6.35内核。

运行开源SIP 服务器yate2。

(5)网络环境:采用100M 以太网。

2.2测试过程及结果分析测试分两部分,一部分测试深度包检测SIP 防火墙的SIP防护能力,另一部分是测试深度包检测SIP 防火墙动态打开/关闭媒体流通道的能力。

2.2.1SIP 防护能力测试我们选取畸形SIP 消息、REGISTER 洪泛攻击和INVITE 洪泛攻击作为测试用例来测试深度包检测SIP 防火墙的SIP 防护功能。

其中畸形SIP 消息由SIPp 产生,REGISTER 洪泛攻击消息和INVITE 洪泛攻击消息由攻击设备ThreatEx 产生。

测试结果如表1所示:表1攻击测试结果上述实验表明,深度包检测SIP 防火墙能够有效地检测出畸形SIP 消息攻击以及DoS 攻击,具备良好的SIP 防护能力。

2.2.2动态打开/关闭媒体流通道的能力测试在正常的SIP 会话过程中(无攻击流量),只需验证在深度包检测SIP 防火墙开启的情况下,会话的持续时间与未开启防火墙时的会话持续时间相差不大,以及具有很小的丢包率,即可证明此防火墙具有动态打开/关闭媒体流通道的能力。

这是因为若此防火墙不具备动态打开/关闭媒体流通道的能力,则在防火墙开启的情况下,RTP 流不能顺利通过会话过程中协商好媒体流通道,这必定会引起会话的延迟以及较高的丢包率,甚至无法建立会话。

测试过程如下:(1)编写SIPp XML 文件,生成一个10s 的RTP 流。

(2)测试的总呼叫数设定为5000次,呼叫速率设定为10次/秒,并发呼叫的最大次数分别设定为30次、50次、100次和120次四种情况。

并发呼叫的最大次数为30次时的测试代码为:sipp –sn uac_pcap 192.168.1.110–p 5060–sf uac.xml –l 30–r 10–m 5000其中192.168.1.110表示呼叫目标地址;-p 5060表示呼叫目标端口为5060端口;-sf uac.xml 表示指定使用的场景文件为uca.xml ;-l 30表示并发呼叫的最大次数为30次;-r 10表示呼叫速率为10次/秒;-m 5000表示指定测试的呼叫总数,当达到m 指定的数目时候停止呼叫,程序结束。

同理可知并发呼叫的最大次数为50次、100次和120次时的测试代码:sipp –sn uac_pcap 192.168.1.110–p 5060–sf uac.xml –l 50–r 10–m 5000信息通信张春晓等:基于Netfilter 的深度包检测SIP 防火墙的设计4G 网络发展的关键技术及前景探讨杨涛(中铁十一局集团电务工程有限公司,湖北武汉430074)摘要:分析了4G 移动通信的概念和技术特点,主要对4G 移动通信的关键技术进行论述,在此基础上对4G 网的前景进行了预测。

关键词:4G 网络;技术;前景;分析中图分类号:TP391.9文献标识码:A 文章编号:1673-1131(2013)01-0049-02第三代移动通信技术是以语音业务为主,以电路交换为核心,同时还附加了IP 数据业务的传统移动通信网络,但是其技术往往偏重话音业务[1]。