CN103516703A - 一种数据报文检测方法和设备 - Google Patents

一种数据报文检测方法和设备 Download PDF

Info

Publication number
CN103516703A
CN103516703A CN201210227005.9A CN201210227005A CN103516703A CN 103516703 A CN103516703 A CN 103516703A CN 201210227005 A CN201210227005 A CN 201210227005A CN 103516703 A CN103516703 A CN 103516703A
Authority
CN
China
Prior art keywords
data message
agreement
time series
pattern
series pattern
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
Application number
CN201210227005.9A
Other languages
English (en)
Inventor
唐文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens AG
Original Assignee
Siemens AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to CN201210227005.9A priority Critical patent/CN103516703A/zh
Publication of CN103516703A publication Critical patent/CN103516703A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种数据报文检测方法和设备,该方法包括:接收一协议的数据报文;将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配,以确定所述数据报文是否是合法数据报文。本发明能够检测滥用合法数据报文的网络攻击,提高了网络通信的安全性。

Description

一种数据报文检测方法和设备
技术领域
本发明涉及一种数据报文检测方法和设备。
背景技术
深度报文检测(DPI)技术是在网络中使用的一种数据报文检测机制,其利用实际的数据报文有效载荷探测协议一致性、病毒、垃圾邮件、入侵或预定准则,以确定对数据报文进行何种处理。DPI将传统防火墙的过滤或检测从传输控制协议(TCP)/因特网协议(IP)层扩展到应用层,并且能够检测通信流量中的所有数据报文。DPI能够基于从数据报文的数据有效载荷中提取的语法模式对流量进行识别并分类,与传统防火墙中使用的仅基于数据报文头的分类相比,能够实现更精细的控制。因此,DPI可以用于防止缓冲区溢出攻击、拒绝服务(DoS)攻击、封装在单个数据报文内的病毒和蠕虫入侵。利用DPI分类后的数据报文可以被重定向、针对服务质量进行标记/打标签、阻止、限速并载入日志,以进行进一步的分析。由于能够实现高级网络管理、用户服务和安全性功能以及内部数据挖掘等,因此DPI技术目前广泛应用于企业、工业、网络服务提供商和政府等。
DPI技术的核心在于模式匹配,即基于描述合法流量的特征的模式(正模式)或描述攻击流量的特征的模式(反模式)来进行网络流量的检测。目前的DPI解决方案仅检测被检测协议的数据报文的语法特征,例如,公开号为US2008/0101371A1的美国专利申请中,利用正则表达式定义协议的语法模式(正模式或反模式),然后对数据报文的语法特征进行匹配。
但是,目前仅对数据报文的语法特征进行的匹配仅能够防止利用非法格式数据报文的网络攻击,而无法探测并防止滥用合法格式数据报文的网络攻击,例如重放攻击。
发明内容
因此,本发明提供一种数据报文检测方法和设备,能够检测滥用合法格式数据报文的网络攻击,提高了网络通信的安全性。
根据本发明实施例的一方面,提供一种数据报文检测方法,包括:接收一协议的数据报文;将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配,以确定所述数据报文是否是合法数据报文。
根据本发明实施例的另一方面,提供一种数据报文检测设备,包括:接收模块和匹配引擎,所述接收模块用于接收一协议的数据报文,将所述数据报文转发给所述匹配引擎;所述匹配引擎用于接收所述接收模块转发的数据报文,将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配,以确定所述数据报文是否是合法数据报文。
本发明实施例提供的数据报文检测方法和设备,针对协议和/或网络攻击的时序特征定义对应的时序模式,将数据报文与时序模式进行匹配以确定数据报文的合法性,从而能够检测并防护滥用合法数据报文的网络攻击,提高了网络通信的安全性。
本发明实施例提供的数据报文检测方法和设备可以对数据报文时序特征和语法特征同时进行检测,并且可以设定检测的先后顺序,从而根据实际情况最优地利用资源。
本发明实施例提供的数据报文检测方法和设备可以对多种协议的多个事务或会话的通信流量进行并行检测,从而提高数据报文检测的效率。
另外,本发明实施例提供的数据报文检测方法和设备利用脚本语言定义时序模式和语法模式,并将时序模式和语法模式作为特征文件进行管理,从而不需要为实现新特征和/或为支持新协议而重新设计、编码实现并重新部署数据报文检测设备,提高了数据报文检测设备的可扩展性。
附图说明
图1为根据本发明第一实施例的数据报文检测方法的流程图;
图2为根据本发明第一实施例的数据报文检测设备的结构图;
图3为根据本发明第二实施例的数据报文检测方法的流程图;
图4为根据本发明第二实施例的数据报文检测设备的结构图;
图5为一种示例性协议的状态转移图;
图6为根据本发明第三实施例的数据报文检测方法的流程图;以及
图7为根据本发明第四实施例的数据报文检测方法的流程图。
具体实施方式
下面结合附图对本发明的数据报文检测方法和设备进行详细说明。
图1为根据本发明实施例的数据报文检测方法的流程图。如图1所示,根据本发明第一实施例的数据报文检测方法包括以下步骤:
步骤102,接收一协议的数据报文。例如,可以从防火墙接收经防火墙过滤的数据报文。
步骤104,将数据报文与基于协议和/或网络攻击的时序特征预先定义的时序模式进行匹配,以确定其是否合法。
通常情况下,多数的协议都是有状态的协议,具有一定的时序特征。也就是说,某个协议的下一状态及对应的输出,不仅取决于当前输入的数据报文,还与协议当前所处的状态相关。协议的任一状态都可看作是从初始状态依次收到一组特定的数据报文后转移到的状态。因此,协议的规范不仅规定了什么样(语法格式)的报文是合法格式的报文,还规定了在什么状态下、或者在某个数据报文序列中收到什么样的数据报文才是合法的协议行为,这就是协议的时序特征。
在本发明的实施例中,基于时序特征定义的时序模式可以利用状态图可扩展标记语言(SCXML)、扩展的SCXML或统一建模语言(UML)等的脚本语言来描述。由于使用脚本语言来描述时序模式,而不是使用C、C++等语言,并利用特征文件对时序模式进行管理,因此不需要为实现新的时序模式和/或为支持新协议而重新设计数据报文检测设备,或者对数据报文检测设备进行重新编码。
具体来说,本步骤包括:获取协议的当前状态;然后通过判断数据报文是否是时序模式中描述的能够触发协议从当前状态发生转移的数据报文之一,来确定数据报文是否合法。
本发明实施例中的时序模式可以是基于协议的时序特征定义的正模式,或者基于网络攻击的时序特征定义的反模式,还可以是正模式和反模式的组合。在时序模式是正模式的情况下,如果判断数据报文是时序模式中描述的能够触发协议从当前状态发生转移的数据报文之一,则确定数据报文合法,并将协议的当前状态设置为数据报文触发协议发生转移的目标状态;否则确定数据报文不合法。在时序模式是反模式的情况下,如果判断数据报文是时序模式中描述的能够触发协议从当前状态发生转移的数据报文之一,则确定数据报文不合法,并将协议的当前状态设置为数据报文触发协议发生转移的目标状态;否则确定数据报文合法。在时序模式是正模式和反模式的组合的情况下,如果判断数据报文是时序模式中描述的能够触发协议从当前状态发生转移的数据报文之一,则确定时序模式是正模式还是反模式;如果是正模式,则确定数据报文合法,并将协议的当前状态设置为数据报文触发协议发生转移的目标状态;如果是反模式,则确定数据报文不合法。
本步骤可以利用由时序模式构成的协议行为有限自动机或时态逻辑,将数据报文与时序模式进行匹配,其中协议行为有限自动机可以是确定有限自动机(DFA),在某些并行协议的情况下也可以是不确定有限自动机(NFA)。
根据本发明第一实施例的数据报文检测方法,还可以在将数据报文与时序模式进行匹配之后进一步包括:将数据报文与基于协议和/或网络攻击的数据报文语法特征预先定义的语法模式进行匹配;或者还可以在将数据报文与时序模式进行匹配之前进一步包括:将数据报文与基于协议和/或网络攻击的数据报文语法特征预先定义的语法模式进行匹配。在通过与语法模式的匹配确定数据报文合法的情况下,再进行时序模式的匹配。与时序模式和语法模式相匹配的顺序没有具体限定,可以在实际应用中根据需要进行调整。
图2为根据本发明第一实施例的数据报文检测设备的结构图。如图2所示,根据本发明第一实施例的数据报文检测设备包括接收模块202和匹配引擎204。接收模块202用于接收一协议的数据报文,将其转发给匹配引擎204。匹配引擎204用于从接收模块202接收转发的数据报文,将其与基于协议和/或网络攻击的时序特征预先定义的时序模式进行匹配,以确定数据报文是否合法。
根据本发明第一实施例的数据报文检测设备还可以包括存储器,用于存储基于协议和/或网络攻击的时序特征预先定义的时序模式,例如,存储器中可以存储由时序模式构成的协议行为有限自动机或时态逻辑,匹配引擎204可以利用存储器中存储的协议行为有限自动机或时态逻辑,将数据报文与时序模式进行匹配。
另外,存储器还可以存储基于所述协议和/或网络攻击的数据报文语法特征预先定义的语法模式,匹配引擎204可以在将数据报文与时序模式进行匹配从而确定数据报文合法之后,再将数据报文与语法模式进行匹配;或者先将数据报文与语法模式进行匹配,从而确定数据报文合法之后,再将其与时序模式进行匹配。两中匹配的顺序没有具体限定,可以在实际应用中根据需要进行调整。
例如,存储器可以存储由语法模式构成的语法有限自动机,匹配引擎204利用语法有限自动机将数据报文与语法模式进行匹配。语法有限自动机可以是确定有限自动机,也可以是不确定有限自动机。
根据本发明第一实施例的数据报文检测设备还可以包括模式检测器,用于检查时序模式和语法模式的一致性。
实际应用中,接收模块202可以从防火墙接收分别对应于多种协议的数据报文,匹配引擎204也可以包括分别与多种协议相对应的多个匹配引擎。本实施例的数据报文检测设备还可以包括调度器,用于从接收模块接收数据报文,判断数据报文所使用的协议,并将数据报文转发至与其所使用的协议相对应的匹配引擎。
根据本发明第一实施例的数据报文检测方法和设备,利用基于协议和/或网络攻击的时序特征预先定义的时序模式,对数据报文的时序特征进行检测,以确定数据报文是否合法,从而可以检测那些滥用合法数据报文的网络攻击,提高了网络通信的安全性。
以下结合图3和图4描述本发明第二实施例的数据报文检测方法和设备。在本实施例中,对数据报文的语法特征和时序特征都进行检测,并且利用DFA将数据报文与时序模式和语法模式进行匹配。在本实施例的数据报文检测设备中包括存储器,以下描述中具体将该存储器划分为模式容器和DFA容器。
图3为根据本发明第二实施例的数据报文检测方法的流程图,图4为根据本发明第二实施例的数据报文检测设备400的结构图。如图4所示,本发明第二实施例的数据报文检测设备400包括模式检查器401、模式容器402、模式编译器403、DFA容器404、接收模块202、匹配引擎2041-204n、调度器406以及系统日志部件410。图4所示的数据报文检测设备可以通过软件、硬件或软硬件结合的方式实现。
参见图3,在步骤300中,基于协议和/或网络攻击的特征预先定义协议模式,包括分别基于协议和/或网络攻击的时序特征以及协议和/或网络攻击的数据报文语法特征预先定义时序模式和语法模式。
图5为一种示例性协议的状态转移图。该图描述了因特网安全关联和密钥管理协议(ISAKMP)的时序特征。这里,弧形框表示协议状态机的状态,箭头表示状态的转移方向,箭头上的内容表示触发状态发生转移的事件,即接收的数据报文。如图5所示,该协议的初始状态为init,当协议收到一个MainSAPropose报文后,根据此输入的数据报文及当前状态,即可按照协议的时序特征迁移到StartMainMode状态,紧接着输出回应报文MainSAReply,并迁移到PolicyExchange状态;如果协议在PolicyExchange状态收到一个KEPropose的报文,即按照协议的时序特征迁移到StartKE状态,输出KEReply,再迁移到KeyExchange状态,如此类推。也即在ISAKMP的主模式下,从初始的init状态到KeyExchange状态,收到和输出的数据报文的合法顺序依次为MainSAPropose、MainSAReply、KEPropose、KEReply,这就是协议的一个(合法的)时序特征。利用SCXML、扩展的SCXML或UML等的脚本语言将这样的时序特征描述出来,即定义了时序模式。
语法模式可以基于协议和/或网络攻击的数据报文语法特征,利用正则表达式、正则文法、巴科斯范式(BNF)、扩展的巴科斯范式(ABNF/EBNF)文法或基于可扩展标记语言(XML)的文法等来定义。另外,语法模式还可以基于对合法数据报文中某些域进行改变、替换或入侵的网络攻击的语法特征来定义。
由于优选使用脚本语言来定义协议的时序和语法模式,并将协议模式作为特征文件进行管理,因此不需要为实现新的和/或为支持新协议而重复设计数据报文检测设备,或者对数据报文检测设备进行重新编码。
本步骤中,协议模式可以是定义合法的协议行为(即,协议的时序特征)和协议数据报文语法特征的正模式,也可以是定义不合法的网络攻击行为(即网络攻击的时序特征)和网络攻击数据报文语法特征的反模式,或者也可以是这两种模式的组合。
如果所定义的协议模式是正模式,则在对数据报文进行检测时,与协议模式相匹配的数据报文确定为合法数据报文,否则确定为不合法的数据报文。如果所定义的协议模式是反模式,则在对数据报文进行检测时,与协议模式相匹配的数据报文确定为不合法的数据报文,否则确定为合法数据报文。如果所定义的协议模式既包括正模式也包括反模式,则在对数据报文进行检测时,与正模式相匹配的数据报文确定为合法数据报文,与反模式相匹配的数据报文确定为不合法的数据报文。对于与这两种模式都不匹配的数据报文,可以进行其它处理,例如转发到其它网络地址,等等。
步骤302,由模式检查器401对预先定义的协议模式(包括时序模式和语法模式)进行一致性检查,将通过一致性检查的协议模式存储在模式容器402中。
由于在协议模式中可能存在冲突(包括旧模式与新增加的模式之间的冲突),例如同一数据报文在不同的协议模式中既被定义为合法数据报文又被定义为不合法的数据报文,因此需要利用模式检查器来检查协议模式的一致性。在具体实施例中,模型检查(model checking)、定理证明(theorem proving)等技术可以用于模式检查器。例如,可以使用符号模型检测器(NuSMV)作为模式检查器401。
在本发明实施例的数据报文检测设备400启动时,步骤300中定义的协议模式可以被导入数据报文检测设备400的模式检查器401中。当模式检查器401检查到不同的协议模式出现冲突时,将冲突的协议模式提供给用户进行纠正,并将通过一致性检查的协议模式存储到模式容器200中。
在本实施例中,模式检查器401包括在数据报文检测设备400中,但在其它实施例中,模式检查器401也可以与数据报文检测设备400分开布置。
步骤304,由模式编译器403对模式容器402中存储的协议模式进行解析,由时序模式构成协议行为DFA,由语法模式构成语法DFA,将构成的DFA存储于DFA容器404中,用于后续的通信流量检测。
以下给出由ISAKMP协议时序模式构成协议行为DFA的示例,其中的时序模式基于图5所示的状态转移图利用扩展的SCXML定义。
Figure BDA00001833202700061
Figure BDA00001833202700071
Figure BDA00001833202700081
Figure BDA00001833202700091
这里,元素<state>定义图5的状态转移图中协议状态机的状态,元素<transition>定义从一个状态到另一状态的转移。<transition>的“event”属性是在状态转移期间发送和/或接收的数据报文。对于图5所示的协议状态机来说,数据报文是触发协议从一个状态到另一状态转移的事件,因此事件名称即是数据报文的名称。另外,一个数据报文的域可能与其它数据报文中的另一域相关,利用元素<data>表示协议状态机中使用的中间变量,并且由元素<assign>将数据报文的域中的数值赋给相应的中间变量,或者将中间变量的数值赋给数据报文中的相应域。元素<transition>的“type”属性表示所定义的时序模式是正模式还是反模式。
在该实施例中,仅给出正模式的示例,这表明该时序模式描述的是合法的时序特征。因此在将数据报文与该时序模式进行匹配时,匹配成功的数据报文是合法数据报文,任意不匹配该时序模式的数据报文都是不合法的数据报文。
也可以基于网络攻击的状态转移图定义相应的时序模式,则该时序模式为反模式,此时,可以通过将元素<transition>的“type”属性更改为“negative”来表示反模式。这意味着与该时序模式相匹配的数据报文是不合法的数据报文,任意与该时序模式不匹配的数据报文都可以认为是合法数据报文。
另外,如以上所述,可以在一个时序模式的文件中针对不同的模式定义正模式和反模式,以对数据报文进行进一步细分并进行相应的处理。
以下给出由基于一个数据报文的语法格式定义的语法模式构成语法DFA的示例,其中语法模式利用正则表达式XML<RegeXML)定义。
Figure BDA00001833202700092
Figure BDA00001833202700101
这里,元素<expression>定义了表示对应语法模式的正则表达式。元素<group>则用于定义正则表达式的短语,短语之间可以由“or”或“and”的选择关系组成更复杂的短语,乃至构成整个表达式。元素<match>表示可以确定当前模式短语匹配与否的终端符号,其“conclude”属性表示该语法模式是正模式还是反模式。
在该实施例中,仅给出正模式的示例,这表明上述语法模式描述的是合法数据报文的语法模式。因此在将数据报文与该语法模式进行匹配时,匹配成功的数据报文是合法数据报文,任意不匹配该语法模式的数据报文都是不合法的数据报文。
也可以基于网络攻击的数据报文语法特征定义相应的语法模式,则该语法模式为反模式,此时,通过将元素<match>的“conclude”属性更改为“negative”来定义反模式。这意味着与该语法模式相匹配的数据报文是不合法的数据报文,任意与该语法模式不匹配的数据报文都可以认为是合法数据报文。
另外,如以上所述,还可以同时定义正模式和反模式,以对数据报文进行进一步细分并进行相应的处理。
此外,利用SCXML定义的时序模式中,通过元素<transition>的“event”属性,与利用RegeXML定义的语法模式相关联。例如,时序模式中元素<transition>的“event”属性内容与由相应数据报文对应的语法模式构成的语法DFA名称相同,都是该数据报文的名称。或者,“event”属性内容也可以为指向对应数据报文的语法DFA的文件连接、超链接等。
通常,针对每种协议有一个协议行为DFA和个数与协议行为DFA中描述的数据报文的数目相对应的语法DFA。在上述具体实施例中,每种协议都有一个SCXML文件和个数与SCXML文件中描述的数据报文的数目相对应的RegeXML文件。
步骤306,接收数据报文。
本实施例中,由接收模块202从设置在数据报文检测设备400边界的防火墙408接收数据报文,并将其转发给调度器406。
防火墙408根据防火墙过滤规则检测所接收的数据报文的IP和TCP头,将允许通过的数据报文转向本发明实施例的数据报文检测设备400。
步骤308,由调度器406判断所接收的数据报文使用的协议,并将数据报文转发给与数据报文所使用的协议相对应的匹配引擎2041-204n。
由于多数情况下存在多种类型的待检测的协议流量,因此本实施例利用并行处理,即利用多个匹配引擎,每个独立的匹配引擎针对一种类型的协议执行协议模式匹配,以判断相应的数据报文是否合法。因此,在接收数据报文之后,调度器406可首先根据数据报文中的TCP端口号,判断该数据报文所使用的协议,并检测对应的匹配引擎是否已被启动,如果还没有启动,则为该协议启动一个独立的匹配引擎以加载对应的DFA。之后,调度器406继续将不同协议的数据报文分发到不同的匹配引擎。
在本实施例中,调度器406包括在数据报文检测设备400中,但在其它实施例中,调度器406也可以与数据报文检测设备400分开布置。
步骤310,由匹配引擎2041-204n利用语法DFA将数据报文与预先定义的语法模式进行匹配,以确定数据报文是否合法。本步骤的具体匹配过程属于现有技术,在此不再赘述。
步骤312,如果步骤310确定所接收的数据报文为合法数据报文,则执行步骤314,否则执行步骤320,直接丢弃数据报文,或者将结果发送回调度器406,由调度器406命令防火墙408丢弃数据报文。
步骤314,利用协议行为DFA将数据报文与预先定义的时序模式进行匹配,以确定数据报文是否合法。
步骤316,如果在步骤314利用协议行为DFA确定所接收的数据报文为合法数据报文,则执行步骤318,将结果发送回调度器406,由调度器406命令防火墙408输出该数据报文作为输出流量,以进行后续处理。另一方面,如果在步骤314利用协议行为DFA确定所接收的数据报文不是合法数据报文,则执行步骤320,直接丢弃数据报文,或者将结果发送回调度器406,由调度器406命令防火墙408丢弃数据报文。然后,重复执行步骤306-步骤318,以对后续数据报文进行数据报文检测。
可替代地,在确定所接收的数据报文不合法的情况下,也可以转发不合法的数据报文同时发出告警。
由于一种协议也可以有多个事务,因此匹配引擎还对来自多个事务的多个数据报文进行检测,例如同时利用多进程或多线程对多个事务进行控制。
在以上所述的本发明第二实施例中,步骤310在步骤314之前执行。然而,在本发明的其它实施例中,步骤314也可以在步骤310之前执行。具体的执行顺序可以根据实际情况而设定。例如,如果需要防御的网络攻击大多数使用的是不合法的数据报文,则可以设定先执行步骤310再执行步骤314。如果需要防御的网络攻击使用了合法数据报文,则可以设定先执行步骤314再执行步骤310。以这样的设定方式减小数据报文检测时的资源占用,并加快数据报文检测的速度,提高检测效率。
另外,上述方法还可以包括将调度器406和匹配引擎的行为报告给系统日志部件410,并由系统日志部件410将对应的系统日志发送至系统日志服务器412。
以下描述根据本发明第三实施例的数据报文检测方法,本实施例的数据报文检测方法包括第二实施例中的步骤300-304以及图6所示的步骤,在此仅描述与第二实施例的不同之处,即图6所示的内容;对于与第二实施例相同的内容,即步骤300-304,不再赘述。
图6为根据本发明第三实施例的数据报文检测方法的流程图,该图描述了在所定义的协议模式是正模式的情况下利用DFA检测数据报文是否合法的具体流程。如图6所示,在步骤300所定义的协议模式是正模式的情况下,本实施例的数据报文检测方法包括以下步骤:
步骤600,调度器启动某协议的匹配引擎以加载并初始化该协议的协议行为DFA和语法DFA,由匹配引擎将协议行为DFA的初始状态设置为当前状态。
步骤602,当调度器接收到上述协议的一个数据报文时,从数据报文的字段中获得该数据报文的类型,将该数据报文转发给对应的匹配引擎,并将数据报文的类型通知匹配引擎。
步骤604,匹配引擎利用与该类型数据报文相关联的语法DFA对该数据报文的语法格式进行合法性检测。本步骤的具体检测过程属于现有技术,在此不再赘述。如果在步骤600中不加载语法DFA,则可以在本步骤中对数据报文的语法格式进行合法性检查之前进行加载。
步骤606,如果确定该数据报文是合法格式的数据报文,则执行步骤608,否则执行步骤616将该数据报文丢弃,并返回步骤602等待下一个数据报文。
步骤608,匹配引擎检查该数据报文是否是可以触发协议行为DFA从当前状态发生转移的数据报文。
步骤610,如果发现所接收的数据报文是可以触发协议行为DFA从当前状态发生转移的数据报文之一,则确定该数据报文是按照协议的时序特征规定的合法数据报文,执行步骤612,否则确定该数据报文为不合法的数据报文,执行步骤616将其丢弃,并返回步骤602等待下一个数据报文。
步骤612,如果步骤610确定所接收的数据报文为合法数据报文,则匹配引擎将协议行为DFA的当前状态修改为该数据报文触发协议行为DFA发生转移的目标状态,完成一次状态转移。
步骤614,通知调度器正常转发该数据报文,并返回步骤602等待下一个数据报文。
以步骤304生成的协议行为DFA是图5所描述的协议状态图为例,调度器启动ISAKMP的匹配引擎以加载并初始化ISAKMP的协议行为DFA和语法DFA,匹配引擎将协议行为DFA的当前状态设置为init。当ISAKMP的一方发送一个MainSAPropose报文给另一方,调度器接收该报文后,从报文中获得对应的报文类型,将该报文转发给对应的匹配引擎,并将报文的类型通知匹配引擎。匹配引擎利用与该类型报文相关联的语法DFA先对其语法格式进行检测,如为非法格式的报文则将其丢弃。如果该报文为合法格式的报文,则进一步检查该报文是否是可以触发协议行为DFA从当前状态init发生转移的报文,是则确定该报文是按照协议的时序特征规定的合法报文,随后通知调度器将该报文转发至ISAKMP的另一方,并将协议行为DFA的当前状态修改为StartMainMode状态;否则将该报文丢弃。
ISAKMP的另一方收到MainSAPropose报文后,会回复一个MainSAReply报文,匹配引擎可以对该报文的语法格式进行同样的检测,如果确定是非法格式的报文,则将其丢弃;反之,如果确定是合法格式的报文,则检查该报文是否是可以触发协议行为DFA从当前状态发生转移,即从StartMainMode状态发生转移的报文,是则确定该报文是按照协议的时序特征规定的合法报文,随后通知调度器将该报文转发给ISAKMP的发起方,并将协议行为DFA的当前状态修改为该报文触发协议行为DFA转移的目标状态PolicyExhange。
在所定义的协议模式仅包括反模式的情况下,如果发现所接收的数据报文是可以触发协议行为DFA从当前状态发生转移的数据报文之一,则确定该数据报文是不合法的数据报文,将其丢弃,并将协议行为DFA的当前状态修改为该数据报文触发协议行为DFA发生转移的目标状态;否则,确定该数据报文是按照协议的时序特征规定的合法数据报文,通知调度器正常转发该数据报文,并继续等待下一个数据报文。
以下描述根据本发明第四实施例的数据报文检测方法,本实施例的数据报文检测方法包括第二实施例中的步骤300-304以及图7所示的步骤,在此仅描述与第二实施例的不同之处,即图7所示的内容;对于与第二实施例相同的内容,即步骤300-304,不再赘述。
图7为根据本发明第四实施例的数据报文检测方法的流程图,该图描述了在所定义的协议模式既包括正模式又包括反模式的情况下利用DFA检测数据报文是否合法的具体流程。如图7所示,在步骤300所定义的协议模式既包括正模式又包括反模式的情况下,本实施例的数据报文检测方法包括以下步骤:
步骤700-步骤708与步骤600-步骤608相同,在此不再赘述。
步骤710,如果发现所接收的数据报文是可以触发协议行为DFA从当前状态发生转移的数据报文之一,则执行步骤712,否则执行步骤718,对数据报文进行其它处理。
步骤712,判断该数据报文所对应的模式是正模式还是反模式,如果是正模式,则确定该数据报文是按照协议的时序特征规定的合法数据报文,执行步骤714;如果是反模式,则确定该数据报文不合法,执行步骤720将其丢弃,并返回步骤702等待下一个数据报文。
步骤714-步骤716与步骤612-步骤614相同,在此不再赘述。
以上所述的第二至第四实施例都是利用协议行为DFA将数据报文与时序模式进行匹配。但实际应用中,还可以利用时态逻辑(Temporal Logic),包括线性时态逻辑(LTL,LinearTemporal Logic)和计算树逻辑(CTL,Computation Tree Logic)进行匹配。由时序模式构成时态逻辑是现有技术中的内容,在此不再赘述。利用时态逻辑对数据报文与时序模式进行匹配,与以上所述的利用协议行为DFA对数据报文与时序模式进行匹配类似,在此也不再赘述。
综上所述,本发明实施例提供的数据报文检测方法和设备,利用基于协议和/或网络攻击的时序模式对数据报文进行检测,从而能够检测并防护滥用合法数据报文的网络攻击,提高了网络通信的安全性。
本发明实施例提供的数据报文检测方法和设备可以对数据报文的语法特征和时序特征同时进行检测,并且可以设定检测的先后顺序,从而根据实际情况最优地利用资源。
本发明实施例提供的数据报文检测方法和设备可以对多种协议的通信流量进行并行检测,从而提高数据报文检测的效率。
另外,本发明实施例提供的数据报文检测方法和设备利用脚本语言定义协议模式,并将协议模式作为特征文件进行管理,从而不需要为实现新特征和/或为支持新协议而重新设计、编码实现并重新部署数据报文检测设备,提高了数据报文检测设备的可扩展性。

