常国锋 ,焦大军 ,孙 悦
(1.新乡学院 新乡 453003;2.北京邮电大学网络与交换技术国家重点实验室 北京 100876)
IMS是3GPP在R5版本标准中提出的支持IP多媒体业务的子系统。它基于SIP的体系,使用SIP呼叫控制机制创建、管理和终结各种类型的多媒体业务。各种类型的客户端通过IMS都可以建立起端到端的IP通信,并可获得所需要的服务质量。在网络融合的发展趋势下,IMS技术为基于IP的移动和固定通信融合提供了基础,并被业界认为是网络演进的一个重要阶段。
在传统的电信网中,由于网络封闭组网的特性,安全问题并不突出,然而当网络融合的趋势逐渐明显,网络IP化、组网开放式的特性逐渐显著时,电信网将迎来原有互联网上各种安全威胁的挑战,IMS的引入将使电信领域进入互联网时代,安全问题将成为电信运营商的头号大敌。
在众多安全问题中,互联网中较为常见的DoS(denial of service)攻击将成为IMS网络中比较主要的安全威胁。DoS往往是针对网络协议中的弱点或者系统存在的漏洞,对系统发起攻击,通过消耗系统有限的不可恢复的资源,使合法用户的服务性能降低或者遭到拒绝。攻击者不正当地采用标准协议或连接方法,向目标发送大量的信息,消耗攻击目标的资源,使攻击目标不能正常地为用户服务。DoS中最典型的是泛洪攻击。互联网中常见的传输层TCP SYN/UDP泛洪攻击在IMS网络中将继续存在,同时应用层基于SIP协议的SIP消息泛洪攻击、错误的SIP消息体攻击也将严重地威胁IMS网络,在消耗系统资源的同时,对IMS网络造成巨大的威胁[1]。
DoS在互联网上出现已久,随着入侵检测技术的发展,各种针对DoS的攻击检测技术和防范技术也层出不穷。然而,针对IMS网络攻击检测尤其是SIP泛洪攻击检测的技术普遍较少,目前尚没有令人满意的研究成果[2]。
[3]将IMS网络中会话功能实体CPU的利用率作为检测特征,如果利用率超过设定的阈值,表明遭到SIP泛洪攻击。该方法虽然简单,但存在以下两个缺点:其一,攻击者可以通过手工构造攻击数据分组,在保持CPU利用率低于设定阈值的情况下发动攻击,上述检测方法将失效;其二,该方法无法区分瞬间拥塞与泛洪攻击,可能导致误报。参考文献[4]提出了一种基于人工免疫系统算法的检测框架,用于检测IMS网络中的SIP泛洪攻击,并将其检测性能与基于特征的检测算法进行比较。该方法的缺点是不能在攻击的早期检测到攻击,导致检测时间过长。参考文献[5]将互联网泛洪攻击检测常用的3种算法(即门限值算法、累计和算法(cumulative sum,CUSUM)和Hellinger距离算法)用于IMS网络中SIP泛洪攻击的检测,并对3种算法的性能进行比较,3种算法各有优势,本文选择第2种。参考文献[6]针对IMS网络中的移动多媒体通信面临的与SIP、RTP、IP有关的DoS攻击进行了分析,并在IMS已有的标准安全机制的基础上提出一种安全体系架构机制,用来为客户和服务提供商提供可靠的通信环境,但该框架仍然无法有效解决SIP攻击问题。
针对上述分析,为高效准确地检测出IMS网络中面临的SIP泛洪攻击,本文提出一种新的SIP泛洪攻击的检测方法。该方法的核心是对invite消息流进行分析,将抽样间隔内进入IMS网络中的所有初始invite请求消息的数量与正常 (信令)消息流数量的差作为检测特征,使用累积和算法检测上述差值所包含的信息,以判决攻击是否发生。实验结果表明,本文提出的方法具有较高的检测率。
SIP协议的信令连接方式也基于3次握手策略,与TCP的连接方式有相似之处,因此,在IMS网络上对SIP消息发起泛洪攻击也是主要的攻击方式。SIP消息泛洪攻击主要有invite消息泛洪和register消息泛洪,攻击者向攻击目标发送大量的SIP invite消息(源IP地址使用IP地址欺骗),被攻击的服务器忙于处理大量的invite消息,从而耗尽服务器资源无法处理正常合法的消息。攻击原理如图1所示。register消息泛洪攻击与invite消息泛洪攻击相似。
图2(a)的消息流程代表的是呼叫过程因出现错误而中断的情况,可以看出,没有出现 (invite,200 OK,ACK)消息序列,取代200 OK的是4XX的错误消息,例如目的地正忙 (486 destination busy)、目的地服务拒绝(403 destination service denied)、目的地在覆盖范围内(480 destination currently out of coverage)或者其他的错误。
图2(b)的消息流程代表的是用户会话终止或资源预留失败,可以看出,主叫方可能在呼叫会话建立之前主动发送cancel消息终止会话,也可能是因为资源预留失败发送cancel消息终止会话。如果是用户主动终止,cancel消息可能出现在(2)~(12),如果是因为资源预留失败,cancel消息可能出现在 (4)~(12)。同时,该流程中也没有出现(invite,200 OK,ACK)消息序列,取代 200 OK 的是请求中止(487 request terminated)消息。
这两种呼叫失败的过程并不是恶意的invite泛洪攻击的特征。相反,如果终端与IMS网络出现上述交互流程,表明该终端发起的是正常的呼叫。invite泛洪通过攻击端发送大量的invite消息,试图在IMS网络中建立大量的半开放连接以耗尽资源。攻击端不会对IMS网络的请求响应作相应的回复。因此,如果简单地使用(invite,200 OK,ACK)消息序列作为正常呼叫的特征,将会把用户合法的呼叫终端的会话终止或资源预留失败情况当作泛洪攻击。
总结上述流程,本文使用(invite,RES,ACK)作为正常呼叫的消息序列进行消息提取。其中,RES代表所有可能出现的IMS网络侧响应,如正常的200 OK响应,异常的486、403、406、487 响应等。
将 Tn时间段内(invite,RES,ACK)消息序列数目记为Sinvite,将该时间段内所有invite消息的数目记为Tinvite,攻击出现时,Tinvite>Sinvite,并且该数值差将出现激增。
分析可知,Reinvite 消息也会形成(invite,RES,ACK)消息序列,也就是说REinvite消息对Sinvite和Tinvite产生的影响相同,因此当Tinvite与Sinvite数值相减之后,该影响即会消除。通过监控Tinvite和Sinvite的数量差判断该网络是否正在接收异常的invite连接,是本文invite泛洪攻击检测机制的主要思想。
累积和算法是在统计过程控制中常用的算法,它可以检测统计过程均值的变化。CUSUM基于这样一个事实:如果有变化发生,随机序列的概率分布也会改变。通常CUSUM需要随机序列的参数模型,以便可以用概率密度函数监控序列。不幸的是,互联网是一个非常动态而复杂的实体,其业务模型的理论结构非常复杂,因而,一个主要的难题是如何模拟随机序列{Xn}。CUSUM背后的主要思想是:累积明显比正常运行情况下平均水平高的Xn的值。这一算法的优点是能以连续方式监控输入随机变量,从而达到实时检测的目的。
设△n为第n个抽样间隔内检测到的SYN分组与FIN(RST active)分组的数量差。在实际情况中,随机序列{△n,n=0,1,…}的均值有一定的依赖性,随着网络规模大小的变化而变化,并且抽样时刻不同,结果也不一样。因此为降低相关性,使检测适用于大部分情况,就要对△n作归一化定义。用定义抽样间隔内FIN(RST active)数据分组数量的平均值,即抽样时间间隔内成功连接并释放的会话数定义为:
其中,0<λ<1。
为了保证短时间内高数据量的攻击和长时间内低数据量的攻击都能被正确地检测出来,该算法在抽样时间序列的技术上增加了一个累积和的模块。Yn定义如下:
攻击的检测由Yn的值确定。如果Yn超过了预定义的阈值N,说明该系统现在正在遭受攻击。
本仿真实验环境部署在一台CPU为Intel Pentium○R2、主频为2 GHz、内存为2 GB的PC机上,采用Windows XP SP2操作系统,开发语言采用Java,运行的Java虚拟机为J2SE 1.4.2-05,在Eclipse 3.2.1上运行。该实验的目的在于验证本文提出的CUSUM检测SIP消息泛洪攻击的有效性。图3给出了仿真实验的实验架构。
在图3中,SIP消息泛洪攻击生成器负责向消息总线发送正常的消息序列(invite,200 OK,ACK)和泛洪攻击消息(大量的invite消息),分别用来模拟正常的呼叫会话和可能发生的泛洪攻击;事件队列管理器维护整体检测模块的消息事件总线,在缓存大量消息事件的同时,根据事件格式中的参数将事件发送至invite泛洪检测模块和CUSUM及输出模块,维持消息总线的正常运作;invite泛洪检测模块缓存事件队列管理器发送的消息事件,并维护invite泛洪检测的状态机,用以判定正常和异常的invite信令建立流程,并将每一次的检测结果按其消息结构的格式发送至事件总线;CUSUM及输出模块对检测模块发送的结果事件进行统计,在模块内实现CUSUM的思想,维护时钟对统计值进行抽样计算,达到相应阈值则调用输出函数,将威胁的细节报告输出,并使用恢复函数将模块内部的中间结果值恢复。
表1为本文提出方法中的实验参数设置。
表1 仿真实验参数设置
根据图4设计的仿真系统,对本文方法进行了大量的实验验证,其中的一个实验结果如图4所示。
从检测结果可以看出,在抽样间隔150 s以前,由于没有发生攻击,正常的呼叫不影响Yn值的变化,所以Yn一直为0,当攻击发生时,由于攻击生成器发送大量的invite消息并没有后续响应,Yn值将发生激变,Yn的值远远大于1(当前的阈值设定为1)。因此从图4中可以看出,攻击发生后,在不超过60 s的时间内,本文提出的方法能够有效地检测到泛洪攻击的存在。
另外,其他的大量实验结果表明,本文提出的方法的平均检测率为94%,平均误报率不超过5%,平均检测时间为67 s。因此,可以看出,本文提出的方法对于IMS网络中的SIP消息泛洪攻击的检测是有效的。
根据取得的实验结果,如图4所示,可以看出,CUSUM能够有效地检测出SIP消息泛洪攻击的发生。当正常呼叫进行时,Yn的值不受影响;当攻击发生时,Yn能在较短的时间内发生激变,能在较短时间内准确地发现攻击,从而为防御系统的启动赢得了宝贵的时间,有利于最大化地减少SIP消息泛洪攻击对系统造成的破坏。
另外,由于篇幅限制,本实验旨在验证CUSUM的正确性,对正常情况的消息序列只模拟了(invite,200 OK,ACK)消息序列,没有对IMS网络中出现的各种消息形式进行验证,而这将在本文后续的研究中做进一步的实验分析。
参考文献
1 孙悦.IMS网络中SIP泛洪检测方法的研究与实现.北京邮电大学硕士学位论文,2008
2 王尚广,孙其博,杨放春.IMS网络中的SIP泛洪攻击检测.软件学报,2011,22(4):761~772
3 Sher M.Secure service provisioning (SSP)framework for IP multimedia subsystem (IMS).In:Technical University Berlin,2007
4 AwaisA,Farooq M,Younus Javed M.Attack analysis bio-inspired security framework for IP multimedia subsystem.In:the 10th Annual Conf on Genetic and Evolutionary Computation,2008
5 Akbar M A,Tariq Z,Farooq M.A comparative study of anomaly detection algorithms for detection of SIP flooding in IMS.In:Proc of the 2nd Int’l Conf on Internet Multimedia Services Architecture and Application,2008
6 Sher M, Magedanz T. Mobile multimedia broadcasting vulnerability threats,attacks and security solutions.In:the 9th Int’l Conf on Mobile and Wireless Communications Networks,2007