CN111147519A - 数据检测方法、装置、电子设备和介质 - Google Patents
数据检测方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN111147519A CN111147519A CN201911424160.8A CN201911424160A CN111147519A CN 111147519 A CN111147519 A CN 111147519A CN 201911424160 A CN201911424160 A CN 201911424160A CN 111147519 A CN111147519 A CN 111147519A
- Authority
- CN
- China
- Prior art keywords
- data frame
- original data
- target
- detection
- information
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/251—Translation of Internet protocol [IP] addresses between different IP versions
-
- 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/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开提供了一种数据检测方法,包括:获取原始数据帧和与原始数据帧对应的协议类型;根据协议类型,解析原始数据帧,得到目标信息;确定历史数据中是否存在包含目标信息的目标数据结构;响应于确定历史数据中不存在目标数据结构,针对原始数据帧执行第一检测流程,并根据第一检测流程的执行结果,针对原始数据帧执行第二检测流程;以及响应于确定历史数据中存在目标数据结构,根据目标结构数据,针对原始数据帧执行第二检测流程。本公开还提供了一种数据检测装置、电子设备和介质。
Description
技术领域
本公开涉及一种数据检测方法、装置、电子设备和介质。
背景技术
相关技术利用Linux内核防火墙(netfilter)构架对采用IPv4协议的数据帧和采用IPv6协议的数据帧进行安全检测时,会设置两条独立的hook点处理路径,由这两条hook点路径分别处理这两种协议类型的数据帧。这种方法代码复用率低,系统内存资源占用高,检测效率低。
发明内容
本公开的一个方面提供了一种数据检测方法,包括:获取原始数据帧和与所述原始数据帧对应的协议类型;根据所述协议类型,解析所述原始数据帧,得到目标信息;确定历史数据中是否存在包含所述目标信息的目标数据结构;响应于确定所述历史数据中不存在所述目标数据结构,针对所述原始数据帧执行第一检测流程,并根据第一检测流程的执行结果,针对所述原始数据帧执行第二检测流程;以及响应于确定所述历史数据中存在所述目标数据结构,根据所述目标结构数据,针对所述原始数据帧执行所述第二检测流程。
可选地,所述针对所述原始数据帧执行第一检测流程,并根据第一检测流程的执行结果,针对所述原始数据帧执行第二检测流程,包括:根据所述协议类型,确定与所述原始数据帧对应的检测策略;根据所述检测策略,对所述原始数据帧进行安全检测;以及创建目标数据结构,并将所述目标信息和所述检测策略存储在所述目标数据结构中。
可选地,所述根据所述目标结构数据,针对所述原始数据帧执行所述第二检测流程包括:读取所述目标数据结构中的检测策略;以及根据所述检测策略,对所述原始数据帧进行安全检测。
可选地,所述获取原始数据帧和与所述原始数据帧对应的协议类型,包括:接收所述原始数据帧;以及通过解析所述原始数据帧的头部信息,获取所述协议类型。
可选地,所述协议类型包括IPv4类型和IPv6类型;所述根据所述协议类型,解析所述原始数据帧,得到目标信息包括:在协议类型为IPv4类型的情况下,根据与IPv4类型对应的解析方法,解析所述原始数据帧,获取所述目标信息;以及在协议类型为IPv6类型的情况下,根据与IPv6类型对应的解析方法,解析所述原始数据帧,获取所述目标信息。
可选地,所述目标信息包括端口信息、报文状态信息、地址转换信息中的至少一个。
可选地,所述检测策略包括网络地址转换策略和安全策略。
可选地,所述根据所述检测策略,对所述原始数据帧进行安全检测,包括:根据所述网络地址转换策略,对所述原始数据帧中的网络地址进行转换,得到目标地址;检测所述目标地址是否异常;在所述目标地址异常的情况下,生成第一报警信息;在所述目标地址没有异常的情况下,根据所述安全策略,检测所述原始数据帧是否异常;以及在所述原始数据帧异常的情况下,生成第二报警信息。
本公开的另一个方面提供了一种数据检测装置,包括第一获取模块,用于获取原始数据帧和与所述原始数据帧对应的协议类型;解析模块,用于根据所述协议类型,解析所述原始数据帧,得到目标信息;第一确定模块,用于确定历史数据中是否存在包含所述目标信息的目标数据结构;第二确定模块,用于响应于确定所述历史数据中不存在所述目标数据结构,针对所述原始数据帧执行第一检测流程,并根据第一检测流程的执行结果,针对所述原始数据帧执行第二检测流程;以及响应于确定所述历史数据中存在所述目标数据结构,根据所述目标结构数据,针对所述原始数据帧执行所述第二检测流程。本公开的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个计算机程序,其中,当一个或多个计算机程序被一个或多个处理器执行时,使得一个或多个处理器实现如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
根据本公开的实施例,通过将数据帧的目标信息和检测策略存储在目标数据结构中,在后续对具有相同目标信息的数据帧进行安全检测时,省去了确定该数据帧所对应的检测策略的步骤,从而提高了代码复用率,减少了系统内存资源占用,提高了检测效率。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了根据本公开实施例的可以应用数据检测方法的示例性系统架构;
图2示意性示出了根据本公开的实施例的数据检测方法的流程图;
图3示意性示出了根据本公开另一实施例的数据检测方法的流程图;
图4示意性示出了根据本公开的实施例的根据检测策略,对原始数据帧进行安全检测的流程图;
图5示意性示出了根据本公开的实施例的数据检测装置的框图;以及
图6示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开的实施例提供了一种数据检测方法。该方法包括获取原始数据帧和与原始数据帧对应的协议类型;根据协议类型,解析原始数据帧,得到目标信息;确定历史数据中是否存在与目标信息对应的目标数据结构;响应于确定历史数据中不存在目标数据结构,执行以下操作:根据协议类型,确定与原始数据帧对应的检测策略;根据检测策略,对原始数据帧进行安全检测;以及将目标信息和检测策略存储在目标数据结构中;以及响应于确定历史数据中存在目标数据结构,执行以下操作:读取目标数据结构中的检测策略;以及根据检测策略,对原始数据帧进行安全检测。
图1示意性示出了根据本公开实施例的可以应用数据检测方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供防火墙服务的防火墙服务器。防火墙服务器可以对接收到的数据帧等数据进行分析,对其中包含的恶意数据帧进行检测和阻断等处理,并将处理结果反馈给终端设备。
需要说明的是,本公开实施例所提供的数据检测方法一般可以由服务器105执行。相应地,本公开实施例所提供的数据检测装置一般可以设置于服务器105中。本公开实施例所提供的数据检测方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据检测装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开的实施例的数据检测方法的流程图。
如图2所示,该方法包括操作S210~S250。
在操作S210,获取原始数据帧和与原始数据帧对应的协议类型。
根据本公开的实施例,操作S210例如可以包括接收原始数据帧,通过解析原始数据帧的头部信息,获取协议类型。
根据本公开的实施例,数据帧例如可以包括以太网帧。可以通过轮询方式从以太网类型网卡接收队列读取太网帧,然后进行以太网帧合法性检查并解析帧头部协议类型,获取协议类型。
在操作S220,根据协议类型,解析原始数据帧,得到目标信息。
根据本公开的实施例,协议类型例如可以包括IPv4类型和IPv6类型。目标信息例如可以包括端口信息、报文状态信息、地址转换信息,其中所述端口信息例如包括源端口和目的端口或者虚拟源端口和目的端口。
根据本公开的实施例,操作S220例如可以包括在协议类型为IPv4类型的情况下,根据与IPv4类型对应的解析方法,解析原始数据帧,获取目标信息;在协议类型为IPv6类型的情况下,根据与IPv6类型对应的解析方法,解析原始数据帧,获取目标信息。
在操作S230,确定历史数据中是否存在包含目标信息的目标数据结构。若确定历史数据中不存在包含目标信息的目标数据结构,执行操作S240,若历史数据中存在包含目标信息的目标数据结构,执行操作S250。
在操作S240,针对原始数据帧执行第一检测流程,并根据第一检测流程的执行结果,针对原始数据帧执行第二检测流程。
在操作S250,根据目标结构数据,针对原始数据帧执行第二检测流程。
图3示意性示出了根据本公开另一实施例的数据检测方法的流程图。
如图3所示,除了操作S210~S250之外,该方法包括操作S360~S390。
其中,第一检测流程例如可以包括操作S360~S370。第二检测流程例如可以包括以下操作S380~S390。
在操作S360,根据协议类型,确定与原始数据帧对应的检测策略。
根据本公开的实施例,检测策略包括网络地址转换(Network AdressTranslation,NAT)策略和安全策略。其中,网络地址转换策略例如包括目的地址转换(DNAT)、源地址转换(SNAT)、NAT44(IPv4网络地址之间的转换策略)、NAT66(IPv6网络地址之间的转换策略)、NAT64(IPv6网络地址转换到IPv4网络地址的策略)和NAT46(IPv4网络地址转换到IPv6网络地址的策略)等。安全策略例如包括反病毒(Anti Virus,AV)策略、入侵防御系统(Intrusion Prevention System,IPS)策略、文件类型检测策略、文件内容检测策略、部件内容检测策略等。
在操作S370,将目标信息和检测策略存储在目标数据结构中。然后执行S390。
根据本公开的实施例,新建一个目标数据结构,将该数据帧所对应的端口信息、报文状态信息、地址转换信息、检测策略存储在目标数据结构中。
在操作S380,读取目标数据结构中的检测策略。
根据本公开的实施例,若历史数据中存在与目标信息对应的目标数据结构,则读取该目标数据结构中的检测策略即可获得数据帧所对应的检测策略,不必再执行确定检测策略的步骤,从而提高了检测速度。
在操作S390,根据检测策略,对原始数据帧进行安全检测。
根据本公开的实施例,操作S390例如可以包括根据检测策略,检测原始数据帧中的IP地址或MAC地址是否在黑名单或白名单中,对原始数据帧中的应用层数据进行AV、IPS等处理,对其中包含的文件类型、文件内容、邮件内容等进行安全检测。
根据本公开的实施例,获取原始数据帧和与原始数据帧对应的协议类型,根据协议类型,解析原始数据帧,得到目标信息,确定历史数据中是否存在包含目标信息的目标数据结构,根据确定结果,对原始数据帧进行安全检测,从而提高了代码复用率,减少了系统内存资源占用,提高了检测效率。
图4示意性示出了根据本公开的实施例的根据检测策略,对原始数据帧进行安全检测的流程图。
如图4所示,操作S270包括例如可以包括操作S471~S475。
在操作S471,根据网络地址转换策略,对原始数据帧中的网络地址进行转换,得到目标地址。
根据本公开的实施例,将原始数据帧中的源IP地址、源端口号、目标IP地址、目的端口号转换成预设格式。
在操作S472,检测目标地址是否异常。
根据本公开的实施例,可以预先设置黑名单,通过判断源IP地址、源端口号、目标IP地址、目的端口号是否包含在黑名单中来确定其是否异常。若其包含在黑名单中,则为异常,否则为不异常。
在操作S473,在目标地址异常的情况下,生成第一报警信息。
根据本公开的实施例,在目标地址异常的情况下,收集发生异常的目标地址的相关信息,根据这些信息生成第一报警信息。
在操作S474,在目标地址没有异常的情况下,根据安全策略,检测所述原始数据帧是否异常。
根据本公开的实施例,操作S474例如可以包括在目标地址没有异常的情况下,检测原始数据帧中的文件类型、文件内容、邮件内容等是否包含恶意数据。
在操作S475,在原始数据帧异常的情况下,生成第二报警信息。
根据本公开的实施例,在原始数据帧异常的情况下,收集发生异常的数据的相关信息,根据这些信息生成第二报警信息。
根据本公开的实施例,通过将数据帧的目标信息和检测策略存储在目标数据结构中,在后续对具有相同目标信息的数据帧进行安全检测时,省去了确定该数据帧所对应的检测策略的步骤,从而提高了代码复用率,减少了系统内存资源占用,提高了检测效率。
下面结合具体实施例对图2~图3所示的方法做进一步说明。
以下示出了根据本公开实施例的一个示例实施例。本领域技术人员可以理解,以下示例实施例仅用于理解本公开,本公开并不局限于此。在本实施例中,定义有flow对象,存储于session中。报文的起点和终点分别为节点A和节点B,节点A到节点B之间的对应一对flow[0]、flow[1],其中flow[0]用于存储A发送到B的数据包的信息,flow[1]用于存储B发送到A的数据包的信息。flow例如可以包括hash、flow_key、dir、from_self、to_self、refresh等数据。其中,hash为哈希值,dir为流量方向,from_self为从表征数据是本地发出的的标识,to_self为表征数据是发向本地的标识,refresh为刷新标识,对象flow_key例如可以包括saddr、daddr、sport、dport、vsys、proto、afi等数据。其中,saddr为源地址,daddr为目的地址,sport为源端口,dport为目的端口,vsys为虚拟系统防火墙id,proto为协议标识,afi为网络层协议,例如包括IPv4或IPv6,rsvd为保留参数。
S01:设置防火墙用户态DP(data-plane,数据平面)用户态转发平面进程,以轮询方式从以太网类型网卡接收队列读取以太网帧。
S02:进行以太网帧合法性检查。
S03:解析帧头部协议类型,获取帧头部中的type参数。
S04:如果type参数是0x0800,则以太网帧协议类型为IPv4协议。将type赋值给服务器每个core(逻辑核心)所对应的全局变量session_msg的子对象flow_key中的afi成员变量,然后进入专门针对网络层为IPv4的协议处理模块进行传输层协议解析。接着执行S06。
更具体地,首先进行网络层IPv4报头合法性检查,然后根据头部信息获取源IP、目的IP和传输层协议号。根据传输层协议号进行相关传输层的头部合法性检查。如果传输层协议为UDP、UDP-Lite和TCP,则获取源端口和目的端口;如果传输层协议是ICMP和其它协议,则不同协议根据不同字段生成虚拟源端口和目的端口;根据如上信息初始化flow_key对象。该对象能够同时支持纯IPv4、纯IPv6、NAT44、NAT66、NAT64和NAT46场景下报文的连接跟踪(状态跟踪)和NAT转换关系记录。
S05:若type参数为0x08DD,则表明太网帧协议类型为IPv6协议。将type赋值给服务器每个core(逻辑核心)所对应的全局变量session_msg的子对象flow_key中的afi成员变量,然后进入专门针对网络层为IPv6的协议处理模块进行传输层协议解析。
更具体地,首先进行网络层IPv6报头合法性检查,然后根据头部信息获取源IP、目的IP和传输层协议号。根据传输层协议号进行相关传输层的头部合法性检查。如果传输层协议为UDP、UDP-Lite和TCP,则获取源端口和目的端口;如果传输层协议是ICMP和其它协议,则不同协议根据不同字段生成虚拟源端口和目的端口;根据如上信息初始化flow_key对象。
S06:通过判断flow对象是否为NULL来确定flow对象是否存在。
S07:如果flow对象为NULL,则进入防火墙首包慢速处理流程。根据报文的目的地址查找DNAT策略和安全策略,根据查找结果,更新flow_key内容。
S08:如果flow对象不为NULL,则执行S18,以进入防火墙快速处理流程,除非策略或应用识别结果有变化,后续包不会再进入一体化策略引擎进行策略查找。
S09:根据报文目的MAC,判断报文是否为到达本地报文。
S10:如果MAC判断报文不是到达本地报文,则记录下入接口属性和VLAN信息。
S11:如果MAC判断报文是到达本地报文,则根据flow_key里面记录的afi判断是否为IPv4协议。如果是IPv4协议,则执行S12,如果是IPv6协议,则执行S13。
S12:如果是IPv4协议,则根据目的IP进行IPv4路由表查找,获取IPv4网关和出接口。
S13:如果是IPv6协议,则根据目的IP进行IPv6路由表查找,获取IPv6网关和出接口。
S14:根据session_msg记录的信息,进入IPv4和IPv6同时支持的一体化策略引擎进行各种策略查找,如检测策略、SNAT等,同时更新session_msg中的flow_key内容。
S15:判断一体化策略查找结果是否为丢弃。
S16:如果是丢弃,则丢弃该报文,DP进行下一个数据帧处理。
S17:如果不是丢弃,则根据flow_key创建session。
S18:进入防火墙快速处理流程。除ALG模块和抗攻击模块中涉及部分网络层协议代码处理外,该流程其它处理环节都不会涉及网络层协议代码,因此这些处理环节的代码和处理流程可以双栈共用。其中,ALG模块用于对多通道协议进行应用层报文信息的解析和地址转换,将载荷中需要进行地址转换的IP地址和端口或者需特殊处理的字段进行相应的转换和处理,从而保证应用层通信的正确性。抗攻击模块用于根据报文特征识别出是否为网络攻击流量,然后实施阻断或日志记录。
S19:如果不是,则进入高级应用安全处理引擎对7层数据进行处理,该引擎不涉及网络层协议处理,可以双栈共用。其中,高级应用安全处理引擎用于检测数据内容的安全性。
S20:判断高级应用安全引擎返回结果是否为阻断。
S21:如果为阻断,则删除S17创建的session,并丢弃该报文,DP对下一个数据帧处理。
S22:判断flow对象中是否存在有效通信信息。
S23:如果flow对象中存在有效通信信息,则判断是否为二层转发。如果是,则由S30处理;否则,由S29处理。
S24:如果flow对象中不存在有效通信信息,则判断出接口是否为二层交换口。
S25:如果出接口是二层交换口,则目的MAC为非本地报文,依据报文中的目的MAC和VLAN进行VLAN-MAC表查找,以获取出接口信息。
S26:判断flow_key中的afi是否为IPv4。
S27:如果afi是IPv4,则根据下一跳IPv4网关信息查找ARP表,获取邻居MAC地址信息。
S28:如果afi不是IPv4,则根据下一跳IPv6网关信息查找neighbor(邻居)表,获取邻居MAC地址信息。
S29:根据下一跳邻居MAC地址和出接口信息,对三层报文进行二层以太帧头封装,其中邻居MAC为帧头目的MAC地址,出接口MAC为源MAC地址,类型赋值为flow_key中的afi。
S30:由添加该出接口时注册的报文发送函数将该报文发送出去。
根据本公开的实施例,通过良好的数据结构定义、一体化的策略引擎和特别优化的防火墙处理流程,使得IPv4和IPv6报文的处理可以共用大部分处理流程,从而提高系统的可扩展性、性能、代码复用率,以及大大减少系统运行时所占用的内存资源。
另外,在面对NAT64或NAT46地址转换需求时,传统方法通过隧道引流的方式来实现。这种方式首先要创建一个隧道接口,然后配置转换策略和不同协议的业务网段路由,其中路由出接口为隧道接口。当不同协议测流量匹配中上面的路由后,进入隧道对应的协议转换模块,然后协议模块根据转换策略完成协议间地址转换。同时,还需要创建2条session分别用于IPv4测和IPv6测的连接跟踪和NAT转换记录,这样不但会消耗大量系统内存,还会因为2次查表引起更大的数据帧处理延迟。而根据本公开的实施例,对于NAT64和NAT46转换的功能需求实现,不需要通过隧道接口引流和建立2条不同协议测session解决连接跟踪和记录NAT转换关系。
接下来进一步描述查找NAT策略的方法。
以下实施例示出了NAT64场景下策略查找的示例过程。本实施例中,发起方的报文采用IPv6协议。
首先针对接收到的报文,根据session_msg信息进行NAT64策略(根据IPv6报文目的地址查找IPv6地址到IPv4地址映射关系表的过程)查找,判断是否查找到与报文对应的NAT64策略。如果没有查到对应的NAT64策略,则进入下一个处理流程
如果查找到对应的NAT64策略,则根据策略内容更新flow_key内容,举例如下:
(1)IPv6报文五元组内容为:sip:1::1,sport:1000,dip:2::1,dport:2000,proto:17。其中,sip为源IP地址,sport为源端口地址,dip为目的IP地址,dport为目的端口地址。
(2)如果NAT64策略内容为:sip:ipv6_any,dip:2::1,service:udp,dip_trans_after:2.2.2.2,sip_trans_after:1.1.1.1,则flow_key对象包含flow_key[0]和flow_key[1]。其中,
flow_key[0]用于存储原始IPv6报文信息,即正向报文6元组信息,其内容包括
[afi:AF_INET6,sip:1::1,sport:1000,dip:2::1,dport:2000,proto:17]。
flow_key[1]用于存储转换后IPv4报文信息,即反向报文6元组信息,其内容包括
[afi:AF_INET,sip:2.2.2.2,sport:2000,dip:1.1.1.1,dport:1000,proto:17]。
接下来,根据转换后目的IP查找IPv4路由,获取下一跳网关和出接口信息。
当后续收到该报文所对应的反向报文时,可以匹配后面创建的session的flow[1],根据flow[0]即可以完成反向报文由IPv4到IPv6的转换。
以下实施例示出了NAT46场景下策略查找的示例过程。本实施例中,发起方的报文采用IPv4协议。
首先针对接收到的报文,根据session_msg信息进行NAT46策略(根据IPv4报文目的地址查找IPv4地址到IPv6地址映射关系表的过程)查找,判断是否查找到与报文对应的NAT46策略。如果没有查到对应的NAT46策略,则进入下一个处理流程
如果查找到对应的NAT64策略,则根据策略内容更新flow_key内容,举例如下:
(1)IPv4报文五元组信息为:sip:1.1.1.1.1,sport:1000,dip:2.2.2.2,dport:2000,proto:17
(2)如果NAT64策略内容为:sip:ipv4_any,dip:1.1.1.1,service:udp,dip_trans_after:1::1,sip_trans_after:2::1,则flow_key包括flow_key[0]和flow_key[1]。
其中,flow_key[0]为原始IPv4报文内容,即正向报文6元组信息,其内容包括:
[afi:AF_INET,sip:1.1.1.1,sport:1000,dip:2.2.2.2,dport:2000,proto:17]。
flow_key[1]为转换后IPv6报文内容,即反向报文6元组信息,其内容包括:
[afi:AF_INET6,sip:1::1,sport:2000,dip:2::2,dport:1000,proto:17]。
接下来,根据转换后目的IP查找IPv6路由表,获取下一跳网关和出接口信息
当后续收到该报文所对应的反向报文时,可以匹配后面创建的session的flow[1],根据flow[0]即可以完成反向报文由IPv6到IPv4的转换。
图5示意性示出了根据本公开的实施例的数据检测装置的框图。
如图5所示,数据检测装置500包括第一获取模块510、解析模块520、第一确定模块530和第二确定模块540。该数据检测装置500可以执行上面参考图2~图4描述的方法。
具体地,第一获取模块510,用于获取原始数据帧和与原始数据帧对应的协议类型。
解析模块520,用于根据协议类型,解析原始数据帧,得到目标信息。
第一确定模块530,用于根据协议类型,解析原始数据帧,得到目标信息。
第二确定模块540,用于响应于确定历史数据中不存在目标数据结构,针对原始数据帧执行第一检测流程,并根据第一检测流程的执行结果,针对原始数据帧执行第二检测流程;以及响应于确定历史数据中存在目标数据结构,根据目标结构数据,针对原始数据帧执行第二检测流程。
根据本公开的实施例,通过将数据帧的目标信息和检测策略存储在目标数据结构中,在后续对具有相同目标信息的数据帧进行安全检测时,省去了确定该数据帧所对应的检测策略的步骤,从而提高了代码复用率,减少了系统内存资源占用,提高了检测效率。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块510、解析模块520、第一确定模块530和第二确定模块540中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块510、解析模块520、第一确定模块530和第二确定模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块510、解析模块520、第一确定模块530和第二确定模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的方框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括处理器610以及计算机可读存储介质620。该计算机系统600可以执行根据本公开实施例的方法。
具体地,处理器610例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器610还可以包括用于缓存用途的板载存储器。处理器610可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质620,例如可以是非易失性的计算机可读存储介质,具体示例包括但不限于:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;等等。
计算机可读存储介质620可以包括计算机程序621,该计算机程序621可以包括代码/计算机可执行指令,其在由处理器610执行时使得处理器610执行根据本公开实施例的方法或其任何变形。
计算机程序621可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序621中的代码可以包括一个或多个程序模块,例如包括621A、模块621B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器610执行时,使得处理器610可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,第一获取模块510、解析模块520、第一确定模块530和第二确定模块540中的至少一个可以实现为参考图6描述的计算机程序模块,其在被处理器610执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (12)
1.一种数据检测方法,包括:
获取原始数据帧和与所述原始数据帧对应的协议类型;
根据所述协议类型,解析所述原始数据帧,得到目标信息;
确定历史数据中是否存在包含所述目标信息的目标数据结构;
响应于确定所述历史数据中不存在所述目标数据结构,针对所述原始数据帧执行第一检测流程,并根据第一检测流程的执行结果,针对所述原始数据帧执行第二检测流程;以及
响应于确定所述历史数据中存在所述目标数据结构,根据所述目标结构数据,针对所述原始数据帧执行所述第二检测流程。
2.根据权利要求1所述的方法,其中,所述针对所述原始数据帧执行第一检测流程,并根据第一检测流程的执行结果,针对所述原始数据帧执行第二检测流程,包括:
根据所述协议类型,确定与所述原始数据帧对应的检测策略;
根据所述检测策略,对所述原始数据帧进行安全检测;以及
创建目标数据结构,并将所述目标信息和所述检测策略存储在所述目标数据结构中。
3.根据权利要求2所述的方法,其中,所述根据所述目标结构数据,针对所述原始数据帧执行所述第二检测流程包括:
读取所述目标数据结构中的检测策略;以及
根据所述检测策略,对所述原始数据帧进行安全检测。
4.根据权利要求1所述的方法,其中,所述获取原始数据帧和与所述原始数据帧对应的协议类型,包括:
接收所述原始数据帧;以及
通过解析所述原始数据帧的头部信息,获取所述协议类型。
5.根据权利要求1所述的方法,其中,所述协议类型包括IPv4类型和IPv6类型;所述根据所述协议类型,解析所述原始数据帧,得到目标信息包括:
在协议类型为IPv4类型的情况下,根据与IPv4类型对应的解析方法,解析所述原始数据帧,获取所述目标信息;以及
在协议类型为IPv6类型的情况下,根据与IPv6类型对应的解析方法,解析所述原始数据帧,获取所述目标信息。
6.根据权利要求1至5中任一项所述的方法,其中,所述目标信息包括端口信息、报文状态信息、地址转换信息中的至少一个。
7.根据权利要求2所述的方法,其中,所述检测策略包括网络地址转换策略和安全策略。
8.根据权利要求7所述的方法,其中,所述根据所述检测策略,对所述原始数据帧进行安全检测,包括:
根据所述网络地址转换策略,对所述原始数据帧中的网络地址进行转换,得到目标地址;
检测所述目标地址是否异常;
在所述目标地址异常的情况下,生成第一报警信息;
在所述目标地址没有异常的情况下,根据所述安全策略,检测所述原始数据帧是否异常;以及
在所述原始数据帧异常的情况下,生成第二报警信息。
9.一种数据检测装置,包括:
第一获取模块,用于获取原始数据帧和与所述原始数据帧对应的协议类型;
解析模块,用于根据所述协议类型,解析所述原始数据帧,得到目标信息;
第一确定模块,用于确定历史数据中是否存在包含所述目标信息的目标数据结构;以及
第二确定模块,用于响应于确定所述历史数据中不存在所述目标数据结构,针对所述原始数据帧执行第一检测流程,并根据第一检测流程的执行结果,针对所述原始数据帧执行第二检测流程;以及响应于确定所述历史数据中存在所述目标数据结构,根据所述目标结构数据,针对所述原始数据帧执行所述第二检测流程。
10.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个计算机程序,
其中,当一个或多个计算机程序被一个或多个处理器执行时,使得一个或多个处理器实现权利要求1至8中任一项的方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至8中任一项的方法。
12.一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现根据权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911424160.8A CN111147519A (zh) | 2019-12-31 | 2019-12-31 | 数据检测方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911424160.8A CN111147519A (zh) | 2019-12-31 | 2019-12-31 | 数据检测方法、装置、电子设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111147519A true CN111147519A (zh) | 2020-05-12 |
Family
ID=70523098
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911424160.8A Pending CN111147519A (zh) | 2019-12-31 | 2019-12-31 | 数据检测方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111147519A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112637223A (zh) * | 2020-12-26 | 2021-04-09 | 曙光网络科技有限公司 | 应用协议识别方法、装置、计算机设备和存储介质 |
CN113196720A (zh) * | 2021-03-22 | 2021-07-30 | 华为技术有限公司 | 数据处理方法及传输设备、数据处理系统 |
CN113965386A (zh) * | 2021-10-25 | 2022-01-21 | 绿盟科技集团股份有限公司 | 工控协议报文处理方法、装置、设备及存储介质 |
CN115412330A (zh) * | 2022-08-24 | 2022-11-29 | 北京天融信网络安全技术有限公司 | 多连接协议报文的检测方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040143758A1 (en) * | 2003-01-21 | 2004-07-22 | Microsoft Corporation | Method for mapping security associations to clients operating behind a network address translation device |
CN1612562A (zh) * | 2003-10-28 | 2005-05-04 | 武汉烽火网络有限责任公司 | 用策略流实现不同因特网协议数据包转发的方法和设备 |
US20160036856A1 (en) * | 2013-06-17 | 2016-02-04 | Hillstone Networks, Corp. | Data flow forwarding method and device |
CN107979567A (zh) * | 2016-10-25 | 2018-05-01 | 北京计算机技术及应用研究所 | 一种基于协议分析的异常检测系统及方法 |
CN108667776A (zh) * | 2017-03-31 | 2018-10-16 | 中兴通讯股份有限公司 | 一种网络业务诊断方法 |
-
2019
- 2019-12-31 CN CN201911424160.8A patent/CN111147519A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040143758A1 (en) * | 2003-01-21 | 2004-07-22 | Microsoft Corporation | Method for mapping security associations to clients operating behind a network address translation device |
CN1612562A (zh) * | 2003-10-28 | 2005-05-04 | 武汉烽火网络有限责任公司 | 用策略流实现不同因特网协议数据包转发的方法和设备 |
US20160036856A1 (en) * | 2013-06-17 | 2016-02-04 | Hillstone Networks, Corp. | Data flow forwarding method and device |
CN107979567A (zh) * | 2016-10-25 | 2018-05-01 | 北京计算机技术及应用研究所 | 一种基于协议分析的异常检测系统及方法 |
CN108667776A (zh) * | 2017-03-31 | 2018-10-16 | 中兴通讯股份有限公司 | 一种网络业务诊断方法 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112637223A (zh) * | 2020-12-26 | 2021-04-09 | 曙光网络科技有限公司 | 应用协议识别方法、装置、计算机设备和存储介质 |
CN113196720A (zh) * | 2021-03-22 | 2021-07-30 | 华为技术有限公司 | 数据处理方法及传输设备、数据处理系统 |
CN113196720B (zh) * | 2021-03-22 | 2023-07-28 | 华为技术有限公司 | 数据处理方法及传输设备、数据处理系统 |
CN113965386A (zh) * | 2021-10-25 | 2022-01-21 | 绿盟科技集团股份有限公司 | 工控协议报文处理方法、装置、设备及存储介质 |
CN113965386B (zh) * | 2021-10-25 | 2023-11-03 | 绿盟科技集团股份有限公司 | 工控协议报文处理方法、装置、设备及存储介质 |
CN115412330A (zh) * | 2022-08-24 | 2022-11-29 | 北京天融信网络安全技术有限公司 | 多连接协议报文的检测方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11722509B2 (en) | Malware detection for proxy server networks | |
US10454879B2 (en) | Methods and systems for processing a DNS request | |
US10484278B2 (en) | Application-based network packet forwarding | |
US11343285B2 (en) | Multi-access edge computing services security in mobile networks by parsing application programming interfaces | |
CN111147519A (zh) | 数据检测方法、装置、电子设备和介质 | |
US9369435B2 (en) | Method for providing authoritative application-based routing and an improved application firewall | |
US9692853B2 (en) | Methods and systems for processing a DNS request | |
CN106936791B (zh) | 拦截恶意网址访问的方法和装置 | |
US11019102B2 (en) | Method for a communication network, and electronic monitoring unit | |
US10027627B2 (en) | Context sharing between endpoint device and network security device using in-band communications | |
US11689502B2 (en) | Securing control and user plane separation in mobile networks | |
KR20100087032A (ko) | 보안 실행 지점에 보안 연관 정보를 선택적으로 로딩하는 방법 | |
US20160277293A1 (en) | Application-based network packet forwarding | |
CN110995763B (zh) | 一种数据处理方法、装置、电子设备和计算机存储介质 | |
CN110351159B (zh) | 一种跨内网的网络性能测试方法及装置 | |
CN114785876B (zh) | 报文检测方法及装置 | |
CN113452663B (zh) | 基于应用特征的网络业务控制 | |
CN114285771A (zh) | 一种tcp连接的连接状态追踪方法及装置 | |
US11064032B1 (en) | Application-aware routing in network address translation environments | |
CN117527542A (zh) | 随流检测方法、装置及系统 | |
CN116208659A (zh) | 一种连接保持方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for 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: 20200512 |