一种报文过滤方法及系统与流程

文档序号:11156605阅读:580来源:国知局
一种报文过滤方法及系统与制造工艺

本发明涉及信息安全领域,尤其涉及一种报文过滤方法及系统。



背景技术:

随着网络通信技术的飞速发展,用于网络通信的各种通信协议也越来越多。现有的通信协议在构建时,会存在一些安全漏洞,黑客可以利用这些漏洞,编写相应的报文传输至网络通信系统,对网络通信系统进行攻击,导致网络通信系统瘫痪。目前,一般采用白名单过滤的方式对传输的报文进行检测,以起到安全防护的目的。

发明人经过研究发现,现有的白名单过滤中,只针对报文中的主功能码进行过滤,而报文功能的实现往往是由报文中主功能码和其它功能码相关联实现的。因此,采用白名单过滤方式对报文的主功能码进行过滤后,还需要人为的将报文中的其它功能码关联至主功能码,导致报文过滤的时效性差。



技术实现要素:

有鉴于此,本发明提供一种报文过滤方法及系统,用以解决现有技术中需要人为将报文中的其它功能码关联至主功能码,导致报文过滤的时效性差的问题,具体方案如下:

一种报文过滤方法,包括:

在当前待传输的报文数据中,实时确定目标报文,所述目标报文为一帧完整报文;

依据预设的确定规则,确定所述目标报文中的目标功能码;

判断所述目标功能码是否存在于预设的主功能列表中,如果存在,则将所述目标功能码确定为所述目标报文对应的主功能码;

将所述主功能码与已设定的白名单进行匹配,若匹配成功,则对所述目标报文进行传输。

上述的方法,优选的,所述在当前待传输的报文数据中,实时确定目标报文包括:

实时检测当前待传输的报文数据中的confirm标识码;

当检测到confirm标识码时,将当前检测的confirm标识码与下一次检测到的confirm标识码之间的报文数据作为所述目标报文。

上述的方法,优选的,所述依据预设的确定规则,确定所述报文中的目标功能码包括:

查找所述目标报文中的初始标识位;

将所述初始标识位之后第一个功能码确定为所述目标报文中的目标功能码。

上述的方法,优选的,所述将所述主功能码与已设定的白名单进行匹配,若匹配成功,则对所述目标报文进行传输包括:

将所述主功能码与所述白名单中的各个功能码逐一进行比对;

当所述白名单中存在于所述主功能码相对应的功能码时,对所述目标报文进行传输。

上述的方法,优选的,在确定所述报文中的目标功能码之前,还包括:对当前待传输报文数据的完整性进行检测。

上述的方法,优选的,还包括:当所述目标功能码不存在与所述预设的主功能码列表中时,将所述目标报文舍弃。

上述的方法,优选的,还包括:当所述主功能码与已设定的白名单未匹配成功时,将所述目标报文舍弃。

一种报文过滤系统,包括:

第一确定单元,用于在当前待传输的报文数据中,实时确定目标报文,所述目标报文为一帧完整报文;

第二确定单元用于,依据预设的确定规则,确定所述目标报文中的目标功能码;

判断单元,用于判断所述目标功能码是否存在于预设的主功能列表中,如果存在,则将所述目标功能码确定为所述目标报文对应的主功能码;

匹配单元,用于将所述主功能码与已设定的白名单进行匹配,若匹配成功,则对所述目标报文进行传输。

上述的系统,优选的,所述第二确定单元包括:

查找子单元,用于查找所述报文中的初始标识位;

确定子单元,用于将所述初始标识位之后第一个功能码确定为所述报文中的目标功能码。

上述的系统,优选的,还包括:检测单元,用于对当前待传输报文数据的完整性进行检测。

与现有技术相比,本发明包括以下优点:

