一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

入侵检测方法及电子设备、存储介质与流程

2023-01-15 08:39:37 来源:中国专利 TAG:


1.本技术涉及通信安全技术领域,特别涉及一种入侵检测方法及电子设备、计算机可读存储介质。


背景技术:

2.网络安全在互联网通信无处不在的今天显得尤为重要。对外提供互联网服务的企业可以通过入侵防御系统(intrusion prevention system,ips)识别恶意流量,并拦截此类恶意流量进入企业网络。一般,可将ips功能部署在入栈流量方向,以监控并检查入栈流量中是否存在漏洞和漏洞利用程序,如果检测到威胁,则按照安全防御策略采取适当的措施,比如:阻止访问、隔离主机或阻止访问外部网站以避免引入潜在威胁等。参见图1,为相关技术中入侵检测方法的架构示意图。如图1所示,在相关技术中,入侵检测系统部署于安全主机内核层的网络协议栈,安全设备的网卡接收到报文后,将报文传递至网络协议栈。网络协议栈对报文解析后方可发送到应用层的应用当中,因此,部署在网络协议栈的入侵检测系统可以对报文进行安全检测。
3.然而,网络协议栈的功能丰富且实现复杂,入侵检测系统需要对报文在链路层、网络层、传输层和应用层的信息进行安全检测,因此需要在协议栈中多个位置进行部署,实现较为复杂。


技术实现要素:

