CN104378373A - 一种面向sbc的畸形sip消息检测的方法与*** - Google Patents
一种面向sbc的畸形sip消息检测的方法与*** Download PDFInfo
- Publication number
- CN104378373A CN104378373A CN201410648495.9A CN201410648495A CN104378373A CN 104378373 A CN104378373 A CN 104378373A CN 201410648495 A CN201410648495 A CN 201410648495A CN 104378373 A CN104378373 A CN 104378373A
- Authority
- CN
- China
- Prior art keywords
- sip message
- lopsided
- sbc
- message
- detection module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1016—IP multimedia subsystem [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供了一种面向SBC的畸形SIP消息检测的方法与***,属于核心网安全检测领域。所述面向SBC的畸形SIP消息检测的方法包括:101,为SBC增加一个畸形SIP消息检测模块,建立畸形SIP消息数据库;102,SBC把接收到的SIP消息转发给畸形SIP消息检测模块,畸形SIP消息检测模块对所述SIP消息进行检测;103,畸形SIP消息检测模块根据检测的结果给SBC回复消息;104,SBC根据畸形SIP消息检测模块返回的消息与IMS核心网进行通信。
Description
技术领域
本发明属于核心网安全检测领域,具体涉及一种面向SBC的畸形SIP消息检测的方法与***。
背景技术
IP多媒体子***(IMS,IP Multimedia Subsystem)是第三代移动通信伙伴组织(3GPP,3rd Generation Partnership Project)在Release5版本标准中提出的支持IP多媒体业务的子***。各种类型的客户端通过IMS都可以建立起端到端的IP通信,并可获得所需要的服务质量。IMS是IP多媒体***,是一种全新的多媒体业务形式,它能够满足现在的终端客户更新颖、更多样化多媒体业务的需求。目前,IMS被认为是下一代网络的核心技术,也是解决移动与固网融合,引入语音、数据、视频三重融合等差异化业务的重要方式。但是,目前全球IMS网络多数处于初级阶段,应用方式也处于业界探讨当中。
IMS是对IP多媒体业务进行控制的网络核心层逻辑功能实体的总称。IMS体系由于终端与核心侧采用基于IP承载的会话初始协议(SIP,SessionInitiation Protocol),IP技术与承载媒体无关的特性使得IMS体系可以支持各类接入方式,从而使得IMS的应用范围从最初始的移动网逐步扩大到固定领域。此外,由于IMS体系架构可以支持移动性管理并且具有一定的服务质量(QoS,Quality of Service)保障机制,因此IMS技术的优势还体现在宽带用户的漫游管理和QoS保障方面。
IMS是一个在分组域(PS,Packet Switch)上的多媒体控制/呼叫控制平台,IMS使得PS具有电路域(CS,Circuit Switch)的部分功能,支持会话类和非会话类的多媒体业务。IMS为未来的多媒体应用提供了一个通用的业务平台,典型的业务如呈现、消息、会议、一键通等等。
IMS的应用主要集中在以下几个方面。首先是在移动网络的应用,这类应用是移动运营商为了丰富移动网络的业务而开展的,主要是在移动网络的基础上用IMS来提供PoC(Push to talk over Cellular)、即时消息、视频共享等多媒体增值业务。应用重点集中在给企业客户提供IPCENTREX和公众客户的VoIP第二线业务。
其次是固定运营商出于网络演进和业务的需要,通过IMS为企业用户提供融合的企业的应用(IPCENTREX业务),以及向固定宽带用户(例如ADSL用户)提供VoIP应用。
第三种典型的应用是融合的应用,主要体现在WLAN和3G的融合,以实现语音业务的连续性。在这种方式下,用户拥有一个WLAN/WCDMA的双模终端,在WLAN的覆盖区内,一般优先使用WLAN接入,因为这种方式用户使用业务的资费更低,数据业务的带宽更充足。当离开WLAN的覆盖区后,终端自动切换到WCDMA网络,从而实现语音在WLAN和WCDMA之间的连续性。目前,这种方案的商用较少,但是许多运营商都在进行测试。
在IMS中全部采用SIP协议,虽然SIP也可以实现最基本的VoIP,但是这种协议在多媒体应用中所展现出来的优势表明,它天生就是为多媒体业务而生的。由于SIP协议非常灵活,所以IMS还存在许多潜在的业务。
当前,IMS正被各运营商进行部署。IMS尚处于初级应用阶段,仍需对IMS网络进行大量的安全测试,其目的是发现网络存在的漏洞,对于弥补漏洞,提高网络的安全性非常重要。目前,关于IMS网络的安全测试还刚刚处于研究阶段,业界还缺乏一种测试IMS核心网的安全测试方法。
SBC(Session Border Controller,会话边界控制器)作为IMS网络中一个十分重要的边界控制设备,通常被部署在施加控制的信令和语音互联网协议(VOIP,Voice over Internet Protocol)网络的设备,通常也参与设立,进行,拆除电话或其他互动媒体通信流,实现NAT穿越、接入控制以及信令和承载安全等功能。
发明内容
本发明的目的在于解决上述现有技术中存在的难题,提供一种面向SBC的畸形SIP消息检测的方法与***,实现SBC对IMS核心网SIP消息的防护。
本发明是通过以下技术方案实现的:
一种面向SBC的畸形SIP消息检测的方法,包括:
101,为SBC增加一个畸形SIP消息检测模块,建立畸形SIP消息数据库;
102,SBC把接收到的SIP消息转发给畸形SIP消息检测模块,畸形SIP消息检测模块对所述SIP消息进行检测;
103,畸形SIP消息检测模块根据检测的结果给SBC回复消息;
104,SBC根据畸形SIP消息检测模块返回的消息与IMS核心网进行通信。
为SBC增加一个畸形SIP消息检测模块是这样实现的:
在SBC端增加一个socket通信模块,将其接收到的SIP消息转发给畸形SIP消息检测模块。
所述畸形SIP消息检测模块的部署模式包括:监听模式和检测模式;
当畸形SIP消息检测模块的部署模式为监听模式时,其连接至SBC的前置路由器,并通过端口映射的方式监听所有往来SBC的SIP消息,对于接收到的SIP消息进行直接转发;
当畸形SIP消息检测模块的部署模式为检测模式时,SBC在接收到新消息时,直接转发给畸形SIP消息检测模块,并启动定时器T;然后畸形SIP消息检测模块接收来自SBC的消息,开始检测;在T超时前,如果畸形SIP消息检测模块完成检测且发现异常,则向SBC发送响应消息指出异常,如果检测模块完成检测但并未发现异常,则向SBC发送响应消息指出未发现异常;若T超时,则畸形SIP消息检测模块不响应,SBC继续后继的处理。
所述步骤101中,是根据RFC3261中采用的BNF范式定义的SIP消息格式建立畸形SIP消息数据库。
所述步骤102中的畸形SIP消息检测模块对所述SIP消息进行检测是这样实现的:
判断所述SIP消息是否为RFC3261中采用的BNF范式定义的SIP消息,如果是,则检测结果为正常的SIP消息;如果否,则检测结果为畸形消息,然后直接过滤掉该SIP消息。
所述判断所述SIP消息是否为RFC3261中采用的BNF范式定义的SIP消息是采用词法分析技术与语法分析技术对SIP消息进行检测分析来实现的。
所述步骤103是这样实现的:
如果检测结果是正常的SIP消息,则畸形SIP消息检测模块给SBC返回一个正常的信号,并且把所述SIP消息一起返回给SBC;
如果检测结果是畸形消息,则畸形检测模块给SBC返回一个SIP消息是畸形的消息。
所述步骤104是这样实现的:
如果SBC收到的是正常的信号和所述SIP消息,则将所述SIP消息转发给IMS核心网;如果SBC收到的是SIP消息是畸形的消息,则不转发给IMS核心网。
一种实现所述方法的***,包括:
SBC通信模块、畸形SIP消息检测模块、异常呼叫检测模块、异常消息洪泛检测模块以及管理员模块;
所述SBC通信模块用于畸形SIP消息检测模块与SBC之间的通信;
所述畸形SIP消息检测模块用于对SIP消息进行检测,检测出所有不满足RFC3261中规定的BNF范式定义的SIP消息;
所述异常呼叫检测模块用于检测所有的异常拨打;
所述异常消息洪泛检测模块用于实现SBC设备对传统DDoS洪泛攻击的防范;
所述管理员模块用于监控和管理畸形SIP消息检测模块,维护中心SIP安全规则库,通知畸形SIP消息检测模块更新本地SIP安全规则库,进行历史安全事件的统计分析,提供基于Web的管理员界面。
所述畸形SIP消息检测模块包括消息分发器、检测分发器和检测插件;
所述消息分发器用于将接收到的SIP消息分散到各个节点,各个节点同时处理SIP消息;
每个节点上均设有检测分发器和一组检测插件;
每个节点上的所述检测分发器用于将SIP消息分散到各个检测插件,每个检测插件对应SIP消息的一种畸形类型,每一条SIP消息要经过所有检测插件的检测;
所有检测插件能够同时读取一条SIP消息,并进行检测。
所述***进一步包括:
安全事件代理:用于将SIP畸形攻击事件记录在数据库中;
安全规则更新代理:用于在出现新的SIP畸形时,制定出对应的检测规则来更新规则库;
节点管理代理:在Mapreduce时对各个节点进行管理。
与现有技术相比,本发明的有益效果是:本发明通过在SBC中增加一个具有畸形SIP消息检测功能的模块。该模块利用正则表达式和Python语言实现了基于该规则的畸形SIP消息检测插件,该插件能够支持多种畸形SIP消息的检测,旨在检测出所有不满足RFC3261中采用BNF范式定义的SIP消息,并尽可能小的降低检测时延,从而提升SBC设备的安全防护能力,保护IMS网络中的核心实体免受畸形SIP消息的攻击,实现简单且实用。
附图说明
图1为本发明增加了畸形SIP消息检测模块的SBC转发SIP消息的流程图;
图2为本发明包含畸形SIP消息检测模块***总体架构图;
图3为本发明畸形SIP信令检测模块的设计图。
图4为本发明方法的步骤框图。
具体实施方式
下面结合附图对本发明作进一步详细描述:
一种面向SBC的畸形SIP消息检测的方法与***,在SBC中增加一个具有畸形SIP消息检测功能的模块。该模块旨在检测出所有不满足RFC3261中采用BNF范式定义的SIP消息,并尽可能小的降低检测时延,如图4所示,该方法包括:
A.SBC把接收到的SIP消息转发给畸形检测模块;
B.畸形检测模块根据写好的检测规则对SIP消息进行检测;
C.畸形检测模块根据检测的结果做出下一步的动作,如果检测出来是正常的SIP消息,畸形检测模块给SBC返回一个正常的信号并且把SIP消息也返回,如果检测结果是畸形消息,畸形检测模块则直接过滤掉SIP消息并且给SBC返回一个SIP消息是畸形的消息;
D.SBC根据畸形检测模块检测结果采取不同的策略与IMS核心网络通信,如果SIP消息是畸形的,SBC就直接过滤掉,不转发给IMS核心网络,如果SIP消息是正常的就转发给IMS核心网。所述步骤D确定了SBC和IMS核心网的互联互通过程,具体是通过修改SBC的opensipstack协议栈与源码的方法实现了OpenSBC与0penIMSCore的互联互通(OpenSBC与OpenIMSCore原本是不能通信的,而要检测是否过滤掉畸形SIP消息的话是需要OpenIMSCore参与的,如果是正常的SIP消息,OpenIMSCore是能够收到的。)。
通过分析RFC3261、RFC4475以及现有畸形SIP消息,得到畸形SIP消息的构成方式;
所述SIP协议是应用层上的一个具有分层结构的信令控制协议。SIP的最底层是语法层和编码层,编码采用了增强的巴克斯范式(ABNF),ABNF是基于BNF的,但是ABNF由它自己的语法和推导规则构成;第二层是传输层,所有的SIP元素都包含传输层,它定义了网络上一个客户机如何发送请求和接收响应以及一个服务器如何接收请求和发送响应;第三层是事物层,事务是SIP的基本元素,一个事务是由客户机事务发送给服务器事务的请求(使用传输层),以及对应该请求的从服务器事务发送回客户机的所有响应组成。事务层之上的层称为事务用户(TU)。每个SIP实体,都是事务用户。
所述SIP消息可以分为两大类,分别是:由客户端发给服务器的请求消息(Request Messages)和由服务器发给客户端的应答消息(Response Messages)。
所述正常的SIP消息由三部分组成[2],即首行(start line),消息头(header)和正文(body)。首行的内容是有所区别的,区别的根据是该SIP消息是请求还是响应,若首行的内容是请求,则称为请求行;若首行的内容是响应,则称为状态行。如下所示:
首行包括请求行/状态行,其中请求的类别信息是在请求行中规定的,而请求的状态信息则是在状态行中指定的,例如有成功和失败两种状态。如果状态为失败,则还要给出失败的类型或原因。
头字段的消息首部给出了更多的信息,该信息主要是关于请求或应答的,一般主要包括消息的来源、规定的消息接收方,以及一些其他方面的重要信息。
所述的畸形SIP消息可以简单的理解为非正常SIP消息,既包括请求消息也包括应答消息。但是经过严格的推敲并精心构造出来的畸形SIP消息的检测能力远大于随机产生的畸形SIP消息。本发明所述的畸形SIP消息主要是指经过严格推敲并精心构造的畸形SIP消息。
按照原SIP消息的类型不同,可以将畸形SIP消息分为请求畸形SIP消息和响应畸形SIP消息两大类。在请求畸形SIP消息中又可以分为INVITE畸形SIP消息、REGISTER畸形SIP消息、BYE畸形SIP消息、CANCEL畸形SIP消息、OPTIONS畸形SIP消息以及ACK INVITE畸形SIP消息。
按照畸形SIP消息类型,可以将畸形SIP消息分成三大类:第一类为使SIP协议栈产生正常响应的畸形SIP消息;第二类为使SIP协议栈产生异常响应的畸形SIP消息;第三类为被SIP协议栈抛弃的畸形SIP消息。
按照对SIP协议不同层次的影响分类,则分为四类,第一类为对语法和编码层施加压力的畸形SIP消息;第二类为对传输层施加压力的畸形SIP消息;第三类为对事务层施加压力的畸形SIP消息;第四类为对事务用户层施加压力的畸形SIP消息。
最后,按照对SIP协议威胁效果程度,则又分为四大类,第一类为威胁IMS整个网络的畸形SIP消息;第二类为严重威胁IMS网络中单个功能实体的SIP协议栈的畸形SIP消息;第三类为威胁IMS网络中单个功能实体的SIP协议栈的畸形SIP消息;第四类为轻微威胁IMS网络中单个功能实体的SIP协议栈的畸形SIP消息。
IETF在设计SIP协议时,将设计的重点放在了协议的灵活性和易用性上,对于安全性则考虑的不多,这使得SIP协议很容易在网络上截取SIP消息的内容,从而造成了IMS网络加密不完善。同时,若威胁者发送大量的畸形SIP消息给IMS,IMS在解析这些数据包时,将会大量占用***资源,延迟或者阻碍合法的用户使用***提供的服务,对关键性和实时***造成影响,严重时甚至引起死机、重新启动以及拒绝服务等,这就造成了IMS具有畸形消息处理缺陷这一脆弱性。
本发明所述主要采用词法分析技术与语法分析技术对畸形SIP消息进行检测分析。
所述畸形SIP消息的词法分析(lexical analysis),是将字符序列转换为单词(Token)序列。这个过程是从输入的字符流当中生成单词的过程,并且在这个过程中词法分析器会对单词进行分类。这里又涉及到词法分析器的概念,词法分析器(Lexical analyzer,简称Lexer),也叫扫描器(Scanner),是进行词法分析的一段程序或一个函数,通常基于有限状态自动机。在词法分析的过程中,词法分析器并不关心单词之间的关系,比如词法分析器会将括号识别为单词但却并不保证括号是否是匹配的。从定义上而言,单词的定义通常会采用正则表达式,因此词法分析器的生成器一般都支持正则表达式。编译过程的第一个阶段也是基础阶段就是词法分析阶段。这个阶段的主要任务是扫描源程序的字符流,扫描过程是从左到右一个字符一个字符进行的,然后根据构词规则识别单词。
所述畸形SIP消息的语法分析是在词法分析的下一个阶段,根据某种给定的形式文法,对输入文本进行分析并确定其语法结构,而文本通常是由单词序列构成的。语法分析的输入是一个个的单词,它的主要作用是进行语法检查并构建相应的数据结构(一般是层次化的数据结构,如语法分析树、抽象语法树等)。与词法分析器不同的是,语法分析要考虑单词之间的关系。是否可以以及如何从语法的起始符号推导出输入符号串(输入文本)是语法分析器的主要任务,主要可以通过自顶向下分析与自底向上分析两种方式来完成。
根据对畸形SIP消息的检测原理的分析,所述畸形SIP消息包括两种检测规则:串行规则和并行规则。
串行规则主要涉及三个方面的检查,分别对消息长度检查,NULL空字符检查以及请求行/状态行格式检查。其中,在对消息长度进行检查时,要限定SIP消息的总长度,若总长度超过规定门限,则不需要进一步的畸形判断,认定该消息为畸形SIP消息。而NULL空字符在SIP协议当中是非法的字符,没有该字符所适用的地方,而且可能会影响字符串切割等操作。最后,对请求行/状态行格式的检查则只针对第一行进行检测,包括两个方面的检查。第一个方面首先检查第一行是否包含三部分;(无论是请求行还是状态行都是三部分,而且必须以SP分割)。第二个方面为第一行是请求行还是状态行的检查,通过匹配第一部分是否为″SIP/2.0″来判断(不区分大小写)。对于状态行,检查状态码是否合法;对于请求行,检查请求方法是否是规定的(注意,已有请求方法必须是大写形式),以及检查第二部分和第三部分是否合法。
并行规则检测方法可以按照任意的方式进行组合,以下的每个部分是相互独立的,但是每个部分内部的顺序可能存在先后关系。并行规则主要涉及以下几个方面的检查:SIP通用字段检查、SIP特殊字段处理、SDP处理、通用畸形检测、一致性检查。
所述畸形消息检测模块的核心是检测规则的设计,除此之外,还包括:异常呼叫检测;检测***管理;事件统计分析。
所述步骤B中测试畸形消息构造规则包括:对语法层施加压力的畸形SIP消息设计;对事务层语义施加压力的畸形SIP消息设计;对事务用户层施加压力的畸形SIP消息设计。
对语法层施加压力的畸形SIP消息设计方法包括:针对行折叠规则的畸形SIP消息;针对SIP URI设计的畸形SIP消息;针对From字段规则的畸形SIP消息;针对Via字段规则的畸形SIP消息;针对LWS规则的畸形SIP消息;针对头字段形式的畸形SIP消息;针对头字段排序的畸形SIP消息。
对事务层语义施加压力的畸形SIP消息设计方法包括:IP地址改为广播地址;单值头字段扩展为多个;
所述异常呼叫检测功能检测范围覆盖国际长途异常拨打,来电IP地址异常波动,呼叫频率异常波动,呼叫时段异常波动,被叫号码异常波动,响一下就断异常,会话不完整(总是进行会话前几步,但是缺后几步,如总发Invite,但不发ACK)等异常;
所述检测***管理功能对检测器的运行状态进行远程监控,能够远程修改检测参数(例如检测策略:default;fast;full),更新检测算法,更新检测规则库,开启或关闭全部或部分检测功能;
所述事件统计分析功能能够对SIP信令的历史数据进行统计,包括每个账号的常用IP、呼叫事件段、呼叫频率、被叫号码,从而为异常呼叫检测提供基准数据;能够对既往畸形信令进行统计,从而为加快后续畸形信令检测提供决策支持;能够按指定的时间段生成安全事件报告,从而展示SIP攻击的状况和变化趋势。
所述畸形SIP消息检测模块有两种部署方式(通过Manager模块可以控制,两种不同的实现方式通过按钮转换。),分别为监听模式和检测模式(监听模式对于接收到的SIP消息不做处理,直接转发;检测模式在收到SIP消息之后,会转给检测模块进行检测。)。当畸形SIP消息检测模块的部署方式为监听模式时,将连接至SBC的前置路由器,并通过“端口映射(即镜像)”的方式监听所有往来SBC的SIP消息(监听要开启网卡的混杂模式。)。当畸形SIP消息检测模块以检测模式部署时,SBC在接收到新消息时,不做任何处理,直接转发给检测模块(指图2中包含很多检测插件的整体。),并启动定时器T;然后检测模块接收到来自SBC的消息,开始检测;在T超时前,又会分为两种情况,第一种情况是,若检测模块完成检测且发现异常,则检测模块向SBC发送响应消息指出异常;第二种情况是检测模块完成检测但并未发现异常,则检测模块向SBC发送响应消息指出未发现异常。若T超时,则检测模块不响应,SBC继续后继的处理。
所述SBC和畸形检测模块的互联互通的方法是通过在SBC通信模块,该模块增加了socket通信机制,提供畸形SIP消息检测模块与第三方软件进行通信的接口,即在SBC端增加一个通信接口,将其接收到的SIP消息转发给畸形检测模块。SBC上实现与畸形检测模块的通信,是通过在底层协议栈OpenSipStack中的SIPTransportManager.cxx的函数实现中增加socket通信机制来实现的。
图1为本发明增加了畸形SIP消息检测模块的SBC转发SIP消息的流程图,如图1所示,SIP信令在整个IMS网络中被处理的流程包括以下步骤:
SBC接收到来自客户端的SIP消息后,若是请求消息,则OpenSBC(开源的边缘会话控制器。)通过其通信接口将其转发给畸形SIP消息检测模块进行检测,检测插件的调用采用MapReduce架构实现了并行调用。
本步骤中,即需要实现SBC和畸形SIP消息检测模块的通信接口,把接收到的SIP消息转发给畸形SIP消息检测模块。具体的,主要是在SBC端增加了socket通信模块。
若检测结果为正常消息,即畸形SIP消息检测模块会返回RESULT:1,则SBC重定向到IMS网络真正的P-CSCF,从而将正常消息进行转发;
本步骤中需要调用畸形SIP消息检测模块,畸形SIP消息检测模块的处理过程在图2中详细介绍。
若检测结果为畸形消息,则畸形SIP消息检测模块会返回RESULT:0和相应的畸形信息,OpenSBC直接将畸形SIP消息丢弃。
图2为本发明包含畸形SIP消息检测模块***总体架构图(相当于在传统的SBC的基础上加上畸形SIP消息检测模块。),如图2所示,完整的***架构主要包括五个模块:SBC通信模块、畸形信令检测模块、异常呼叫检测模块、异常消息洪泛检测模块以及Manager模块(即管理员模块)。
所述SBC通信模块为该畸形SIP消息检测模块与第三方软件的通信途径,充当P-CSCF,接收来自SBC的SIP信令,如果SIP信令合法,则通过重定向(302)(一个回复码,通过这个数字我们可以知道SBC的处理结果,本质是内容和数字做了一个映射。)将SIP信令转给真实P-CSCF;如果SIP信令非法,则通过401(一个回复码,通过这个数字可以知道SBC的处理结果,本质是内容和数字做了一个映射。)响应通知SBC。该接口不仅能够对畸形SIP消息及时报警,还能对其进行拦截。主要方法有两种,伪P方式和接口方式(是SBC在整个IMS核心网拓扑结构中的位置,伪P方式是指充当P-CSCF,它是核心网的一个组成部分,接口方式指SBC做它自己。)。
所述畸形信令检测模块主要根据字符串匹配规则以及使用MapReduce并行架构(一个插件对应一种畸形类型,每一条SIP消息都要经过所有插件的检测,并行性体现在多个插件可以同时读取一条消息,并进行检测。),旨在检测出所有不满足RFC3261中规定的BNF范式定义的SIP消息,返回结果同样为消息类型,此处定义为响应消息,响应消息包含检测结果信息和详细的说明信息。检测范围覆盖全部SIP Method,全部SIP必选可选字段及其参数,全部SDP字段及其参数,全部已知的畸形类别。
所述异常呼叫检测模块主要检测所有的异常拨打,比如来电IP地址异常波动,呼叫频率异常波动,呼叫时段异常波动,被叫号码异常波动,响一下就断异常,会话不完整(总是进行会话前几步,但是缺后几步,如总发Invite,但不发ACK)等异常。
所述SIP洪泛检测模块主要体现在SBC设备对传统的DDoS洪泛攻击的防范,主要体现在对同一IP地址的网络流量的限制,对于洪泛攻击检测而言,实时性是其中一个重要的方面。
所述Manager模块的主要功能为监控和管理各个插件的运行状态,维护中心SIP安全规则库,通知畸形信令监测模块更新本地SIP安全规则库,历史安全事件的统计分析,提供基于Web的管理员界面。其能够对检测器的运行状态进行远程监控,能够远程修改检测参数(例如检测策略:default;fast;full),更新检测算法,更新检测规则库,开启或关闭全部或部分检测功能。
图2中的安全事件代理是指将SIP畸形攻击事件记录在数据库中,安全规则更新代理是指出现新的SIP畸形时,制定出对应的检测规则来更新规则库,节点管理代理是在Mapreduce时对各个处理节点进行管理。
所述畸形SIP消息检测模块数据库的统计部分,为了保存畸形消息的详情以及查看畸形消息的历史记录,畸形SIP消息检测模块在数据库设计的部分提供了一个基础表,记录所有的畸形消息。基于基础表,可做后续基本大多数的统计;但随着数据量的增多,统计效率会下降,所以不能只单纯依靠基础表做所有的统计查询。因此,在该数据库设计部分设计了更细化的统计分析脚本,以便对历史日志信息进行离线分析,并将统计结果直接储存进历史统计表。对于过去的数据统计,便直接查询历史统计表,而不经过基础表。而更实时的数据,则在基础表较历史统计表更实时的情况下直接基于基础表进行查询。
基础表abnormal_message的表结构如表4-1所示:
表4-1
畸形类型表error_type主要用于记录每种畸形消息的详细信息。表结构如表4-2所示:
表4-2
消息检测结果表message_error则用来记录每条消息与畸形类型的关系。表结构如表4-3所示:
表4-3
历史统计表total_num_stat用于记录各天各时段的消息总数,主要供离线分析使用。所谓离线分析,即通过统计脚本去分析历史的日志信息,写进历史统计表。历史统计表的表结构如表4-4所示:
表4-4
图3为本发明畸形SIP信令检测模块的设计图,检测模块包含多个检测插件,畸形检测的工作实际是由检测插件完成的,如图3所示,畸形SIP信令检测模块的功能设计实现如下:
消息层的并行性是通过将接收到的SIP消息分散到各个节点,然后由各个节点同时处理这些消息来实现并行性的;检测层的并行性是指多个检测插件同时读取SIP消息,并进行检测,来实现并行性的。
首先所述畸形SIP消息检测模块数据库的实现,即MalSIPDB类的主要成员变量与函数。其中成员变量MYSQL为数据库操作类,成员变量db定义了和数据库相关的参数,operator用于配置数据库参数。
MalSIPDB类的主要成员函数包括:
bool connect_database(Mysql mysql,DBInfo dbinfo)
功能:建立和畸形SIP消息数据库的连接。
参数:mysql:负责访问畸形SIP消息数据库的底层调用;
Dbinfo:提供建立数据库所需要的信息。
返回值:连接建立是否成功。
void disconnect_database(Mysql mysql)
功能:拆除和数据库的连接。
参数:mysql:负责访问畸形SIP消息数据库的底层调用。
bool getMsgID(SipMsg msg,vector<string>&msgID)
功能:根据msg获得消息的id,并保存在msgID中。
参数:msg:当前SIP消息;
msgID:用于保存畸形SIP消息的编号。
返回值:0:成功;1:失败。
bool getDetectID(SipMsg msg,ector<string>&detecID)
功能:根据msg获得消息的id,并保存在msgID中。
参数:msg:当前SIP消息;
detectID:用于保存检测模块的编号。
返回值:0:成功;1:失败。
bool getMalType(SipMsg msg,vector<MalType>&malType)
功能:根据细分字段msg获得该细分字段对应的所有畸形类型,并保存在向量malType中。
参数:msg:当前SIP消息;
malType:当前畸形SIP消息的畸形类型。
返回值:0:成功;1:失败。
bool getScriptID(MalType malType,vector<string>&scriptID)
功能:根据畸形类型信息获得检测脚本的id,并保存在scriptID中。
参数:malType:当前畸形SIP消息的畸形类型;
scriptID:用于保存检测脚本的编号。
返回值:0:成功;1:失败。
void print_result(MYSQL_RES*result);
功能:打印操作结果。
参数:result:MYSQL中的结果类。
通常情况下,鉴于SBC设备具备强大的处理能力,单条畸形SIP消息只能够导致非常轻微的SBC设备处理异常,而不被察觉。但是将畸形SIP消息和DDoS洪泛攻击加以结合后,产生的畸形SIP消息洪泛攻击能够在短时间内发送大量的畸形SIP消息,这将彻底触发SBC设备的异常,甚至导致SBC设备的崩溃。为了提高洪泛畸形SIP消息检测的性能,该模块在实现畸形SIP消息的过程中采用了MapReduce技术。
MapReduce架构主要是用于实现大规模数据集(通常大于1TB)的并行运算。概念“Map”和“Reduce(化简)”,及他们的主要思想,都是从函数式编程语言借来的,还有从矢量编程语言借来的特性。在使用时,将当前的软件实现指定为一个Map(映射)函数,把一组键值对映射成一组新的键值树,进而指定并发的Reduce(化简)函数,保证所有映射的键值对中的每一个都能共享相同的键组。
简单说来,一个映射函数就是对一些独立元素组成的概念上的列表的每一个元素进行指定的操作。事实上,每个元素都是被独立操作的,而原始列表没有被更改。这就是说,Map操作是可以高度并行的,对于高性能要求的应用以及并行计算领域的需求而言,这一点是非常有用的。化简操作则指的是对一个列表的元素进行适当的合并。虽然它没有映射函数那么好的并行性,但是由于化简总会有一个简单的答案,且大规模的运算是相对独立的,所以化简函数在高度并行环境下也是非常有用的。
MapReduce可靠性是通过把对数据集的大规模操作分发给网络上的每个节点来实现的;已经完成的工作和状态的更新会由每个节点周期性的报告回来。MapReduce会设置一个预设的时间间隔,如果一个节点保持沉默超过了这个时间间隔,主节点会将这个节点记录为死亡,并把分配给这个节点的数据发到别的节点上。为确保不会发生并行线程间的冲突,每个操作使用命名文件的不可分割操作;当修改文件名的时候,***可能会把他们复制到任务名以外的另一个名字上去。化简操作工作方式与此非常类似,但是由于化简操作的并行能力较差,主节点会尽量把化简操作调度在一个节点上,或者调度到离需要操作的数据尽可能近的节点上。
具体实施MapReduce时,将接收到的大流量的SIP消息分成一小份一小份的,然后分配到各个节点上,每一个节点上的检测插件都是全套的。
SBC设备接收到SIP消息后,将其转发给消息分发器,消息分发器的主要功能有消息长度检测,NULL空字符检测,请求行/状态行检测即判断是否为SIP消息;若为SIP消息将返回true,否则返回false并将此消息过滤。然后消息分发器将接收到的SIP消息进一步转发给检测分发器,检测分发器会调用相应的检测插件,主要检测以下几个方面:SIP通用字段检测、SIP特殊字段检测(针对特定请求/响应的消息)、SDP字段检测、畸形检测、一致性检查,从而确定该消息是否为畸形SIP消息;若是,该模块(是指检测模块?)将返回1,否则返回0并给出相应的畸形信息。检测过程会记录到日志当中。
由于网络环境的复杂性以及用户攻击的不可预知性,畸形SIP消息的类型不会是一层不变的(一个检测插件对应一个SIP消息类型)。使用插件技术增强了模块的可扩展性,如果有新增的畸形SIP消息,只需在模块中增加此畸形SIP消息的插件即可;如果现有插件已不满足模块的要求,则将此插件删除即可,而不影响模块的总体结构。
插件的编写是根据RFC3261中定义的SIP消息的BNF范式,编写正则表达式实现的。比如,请求行的匹配规则为:
^\s*(INVITE|SUBSCRIBE|OPTIONS|CANCEL|ACK|REGISTER)\s+((((\d{1,3}[.]){3,3}\d{1,3}(\:\d{1,5})))|((sip:){1}\s*\w+(\w+[.])+\w+)|((sip:){1}\s*(\w+[.])+\w))\s+(SIP[/]\d[.]\d)\s*
则REGISTER sip:userproxy.comSIP/1.0为正确的SIP消息请求行,而REGISTER sip:user-proxy.comSIP/1.0则为错误的SIP消息请求行,该SIP消息就为畸形SIP消息。同理,本发明设计了其他的匹配规则(比如,Authorization,CSeq,From,To,Via等等)。本发明认为只要不满足RFC3261中定义的BNF范式的SIP消息就是畸形SIP消息。
检测插件的实现主要是RegMatcher类。其中,成员变量map为字符串与匹配模式的映射集,成员变量emptyStringArray用于存放匹配的结果集。
RegMatcher类的主要成员函数包括:
static String[]match(String text,String reg)
功能:测试输入消息是否符合正则表达式。
参数:text:输入消息的文本;
reg:用于匹配的正则表达式。
返回值:若匹配成功,返回字符串RESULT:1;否则返回RESULT:0,并给出相应的畸形信息。
本发明公开了一种面向SBC的畸形SIP消息检测的方法,在SBC中增加一个具有畸形SIP消息检测功能的模块。该模块旨在检测出所有不满足RFC3261中采用BNF范式定义的SIP消息,并尽可能小的降低检测时延,从而提升SBC设备的安全防护能力,保护IMS网络中的核心实体免受畸形SIP消息的攻击。本方法提出了适用于畸形SIP消息检测的并行与串行规则;利用正则表达式和Python语言实现了基于该规则的畸形SIP消息检测插件,该插件能够支持多种畸形SIP消息的检测;畸形SIP消息的检测过程采用了MapReduce技术,以提高洪泛畸形SIP消息检测的性能;设计和实现了SBC与P-CSCF的通信接口,从而不仅能够对畸形SIP消息攻击及时报警,还能对其进行拦截。本发明技术方案实现简单且实用。
上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
Claims (10)
1.一种面向SBC的畸形SIP消息检测的方法,其特征在于:所述方法包括:
101,为SBC增加一个畸形SIP消息检测模块,建立畸形SIP消息数据库;
102,SBC把接收到的SIP消息转发给畸形SIP消息检测模块,畸形SIP消息检测模块对所述SIP消息进行检测;
103,畸形SIP消息检测模块根据检测的结果给SBC回复消息;
104,SBC根据畸形SIP消息检测模块返回的消息与IMS核心网进行通信。
2.根据权利要求1所述的面向SBC的畸形SIP消息检测的方法,其特征在于:为SBC增加一个畸形SIP消息检测模块是这样实现的:
在SBC端增加一个socket通信模块,将其接收到的SIP消息转发给畸形SIP消息检测模块。
3.根据权利要求2所述的面向SBC的畸形SIP消息检测的方法,其特征在于:所述畸形SIP消息检测模块的部署模式包括:监听模式和检测模式;
当畸形SIP消息检测模块的部署模式为监听模式时,其连接至SBC的前置路由器,并通过端口映射的方式监听所有往来SBC的SIP消息,对于接收到的SIP消息进行直接转发;
当畸形SIP消息检测模块的部署模式为检测模式时,SBC在接收到新消息时,直接转发给畸形SIP消息检测模块,并启动定时器T;然后畸形SIP消息检测模块接收来自SBC的消息,开始检测;在T超时前,如果畸形SIP消息检测模块完成检测且发现异常,则向SBC发送响应消息指出异常,如果检测模块完成检测但并未发现异常,则向SBC发送响应消息指出未发现异常;若T超时,则畸形SIP消息检测模块不响应,SBC继续后继的处理。
4.根据权利要求3所述的面向SBC的畸形SIP消息检测的方法,其特征在于:所述步骤101中,是根据RFC3261中采用的BNF范式定义的SIP消息格式建立畸形SIP消息数据库。
5.根据权利要求4所述的面向SBC的畸形SIP消息检测的方法,其特征在于:所述步骤102中的畸形SIP消息检测模块对所述SIP消息进行检测是这样实现的:
判断所述SIP消息是否为RFC3261中采用的BNF范式定义的SIP消息,如果是,则检测结果为正常的SIP消息;如果否,则检测结果为畸形消息,然后直接过滤掉该SIP消息;
所述判断所述SIP消息是否为RFC3261中采用的BNF范式定义的SIP消息是采用词法分析技术与语法分析技术对SIP消息进行检测分析来实现的。
6.根据权利要求1所述的面向SBC的畸形SIP消息检测的方法,其特征在于:所述步骤103是这样实现的:
如果检测结果是正常的SIP消息,则畸形SIP消息检测模块给SBC返回一个正常的信号,并且把所述SIP消息一起返回给SBC;
如果检测结果是畸形消息,则畸形检测模块给SBC返回一个SIP消息是畸形的消息。
7.根据权利要求6所述的面向SBC的畸形SIP消息检测的方法,其特征在于:所述步骤104是这样实现的:
如果SBC收到的是正常的信号和所述SIP消息,则将所述SIP消息转发给IMS核心网;如果SBC收到的是SIP消息是畸形的消息,则不转发给IMS核心网。
8.一种实现权利要求1至7任一所述方法的***,其特征在于:所述***包括:SBC通信模块、畸形SIP消息检测模块、异常呼叫检测模块、异常消息洪泛检测模块以及管理员模块;
所述SBC通信模块用于畸形SIP消息检测模块与SBC之间的通信;
所述畸形SIP消息检测模块用于对SIP消息进行检测,检测出所有不满足RFC3261中规定的BNF范式定义的SIP消息;
所述异常呼叫检测模块用于检测所有的异常拨打;
所述异常消息洪泛检测模块用于实现SBC设备对传统DDoS洪泛攻击的防范;
所述管理员模块用于监控和管理畸形SIP消息检测模块,维护中心SIP安全规则库,通知畸形SIP消息检测模块更新本地SIP安全规则库,进行历史安全事件的统计分析,提供基于Web的管理员界面。
9.根据权利要求8所述的***,其特征在于:所述畸形SIP消息检测模块包括消息分发器、检测分发器和检测插件;
所述消息分发器用于将接收到的SIP消息分散到各个节点,各个节点同时处理SIP消息;
每个节点上均设有检测分发器和一组检测插件;
每个节点上的所述检测分发器用于将SIP消息分散到该节点中的各个检测插件,每个检测插件对应SIP消息的一种畸形类型,每一条SIP消息要经过所有检测插件的检测;
所有检测插件能够同时读取一条SIP消息,并进行检测。
10.根据权利要求9所述的***,其特征在于:所述***进一步包括:
安全事件代理:用于将SIP畸形攻击事件记录在数据库中;
安全规则更新代理:用于在出现新的SIP畸形时,制定出对应的检测规则来更新规则库;
节点管理代理:在Mapreduce时对各个节点进行管理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410648495.9A CN104378373A (zh) | 2014-11-14 | 2014-11-14 | 一种面向sbc的畸形sip消息检测的方法与*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410648495.9A CN104378373A (zh) | 2014-11-14 | 2014-11-14 | 一种面向sbc的畸形sip消息检测的方法与*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104378373A true CN104378373A (zh) | 2015-02-25 |
Family
ID=52557029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410648495.9A Pending CN104378373A (zh) | 2014-11-14 | 2014-11-14 | 一种面向sbc的畸形sip消息检测的方法与*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104378373A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106162733A (zh) * | 2015-04-21 | 2016-11-23 | ***通信集团河南有限公司 | 一种异常流量抑制方法及装置 |
CN107124427A (zh) * | 2017-05-31 | 2017-09-01 | 上海交通大学 | 一种VoLTE中SIP洪水攻击检测与预防方法 |
CN109471637A (zh) * | 2018-11-08 | 2019-03-15 | 西安电子科技大学 | 电路图的审查脚本调试方法 |
CN112243291A (zh) * | 2019-07-16 | 2021-01-19 | ***通信集团有限公司 | 通信业务处理方法、***、业务单元、终端和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758653A (zh) * | 2004-10-04 | 2006-04-12 | 阿尔卡特公司 | 电信网络中设定路由的方法、电信网络及安全和隧道设备 |
CN101009706A (zh) * | 2006-01-27 | 2007-08-01 | 日本电气株式会社 | 保护基于sip的应用的方法 |
CN101150455A (zh) * | 2007-10-11 | 2008-03-26 | 华为技术有限公司 | 基于初始会话协议的业务状态监听方法、装置及*** |
CN101321173A (zh) * | 2008-07-21 | 2008-12-10 | 华为技术有限公司 | 一种防止网络攻击的方法、***及装置 |
US20140248848A1 (en) * | 2013-03-01 | 2014-09-04 | T-Mobile Usa, Inc. | Systems and methods for emergency call route failover |
-
2014
- 2014-11-14 CN CN201410648495.9A patent/CN104378373A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1758653A (zh) * | 2004-10-04 | 2006-04-12 | 阿尔卡特公司 | 电信网络中设定路由的方法、电信网络及安全和隧道设备 |
CN101009706A (zh) * | 2006-01-27 | 2007-08-01 | 日本电气株式会社 | 保护基于sip的应用的方法 |
CN101150455A (zh) * | 2007-10-11 | 2008-03-26 | 华为技术有限公司 | 基于初始会话协议的业务状态监听方法、装置及*** |
CN101321173A (zh) * | 2008-07-21 | 2008-12-10 | 华为技术有限公司 | 一种防止网络攻击的方法、***及装置 |
US20140248848A1 (en) * | 2013-03-01 | 2014-09-04 | T-Mobile Usa, Inc. | Systems and methods for emergency call route failover |
Non-Patent Citations (1)
Title |
---|
李辉: "面向IMS的SBC畸形SIP消息检测模块的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106162733A (zh) * | 2015-04-21 | 2016-11-23 | ***通信集团河南有限公司 | 一种异常流量抑制方法及装置 |
CN106162733B (zh) * | 2015-04-21 | 2019-05-10 | ***通信集团河南有限公司 | 一种异常流量抑制方法及装置 |
CN107124427A (zh) * | 2017-05-31 | 2017-09-01 | 上海交通大学 | 一种VoLTE中SIP洪水攻击检测与预防方法 |
CN107124427B (zh) * | 2017-05-31 | 2020-08-25 | 上海交通大学 | 一种VoLTE中SIP洪水攻击检测与预防方法 |
CN109471637A (zh) * | 2018-11-08 | 2019-03-15 | 西安电子科技大学 | 电路图的审查脚本调试方法 |
CN109471637B (zh) * | 2018-11-08 | 2021-07-06 | 西安电子科技大学 | 电路图的审查脚本调试方法 |
CN112243291A (zh) * | 2019-07-16 | 2021-01-19 | ***通信集团有限公司 | 通信业务处理方法、***、业务单元、终端和存储介质 |
CN112243291B (zh) * | 2019-07-16 | 2024-02-23 | ***通信集团有限公司 | 通信业务处理方法、***、业务单元、终端和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8605715B2 (en) | System and method for detecting vulnerabilities in voice over IP networks | |
US9531782B2 (en) | Dynamic management of collaboration sessions using real-time text analytics | |
US8730946B2 (en) | System and method to precisely learn and abstract the positive flow behavior of a unified communication (UC) application and endpoints | |
EP2067348B1 (en) | Process for scalable conversation recording | |
CN109450841B (zh) | 一种基于云+端设备按需联动模式的抗大规模DDoS攻击的防御方法 | |
US20080025221A1 (en) | Methods, systems, and computer program products for a hierarchical, redundant OAM&P architecture for use in an IP multimedia subsystem (IMS) network | |
KR20090102620A (ko) | Sip 생존가능 구성에서 sip 메시지를 이용한 페일오버/페일백 트리거 | |
CN104378373A (zh) | 一种面向sbc的畸形sip消息检测的方法与*** | |
WO2011087568A2 (en) | Legal intercept | |
US20140032773A1 (en) | Run-time actionable information exchange system in a secure environment | |
US20150095420A1 (en) | System and method to identify secure media streams to conference watchers in sip messaging | |
CN101365014B (zh) | 一种分布式自适应监听***及其生成和监听控制方法 | |
CN105516176A (zh) | 一种呼叫中心***及其通信连接方法和装置 | |
CN103973913B (zh) | 一种ngn下实现宽带业务功能的方法及业务平台 | |
CN101742011B (zh) | 一种跨网络电话域的合法监听方法和*** | |
US20080318556A1 (en) | Ip based lawful interception on legacy equipment | |
CN109347792B (zh) | 一种基于云+端设备持续联动模式的抗大规模DDoS攻击防御***及防御方法 | |
US9430279B2 (en) | System and method for dynamic influencing of sequence vector by sequenced applications | |
KR101287588B1 (ko) | 에스아이피 기반 인터넷 전화 서비스의 보안 시스템 | |
García‐Dorado et al. | Low‐cost and high‐performance: VoIP monitoring and full‐data retention at multi‐Gb/s rates using commodity hardware | |
Abdelnur et al. | VoIP security assessment: methods and tools | |
CN100561951C (zh) | 对ip多媒体子***公共业务进行合法监听的方法和*** | |
Park et al. | A security evaluation of IMS deployments | |
CN114679432B (zh) | 一种有害电话防范设备和方法 | |
Yang et al. | Implementation and performance of VoIP interception based on SIP session border controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150225 |