本发明提供了一种报文过滤方法,在当前待传输的报文数据中,实时确定目标报文,所述目标报文为一帧完整报文;依据预设的确定规则,确定所述目标报文中的目标功能码;判断所述目标功能码是否存在于预设的主功能列表中,如果存在,则将所述目标功能码确定为所述目标报文对应的主功能码;将所述主功能码与已设定的白名单进行匹配,若匹配成功,则对所述目标报文进行传输。本发明提供的过滤方法中,对于每一帧完整报文,首先判断所述报文中的目标功能码是否存在于预设的主功能列表中,如果在,则确定所述目标功能码为所述报文的主功能码,然后,将所述报文的主功能码与已设定的白名单进行匹配,匹配成功,则直接将所述完整的报文进行发送,不需要进行其它功能码的关联,提升了报文过滤的时效性。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例公开的一种报文过滤方法流程图;

图2为本申请实施例公开的一种报文过滤方法又一方法流程图;

图3为本申请实施例公开的一种报文过滤方法又一方法流程图;

图4为本申请实施例公开的一种报文过滤方法又一方法流程图;

图5为本申请实施例公开的一种报文过滤系统结构框图;

图6为本申请实施例公开的一种报文过滤系统又一结构框图;

图7为本申请实施例公开的一种报文过滤系统又一结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

本发明提供了一种报文过滤方法,该方法的执行主体可以为多种网络通信系统,该方法可以应用在多方通信协议中,例如网络通信协议DNP3.0协议,所述方法的方法流程图如图1所示,包括步骤:

S101、在当前待传输的报文数据中,实时确定目标报文,所述目标报文为一帧完整报文;

本发明实施例中,当前待传输的报文数据由一帧一帧的数据报文组成,在执行本发明实施例提供的报文过滤方法时,在所述报文数据中,实时确定目标报文,所述目标报文为传输的一帧一帧数据报文中的一帧完整报文。

S102、依据预设的确定规则,确定所述目标报文中的目标功能码;

本发明实施例中,对于确定的目标报文,依据预先设定的确定规则,从所述目标报文中确定目标功能码。

S103、判断所述目标功能码是否存在于预设的主功能列表中,如果存在,则将所述目标功能码确定为所述目标报文对应的主功能码;

本发明实施例中,预设有主功能码列表,所述主功能列表中存储有在网络传输过程中,符合传输要求的各个报文的主功能码;本发明实施例中,判断已经确定的目标报文的目标功能码是否存在与预设的主功能码列表中,如果存在,将所述目标功能码确定为所述目标报文对应的主功能码。

S104、将所述主功能码与已设定的白名单进行匹配,若匹配成功,则对所述目标报文进行传输。

本发明实施例中,在将所述目标功能码确定为所述目标报文的主功能码之后,将所述主功能码,即所述目标功能码与已设定的白名单进行匹配。本发明实施例中的白名单为用户或者系统的开发人员预先设定的可信的功能码的集合;本发明实施例中,若所述目标功能码与已设定的白名单匹配成功,则对所述目标报文进行传输。

本发明实施例提供的报文过滤方法,对于每一帧完整报文,首先判断所述报文中的目标功能码是否存在于预设的主功能列表中,如果在,则确定所述目标功能码为所述报文的主功能码,然后,将所述报文的主功能码与已设定的白名单进行匹配,匹配成功,则直接将所述完整的报文进行发送,不需要进行其它功能码的关联,提升了报文过滤的时效性。

本发明实施例中,所涉及的报文是指网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,在符合协议要求的前提下,长度不限且可变。报文的具体组成方式为:由主功能码和关联功能码按通信协议规定依次排列组成。

当前待传输的报文数据为一帧一帧的数据报文,在报文进行传输之前,本发明实施例需要对报文的完整性进行检查,舍弃不符合协议规定的报文,报文的完整性检查:采用判断报文长度、偏移位和检查特殊字段的方式进行,本发明实施例所处理的报文数据的前提就是符合协议规定的完整的报文,在确定了报文的完整性之后,首先需要确定待传输报文数据中的目标报文。

