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

一种监听新建进程的方法、装置、计算机设备以及存储介质与流程

2023-02-01 20:53:09 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,特别涉及一种监听新建进程的方法、装置、计算机设备以及计算机可读存储介质。


背景技术:

2.目前常用的检测linux进程的方法有通过命令语句检测linux进程例如用ps aux或ls/proc/《pid》/命令语句检测linux进程,或者通过程序openproc读取/proc下的所有文件的方式检测linux进程。但目前现有的检测方式容易被rootkit绕过,例如入侵者通过rootkithook技术覆盖或篡改了ps或ls命令的系统调用,从而掩盖了想要被看到的进程,导致恶意进程无法被检测到。
3.同时目前现有的检测方式都是周期性采样技术。周期性采样进程信息,采样不够实时,容易出现几分钟之前创建了恶意进程,几分钟之后入侵检测系统才发现的问题,导致错过最佳查杀时机。同时,周期性采样每次都把当前所有的进程信息上报给服务器,这样会产生大量的重复数据,消耗大量的计算机和带宽资源以及周期性采样会遗漏掉很多短生命周期的进程,如果遗漏的新建进程就是恶意进程,那入侵检测系统就不会检测到。


技术实现要素:

4.本发明的目的是提供一种监听新建进程的方法、装置、计算机设备以及计算机可读存储介质,本发明通过利用内核函数获得上下文信息并将上下文信息实时传送至用户态程序的方式,可以在触发进程时实现对进程监听,即可以在系统调用之前就检测到恶意进程,能及时通过rootkit防御绕过的恶意进程,避免遗漏掉恶意进程,以及本发明通过这种方式避免了每次全量扫描进程,实现占用更少的计算资源和带宽资源。
5.依据本发明的一个方面,本发明提供了一种监听新建进程的方法,包括:
6.接收创建新建进程的命令;
7.检测到所述命令,根据系统调用表中的调用地址,执行内核函数;
8.利用所述内核函数获取所述新建进程的上下文信息,并将所述上下文信息实时传送至用户态程序,实现监听所述新建进程。
9.可选地,所述利用所述内核函数获取所述新建进程的上下文信息,包括:
10.利用所述内核函数中的拦截方法获取所述新建进程的所述上下文信息。
11.可选地,所述根据系统调用表中的调用地址,执行内核函数之前,还包括:
12.将所述系统调用表原来的地址修改为所述调用地址,其中,所述调用地址为所述内核函数的地址。
13.可选地,所述将所述系统调用表原来的地址修改为所述调用地址,包括:
14.将所述系统调用表原来的fork地址修改为所述调用地址。
15.可选地,所述将所述上下文信息实时传送至用户态程序之后,还包括:
16.利用所述用户态程序将采集的所述上下文信息进行解析并生成日志。
17.可选地,所述的一种监听新建进程的方法,其特征在于,还包括:
18.将所述日志发送至入侵检测系统进行检测,确定是否为恶意进程。
19.可选地,所述确定是否为恶意进程,包括:
20.对比命令行信息与恶意进程异常行为规则是否相符;
21.若相符,则报告所述新建进程异常。
22.本发明提供一种监听新建进程装置,包括:
23.接收模块,用于接收创建新建进程的命令;
24.检测模块,用于检测到所述命令,根据系统调用表中的调用地址,执行内核函数;
25.监听模块,用于利用所述内核函数获取所述新建进程的上下文信息,并将所述上下文信息实时传送至用户态程序,实现监听所述新建进程。
26.本发明提供一种计算机设备,包括:
27.存储器,用于存储计算机程序;
28.处理器,用于执行所述计算机程序时实现如上述所述的监听新建进程方法。
29.本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如上述所述监听新建进程方法的步骤。
30.可见,本发明通过利用内核函数获得上下文信息并将上下文信息实时传送至用户态程序的方式,可以在触发进程时实现对进程监听,即可以在系统调用之前就检测到恶意进程,能及时发现通过rootkit防御绕过的恶意进程,避免遗漏掉恶意进程,以及本发明通过这种方式避免了每次全量扫描进程,实现占用更少的计算资源和带宽资源。本技术还提供一种监听新建进程装置、计算机设备及计算机可读存储介质,具有上述有益效果。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
32.图1为本发明实施例所提供的一种监听新建进程的方法的流程图;
33.图2为本发明实施例所提供的一种监听新建进程装置的结构框图;
34.图3为本发明实施例所提供的一种计算机设备的结构框图。
具体实施方式
35.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.目前常用的检测linux进程的方法有通过命令语句检测linux进程例如用ps aux或ls/proc/《pid》/命令语句检测linux进程,或者通过程序openproc读取/proc下的所有文件的方式检测linux进程。但目前现有的检测方式容易被rootkit绕过,例如入侵者通过
rootkithook技术覆盖或篡改了ps或ls命令的系统调用,从而掩盖了想要被看到的进程,导致恶意进程无法被检测到。
37.同时目前现有的检测方式都是周期性采样技术。周期性采样进程信息,采样不够实时,容易出现几分钟之前创建了恶意进程,几分钟之后入侵检测系统才发现的问题,导致错过最佳查杀时机。同时,周期性采样每次都把当前所有的进程信息上报给服务器,这样会产生大量的重复数据,消耗大量的计算机和带宽资源以及周期性采样会遗漏掉很多短生命周期的进程,如果遗漏的新建进程就是恶意进程,那入侵检测系统就不会检测到。
38.鉴于此,本发明提供了一种监听新建进程的方法,本发明通过利用内核函数获得上下文信息并将上下文信息实时传送至用户态程序的方式,可以在触发进程时实现对进程监听,即可以在系统调用之前就检测到恶意进程,能及时发现通过rootkit防御绕过的恶意进程,避免遗漏掉恶意进程,以及本发明通过这种方式避免了每次全量扫描进程,实现占用更少的计算资源和带宽资源。
39.下面进行详细介绍,请参考图1,图1为本发明实施例所提供的一种监听新建进程的方法的流程图,本发明实施例一种监听新建进程的方法可以包括:
40.步骤s101:接收创建新建进程的命令。
41.本发明实施例中对命令的形式不进行限定,可以为一小段数据代码,可以为一个特定的高电平或低电平,或者可以是一个标识等,可以以根据实际情况确定所需形式,例如本发明实施例中可以为接收用户通过shell语句执行创建新建进程的命令。
42.步骤s102:检测到命令,根据系统调用表中的调用地址,执行内核函数。
43.本发明实施例中系统调用表为一张由指向实现各种系统调用的内核函数的函数指针组成的表,该表可以基于系统调用编号进行索引,来定位函数地址,完成系统调用。
44.本发明实施例中可以将系统调用表中原来的地址修改为调用地址,需要说明的是调用地址为内核函数的地址,即可以根据调用地址指向内核函数的位置,从而执行内核函数。其中,本发明实施例中内核函数包含拦截方法等用于实现拦截并获取新建进程的上下文信息等。
45.需要说明的是,本发明实施例中对修改的原来的地址不做限制,可以为修改原来的fork地址为调用地址,可以为修改原来的clone地址为调用地址,也可以为修改原来的vfork地址为调用地址。其中,本发明实施例中fork、clone和vfork为原来创建新建进程时需要的系统调用。
46.本发明实施例中由于创建新建进程时都需要调用系统调用,相较于相关技术检测到命令就进行创建进程,再周期采样检测进程的方式,本发明实施例通过修改系统调用表中的调用地址,实现在创建新建进程之前将新建进程的信息进行拦截检测的方式,可以及时发现恶意进程,以及可以及时发现通过rookit防御绕过的恶意进程,避免遗漏恶意进程。
47.步骤s103:利用内核函数获取新建进程的上下文信息,并将上下文信息实时传送至用户态程序,实现监听新建进程。
48.本发明实施例中上下文信息为包含父进程id、进程id、新建进程id、当前用户、当前用户组、当前会话控制session、程序执行的路径例如/home/test等、程序执行命令行例如cat/etc/passwd等以及所有的clone、fork、vfork系统调用日志。需要说明的是,本发明实施例在linux系统里clone、fork和vfork对应的系统调用号分别为56、57和58。
49.本发明实施例中可以利用内核函数中的拦截方法获取新建进程的上下文信息,其中,本发明实施例中对拦截的方法不做限制,可以为通过如hook_fork等拦截方法进行拦截,也可以为通过开源工具例如audit等进行拦截。
50.本发明实施例中获取新建进程的上下文信息的同时,还可以调用系统原生的函数,创建进程。其中,系统原生的函数包括clone、fork和vfork等,例如修改系统调用表中fork地址为拦截方法hook_fork的地址获取上下文信息的同时,从hook_fork地址返回系统调用表,继续调用原生的fork函数,执行创建进程。
51.本发明实施例中可以对将上下文信息实时传送至用户态程序的方式不做限制,可以为通过netlink将上下文信息实时传送至用户态程序,需要说明的是,netlink是一个套接字家族用以实现用户进程与内核进程通信的一种特殊的进程间通信,也是网络应用程序与内核通信的最常用的接口。
52.本发明实施例中可以在传送至用户态程序后,利用用户态程序将采集的上下文信息进行解析并生成日志,生成日志后将日志发送至系统。本发明实施例中对系统不做限制,可以为将生成的日志发送至入侵检测系统进行检测,也可以将生成的日志发送至其它系统。
53.需要说明的是,本发明实施例中可以将日志发送至入侵检测系统进行检测,确定是否为恶意进程。本发明实施例中对检测的方式不做限制,可以为对比命令行信息与恶意进程异常行为规则是否相符,若相符,则报告新建进程异常,也可以为其它检测方法。需要说明的是,本发明实施例中可以在入侵检测系统的云端定制各种进程异常行为规则,并保存数据库。其中,本发明实施例中对异常行为规则不做限制,可以是正则表达式的规则,也可以是其它规则。本发明实施例中对异常行为规则的设置不做限制,可以为预先根据需求设置异常行为规则,也可以为根据具体的使用场景设置异常行为规则,进一步,可以不断更新和完善异常行为规则。
54.本发明实施例中通过利用内核函数获取新建进程的上下文信息,并将上下文信息实时传送至用户态程序的方式,避免了每次全量扫描进程,实现占用更少的计算资源和带宽资源,以及可以在触发进程时实现对进程监听,即可以在系统调用之前就检测到恶意进程,能及时发现通过rootkit防御绕过的恶意进程,避免遗漏掉恶意进程。
55.基于上述实施例,本发明实施例提供了一种监听新建进程的方法,通过利用内核函数获得上下文信息并将上下文信息实时传送至用户态程序的方式,可以在触发进程时实现对进程监听,即可以在系统调用之前就检测到恶意进程,并且由于本发明实施例是在系统调用之前就检测到恶意进程,通过rookit修改系统调用表也绕不过本系统,能及时发现通过rootkit防御绕过的恶意进程,避免遗漏掉恶意进程,以及本发明通过这种方式避免了每次全量扫描进程,实现占用更少的计算资源和带宽资源。
56.下面通过具体例子说明上述过程,该例子中系统调用表为linux中的系统调用表,过程具体如下:
57.1、用户通过shell执行新建进程的命令。
58.2、检测到命令,根据系统调用表中修改的fork地址,执行内核函数。
59.3、利用内核函数获取新建进程的上下文信息,并通过netlink传送至用户态程序。
60.4、用户态程序将采集的上下文信息进行解析生成日志,并将日志实时传送至云端
入侵检测系统做分析。
61.5、入侵检测系统在云端定制各种进程异常行为规则,并保存数据库。其中,异常行为规则可以是正则表达式的规则。
62.6、云端接收上报的新建进程,将新建进程的命令行信息和已制定的正则规则匹配,进而判断是否是恶意进程,如果匹配成功,则报告进程异常行为。
63.本发明实施例中通过利用内核函数获得上下文信息并将上下文信息实时传送至用户态程序的方式,可以在触发进程时实现对进程监听,即可以在系统调用之前就检测到恶意进程,并且由于本发明实施例是在系统调用之前就检测到恶意进程,通过rookit修改系统调用表也绕不过本系统,能及时发现通过rootkit防御绕过的恶意进程,避免遗漏掉恶意进程,以及通过这种方式避免了每次全量扫描进程,实现占用更少的计算资源和带宽资源。
64.下面对本发明实施例所提供的一种监听新建进程装置以及计算机设备进行介绍,下文描述的监听新建进程装置以及计算机设备与上文描述的监听新建进程的方法可相互对应参照。
65.请参考图2,图2为本发明实施例所提供的一种监听新建进程装置的结构框图,该装置可以包括:
66.接收模块201,用于接收创建新建进程的命令;
67.检测模块202,用于检测到所述命令,根据系统调用表中的调用地址,执行内核函数;
68.监听模块203,用于利用所述内核函数获取所述新建进程的上下文信息,并将所述上下文信息实时传送至用户态程序,实现监听所述新建进程。
69.本发明实施例中可以利用内核函数中的拦截方法获取新建进程的上下文信息,其中,本发明实施例中对拦截的方法不做限制,可以为通过如hook_fork等拦截方法进行拦截,也可以为通过开源工具例如audit等进行拦截。
70.基于上述实施例,所述检测模块202之前,还可以包括:
71.设置模块,用于将所述系统调用表原来的地址修改为所述调用地址,其中,所述调用地址为所述内核函数的地址。
72.本发明实施例中对修改原来的地址不做限制,可以为修改原来的fork地址为调用地址,可以为修改原来的clone地址为调用地址,也可以为修改原来的vfork地址为调用地址。其中,本发明实施例中fork、clone和vfork为原来创建新建进程时需要的系统调用。
73.基于上述任意实施例,所述监听模块203之后,还可以包括:
74.生成模块,用于利用所述用户态程序将采集的所述上下文信息进行解析并生成日志。
75.基于上述任意实施例,所述生成模块之后,还可以包括:
76.判断模块,用于将所述日志发送至入侵检测系统进行检测,确定是否为恶意进程。
77.基于上述任意实施例,所述判断模块,可以包括:
78.判断单元,用于对比命令行信息与恶意进程异常行为规则是否相符;若相符,则报告所述新建进程异常。
79.本发明实施例中通过利用内核函数获得上下文信息并将上下文信息实时传送至
用户态程序的方式,可以在触发进程时实现对进程监听,即可以在系统调用之前就检测到恶意进程,能及时发现通过rootkit防御绕过的恶意进程,避免遗漏掉恶意进程,以及通过这种方式避免了每次全量扫描进程,实现占用更少的计算资源和带宽资源。
80.请参考图3,图3为本发明实施例所提供的一种计算机设备的结构框图,该计算机设备包括:
81.存储器10,用于存储计算机程序;
82.处理器20,用于执行所述计算机程序时,以实现上述的监听新建进程的方法。
83.如图3所示,为计算机设备的结构示意图,可以包括:存储器10、处理器20、通信接口31、输入输出接口32以及通信总线33。
84.在本发明实施例中,存储器10中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本技术实施例中,存储器10中可以存储有用于实现以下功能的程序:
85.接收创建新建进程的命令;
86.检测到所述命令,根据系统调用表中的调用地址,执行内核函数;
87.利用所述内核函数获取所述新建进程的上下文信息,并将所述上下文信息实时传送至用户态程序,实现监听所述新建进程。
88.在一种可能的实现方式中,存储器10可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能所需的应用程序等;存储数据区可存储使用过程中所创建的数据。
89.此外,存储器10可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器的一部分还可以包括nvram。存储器存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可以包括各种系统程序,用于实现各种基础任务以及处理基于硬件的任务。
90.处理器20可以为中央处理器(central processing unit,cpu)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件,处理器20可以是微处理器或者也可以是任何常规的处理器等。处理器20可以调用存储器10中存储的程序。
91.通信接口31可以为用于与其他设备或者系统连接的接口。
92.输入输出接口32可以为用于获取外界输入数据或向外界输出数据的接口。
93.当然,需要说明的是,图3所示的结构并不构成对本技术实施例中计算机设备的限定,在实际应用中计算机设备可以包括比图3所示的更多或更少的部件,或者组合某些部件。
94.本发明实施例中通过利用内核函数获得上下文信息并将上下文信息实时传送至用户态程序的方式,可以在触发进程时实现对进程监听,即可以在系统调用之前就检测到恶意进程,并且由于本发明实施例是在系统调用之前就检测到恶意进程,通过rookit修改系统调用表也绕不过本系统,能及时发现通过rootkit防御绕过的恶意进程,避免遗漏掉恶意进程,以及通过这种方式避免了每次全量扫描进程,实现占用更少的计算资源和带宽资源。
95.本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计
算机可执行指令,计算机可执行指令被处理器加载并执行时,实现接收创建新建进程的命令;检测到所述命令,根据系统调用表中的调用地址,执行内核函数;利用所述内核函数获取所述新建进程的上下文信息,并将所述上下文信息实时传送至用户态程序,实现监听所述新建进程。本发明实施例中通过利用内核函数获得上下文信息并将上下文信息实时传送至用户态程序的方式,避免了每次全量扫描进程,实现占用更少的计算资源和带宽资源,以及可以在触发进程时实现对进程监听,即可以在系统调用之前就检测到恶意进程,能及时发现通过rootkit防御绕过的恶意进程,避免遗漏掉恶意进程。
96.说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
97.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
98.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
99.以上对本发明所提供的一种监听新建进程的方法、装置、计算机设备以及存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
再多了解一些

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

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

相关文献