网络连接信息获取方法、装置、电子设备及存储介质与流程
未命名
08-07
阅读:93
评论:0

1.本技术涉及网络安全技术领域,尤其涉及一种网络连接信息获取方法、装置、电子设备及存储介质。
背景技术:
2.在服务器的安全运维中,需要对服务器收发的网络流量进行分析,其中一项分析就是从网络流量中分析出服务器与外部系统的网络连接信息,从而基于网络连接信息进行异常连接检测。
3.所谓网络连接信息,是指五元组等信息,即源网际互连协议(internet protocol,ip)地址、源端口、目的ip地址、目的端口、三层协议(udp/tcp/icmp)等。为了获取服务器的网络连接信息,目前主要采取的方式为:获取外部系统向服务器发送的网络流量包,或者服务器向外部系统发送的网络流量包,进而对获取到的网络流量包进行解析,从解析的数据中获取服务器与外部系统的网络连接信息。
4.在网络流量包中,不仅包含有网络连接信息,还包含有大量的传输内容。这就导致网络流量包解析的工作量较大,解析时间较长,从而获取服务器与外部系统的网络连接信息的速度较慢,使得网络连接信息的获取效率低下。
技术实现要素:
5.本技术实施例的目的是提供一种网络连接信息获取方法、装置、电子设备及存储介质,以提高网络连接信息获取效率。
6.为解决上述技术问题,本技术实施例提供如下技术方案:
7.本技术第一方面提供一种网络连接信息获取方法,所述方法包括:从目标设备的内核模块中获取网络连接事件,所述内核模块用于追踪所述目标设备中产生变化的网络连接,并生成相应的事件;从所述网络连接事件中提取所述目标设备的网络连接信息。
8.本技术第二方面提供一种网络连接信息获取装置,所述装置包括:获取模块,用于从目标设备的内核模块中获取网络连接事件,所述内核模块用于追踪所述目标设备中产生变化的网络连接,并生成相应的事件;提取模块,用于从所述网络连接事件中提取所述目标设备的网络连接信息。
9.本技术第三方面提供一种电子设备,所述电子设备包括:处理器、存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行第一方面中的方法。
10.本技术第四方面提供一种计算机可读存储介质,所述存储介质包括:存储的程序;其中,在所述程序运行时控制所述存储介质所在设备执行第一方面中的方法。
11.相较于现有技术,本技术第一方面提供的网络连接信息获取方法,由于目标设备的内核模块能够追踪目标设备中产生变化的网络连接,并生成相应的事件,因此,从目标设备的内核模块中能够获取到网络连接事件,进而能够从网络连接事件中提取出目标设备的
网络连接信息。采用这种方式获取目标设备与外部系统的网络连接信息,无需对目标设备与外部系统间传输的网络流量包进行解析,从目标设备内核模块监听到的网络连接事件中能够直接获取到网络连接信息,方便简单,能够提高网络连接信息的获取效率。
12.本技术第二方面提供的网络连接信息获取装置、第三方面提供的电子设备、第四方面提供的计算机可读存储介质,与第一方面提供的网络连接信息获取方法具有相同或相似的有益效果。
附图说明
13.通过参考附图阅读下文的详细描述,本技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本技术的若干实施方式,相同或对应的标号表示相同或对应的部分,其中:
14.图1为本技术实施例中网络连接信息获取方法的整体架构示意图一;
15.图2为本技术实施例中网络连接信息获取方法的流程示意图一;
16.图3为本技术实施例中网络连接信息获取方法的整体架构示意图二;
17.图4为本技术实施例中网络连接信息获取方法的流程示意图二;
18.图5为本技术实施例中网络连接信息获取装置的结构示意图;
19.图6为本技术实施例中电子设备的结构示意图。
具体实施方式
20.下面将参照附图更详细地描述本技术的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
21.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
22.目前,为了获取服务器与外部系统之间的网络连接信息,需要先获取服务器与外部系统之间传输的网络流量包,然后从网络流量包中解析出服务器与外部系统的网络连接信息。但是,服务器与外部系统间传输的网络流量包中包含有大量的传输内容,会导致解析时间过长,从而降低网络连接信息的获取效率。
23.发明人经过研究发现,如果不从服务器与外部系统间传输的网络流量包中解析出服务器与外部系统的网络连接信息,而是通过对服务器中各项事件进行监听,从而在监听到的事件中确定出网络连接事件,进而从确定出的网络连接事件中获取服务器与外部系统的网络连接事件。这样就能够跳过对网络流量包的解析,从网络连接事件中获取网络连接信息无需进行解析,方便简单,能够提高网络连接信息的获取效率。而对服务器中各项事件进行监听,可以通过服务器的内核模块进行。
24.有鉴于此,本技术实施例提供一种网络连接信息获取方法、装置、电子设备及存储介质,由于目标设备的内核模块能够追踪目标设备中产生变化的网络连接,并生成相应的事件,因此,从目标设备的内核模块中能够获取到网络连接事件,进而能够从网络连接事件中提取出目标设备的网络连接信息。采用这种方式获取目标设备与外部系统的网络连接信
息,无需对目标设备与外部系统间传输的网络流量包进行解析,从目标设备内核模块监听到的网络连接事件中能够直接获取到网络连接信息,方便简单,能够提高网络连接信息的获取效率。
25.首先,对本技术实施例提供的网络连接信息获取方法所处的架构进行说明。
26.图1为本技术实施例中网络连接信息获取方法的整体架构示意图一,参见图1所示,目标设备主要包括两层,一层为应用层,用来运行各种应用程序,一层为底层,用来运行内核模块。目标设备与各种外部系统进行网络连接,以实现与各种外部系统的交互。
27.在目标设备与外部系统交互的过程中,目标设备与外部系统已经建立了网络连接。在此期间,目标设备中的内核模块就能够追踪到目标设备与外部系统之间连接的建立、销毁等,进而生成相应的网络连接事件。此时,目标设备或者目标设备应用层中的某个应用程序就能够从内核模块中获取到生成的网络连接事件,进而从网络连接事件中获取到目标设备与外部系统的网络连接信息。实现了目标设备与外部系统之间的网络连接信息的快速获取。
28.接下来,对本技术实施例提供的网络连接信息获取方法进行详细说明。
29.图2为本技术实施例中网络连接信息获取方法的流程示意图一,参见图1所示,该方法可以包括:
30.s201:从目标设备的内核模块中获取网络连接事件。
31.其中,内核模块用于追踪目标设备中产生变化的网络连接,并生成相应的事件。
32.目标设备的内核模块可以是目标设备中自带的模块,并且该内核模块自身具有对目标设备中的各种行为,尤其是发生变化的网络连接行为进行监听的功能,并且在监听到相应的内容后,能够生成相应的事件。例如:目标设备与某外部系统新建了一条网络连接,目标设备中的内核模块就能够追踪到目标设备与该外部系统新建的网络连接,从而将追踪到的网络连接生成一个网络连接事件,这里就是连接创建事件。
33.内核模块在生成网络连接事件时,会将监听到的网络连接内容都添加到其生成的网络连接事件中,也就是将进行网络连接的目标设备与外部系统的各项信息都添加到网络连接事件中。这些信息可以是五元组信息、源mac地址、目的mac地址、上行流量信息、下行流量信息等。这样,目标设备就能够从其内核模块中获得相应的网络连接事件。
34.s202:从网络连接事件中提取目标设备的网络连接信息。
35.在从内核模块中获得网络连接事件后,由于网络连接事件中包含有目标设备与外部系统进行网络连接时的各种信息,因此,从网络连接事件中就能够提取出目标设备与外部系统的网络连接信息。
36.这里需要说明的是,本技术实施例的执行主体可以是目标设备本身,也可以是目标设备应用层中的某一个应用程序。
37.由上述内容可知,本技术实施例提供的网络连接信息获取方法,由于目标设备的内核模块能够追踪目标设备中产生变化的网络连接,并生成相应的事件,因此,从目标设备的内核模块中能够获取到网络连接事件,进而能够从网络连接事件中提取出目标设备的网络连接信息。采用这种方式获取目标设备与外部系统的网络连接信息,无需对目标设备与外部系统间传输的网络流量包进行解析,从目标设备内核模块监听到的网络连接事件中能够直接获取到网络连接信息,方便简单,能够提高网络连接信息的获取效率。
38.进一步地,作为对上述步骤s202的细化,网络连接的变化,要么是新建一个网络连接,要么是断开一个现有的网络连接。也就是说,网络连接事件包括连接创建事件和连接销毁事件。对于一个完整的网络连接来说,其开始就是连接创建,其结束就是连接销毁,因此,为了获得更为完整的网络连接信息,就需要从连接创建事件和连接销毁事件中都进行网络连接信息的提取,并且将从这两个事件中提取的网络连接信息合并起来,作为最终获取到的目标设备与外部系统的网络连接信息。
39.具体来说,上述步骤s202可以包括:
40.步骤a1:从连接创建事件中提取目标设备的第一连接信息。
41.在目标设备与外部系统建立网络连接后,目标设备中的内核模块就能够追踪到该网络连接的建立,并获取目标设备与外部系统建立网络连接时使用的五元组信息、mac地址等信息,进而基于获取到的这些信息生成连接创建事件。
42.从目标设备的内核模块中,就能够获得连接创建事件,进而从连接创建事件中提取出网络连接信息,即第一连接信息。
43.在实际应用中,第一连接信息中主要都是目标设备与外部系统开始连接时所涉及到的一些信息,例如:五元组信息、源mac地址、目的mac地址、连接开始时间等。
44.步骤a2:从连接销毁事件中提取目标设备的第二连接信息。
45.当目标设备与外部系统此后不再需要网络连接时,目标设备与外部系统就会断开连接,目标设备中的内核模块就能够追踪到该网络连接的销毁,并获取目标设备与外部系统从建立网络连接到销毁网络连接这段时间相互之间传输的信息的相关数据,例如:上行流量包的大小和数量、连接时间等,进而基于这些数据生成连接销毁事件。
46.从目标设备的内核模块中,就能够获得与连接创建事件同属于一个网络连接的连接销毁事件,进而从连接销毁事件中提取出网络连接信息,即第二连接信息。
47.在实际应用中,第二连接信息中不仅包括有目标设备与外部系统开始连接时所涉及到的五元组信息等,还包括有连接中止时间、上行流量信息、下行流量信息、关闭状态、虚拟局域网(virtual local area network,vlan)、应用层协议等。其中,上行流量信息为从连接开始到结束,外部系统向目标设备发送的网络流量包的总数量以及总大小。下行流量信息为从连接开始到结束,目标设备向外部系统发送的网络流量包的总数量以及总大小。
48.这里需要说明的是,一些连接信息可以同时存在于第一连接信息和第二连接信息中,例如:五元组信息、源mac地址、目的mac地址、应用层协议等。也有一些连接信息仅存在于第一连接信息或第二连接信息中,例如:连接开始时间存在于第一连接信息中,连接中止时间存在于第二连接信息中。对于第一连接信息和第二连接信息中涉及的具体内容,需要根据目标设备与外部系统连接的实际情况,以及目标设备中内核模块生成的事件的具体内容确定,此处不做具体限定。
49.步骤a3:将第一连接信息和第二连接信息合并,得到目标设备的网络连接信息。
50.在提取的第一连接信息和第二连接信息中,可能会存在一些重复的信息,例如:五元组信息等。在将第一连接信息与第二连接信息合并的过程中,可以将一些重复的信息去除,以得到最终的目标设备与某一外部系统的网络连接信息。
51.由上述内容可知,对于同一个网络连接,分别从其连接创建事件和连接销毁事件中提取网络连接信息,进而将从这两个事件中提取的网络连接信息合并,这样得到的网络
连接信息的内容更加全面,提高了网络连接信息获取的完整性。
52.进一步地,作为对上述步骤a3的扩展,如果连接创建事件与连接销毁事件属于不同的网络连接,那么从连接创建事件中提取出的第一连接信息,从连接销毁事件中提取出的第二连接信息,这两个连接信息是目标设备所对应的不同的外部系统,将这两个连接信息合并,合并后的网络连接信息就不是某一个网络连接的信息,掺杂有不同的外部系统的信息,因此在将第一连接信息与第二连接信息进行合并前,需要确保这两个连接信息对应的连接创建事件和连接销毁事件对应同一个网络连接。
53.具体来说,在上述步骤a3之前,该方法还可以包括:
54.步骤a01:从第一连接信息中提取第一五元组信息。
55.在第一连接信息中,包含有五元组信息、源mac地址、目的mac地址、应用层协议等信息。从第一连接信息的众多信息中,筛选出五元组信息。
56.在进行五元组信息提取的过程中,可以参考五元组信息的特征,即源ip地址、源端口、目的ip地址、目的端口、三层协议的特征,从第一连接信息中筛选出五元组信息。
57.步骤a02:从第二连接信息中提取第二五元组信息。
58.在第二连接信息中,包含有五元组信息、上行流量包数量和小大、下行流量包数量和大小、连接时间等信息。从第二连接信息的众多信息中,筛选出五元组信息。
59.在进行五元组信息提取的过程中,可以参考五元组信息的特征,即源ip地址、源端口、目的ip地址、目的端口、三层协议的特征,从第二连接信息中筛选出五元组信息。
60.步骤a03:判断第一五元组信息与第二五元组信息是否相同。若是,则执行步骤a3,若否,则执行步骤a04。
61.由于五元组信息能够唯一的表征一个网络连接,因此,通过五元组信息的对比,就能够确定第一连接信息对应的连接创建事件和第二连接信息对应的连接销毁事件是否来源于同一个网络连接。
62.在进行两个五元组信息的对比时,可以将五元组信息中的同一类型信息进行对比,也就是将两个五元组信息中的源ip地址进行对比,将两个五元组信息中的源端口进行对比,将两个五元组信息中的目的ip地址进行对比,将两个五元组信息中的目的端口进行对比,将两个五元组信息中的三层协议进行对比。只有在这五个对比结果均为一致时,才能够确定这两个五元组信息相同。主要有其中一个对比结果为不一致,就确定这两个五元组信息不同。
63.步骤a3:将第一连接信息和第二连接信息合并,得到目标设备的网络连接信息。
64.步骤a04:将第一连接信息和与其五元组信息一致的连接销毁事件的网络连接信息合并,得到目标设备的第一网络连接信息,以及,将第二连接信息和与其五元组信息一致的连接创建事件的网络连接信息合并,得到目标设备的第二网络连接信息。
65.第一五元组信息与第二五元组信息不一致,说明其对应的连接创建事件和连接销毁事件不属于同一个网络连接,因此,对于第一五元组信息,需要在其它的连接销毁事件对应的网络连接信息的五元组信息中查找与其一致的五元组信息,进而获得与其一致的五元组信息对应的网络连接信息,并与第一网络连接信息合并,得到目标设备与第一外部系统的第一网络连接信息。
66.还有,对于第二五元组信息,需要在其它的连接创建事件对应的网络连接信息的
五元组信息中查找与其一致的五元组信息,进而获得与其一致的五元组信息对应的网络连接信息,并与第二网络连接信息合并,得到目标设备与第二外部系统的第二网络连接信息。
67.由上述内容可知,在将第一连接信息和第二连接信息合并之前,通过第一连接信息中的五元组信息与第二连接信息中的五元组信息的对比,先确定第一连接信息对应的连接创建事件与第二连接信息对应的连接销毁事件是否属于同一个网络连接,只有在确定两个事件属于同一个网络连接时,再将第一连接信息与第二连接合并,能够确保最终得到的网络连接信息中都是同一个网络连接的所有信息,确保网络连接信息获取的准确性。
68.进一步地,作为对上述步骤s201的扩展,目标设备的内核模块能够追踪并生成网络连接事件,但是本技术实施例中的执行主体并不会主动从内核模块中获取网络连接事件,因此,还需要创建一个获取网络连接事件的网络套接字,以从内核模块中获得网络连接事件,进而得到相应的网络连接信息。
69.具体来说,在上述步骤s201之前,该方法还可以包括:
70.步骤b:通过目标设备的网络编程接口,创建从目标设备的内核模块中获取网络连接事件的网络套接字。
71.目标设备中的内核模块在追踪并生成网络连接事件后,就会将网络连接事件放置于内核模块,并不会主动发出,因此,需要创建一个网络套接字,用于获取内核模块中的网络连接事件,这样,通过网络套接字就能主动从目标设备的内核模块中获取到网络连接事件。
72.创建网络套接字可以由目标设备中的某一个应用程序发起。这样,该应用程序就可以从内核模块中获取目标设备与外部系统的各种网络连接事件,进而从获取的网络连接事件中获得目标设备与各外部系统的网络连接信息。
73.在实际应用中,网络连接事件主要包括连接创建事件和连接销毁事件。为了从内核模块中获得连接创建事件和连接销毁事件,对于获取网络连接事件的网络套接字,会指定类型为af_netlink,指定协议为netlink_netfilter。通过af_netlink这一指定类型和netlink_netfilter这一指定协议,就能够确保从内核模块中获取到连接创建事件和连接销毁事件,进而确保网络连接信息能够准确获取。
74.由上述内容可知,通过目标设备中应用程序的网络编程接口创建获取网络连接事件的网络套接字,能够主动从内核模块中获取目标设备与各外部系统的网络连接事件,确保目标设备与各外部系统的网络连接事件获取的完整性,进而更加全面的获取目标设备与各外部系统的网络连接信息。
75.进一步地,作为对上述步骤s201的扩展,具体需要获取哪些网络连接信息,可以预先在目标设备中进行配置,这样,目标设备从其内核模块中获得网络连接事件后,就只会从网络连接事件中获取指定的网络连接信息,使得网络连接信息获取的内容更加规范化。
76.具体来说,在上述步骤s201之前,该方法还可以包括:
77.步骤c1:确定待获取的网络连接信息的种类。
78.也就是最终需要获取哪些网络连接信息。例如:最终需要获取五元组信息(本地ip、本地端口、对端ip、对端端口、三层协议udp/tcp/icmp)、源mac地址、目的mac地址、连接开始时间、连接中止时间、上行流量大小、下行流量大小、关闭状态、vlan、应用层协议。
79.相关人员在确定需要获取哪些网络连接信息后,可以将这些网络连接信息的种类
输入至目标设备。
80.步骤c2:将每一个种类对应的名称配置在连接信息表中。
81.其中,连接信息表用于分类存储同一网络连接的网络连接信息。
82.目标设备在获得需要获取网络连接信息的种类后,就可以创建一个连接信息表,在该表的表头分别写入各个网络连接信息的种类。这样,后续目标设备与外部系统建立的某一个连接的所有相关信息的都会被存储到该连接信息表中。
83.在实际应用中,连接信息表可以以键值对的形式存在,即键对应的是各种网络连接信息,例如:五元组信息、源mac地址等,值对应的就是获取的具体的网络连接信息的内容。
84.由上述内容可知,通过连接信息表,能够将每个网络连接相应的信息都分类进行存储,便于获取的网络连接信息具体内容的查看。
85.进一步地,作为对上述步骤s201的扩展,目标设备中的内核模块并不是默认加载在目标设备中的,因此,当需要获取网络连接信息时,需要先确保内核模块已在目标设备中加载并运行。
86.具体来说,在上述步骤s201之前,该方法可以包括:
87.步骤d1:判断目标设备中是否加载内核模块。若是,则执行步骤s201,若否,则执行步骤d2。
88.当需要获取网络连接信息时,就需要开启目标设备中的内核模块,使得内核模块能够监听到当前及其之后的目标设备与外部系统的网络连接事件,进而从网络连接事件中获得网络连接信息。而目标设备中的内核模块并不是默认加载在目标设备中的,因此,当需要获取网络连接信息时,需要先确保内核模块已在目标设备中加载并运行。
89.在判断目标设备中是否加载内核模块时,可以检测目标设备的进程中是否存在内核模块的相关进程,也可以执行从内核模块中获取网络连接事件的动作,看是否能够获得网络连接事件。对于内核模块是否加载的具体判断方式,此处不做限定。
90.步骤s201:从目标设备的内核模块中获取网络连接事件。
91.在确定目标设备中的内核模块加载后,说明内核模块当前能够正常追踪并生成网络连接事件,因此可以从目标设备的内核模块中获取网络连接事件。
92.步骤d2:调用目标设备中的驱动加载程序,在目标设备中加载内核模块。
93.在确定目标设备中的内核模块没有加载后,说明内核模块当前不会追踪并生成网络连接事件,因此,需要调用目标设备中的驱动加载程序,使得驱动加载程序在目标设备中加载内核模块。此时,内核模块就能够正常追踪并生成网络连接事件,可以从目标设备的内核模块中获取网络连接事件。
94.由上述内容可知,在获取网络连接事件前,需要确认目标设备中的内核模块是否加载,如果没有,就先将内核模块在目标设备中加载,确保内核模块能够正常追踪并生成网络连接事件,进而确保网络连接信息能够全部获得。
95.最后,以一个完整实例对本技术实施例提供的网络连接信息获取方法进行再次说明。
96.图3为本技术实施例中网络连接信息获取方法的整体架构示意图二,参见图3所示,目标设备可以是linux主机,底层中存在linux内核,linux内核中可以加载nf_
conntrack内核模块,用于追踪并生成目标设备与各种外部系统之间的网络连接的事件。应用层中存在一个代理(agent)程序,用于从nf_conntrack内核模块中获取网络连接事件,并从网络连接事件中获取目标设备与某一外部系统之间的某一网络连接的信息。
97.总的来说,在linux主机中加载nf_conntrack内核模块,运行agent程序。agent程序通过对nf_conntrack内核模块中生成的网络连接事件进行聚合处理,产生每一个连接对应的网络连接信息。agent程序产生网络连接信息后可以存在本地或者发送给服务端做进一步分析。
98.这里需要说明的是,本技术实施例提供的网络连接信息获取方法的执行主体可以是安装于linux主机中的agent程序。agent程序:装在需要获取访问连接信息的主机中的代理软件程序,获取连接信息后,将连接信息存在本地或者发送给后端处理服务器。
99.图4为本技术实施例中网络连接信息获取方法的流程示意图二,参见图4所示,该方法可以包括:
100.s401:确保nf_conntrack已加载。
101.nf_conntrack:linux内核模块,用于追踪系统中的网络连接事件,每一个连接的创建、状态变化、销毁等都会生成相应的事件。
102.agent启动时检测liunx主机是否加载nf_conntrack。没有加载则调用linux驱动加载程序加载nf_conntrack。
103.s402:初始化connectionmap。
104.agent初始化connectionmap:hash map。键为五元组,值为该五元组对应的网络连接信息。网络连接信息还可以包括源、目的mac地址、上下行流量包个数及大小总和等信息。
105.s403:初始化socket。
106.socket:linux套接字接口,提供一套api用于网络编程,支持多种类型和协议。当指定类型为af_netlink,协议为netlink_netfilter时,可以获取nf_conntrack发出的网络连接事件。
107.agent创建和初始化socket,用于获取nf_conntrack发出的网络连接事件,目前获取的网络连接事件包括连接创建事件和连接销毁事件。
108.s404:接收连接创建事件,提取网络连接信息。
109.agent接收到连接创建事件,从连接创建事件中提取出五元组信息,初始化该五元组对应的连接信息。连接创建事件中除五元组信息外,还包含有源mac地址、目的mac地址、三层协议。同时,还可以将linux主机中当前事件作为连接开始事件,然后将五元组作为键,连接信息作为值插入到connectionmap。
110.s405:接收连接创建事件,提取网络连接信息。
111.agent接收到连接销毁事件,连接销毁事件中除了五元组信息外,还包含有上下行流量统计以及关闭状态等信息。agent将需要的信息提取出来,同时将当前linux主机中的系统时间作为连接结束时间,然后根据五元组更新connectionmap里对应的连接信息。
112.s406:将connectionmap中的连接信息作为网络连接信息,并保存到磁盘或发送至服务端。
113.agent在处理完连接销毁事件后,将connectionmap中的连接信息,也就是从同一连接的创建事件和销毁事件中提取出的连接信息,作为该连接最终的网络连接信息,保存
到磁盘或者发送给服务端处理程序。
114.最后,上述步骤s404、s405、s4064一直循环,就能够获取到本机所有的网络连接信息。
115.利用linux系统自带的nf_conntrack内核模块能够追踪并生成网络连接事件的功能,通过agent程序在应用层监听nf_conntrack内核模块中的网络连接事件,并对这些事件进行聚合处理生成网络连接信息。无需进行网络抓包,也无需进行内核驱动,就能够获得网络连接信息。对linux系统具有性能消耗低、无侵入、能够获取较为完整的访问连接信息等优点,易于在实际使用中落地。
116.基于同一发明构思,作为对上述方法的实现,本技术实施例还提供了一种网络连接信息获取装置。图5为本技术实施例中网络连接信息获取装置的结构示意图,参见图5所示,该装置可以包括:
117.获取模块501,用于从目标设备的内核模块中获取网络连接事件,所述内核模块用于追踪所述目标设备中产生变化的网络连接,并生成相应的事件;
118.提取模块502,用于从所述网络连接事件中提取所述目标设备的网络连接信息。
119.进一步地,所述网络连接事件包括连接创建事件和连接销毁事件,所述提取模块,具体用于从所述连接创建事件中提取所述目标设备的第一连接信息;从所述连接销毁事件中提取所述目标设备的第二连接信息;将所述第一连接信息和所述第二连接信息合并,得到所述目标设备的网络连接信息。
120.进一步地,所述提取模块,还用于从所述第一连接信息中提取第一五元组信息;从所述第二连接信息中提取第二五元组信息;判断所述第一五元组信息与所述第二五元组信息是否相同;若是,则将所述第一连接信息和所述第二连接信息合并,得到所述目标设备的网络连接信息。
121.进一步地,所述第一连接信息包括:五元组信息、源mac地址、目的mac地址、连接开始时间中的至少一个,所述第二连接信息包括:五元组信息、连接中止时间、上行流量信息、下行流量信息、关闭状态、虚拟局域网、应用层协议中的至少一个。
122.进一步地,所述装置还包括:第一配置模块,用于通过所述目标设备的网络编程接口,创建从所述目标设备的内核模块中获取网络连接事件的网络套接字。
123.进一步地,所述网络套接字的指定类型为af_netlink,指定协议为netlink_netfilter。
124.进一步地,所述装置还包括:第二配置模块,用于确定待获取的网络连接信息的种类;将每一个种类对应的名称配置在连接信息表中,所述连接信息表用于分类存储同一网络连接的网络连接信息。
125.进一步地,所述装置还包括:判断模块,用于判断所述目标设备中是否加载所述内核模块;若否,则调用所述目标设备中的驱动加载程序,在所述目标设备中加载所述内核模块。
126.这里需要指出的是,以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
127.基于同一发明构思,本技术实施例还提供了一种电子设备。图6为本技术实施例中
电子设备的结构示意图,参见图6所示,该电子设备可以包括:处理器601、存储器602、总线606;其中,处理器601、存储器602通过总线606完成相互间的通信;处理器601用于调用存储器602中的程序指令,以执行上述一个或多个实施例中的方法。
128.这里需要指出的是,以上电子设备实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术电子设备实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
129.基于同一发明构思,本技术实施例还提供了一种计算机可读存储介质,该存储介质可以包括:存储的程序;其中,在程序运行时控制存储介质所在设备执行上述一个或多个实施例中的方法。
130.这里需要指出的是,以上存储介质实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本技术存储介质实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
131.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.一种网络连接信息获取方法,其特征在于,所述方法包括:从目标设备的内核模块中获取网络连接事件,所述内核模块用于追踪所述目标设备中产生变化的网络连接,并生成相应的事件;从所述网络连接事件中提取所述目标设备的网络连接信息。2.根据权利要求1所述的方法,其特征在于,所述网络连接事件包括连接创建事件和连接销毁事件,所述从所述网络连接事件中提取所述目标设备的网络连接信息,包括:从所述连接创建事件中提取所述目标设备的第一连接信息;从所述连接销毁事件中提取所述目标设备的第二连接信息;将所述第一连接信息和所述第二连接信息合并,得到所述目标设备的网络连接信息。3.根据权利要求2所述的方法,其特征在于,在将所述第一连接信息和所述第二连接信息合并,得到所述目标设备的网络连接信息之前,所述方法还包括:从所述第一连接信息中提取第一五元组信息;从所述第二连接信息中提取第二五元组信息;判断所述第一五元组信息与所述第二五元组信息是否相同;若是,则执行将所述第一连接信息和所述第二连接信息合并,得到所述目标设备的网络连接信息的步骤。4.根据权利要求2所述的方法,其特征在于,所述第一连接信息包括:五元组信息、源mac地址、目的mac地址、连接开始时间中的至少一个,所述第二连接信息包括:五元组信息、连接中止时间、上行流量信息、下行流量信息、关闭状态、虚拟局域网、应用层协议中的至少一个。5.根据权利要求1至4中任一项所述的方法,其特征在于,在从目标设备的内核模块中获取网络连接事件之前,所述方法还包括:通过所述目标设备的网络编程接口,创建从所述目标设备的内核模块中获取网络连接事件的网络套接字。6.根据权利要求5所述的方法,其特征在于,所述网络套接字的指定类型为af_netlink,指定协议为netlink_netfilter。7.根据权利要求1至4中任一项所述的方法,其特征在于,在从目标设备的内核模块中获取网络连接事件之前,所述方法还包括:确定待获取的网络连接信息的种类;将每一个种类对应的名称配置在连接信息表中,所述连接信息表用于分类存储同一网络连接的网络连接信息。8.根据权利要求1至4中任一项所述的方法,其特征在于,在从目标设备的内核模块中获取网络连接事件之前,所述方法还包括:判断所述目标设备中是否加载所述内核模块;若否,则调用所述目标设备中的驱动加载程序,在所述目标设备中加载所述内核模块。9.一种网络连接信息获取装置,其特征在于,所述装置包括:获取模块,用于从目标设备的内核模块中获取网络连接事件,所述内核模块用于追踪所述目标设备中产生变化的网络连接,并生成相应的事件;提取模块,用于从所述网络连接事件中提取所述目标设备的网络连接信息。
10.一种电子设备,其特征在于,所述电子设备包括:处理器、存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1至8中任一项所述的方法。11.一种计算机可读存储介质,其特征在于,所述存储介质包括:存储的程序;其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1至8中任一项所述的方法。
技术总结
本申请提供一种网络连接信息获取方法、装置、电子设备及存储介质,网络连接信息获取方法包括:从目标设备的内核模块中获取网络连接事件,内核模块用于追踪目标设备中产生变化的网络连接,并生成相应的事件;从网络连接事件中提取目标设备的网络连接信息。无需对目标设备与外部系统间传输的网络流量包进行解析,从目标设备内核模块监听到的网络连接事件中能够直接获取到网络连接信息,方便简单,能够提高网络连接信息的获取效率。高网络连接信息的获取效率。高网络连接信息的获取效率。
技术研发人员:刘浩 蒋凯 冯顾
受保护的技术使用者:奇安信科技集团股份有限公司
技术研发日:2023.04.24
技术公布日:2023/8/6
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/