本发明实施例中,在当前待传输的报文数据中,实时确定目标报文的过程如图2所示,包括步骤:

S201、实时检测当前待传输的报文数据中的confirm标识码;

当前待传输的报文数据由一帧一帧的数据报文组成,每一帧报文的确定需要通过实时检测待传输报文数据中的confirm标识码的位置,当前待传输的报文数中存在多个confirm标识码,记录每个confirm标识码的位置信息。

S202、当检测到confirm标识码时,将包含当前检测的confirm标识码与下一次检测到的confirm标识码之间的报文数据作为所述目标报文。所述目标报文是指任意相邻两个confirm标识码之间且包含上一confirm标识码的报文数据,依次截取目标报文。

目标报文确定之后,本发明实施例需要继续确定目标功能码,目标功能码的确定需要依据预设的确定规则,具体的确定方法如图3所示,包括步骤:

S301、查找所述目标报文中的初始标识位;

任一目标报文中都包含初始标识位,其作用在于确定报文的起始位置,本发明实施例中,优选的,所述初始标识位即为confirm标识码。

S302、将所述初始标识位之后第一个功能码确定为所述目标报文中的目标功能码。

本发明是实施例中,目标功能码是指confirm标识码之后第一个出现的功能码。

工业系统中常用的DNP3.0协议可以与上述实施例相呼应,该协议的功能码列表如下表1所示:

表1

上述功能码列表出列出了DNP3.0协议中报文数据全部功能码信息,本功能码列表中的初始功能码为confirm标识码,confirm标识码即为本发明实施例中的初始标识位,本发明实施例中待传输的报文数据为一帧一帧的完整报文,通过上述功能码列表可以看出,每帧报文都是以confirm标识码开始,到下一个confirm标识码之前结束。当所述报文数据在传输过程中,网络通信系统通过实时检测报文数据中confirm标识码的位置来确定每相邻两个confirm标识码之间包含上一confirm标识码在内的数据为目标报文,并顺序依次截取待传输报文数据中目标报文,并将所述目标报文confirm标识码之后的第一个功能码为目标功能码。

确定了目标功能码之后,本发明实施例就需要对目标功能码与预设的主功能码列表进行比对,所述主功能列表是指在初始设计阶段由开发人员写入系统中的默认可信的主功能码,它对于用户来讲是开放的,当用户在应用过程中需要加入新的主功能码时,可以自己进行添加,可以有效避免错判,提高了系统的可信度,本发明实施例需要将已经确定好的目标功能码与主功能码列表进行比对,采用由上而下逐一对比的方式,一旦在主功能码列表中查到该目标功能码,则将该目标功能码确定为主功能码,并同时停止查找。

将主功能码与已设定的白名单进行匹配,传统的工业协议中白名单防护系统的执行原理是严格按照客户的配置来实现过滤,只有存在于该白名单中的功能码,才可以通过,白名单的产生方式:自学习、用户配置或预置系统几种方法中的一种或几种的组合产生。若主功能码存在于白名单中,则对所述目标报文进行传输,最终完成一次待传输报文数据的过滤。

以DNP3.0协议中时间同步为例,时间同步的主功能码为Write Time and Date,但实际经过的报文中还包含了read Class 123功能码,如果没有将这些关联功能码进行放过,即使将Write Time and Date功能码放过也会导致整个连接中断,正常业务中断。

比如客户配置了时间同步功能码(Write Time and Date)为白名单,那么白名单系统发现read read Class 123功能码时就会将其丢弃,则辅助时间同步功能码的read Class 123就被丢弃了,此时整个时钟同步的功能就会执行不成功。

但在本发明实施例中,只需要找到时间同步功能码(Write Time and Date),并确认其在白名单中,无需配置read read Class 123,则可将报文数据传输,实现时间同步,提升了报文过滤的时效性。

本发明实施例在上述报文过滤方法的基础上,还可以参考图4,图4中的S401和S402与图1中S101和S102执行方式相同,在此不再赘述,在执行完S401和S402的基础上,还包括步骤:

S403、判断所述目标功能码是否存在于所述预设的主功能码列表中,如果存在执行S404,否则,执行S405;

S404、所述目标功能码存在于预设的主功能列表中,所述目标功能码确定为所述目标报文对应的主功能码,判断所述主功能码是否存在于预设的白名单中,如果存在执行S407,否则,执行S406;

S407、将所述主功能码与所述已设定白名单中的各个功能码逐一进行比对,若所述主功能码存在于白名单中,则对所述目标报文进行传输。

S406、将所述主功能码与所述已设定白名单中的各个功能码逐一进行比对;当所述主功能码与已设定的白名单未匹配成功时,将所述目标报文舍弃。

S405、当所述目标功能码不存在与所述预设的主功能码列表中时,将所述目标报文舍弃;

上述关于主功能码的判断,指出并不是所有的目标功能码都能在所述预设的主功能码列表中存在,在待传输报文数据发送过程中,需要实时进行判断,当目标报文的主功能码存在于预设列表中时,则将所述目标功能码确定为所述目标报文对应的主功能码;当目标报文的主功能不存在于预设的主功能码列表中时,将所述的目标报文舍弃,若待传输的目标报文为连续的多帧数据,继续判断下一帧目标报文,若待传输目标报文数据只有一帧,则结束检测。

上述关于主功能码与白名单是否匹配的判断中,指出并不是所有的主功能码都能在所述已设定的白名单中存在,在待传输报文发送过程中,需要实时的判断,当目标报文的主功能码存在于已设定的白名单中时,具则对所述目标报文进行传输,当目标报文的主功能不存在已设定的白名单中时,将所述的目标报文舍弃,若待传输目标报文为连续的多帧数据,继续判断下一帧目标报文,若目标报文数据只有一帧,则结束检测。

与图1所述的一种报文过滤方法相对应的,本发明实施例还提供了一种报文过滤系统,其结构示意图如图5所示,包括:

第一确定单元501,第二确定单元502,判断单元503,匹配单元504。

其中:

所述第一确定单元501,用于在当前待传输的报文数据中,实时确定目标报文,所述目标报文为一帧完整报文;

所述第二确定单元502,用于依据预设的确定规则,确定所述目标报文中的目标功能码;

所述判断单元503,用于判断所述目标功能码是否存在于预设的主功能列表中,如果存在,则将所述目标功能码确定为所述目标报文对应的主功能码;

所述匹配单元504,用于将所述主功能码与已设定的白名单进行匹配,若匹配成功,则对所述目标报文进行传输。

本发明实施例提供的报文过滤系统,第一确定单元需要确定一帧完整的目标报文,第二确定单元需要确定所述目标报文中的目标功能码,判断单元判断所述报文中的目标功能码是否存在于预设的主功能列表中,如果在,则确定所述目标功能码为所述报文的主功能码,最后通过匹配单元将所述目标报文的主功能码与已设定的白名单进行匹配,匹配成功,则直接将所述目标报文进行发送,不需要进行其它功能码的关联,提升了报文过滤的时效性。

需要说明的是,所述报文过滤系统,是一个完整的系统,可以单独使用也可以与其它系统配合使用。

在图5的基础上,参考图6,图6示出了本发明实施例提供的系统的又一结构示意图,所述第二确定单元502,包括:

查找子单元505和确定子单元506。

所述查找子单元505,用于查找所述报文中的初始标识位;

所述确定子单元506,用于将所述初始标识位之后第一个功能码确定为所述报文中的目标功能码;

在以上公开的报文过滤系统中,在除了图6所示模块之外,本发明实施例还包括检测单元507,参考图7所示。

所述检测单元507,用于对当前待传输报文数据的完整性进行检测。

检测单元507是用来在报文在待传输之前对报文进行完整性检测,保证所有待传输报文数据均是符合通信协议规定的报文。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本申请中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1