Claims (18)

1.一种数据报文检测方法,其特征在于,所述方法包括:
接收一协议的数据报文;
将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配,确定所述数据报文是否是合法数据报文。
2.如权利要求1所述的方法,其特征在于,将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配包括:利用由所述时序模式构成的协议行为有限自动机或时态逻辑,将所述数据报文与所述时序模式进行匹配。
3.如权利要求1所述的方法,其特征在于,将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配包括:
获取所述协议的当前状态;
判断所述数据报文是否是所述时序模式中描述的能够触发所述协议从当前状态发生转移的数据报文之一,确定所述数据报文是否是合法数据报文。
4.如权利要求3所述的方法,其特征在于,所述时序模式包括基于所述协议的时序特征预先定义的时序模式,通过判断所述数据报文是否是所述时序模式中描述的能够触发所述协议从当前状态发生转移的数据报文之一来确定所述数据报文是否是合法数据报文包括:
判断所述数据报文是否是所述时序模式中描述的能够触发所述协议从当前状态发生转移的数据报文之一;
是则确定所述数据报文是合法数据报文,并将所述协议的当前状态设置为所述数据报文触发所述协议发生转移的目标状态;
否则确定所述数据报文是不合法的数据报文。
5.如权利要求3所述的方法,其特征在于,所述时序模式包括基于所述协议的时序特征预先定义的时序模式和基于网络攻击的时序特征预先定义的时序模式,通过判断所述数据报文是否是所述时序模式中描述的能够触发所述协议从当前状态发生转移的数据报文之一来确定所述数据报文是否是合法数据报文包括:
判断所述数据报文是否是所述时序模式中描述的能够触发所述协议从当前状态发生转移的数据报文之一,
是则确定所述时序模式是基于所述协议的时序特征定义的还是基于网络攻击的时序特征定义的;
如果所述时序模式是基于协议的时序特征定义的,则确定所述数据报文是合法数据报文,并将所述协议的当前状态设置为所述数据报文触发所述协议发生转移的目标状态;
如果所述时序模式是基于网络攻击的时序特征定义的,则确定所述数据报文是不合法的数据报文。
6.如权利要求1所述的方法,其特征在于,在将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配之后,进一步包括:将所述数据报文与基于所述协议和/或网络攻击的数据报文语法特征预先定义的语法模式进行匹配,或者
在将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配之前,进一步包括:将所述数据报文与基于所述协议和/或网络攻击的数据报文语法特征预先定义的语法模式进行匹配。
7.如权利要求6所述的方法,其特征在于,将所述数据报文与基于所述协议和/或网络攻击的数据报文语法特征预先定义的语法模式进行匹配包括:利用由所述语法模式构成的有限自动机,将所述数据报文与所述语法模式进行匹配。
8.如权利要求6所述的方法,其特征在于,所述时序模式和所述语法模式利用脚本语言来定义。
9.如权利要求8所述的方法,其特征在于,所述时序模式利用状态图可扩展标记语言或统一建模语言来定义,并且所述语法模式利用正则表达式可扩展标记语言来定义。
10.如权利要求1所述的方法,其特征在于,接收一协议的数据报文包括:接收由防火墙而来的一协议的数据报文。
11.一种计算机可读介质,其特征在于,所述计算机可读介质上存储有在被处理器执行时使所述处理器执行权利要求1-10中任一项所述的方法的计算机指令。
12.一种数据报文检测设备,其特征在于,包括接收模块和匹配引擎,
所述接收模块用于接收一协议的数据报文,将所述数据报文转发给所述匹配引擎;
所述匹配引擎用于接收所述接收模块转发的数据报文,将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配,确定所述数据报文是否是合法数据报文。
13.如权利要求12所述的设备,其特征在于,进一步包括存储器,用于存储基于所述协议和/或网络攻击的时序特征预先定义的时序模式。
14.如权利要求13所述的设备,其特征在于,所述存储器进一步用于存储由所述时序模式构成的协议行为有限自动机或时态逻辑,
所述匹配引擎进一步利用存储在所述存储器中的由所述时序模式构成的协议行为有限自动机或时态逻辑,将所述数据报文与所述时序模式进行匹配。
15.如权利要求13所述的设备,其特征在于,所述存储器进一步用于存储基于所述协议和/或网络攻击的数据报文语法特征预先定义的语法模式,并且
所述匹配引擎进一步用于:在将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配之后,将所述数据报文与存储在所述存储器中的语法模式进行匹配;或者在将所述数据报文与基于所述协议和/或网络攻击的时序特征预先定义的时序模式进行匹配之前,将所述数据报文与存储在所述存储器中的语法模式进行匹配。
16.如权利要求15所述的设备,其特征在于,所述存储器进一步用于存储由所述语法模式构成的语法有限自动机,
所述匹配引擎利用存储在所述存储器中的由所述语法模式构成的语法有限自动机,将所述数据报文与所述语法模式进行匹配。
17.如权利要求15所述的设备,其特征在于,进一步包括模式检查器,用于检查所述时序模式和所述语法模式的一致性。
18.如权利要求15所述的设备,其特征在于,所述接收模块用于从防火墙接收多种协议的数据报文,所述匹配引擎包括分别与多种协议相对应的多个匹配引擎,并且所述设备进一步包括调度器,用于从所述接收模块接收多种协议的数据报文,判断所接收的数据报文所使用的协议,并将所接收的数据报文转发至与所使用的协议相对应的匹配引擎。
CN201210227005.9A 2012-06-29 2012-06-29 一种数据报文检测方法和设备 Pending CN103516703A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210227005.9A CN103516703A (zh) 2012-06-29 2012-06-29 一种数据报文检测方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210227005.9A CN103516703A (zh) 2012-06-29 2012-06-29 一种数据报文检测方法和设备

