一种基于状态检测的协议异常检测方法及系统的制作方法

文档序号:7655929阅读:246来源:国知局
专利名称:一种基于状态检测的协议异常检测方法及系统的制作方法
技术领域
本发明属于网络技术领域,依据网络数据流中报文所使用的协议规范进行 协议异常检测,尤其涉及一种可用于入侵检测系统及审计产品中的基于状态检 测的协议异常检测方法及系统。
技术背景入侵检测系统(IDS-Mrusion Detection System)作为网络安全防护的重要 手段,通常部署在关键网络内部或网络边界入口处,实时捕获网络内或进出网 络的报文数据流并进行智能综合分析,发现可能的入侵行为并采取相应处理。 目前的入侵检测方法主要分为误用检测技术和异常检测技术。异常检测可以检 测出已知的和未知的攻击,但是正常行为模型的建立只能依据国际标准并采用 人工智能、机器学习算法等来生成,需要大量的数据和时间,并且在不同的网 络环境当中,正常的网络使用表现出不同的标准模型,其正常模型的建立是否 准确直接影响到入侵检测或审计的准确性,因此尽管该技术得到了广泛的关注 却依然没有被广泛的应用到实际产品当中。目前入侵检测系统使用的误用检测 机制尽管对于已知攻击检测准确、效率高,但是无法有效的检测和防御未知攻 击,因此综合需求和效率的考虑需要增加协议异常检测的处理机制。协议异常 检测主要考虑根据各种协议的标准,建立正常的协议运行模型,对于明显违背 网络通信协议标准请求注解(RFC-Request For Comments)中规定的协议规范 的,则报警。例如拒绝服务攻击(SYN flood attack)中攻击者不断发送虚拟源 IP地址的SYN,使得服务器端的连接服务对于正常连接不可用,这种情况下对
于传输控制协议TCP的使用是偏离正常模型的。这个原因主要是由于大多数操 作系统和应用软件都是在假定RFC被严格遵守的情况下编写的,没有添加针对 异常数据的错误处理程序,所以许多协议漏洞的利用都会故意违反RFC的标准 定义以实现某种方式的攻击。目前的入侵检测产品及技术主要应用了误用检测技术实现,因为异常检测 技术正常模型建立困难,检测效率较低。在误用检测的过程中主要是通过特征 匹配的方式来实现。工作方式是针对已知的攻击提取特征,在网络抓包的过程 中进行攻击特征的匹配以判断是否存在攻击。传统的检测技术主要是针对已知 攻击并且能够提取明显攻击特征迸行的,而某些攻击实际上是针对数据包使用 的协议规范进行的,如SYN flood attack^ Teardrop Attack等。随着网络应用的不 断丰富和高速网络技术的不断发展,攻击的变种日益繁多而且变更极快,对于 每一种出现的攻击进行特征提取再进行误用检测显然是不适合入侵检测及防御 的实时性要求的,也就是说仅仅使用误用检测是非常被动的。同时考虑很多的 新型攻击和已知攻击的变种实际上是针对协议规范的某一部分或某些部分,这 些攻击所体现出的异常行为具有类似的原理,异常检测技术的研究与实施已经 成为国内外的重点课题。目前绝大多数的入侵检测产品或审计产品当中的协议 异常检测主要针对的是违背协议格式规范的行为,而很多的攻击实际上并没有 违背协议规定的数据报文格式,而是违背协议的运行状态,例如中断,篡改协 议的运行过程等。目前具有完备的协议异常检测功能的产品非常缺乏,因此有 必要发展完备的易于扩展的协议异常检测技术,尽可能的弥补误用检测技术的 不足,在更大的范围内提升入侵检测或审计系统对于未知攻击的检测和防御能 力。该协议异常检测技术必须满足以下要求.-根据网络通信协议标准RFC尽可能多的建立各种协议运行正常状态模型,
能够准确的描述协议正常运行过程;尽可能多的准确识别通信过程中违反协议 正常模型的异常行为,并有相应的风险评估机制判断攻击是否存在及危害程 度,以提高入侵检测系统对于未知攻击的防御能力;具有很好的可扩展性,对 于某些新型的协议或特定环境下协议的特殊使用,可以灵活的调整正常协议模 型以保证入侵检测/审计的准确性;具有非常高的协议异常检测效率,算法实现 尽可能简单;方法通用性强,并要求协议异常检测准确率高。 发明内容为了克服现有技术的不足,本发明提供一种基于状态检测的协议异常检 测方法及系统。本发明解决其技术问题所采用的技术方案是一种基于状态检测的协议异常检测方法,包含建立协议正常运行状态模型的步骤;协议运行状态定位的步骤;协议运行状态迁移的步骤;异常检测的步骤;其中,所述的协议正常运行状态模型建立阶段步骤主要包括协议正常运行 状态形式化描述和状态机的建立;协议运行状态定位主要是依据实际捕获的网络报文结合以建立的正常运行 状态模型识别正在运行的协议及当前会话所处协议状态;在协议运行状态迁移阶段主要根据当前协议运行状态定位及该协议的状态 机模型进行状态迁移并输出该协议下一步可能的状态迁移集合;在异常检测阶段根据上一阶段输出的可能状态迁移集合和实际捕获的后续 数据报文判断协议的运行是否符合标准模型。所述建立协议正常运行状态模型进一步包含制订形式化描述的语法规则, 以该语法对协议进行形式化的描述,利用语法检测装置自动验证输入的协议形 式化描述是否符合预定语法规则。所述建立协议正常运行状态模型进一步包含使用自动生成算法自动生成 该协议的状态机。所述协议运行状态定位进一步包含将已建立的协议正常运行状态机及实 际网络捕获数据报文作为输入,采用多模式匹配算法定位当前会话当中使用的 协议运行所处状态,以形式化语言描述该状态。所述协议运行状态迁移进一步包含以协议运行状态定位输出为输入,根 据对应协议状态机的描述,预测协议下一步运行的迁移状态,并将触发该迁移 的数据报文作为输出,形成协议状态可能迁移集合。所述异常检测进一步包含以协议运行状态迁移阶段输出的可能迁移状态 集合和实际捕获的后续网络数据报文为输入,进行模式匹配,匹配成功则修改 协议当前状态,否则输出异常报警。一种协议异常检测系统,包含用于对添加的协议形式化描述模型进行解释并验证是否符合语法的规则的 语法解释器;用于存储通过语法检测阶段的协议合法形式化描述及生成相应的协议状态 机的实际协议正常模型库;用于根据实际网络报文对当前会话当中协议状态进行准确定位的协议运行 状态定位模块;用于对定位后的协议状态进行下一步的状态迁移预测,并生成协议状态可 能迁移集合的协议预测迁移模块;
用于通过获取的后续报文及协议状态可能迁移集合,判断当前协议运行是 否符合协议正常运行状态模型,并返回检测结果的异常检测模块。所述的语法解释器,与实际协议正常模型库连接,为实际协议正常模型库的建立提供形式化描述数据;所述的实际协议正常模型库,与协议运行状态定 位模块连接,在实际检测过程中协议运行状态定位模块依据协议正常模型库提 供的正常模型和当前捕获的网络数据报文对当前报文在模型当中所处状态迸行 定位;所述的协议运行状态定位模块,和协议预测迁移模块连接,依据协议正 常模型库当中该协议的正常运行模型结合当前所处状态预测下一步可能迁移的状态集合;所述的协议预测迁移模块,和异常检测模块连接,异常检测模块依 据收到的后续报文状态与预测的状态集合进行匹配判断当前协议运行是否正常。本发明的有益效果是,本发明解决了传统IDS及审计产品中仅仅依赖误用检 测对于所有数据包的载荷部分进行模式匹配所带来的无法准确检测并抵御未知 攻击的问题,是误用检测的有效的补充。同时在协议的正常模型生成时主要参 考的是RFC当中对协议的规范设定,因此可以检测出很多攻击的变种或新的攻 击。本发明采用了功能强大的语法解释器使得本系统的扩展变得非常方便,可 自动生成符合语法描述的协议的正常运行模型,因此在进行协议正常模型添加 及扩展的时候无需对系统进行大的改动,可广泛应用于IDS审计等网络安全产品 中。