4.本技术实施例的目的在于提供一种入侵检测方法及电子设备、计算机可读存储介质,在部署难度较低的情况下实现入侵检测。
5.一方面,本技术提供了一种入侵检测方法,包括:
6.网卡驱动接收到数据包,调用xdp网络钩子上的xdp程序,通过所述xdp程序将所述数据包提交到入侵检测模块;
7.所述入侵检测模块对所述数据包进行检测,获得与检测结果对应的处理动作;
8.所述xdp程序获取所述入侵检测模块返回的处理动作,并根据所述处理动作对所述数据包进行处理。
9.通过上述措施,极大提高了对数据包的检测速率。相比相关技术而言,本技术方案通过应用层的入侵检测系统,在数据包进入协议栈之前对数据包进行检测,在部署难度较低的情况下实现了入侵检测。
10.在一实施例中,所述xdp程序包括xdp过滤程序和xdp报文处理程序,所述xdp过滤程序用于过滤出待检测的数据包,所述xdp报文处理程序用于提交数据包和处理数据包;
11.所述调用xdp网络钩子上的xdp程序,通过所述xdp程序将所述数据包提交到入侵检测模块,包括:
12.调用xdp网络钩子上的xdp过滤程序,通过所述xdp过滤程序对所述数据包进行过滤,得到待检测的数据包;
13.调用xdp网络钩子上的xdp报文处理程序,通过所述xdp报文处理程序将待检测的数据包提交到入侵检测模块。
14.通过上述措施,可以对威胁较大的数据包进行针对性检测,从而降低入侵检测模块的计算量,提高整体检测效率。
15.在一实施例中,在所述调用xdp网络钩子上的xdp程序,通过所述xdp程序将所述数据包提交到入侵检测模块之前,所述方法还包括:
16.所述入侵检测模块解析预设过滤规则文件,获得过滤规则;其中,所述过滤规则用于过滤出待检测的数据包;
17.所述入侵检测模块为所述过滤规则生成所述xdp过滤程序,并将携带所述过滤规则的xdp过滤程序写入所述xdp网络钩子。
18.通过上述措施,后续可以通过xdp网络钩子上的xdp过滤程序过滤出待检测的数据包,从而减少入侵检测模块的计算量。
19.在一实施例中,所述xdp程序包括xdp白名单程序和xdp报文处理程序,所述xdp白名单程序用于通过可信流量的数据包,所述xdp报文处理程序用于提交数据包和处理数据包;
20.所述调用xdp网络钩子上的xdp程序,通过所述xdp程序将所述数据包提交到入侵检测模块,包括:
21.调用xdp网络钩子上的xdp白名单程序,通过所述xdp白名单程序检查命中白名单的数据包,并将命中白名单的数据包提交至协议栈;
22.调用xdp网络钩子上的xdp报文处理程序,通过所述xdp报文处理程序将未命中白名单的数据包提交至入侵检测模块。
23.通过上述措施,可以设置白名单对可信流量进行免检处理,从而降低入侵检测模块的计算量,并提高数据包的整体处理效率。
24.在一实施例中,在所述调用xdp网络钩子上的xdp程序,通过所述xdp程序将所述数据包提交到入侵检测模块之前,所述方法还包括:
25.所述入侵检测模块解析预设白名单文件,获得白名单;
26.所述入侵检测模块为所述白名单生成所述xdp白名单程序,并将携带所述白名单的xdp白名单程序写入所述xdp网络钩子。
27.通过上述措施,后续可以通过xdp网络钩子上的xdp白名单程序直接通过可信流量的数据包,从而减少入侵检测模块的计算量。
28.在一实施例中,所述xdp程序包括xdp黑名单程序和xdp报文处理程序,所述xdp黑名单程序用于阻断异常流量的数据包,所述xdp报文处理程序用于提交数据包和处理数据包;
29.所述调用xdp网络钩子上的xdp程序,通过所述xdp程序将所述数据包提交到入侵检测模块,包括:
30.调用xdp网络钩子上的xdp黑名单程序,通过所述xdp黑名单程序检查命中黑名单的数据包,并丢弃命中黑名单的数据包;
31.调用xdp网络钩子上的xdp报文处理程序,通过所述xdp报文处理程序将未命中黑名单的数据包提交至入侵检测模块。
32.通过上述措施,可以设置黑名单对异常流量在网卡驱动层面进行阻断,从而降低了入侵检测模块的计算量,并提高了数据包的整体处理效率。
33.在一实施例中,在所述调用xdp网络钩子上的xdp程序,通过所述xdp程序将所述数据包提交到入侵检测模块之前,所述方法还包括:
34.所述入侵检测模块解析预设黑名单文件,获得黑名单;
35.所述入侵检测模块为所述黑名单生成所述xdp黑名单程序,并将携带所述黑名单的xdp黑名称程序写入所述xdp网络钩子。
36.通过上述措施,后续可以通过xdp网络钩子上的xdp黑名单程序直接丢弃异常流量的数据包,从而减少入侵检测模块的计算量。
37.在一实施例中,在所述将携带所述黑名单的xdp黑名称程序写入所述xdp网络钩子之后,所述方法还包括:
38.所述入侵检测模块根据指定时间段的历史检测结果,确定若干异常流量,并为所述若干异常流量生成黑名单;
39.所述入侵检测模块将生成的黑名单下发至所述xdp黑名单程序。
40.通过上述措施,可以动态更新xdp黑名单程序的黑名单,使得xdp黑名单程序可以根据最新的黑名单丢弃异常流量的数据包。
41.另一方面,本技术提供了一种电子设备,所述电子设备包括:
42.处理器;
43.用于存储处理器可执行指令的存储器;
44.其中,所述处理器被配置为执行上述入侵检测方法。
45.此外,本技术提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述入侵检测方法。
附图说明
46.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍。
47.图1为相关技术中入侵检测方法的架构示意图;
48.图2为本技术一实施例提供的电子设备的结构示意图;
49.图3为本技术一实施例提供的入侵检测方法的流程示意图;
50.图4为本技术一实施例提供的入侵检测方法的架构示意图;
51.图5为本技术另一实施例提供的入侵检测方法的流程示意图。
具体实施方式
52.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
53.相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本技术的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
54.如图2所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图2中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处
理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程。在一实施例中,电子设备1可以是服务器的安全设备(比如:防火墙)或服务器或车载网关,用于执行入侵检测方法。为便于描述,下文以电子设备为执行主体。
55.存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read only memory,简称eprom),可编程只读存储器(programmable red-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
56.本技术还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本技术提供的入侵检测方法。
57.参见图3,为本技术一实施例提供的入侵检测方法的流程示意图,如图3所示,该方法可以包括以下步骤310-步骤330。
58.步骤310:网卡驱动接收到数据包,调用xdp网络钩子上的xdp程序,通过xdp程序将数据包提交到入侵检测模块。
59.电子设备的网卡接收到外部网络发送的数据包之后,可以将数据包提交至网卡驱动。网卡驱动上设置xdp(express data path,快速路径程序)网络钩子(hook),且xdp网络钩子上设有xdp程序。
60.网卡驱动在接收数据包之后,可以调用xdp程序处理数据包。xdp程序可以通过xdp_redirect机制将数据包转发至应用层的入侵检测模块。
61.参见图4,为本技术一实施例提供的入侵检测方法的架构示意图,如图4所示,入侵检测模块位于应用层,而非协议栈中。入侵检测模块可以通过一个af_xdp类型的socket对xdp程序进行监听,从而接收xdp程序所转发的数据包。
62.步骤320:入侵检测模块对数据包进行检测,获得与检测结果对应的处理动作。
63.入侵检测模块在接收到数据包之后,可以对数据包进行协议解析,从数据包中提取多种关键字段,比如,链路层的mac(media access control address,媒体存取控制位址)地址;网络层的ip(internet protocol address,互联网协议地址)地址、flag、分片等信息;传输层的端口、标志位等信息和应用层的报文数据等信息。
64.入侵检测模块可以依据提取出的关键字段、以及数据包的上下文信息,进行多种异常类型的安全检测。示例性的,异常类型可以包括arp(address resolution protocol,地址解析协议)欺骗、数据包分片攻击、泛洪攻击等。经过检测之后,可以确定数据包是否属于异常流量。一方面,如果数据包属于异常流量,可以确定处理动作为丢弃(xdp_drop)。另一方面,如果数据包属于正常流量,可以确定处理动作为转发(xdp_pass)。
65.入侵检测模块在获得处理动作后,可以向xdp程序返回处理动作。
66.步骤330:xdp程序获取入侵检测模块返回的处理动作,并根据处理动作对数据包进行处理。
67.xdp程序获得处理动作,从而对数据包进行处理。一方面,处理动作为丢弃,可以丢弃数据包。另一方面,处理动作为转发,可以将数据包提交至协议栈,使得数据包从协议栈传递至应用层的其它应用来处理。
68.由于协议栈对数据包的关注度比较多,解析比较复杂,部署于协议栈的入侵检测模块需耗费更多时间对数据包进行检测。而本技术方案入侵检测模块部署于应用层,只需解析关键字段进行检测,因此极大提高了对数据包的检测速率。相比相关技术而言,本技术方案通过应用层的入侵检测系统,在数据包进入协议栈之前对数据包进行检测,在部署难度较低的情况下实现了入侵检测。此外,由于入侵检测模块无需因不同系统或不同版本内核进行定制更改,可移植性较高,移植过程只需在目标设备上进行简单的配置按照即可实现入侵检测防御功能。
69.参见图5,为本技术另一实施例提供的入侵检测方法的流程示意图,如图5所示,网络数据包进入网卡后,网卡驱动中xdp程序可以将数据包提交至入侵检测模块(入侵进程引擎)。入侵检测模块对数据包进程是否存在异常,并向xdp程序返回与检测结果对应的处理动作。xdp程序根据处理动作确定是否丢弃数据包,并以此对数据包进行处理。
70.在一实施例中,xdp程序包括xdp过滤程序和xdp报文处理程序。其中,xdp过滤程序用于过滤出待检测的数据包,xdp报文处理程序用于提交数据包和处理数据包。
71.在调用xdp程序,通过xdp程序将数据包提交到入侵检测模块时,网卡驱动可以调用xdp过滤程序和xdp报文处理程序。
72.xdp过滤程序可以依据过滤规则对数据包进行过滤,得到待检测的数据包。这里,过滤规则用于过滤出可能存在威胁的数据包,过滤规则可以是以ip、mac、协议、端口等一种或多种字段所确定的规则。
73.在过滤出待检测的数据包之后,xdp报文处理程序可以将待检测的数据包提交到入侵检测模块。对于被滤除的数据包,可以认为是不存在威胁的数据包,xdp报文处理程序可以将这部分数据包提交至协议栈。
74.在该实施例中,后续xdp报文处理程序可以从入侵检测模块接收处理动作,进而对数据包进行处理。
75.通过上述措施,可以对威胁较大的数据包进行针对性检测,从而降低入侵检测模块的计算量,提高整体检测效率。
76.在一实施例中,在通过xdp程序将数据包提交到入侵检测模块之前,入侵检测模块可以在xdp网络钩子上写入xdp报文处理程序,使得后续网卡驱动所接收的数据包可以经由xdp报文处理程序提交至入侵检测模块。
77.在一实施例中,在通过xdp程序将数据包提交到入侵检测模块之前,入侵检测模块可以解析预设过滤规则文件,获得过滤规则。其中,过滤规则文件记录至少一条用户配置的过滤规则;过滤规则用于过滤出待检测的数据包。
78.入侵检测模块可以为过滤规则生成xdp过滤程序,该xdp过滤程序用于执行过滤规则。入侵检测模块可以将携带过滤规则的xdp过滤程序写入xdp网络钩子。写入到xdp网络钩子的xdp过滤程序的处理顺序早于xdp报文处理程序。
79.通过上述措施,后续可以通过xdp网络钩子上的xdp过滤程序过滤出待检测的数据包,从而减少入侵检测模块的计算量。
80.在一实施例中,xdp程序包括xdp白名单程序和xdp报文处理程序。其中,xdp白名单程序用于通过可信流量的数据包,可信流量即为无需检测的流量。xdp报文处理程序用于提交数据包和处理数据包。
81.在调用xdp程序,通过xdp程序将数据包提交到入侵检测模块时,网卡驱动可以调用xdp白名单程序和xdp报文处理程序。
82.xdp白名单程序可以检查数据包是否命中白名单,这里,白名单用于记录可信流量。xdp白名单程序可以从数据包中提取ip、mac、协议、端口等一种或多种字段的信息,判断提取出的信息是否命中白名单。一方面,数据包命中白名单,xdp白名单程序可以将命中白名单的数据包直接提交至协议栈。另一方面,数据包未命中白名单,xdp报文处理程序可以将未命中白名单的数据包提交至入侵检测模块。
83.通过上述措施,可以设置白名单对可信流量进行免检处理,从而降低入侵检测模块的计算量,并提高数据包的整体处理效率。
84.在一实施例中,在通过xdp程序将数据包提交到入侵检测模块之前,入侵检测模块可以解析预设白名单文件,获得白名单。其中,白名单文件记录至少一条用户配置的白名单。白名单通过ip、mac、协议、端口等一种或多种字段的信息指示可信流量。
85.入侵检测模块可以为白名单生成xdp白名单程序,该xdp白名单程序用于滤除可信流量的数据包。入侵检测模块可以将携带白名单的xdp白名单程序写入xdp网络钩子。写入xdp网络钩子的xdp白名单程序的处理顺序早于xdp报文处理程序。
86.通过上述措施,后续可以通过xdp网络钩子上的xdp白名单程序直接通过可信流量的数据包,从而减少入侵检测模块的计算量。
87.在一实施例中,xdp程序包括xdp黑名单程序和xdp报文处理程序。其中,xdp黑名单程序用于阻断异常流量的数据包。xdp报文处理程序用于提交数据包和处理数据包。
88.在调用xdp程序,通过xdp程序将数据包提交到入侵检测模块时,网卡驱动可以调用xdp黑名单程序和xdp报文处理程序。
89.xdp黑名单程序可以检查数据包是否命中黑名单,这里,黑名单用于记录异常流量。xdp黑名单程序可以从数据包中提取ip、mac、协议、端口等一种或多种字段的信息,判断提取出的信息是否命中黑名单。一方面,数据包命中黑名单,xdp黑名单程序可以将命中黑名单的数据包直接丢弃。另一方面,数据包未命中黑名单,xdp报文处理程序可以将未命中黑名单的数据包提交至入侵检测模块。
90.通过上述措施,可以设置黑名单对异常流量在网卡驱动层面进行阻断,从而降低了入侵检测模块的计算量,并提高了数据包的整体处理效率。
91.在一实施例中,在通过xdp程序将数据包提交到入侵检测模块之前,入侵检测模块可以解析预设黑名单文件,获得黑名单。其中,黑名单文件记录至少一条用户配置的黑名单。黑名单通过ip、mac、协议、端口等一种或多种字段的信息指示异常流量。
92.入侵检测模块可以为黑名单生成xdp黑名单程序,该xdp黑名单程序用于滤除异常流量的数据包。入侵检测模块可以将携带黑名单的xdp黑名称程序写入xdp网络钩子。写入xdp网络钩子的xdp黑名称程序的处理顺序早于xdp报文处理程序。
93.通过上述措施,后续可以通过xdp网络钩子上的xdp黑名单程序直接丢弃异常流量的数据包,从而减少入侵检测模块的计算量。
94.在一实施例中,入侵检测模块在xdp网络钩子写入xdp黑名单程序之后,可以动态更新xdp黑名单程序中的黑名单。
95.入侵检测模块可以根据指定时间段的历史检测结果,确定若干异常流量。这里,指
定时间段可以根据需要进行配置,示例性的,指定时间段可以生成黑名单之前的一个月。入侵检测模块可以从历史检测结果中确定频繁出现的异常流量。示例性的,入侵检测模块可以通过出现次数、出现频率等维度的评估指标,确定频繁出现的异常流量。入侵检测模块可以为筛选出的异常流量,生成黑名单。
96.进一步的,入侵检测模块可以将动态生成的黑名单下发至xdp黑名单程序,使得xdp黑名单程序可以根据更新后的黑名单滤除异常流量的数据包。入侵检测模块可以定时更新xdp黑名单程序的黑名单,从而使得xdp黑名单程序可以根据最新的黑名单丢弃异常流量的数据包。
97.在一实施例中,xdp程序中可以包括xdp报文处理程序,以及xdp白名单程序、xdp黑名称程序和xdp过滤程序中一种或多种的组合,从而在将数据包提交至入侵检测模块之前,更细致地筛选出需要检测的数据包,降低入侵检测模块的计算量,提高电子设备的整体工作效率。
98.本技术方案的部署较为简单,可以在电子设备上使用iplink命令开启网卡中的xdp属性,并在应用层部署入侵检测模块。通过命令行启动入侵检测模块,并指定预设过滤规则文件、预设白名单文件、预设黑名单文件的存储路径。入侵检测模块可以读取相应文件,解析并生成xdp程序写入到xdp网络钩子,从而在后续接收xdp程序所提交的数据包进行检测。
99.本技术实现的灵活性较高,入侵检测模块部署在应用层,对于规则更新、软件更新等情况只需更换相应的文件或者安装新版本应用程序即可,无需修改内核代码并重新编译。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献