Publications (1)

Publication Number Publication Date
CN103516703A true CN103516703A (zh) 2014-01-15

Family

ID=49898748

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210227005.9A Pending CN103516703A (zh) 2012-06-29 2012-06-29 一种数据报文检测方法和设备

Country Status (1)

Country Link
CN (1) CN103516703A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103839008A (zh) * 2014-03-21 2014-06-04 彭岸峰 一句话脚本后门和php变量函数后门免疫安全服务
CN107222508A (zh) * 2017-07-14 2017-09-29 国家计算机网络与信息安全管理中心 安全访问控制方法、设备及系统
CN110460619A (zh) * 2019-08-30 2019-11-15 北京卓识网安技术股份有限公司 报文识别方法、系统、装置及存储介质
CN114465742A (zh) * 2020-11-10 2022-05-10 华为技术有限公司 网络安全防护方法以及防护设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003094418A1 (en) * 2002-04-30 2003-11-13 Intelliguard I.T. Pty Ltd A.C.N. 098 700 344 A packet filtering system
CN101119241A (zh) * 2007-08-24 2008-02-06 北京启明星辰信息技术有限公司 一种基于状态检测的协议异常检测方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003094418A1 (en) * 2002-04-30 2003-11-13 Intelliguard I.T. Pty Ltd A.C.N. 098 700 344 A packet filtering system
CN101119241A (zh) * 2007-08-24 2008-02-06 北京启明星辰信息技术有限公司 一种基于状态检测的协议异常检测方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103839008A (zh) * 2014-03-21 2014-06-04 彭岸峰 一句话脚本后门和php变量函数后门免疫安全服务
CN107222508A (zh) * 2017-07-14 2017-09-29 国家计算机网络与信息安全管理中心 安全访问控制方法、设备及系统
CN107222508B (zh) * 2017-07-14 2020-08-25 国家计算机网络与信息安全管理中心 安全访问控制方法、设备及系统
CN110460619A (zh) * 2019-08-30 2019-11-15 北京卓识网安技术股份有限公司 报文识别方法、系统、装置及存储介质
CN114465742A (zh) * 2020-11-10 2022-05-10 华为技术有限公司 网络安全防护方法以及防护设备

