本发明涉及网络监控领域,尤其涉及一种会话的监控方法、装置、计算机设备及可读存储介质。
背景技术:
1、在对网络会话进行监控的过程中,一个会话可能会涉及到多个进程。以linux系统中的会话为例,网络服务进程接受客户端进程连接请求建立会话连接后,可以调用fork函数以生成子进程,并根据子进程完成与受客户端进程的通信;还可以根据需要,将正在进行会话通信的网络套接字句柄发送给其它进程即保持通信。
2、正因此,使得网络会话的监控十分复杂,难以得到合理的监控。
技术实现思路
1、有鉴于此,本发明提供一种会话的监控方法、装置、计算机设备及可读存储介质,用于改善网络会话的难以得到合理的监控的现状。
2、第一方面,本发明实施例提供一种会话的监控方法,应用于计算机设备,所述计算机设备内设置有会话进程跟踪表,所述装置包括:
3、在操作系统的内核层中注入网络监控模块,其中,所述网络监控模块基于扩展的伯克利包过滤器生成,所述网络监控模块包括多种探针,每种探针均用于在所述操作系统中对应的会话相关函数被调用时启动,所述多种探针至少包括会话连接探针和会话接受探针;
4、基于所述会话连接探针,在所述操作系统的会话连接函数被调用时,获取所述会话连接函数对应的第一会话标识和第一进程标识,其中,所述操作系统用于在调用所述会话连接函数时的过程中生成所述第一会话标识和所述第一进程标识,及向其他设备发送会话建立请求;
5、将所述第一会话标识和所述第一进程标识关联,并将关联后的所述第一会话标识和所述第一进程标识写入所述会话进程跟踪表;
6、基于所述会话接受探针,在所述操作系统的会话接受函数被调用时,获取所述会话接受函数对应的第二会话标识和第二进程标识,其中,所述操作系统用于在调用所述会话接受函数的过程中生成所述第二会话标识和所述第二进程标识,并接收所述其他设备的会话建立请求以建立会话通信;
7、将所述第二会话标识和所述第二进程标识关联,并将关联后的所述第二会话标识和所述第二进程标识写入所述会话进程跟踪表。
8、可选的,在本发明实施例提供的一种可行方式中,所述多种探针还包括数据发送探针和数据接收探针,所述方法还包括:
9、基于所述数据接收探针,在所述操作系统调用数据接收函数时,获取所述数据接收函数对应的第三会话标识和第三进程标识,其中,所述操作系统还用于调用所述调用数据接收函数,以接收通过所述第三会话标识和所述第三进程标识对应的会话的传递数据;
10、通过所述会话进程跟踪表,查询与所述第三会话标识关联的第一目标进程标识,并在所述第一目标进程标识与所述第三进程标识不一致时,利用所述第三进程标识更新所述会话进程跟踪表中的第一目标进程标识;
11、基于所述数据发送探针,在所述操作系统调用数据发送函数时,获取所述数据发送函数对应的第四会话标识和第四进程标识,其中,所述操作系统还用于调用所述调用数据发送函数,以通过所述第四会话标识和所述第四进程标识对应的会话来发送数据;
12、通过所述会话进程跟踪表,查询与所述第四会话标识关联的第二目标进程标识,并在所述第二目标进程标识与所述第四进程标识不一致时,利用所述第四进程标识更新所述会话进程跟踪表中的第二目标进程标识。
13、可选的,在本发明实施例提供的一种可行方式中,所述方法还包括:
14、若未查询到所述第一目标进程标识,则将所述第三会话标识和所述第三进程标识写入所述会话进程跟踪表;
15、若未查询到所述第二目标进程标识,则将所述第四会话标识和所述第四进程标识写入所述会话进程跟踪表。
16、可选的,在本发明实施例提供的一种可行方式中,所述多种探针还包括会话关闭探针,所述计算机设备内还设置有会话监控记录文件,所述方法还包括:
17、在所述操作系统的应用层中设置监控进程;
18、基于所述会话关闭探针,在所述操作系统调用会话关闭函数时,获取所述会话关闭函数对应的第五会话标识和第五进程标识;
19、删除所述会话进程跟踪表中的所述第五会话标识和所述第五进程标识;
20、当任意一种探针对所述会话进程跟踪表执行数据变动操作时,基于所述探针的种类及所述数据变动操作对应的会话标识和进程标识,生成第一变动事件,并将所述第一变动事件上报至所述监控模块,其中,所述数据变动操作包括会话标识和进程标识的新增操作、更新操作及删除操作;
21、基于所述监控进程,将所述第一变动事件中的数据写入所述会话监控记录文件。
22、可选的,在本发明实施例提供的一种可行方式中,所述计算机设备内还设置有发送数据表和接收数据表;
23、所述基于所述数据接收探针,在所述操作系统调用数据接收函数时,获取所述数据接收函数对应的第三会话标识和第三进程标识之后,还包括:
24、确定所述数据发送函数对应的发送数据大小,并将所述第三会话标识、所述第三进程标识及所述发送数据大小关联后,将关联后的所述第三会话标识、所述第三进程标识及所述发送数据大小存储至所述发送数据表;
25、所述基于所述数据发送探针,在所述操作系统调用数据发送函数时,获取所述数据发送函数对应的第四会话标识和第四进程标识之后,还包括:
26、确定所述数据接收函数对应的接收数据大小,并将所述第四会话标识、所述第四进程标识及所述接收数据大小关联后,将关联后的所述第四会话标识、所述第四进程标识及所述接收数据大小存储至所述接收数据表。
27、可选的,在本发明实施例提供的一种可行方式中,所述计算机设备内还设置有会话流量统计表,所述方法还包括:
28、基于所述监控进程,每隔预设时间间隔将所述接收数据表和所述发送数据表中的数据存储至所述会话流量统计表,并将所述接收数据表和所述发送数据表中的数据清空。
29、可选的,在本发明实施例提供的一种可行方式中,所述方法还包括:
30、在所述第一目标进程标识与所述第三进程标识不一致时,利用所述第三会话标识和所述第一目标进程标识查询所述发送数据表和所述接收数据表以得到第一目标发送数据和第一目标接收数据;
31、基于所述第一目标发送数据、所述第一目标接收数据、所述第一目标进程标识、所述第三进程标识及所述第三会话标识生成第二变动事件;
32、在所述第二目标进程标识与所述第四进程标识不一致时,利用所述第三会话标识和所述第二目标进程标识查询所述发送数据表和所述接收数据表以得到第二目标发送数据和第二目标接收数据;
33、基于所述第二目标发送数据、所述第二目标接收数据、所述第二目标进程标识、所述第四进程标识及所述第四会话标识生成第三变动事件;
34、基于所述监控进程,将所述第二变动事件和所述第三变动事件中的数据分别写入所述会话监控记录文件。
35、第二方面,本发明实施例提供一种会话的监控装置,应用于计算机设备,所述计算机设备内设置有会话进程跟踪表,所述装置包括:
36、注入模块,用于在操作系统的内核层中注入网络监控模块,其中,所述网络监控模块基于扩展的伯克利包过滤器生成,所述网络监控模块包括多种探针,每种探针均用于在所述操作系统中对应的会话相关函数被调用时启动,所述多种探针至少包括会话连接探针和会话接受探针;
37、第一标识获取模块,用于基于所述会话连接探针,在所述操作系统的会话连接函数被调用时,获取所述会话连接函数对应的第一会话标识和第一进程标识,其中,所述操作系统用于在调用所述会话连接函数时的过程中生成所述第一会话标识和所述第一进程标识,及向其他设备发送会话建立请求;
38、第一标识保存模块,用于将所述第一会话标识和所述第一进程标识关联,并将关联后的所述第一会话标识和所述第一进程标识写入所述会话进程跟踪表;
39、第二标识获取模块,用于基于所述会话接受探针,在所述操作系统的会话接受函数被调用时,获取所述会话接受函数对应的第二会话标识和第二进程标识,其中,所述操作系统用于在调用所述会话接受函数的过程中生成所述第二会话标识和所述第二进程标识,并接收所述其他设备的会话建立请求以建立会话通信;
40、第二标识保存模块,用于将所述第二会话标识和所述第二进程标识关联,并将关联后的所述第二会话标识和所述第二进程标识写入所述会话进程跟踪表。
41、第三方面,本发明实施例提供一种计算机设备,包括存储器以及处理器,存储器存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的会话的监控方法。
42、第四方面,本发明实施例提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序在处理器上运行时执行如第一方面中任一种公开的会话的监控方法。
43、本发明实施例提供的会话的监控方法中,首先在计算机设备的操作系统的内核层中注入网络监控模块;然后,利用网络监控模块中的会话连接探针,在所述操作系统的会话连接函数被调用时,获取会话连接函数调用过程中生成的第一会话标识和第一进程标识,并将第一会话标识和第一进程标识关联,再将关联后的第一会话标识和第一进程标识存储至会话进程跟踪表;同时,利用网络监控模块中的会话接受探针,在操作系统的会话接受函数被调用时,获取会话接受函数在调用过程中生成的第二会话标识和第二进程标识,并将二者关联后存储至会话进程跟踪表。
44、基于此,本发明实施例实现了网络会话的有效监控,使得网络会话对应的进程转移后,能通过会话进程跟踪表中的数据确定网络会话在转移前后的进程,实现了网络会话的精准监控。