图l为本发明的协议异常检测系统结构示意图; 图2为本发明的协议异常检测方法流程图。 下面结合附图和实施例对本发明进一步说明。
具体实施例方式
有关本发明的技术内容及详细说明,现配合

如下 如图1所示,本发明提供一种基于状态检测的协议异常检测系统,包含语 法解释器l、实际协议正常模型库2、协议运行状态定位模块3、协议预测迁移模块4和异常检测模块5。其中,语法解释器1用于对添加的协议形式化描述模 型进行解释并验证是否符合语法的规则;实际协议正常模型库2用于存储通过 语法检测阶段的协议合法形式化描述及进一步生成的相应协议状态机;协议运 行状态定位模块3用于根据实际网络报文对当前会话当中协议状态进行准确定 位;协议预测迁移模块4用于对定位后的协议状态进行下一步可能迸行的状态 迁移的预测并生成正常状态迁移集合;异常检测模块5用于通过获取的后续报 文及预测状态迁移集合判断当前协议运行是否符合协议标准模型并返回检测结 果。
如图2所示,本发明还提供一种基于状态检测的协议异常检测方法,包含协 议正常运行状态模型的建立、协议运行状态定位、协议运行状态迁移及异常检 测。首先,进行协议正常运行状态形式化描述和状态机的建立(步骤S101);其 次,依据实际捕获的网络报文结合已建立的正常运行状态模型,识别正在运行 的协议及当前会话所处协议状态(歩骤S102);然后,根据当前协议运行状态定 位及该协议的状态机模型进行状态迁移,并输出该协议状态可能迁移集合(步 骤S103);再次,根据上一阶段输出的协议状态可能迁移集合和实际捕获的后续 数据报文判断协议的运行是否符合标准模型(步骤S104);如果匹配成功则说明协议运行正常,并修改协议运行状态为实际迁移状态(步骤105),继续后续的 协议异常检测;如果匹配失败则说明协议运行异常,产生报警(步骤106)。
协议正常运行状态模型建立阶段方法如下
首先选择适当的形式化描述语言对协议的运行过程、各个协议变量及状态
标识进行统一的形式化描述;对于每一种协议根据通用的RFC协议标准,釆用 该形式化语言进行描述并调用词法分析器和语法分析器对输入语法进行词法分 析和语法分析,以此判断该协议的形式化描述是否符合预先设定的语法规则。 如果通过了语法检测说明该协议的形式化描述符合预先设定的语法规则,则以 此描述作为下一步生成该协议的状态机的依据。接下来根据协议的形式化描述 建立该协议的状态机并以此作为该协议的正常行为模型供异常检测使用。 协议运行状态定位阶段具有如下步骤
结合已确定的协议类别将实际捕获的网络通信报文和已建立的相应协议状 态机作为输入,使用多模式匹配算法确定当前捕获的通信报文在相应协议状态 机中所处位置,即定位该报文在当前协议会话当中所处状态作为下一阶段进行 相关状态迁移的输入。
协议运行状态迁移阶段
以协议运行状态定位阶段的输出作为输入,严格按照协议正常状态机模型 进行预测性的状态迁移。在此阶段需要输出可能的迁移状态,即协议下一步收 到某一数据报文后将要进入的状态。此阶段以可能迁移到的下一步状态需要接 收的数据报文类型作为输出,该输出将作为下阶段实际异常检测的匹配模式集合。
异常检测阶段
此阶段以协议运行状态迁移阶段输出的预测状态集合和实际接收到的后续 数据报文作为输入,以多模式匹配的方式检测收到的后续报文是否包含在预测 状态集合当中,如果匹配成功则说明协议运行正常,并修改协议运行状态定位 阶段定位的协议状态为实际迁移状态,继续后续的协议异常检测。如果匹配失
败则说明协议运行异常,产生报警。
在实际运行中,以TCP握手过程为例,是按照如下方法进行操作的 A.协议正常运行状态模型的建立阶段;
首先,TCP握手过程,可定义为一个6元组"S,So,E,f,V,X"这里S表
示状态集合,s。表示初始状态,E表示参数列表,f是状态转移函数,V是局部
变量集合,X是符号集。 一旦发生某一事件触发状态转移则由状态转移函数确
定状态转移的输出状态。所谓状态转移即转移前的状态符合协议运行过程中的
某一状态并且该触发事件符合某一转移条件。TCP握手过程初始状态可以描述
如表l:
<formula>formula see original document page 11</formula>表l中
第一行设定初始状态为监听,即有没有TCP连接触发; 第二行标识当前参数,即可发送的ip和接收ip;
第三行此状态转移函数标识当收到TCP连接请求的SYN报文之后,将当 前监听状态转移到syn—rcvd,表示己接收到相关连接请求,并且将ip链表 当中的指针增加一位,标识当前连接在列表中的位置,同时准备发送SYN一 ACK报文
第四行标识当前协议状态所使用的变量为ip—seq__per—id, ip—seq。
第五行标识描述当前状态所使用的符号集合。
本发明使用了 lex词法分析器进行输入语句的词法分割。随后将分割后的结 果作为语法检测的输入,采用yacc语法分析器作为工具进行相应的语法分析, 将符合语法输入规则的协议形式化描述作为本阶段的输出结果,存储在实际协 议正常模型库2,供接下来的协议状态机建立使用。
接下来按照上述形式化模型描述使用自动生成算法建立相应的协议正常模 型状态机
B. 协议运行状态定位阶段;在生成协议正常模型状态机之后,通过协议运行状态定位模块3结合实际 捕获的网络通信报文进行当前数据报文运行状态的定位。本发明采用多模式匹 配算法,以协议正常模型状态机各个状态的形式化描述为模式,以实际数据报 文为样本,唯一的确定当前报文在当前会话使用的协议当中所处的位置,即当 前状态。此时可沿用相同的形式化描述方式对当前状态进行表示并作为状态迁 移阶段的输入。如在TCP握手协议当中以SYN—SENT为当前状态描述,则在实 际捕获报文过程当中发现客户端发送了 SYN数据报文,则可以将该客户端当前 状态设定为SYN一SENT。
C. 协议运行状态迁移阶段此阶段实际上可以看作是一个预测阶段,按照协议正常运行模型的表述, 当接收到特定类型数据报文之后,当前协议运行将进入下一个状态。例如TCP 握手过程,当发出SYN报文之后根据后续接收到的不同类型报文,协议可能进 入到建立、关闭等不同的后续状态。此时协议预测迁移模块4确定可能迁移的 后续状态,及对后续可能发生的状态迁移进行预测,并将触发这些可能的状态 迁移的条件集合作为本阶段的输出提供给异常检测模块作为检测的标准。
D.异常检测阶段异常检测模块5收到协议运行状态迁移阶段提供的可能状态迁移集合之后, 以实际捕获的同一会话当中使用相同协议的后续数据报文作为样本输入,与可 能的状态迁移集合进行逐个比对,如果比对成功说明协议后续报文符合正常模 型则协议运行正常,否则报警。在此阶段实际上是对协议运行状态迁移阶段产 生的预测状态集进行验证。在匹配成功时还需要相应的修改协议运行状态定位 阶段定位的当前协议状态,为实际状态迁移之后的新状态,以进一步进行后续 异常检测。TCP握手过程,如收到SYNACK包则进入建立状态,超过时间间隔 则进入关闭状态。上述仅为本发明的较佳实施例而己,并非用来限定本发明实施范围。即凡 依本发明申请专利范围所做的均等变化与修饰,皆为本发明专利范围所涵盖。
权利要求
1.一种基于状态检测的协议异常检测方法,其特征在于包含以下步骤建立协议正常运行状态模型的步骤;协议运行状态定位的步骤;协议运行状态迁移的步骤;异常检测的步骤。
2、 根据权利要求1所述的一种基于状态检测的协议异常检测方法,其特征 在于,所述建立协议正常运行状态模型进一步包含制订形式化描述的语法规 则,以该语法对协议进行形式化的描述,利用语法检测装置自动验证输入的协 议形式化描述是否符合预定语法规则。
3、 根据权利要求2所述的一种基于状态检测的协议异常检测方法,其特征在于,所述建立协议正常运行状态模型进一步包含使用自动生成算法自动生成该协议的状态机。
4、 根据权利要求3所述的一种基于状态检测的协议异常检测方法,其特征在于,所述协议运行状态定位进一步包含将已建立的协议正常运行状态机及实际网络捕获数据报文作为输入,采用多模式匹配算法定位当前会话当中使用 的协议运行所处状态,以形式化语言描述该状态。
5、 根据权利要求3所述的一种基于状态检测的协议异常检测方法,其特征在于,所述协议运行状态迁移进一步包含以协议运行状态定位输出为输入,根据对应协议状态机的描述,预测协议下一步运行的迁移状态,并将触发该迁 移的数据报文作为输出,形成协议状态可能迁移集合。
6、 根据权利要求5所述的一种基于状态检测的协议异常检测方法,其特征在于,所述异常检测进一步包含以协议运行状态迁移阶段输出的可能迁移状 态集合和实际捕获的后续网络数据报文为输入,迸行模式匹配,匹配成功则修 改协议当前状态,否则输出异常报警。
7. —种基于状态检测的协议异常检测系统,其特征在于,包括 用于对添加的协议形式化描述模型进行解释并验证是否符合语法的规则的 语法解释器;用于存储通过语法检测阶段的协议合法形式化描述及生成相应的协议状态 机的实际协议正常模型库;用于根据实际网络报文对当前会话当中协议状态进行准确定位的协议运行 状态定位模块;用于对定位后的协议状态进行下一步的状态迁移预测,并生成协议状态可 能迁移集合的协议预测迁移模块;用于通过获取的后续报文及协议状态可能迁移集合,判断当前协议运行是否符合协议正常运行状态模型,并返回检测结果的异常检测模块。
8.根据权利要求7所述的一种协议异常检测系统,其特征在于所述的语 法解释器,与实际协议正常模型库连接,为实际协议正常模型库的建立提供形 式化描述数据;所述的实际协议正常模型库,与协议运行状态定位模块连接, 在实际检测过程中协议运行状态定位模块依据协议正常模型库提供的正常模型 和当前捕获的网络数据报文对当前报文在模型当中所处状态进行定位;所述的 协议运行状态定位模块,和协议预测迁移模块连接,依据协议正常模型库当中该协议的正常运行模型结合当前所处状态预测下一步可能迁移的状态集合;所述的协议预测迁移模块,和异常检测模块连接,异常检测模块依据收到的后续 报文状态与预测的状态集合迸行匹配,判断当前协议运行是否正常。
全文摘要
一种基于状态检测的协议异常检测方法及系统。协议正常运行状态模型的建立包括协议形式化描述语法的检查和相关协议状态机的生成;协议运行状态定位阶段实现对于具体网络通信数据报文在当前会话中所使用协议状态的准确定位;协议运行状态迁移阶段实现了对定位后的协议状态进行下一步可能进行的状态迁移的预测并生成正常状态迁移集合;异常检测阶段通过获取的后续报文及预测状态迁移集合判断当前协议运行是否符合协议标准模型并返回检测结果。能够在网络协议通信过程中根据实际抓获的报文当中使用的具体协议进行相关的协议异常检测,并能够根据实际需要方便的进行协议正常运行模型的扩展。
文档编号H04L29/06GK101119241SQ20071012072
公开日2008年2月6日 申请日期2007年8月24日 优先权日2007年8月24日
发明者叶润国, 孙海波, 博 李, 洋 王, 磊 王 申请人:北京启明星辰信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1