Similar Documents

Publication Publication Date Title
CN101789947B (zh) 防范http post泛洪攻击的方法及防火墙
CN101478387B (zh) 超文本传输协议攻击防御方法、装置和系统
Vorobiev et al. Security attack ontology for web services
KR101536880B1 (ko) 앵커링된 패턴들
CN101964025B (zh) Xss检测方法和设备
CN110177046A (zh) 基于拟态思想的安全交换芯片、实现方法及网络交换设备
WO2011134739A1 (en) Method for searching for message sequences, protocol analysis engine and protocol analyzer
CN103746996A (zh) 一种防火墙的报文过滤方法
Seo et al. SIPAD: SIP–VoIP anomaly detection using a stateful rule tree
CN109933980A (zh) 一种漏洞扫描方法、装置和电子设备
CN112529577A (zh) 基于激励治理的区块链跨链系统和方法
CN103516703A (zh) 一种数据报文检测方法和设备
CN111885021A (zh) 基于传输协议的拟态通信方法、通信架构及可读存储介质
CN111478888A (zh) 一种旁路阻断方法、设备及存储介质
CN108259416B (zh) 检测恶意网页的方法及相关设备
CN113645233A (zh) 流量数据的风控智能决策方法、装置、电子设备和介质
CN113242260A (zh) 攻击检测方法、装置、电子设备及存储介质
RU2358395C2 (ru) Способ уменьшения времени прохождения исполняемого файла через контрольную точку
CN108551461A (zh) 一种检测waf部署的方法、计算waf支持ipv6程度的方法
Bernieri et al. AMON: An automaton monitor for industrial cyber-physical security
Ponomarev et al. Session duration based feature extraction for network intrusion detection in control system networks
Ponomarev Intrusion Detection System of industrial control networks using network telemetry
Lahmadi et al. Veto: An exploit prevention language from known vulnerabilities in sip services
CN105471839A (zh) 一种判断路由器数据是否被窜改的方法
CN107888624B (zh) 一种防护网络安全的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20140115