本技术涉及计算机安全,尤其涉及一种基于容器的进程防护方法及装置。
背景技术:
1、随着技术的不断发展,越来越多的业务系统都是以虚拟容器的方式进行部署,从而实现对硬件资源的最大化利用。其中,每个容器都相互独立,但又同时共享硬件资源,在这个过程中,一旦容器内的进程存在安全威胁,就会通过容器对整个业务系统甚至主机资源造成破坏。
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、可选的,所述创建模块,具体用于通过所述安全防护进程监测所述目标进程的会话信息,并基于所述会话信息的会话标识创建或更新所述心跳文件。
45、可选的,所述创建模块,包括:
46、第一记录子模块,用于当在所述容器中并未检测到所述心跳文件时,通过所述安全防护进程对所述目标进程的行为进行监测并记录,得到所述文件内容;
47、第一确定子模块,用于根据所述会话信息对应的会话时间确定所述时间戳;
48、创建子模块,用于根据所述文件内容和所述时间戳创建所述心跳文件。
49、可选的,所述创建模块,还包括:
50、第二记录子模块,用于当在所述容器中检测到所述心跳文件时,通过所述安全防护进程对所述目标进程的行为进行监测并记录,得到更新内容;
51、第二确定子模块,用于根据所述会话信息对应的会话时间确定所述更新时间戳;
52、添加子模块,用于将所述更新内容和所述更新时间戳添加到所述心跳文件中,以便更新所述心跳文件。
53、可选的,所述检测模块,包括:
54、提取子模块,用于按照预设周期获取所述心跳文件,并提取所述心跳文件的所述文件内容和所述时间戳;
55、确定子模块,用于当确定所述时间戳的更新周期超过预设周期或确定所述文件内容中存在目标字段时,确定所述心跳文件存在所述心跳异常事件。
56、可选的,所述进程身份信息包括端口信息;
57、所述确定单元,包括:
58、获取模块,用于在容器中通过端口信息获取每个进程的套接字段,所述端口信息用于表征所述进程在实现功能时使用的端口,所述套接字段用于表征进程在容器中通过端口实现功能时的标识信息;
59、确定模块,用于基于所述套接字段,在多个进程中确定与用户指令中的套接字段对应的进程,作为所述目标进程,其中,所述用户指令中包含对应目标进程的描述信息,所述描述信息中包含所述目标进程对应的套接字段。
60、可选的,所述进程身份信息还包括容器信息;
61、所述获取模块,具体用于通过所述容器信息在多个容器中确定目标容器,并在所述目标容器中通过所述端口信息获取每个进程的套接字段。
62、可选的,所述装置还包括:
63、获取单元,用于基于所述目标进程的进程标识,在容器系统中确定所述目标进程的操作权限,所述容器系统中预先存储有进程标识与操作权限的对应关系;
64、所述控制单元,还具体用于基于所述操作权限,在所述目标进程中注入所述安全防护进程。
65、第三方面,本技术的实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面所述的终端设备的基于容器的进程防护方法。
66、第四方面,本技术的实施例提供了一种基于容器的进程防护装置,所述装置包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行第一方面所述的终端设备的基于容器的进程防护方法。
67、借由上述技术方案,本技术提供的技术方案至少具有下列优点:
68、本技术提供一种基于容器的进程防护方法及装置,本技术能够首先基于进程身份信息,在容器中确定需防护的目标进程;然后,在所述目标进程中注入安全防护进程,并控制所述安全防护进程对所述目标进程执行安全检测,得到安全检测结果;最后,基于所述检测结果确定所述目标进程存在异常时对所述目标进程执行安全防护操作,从而实现基于容器的进程防护功能。与现有技术相比,由于本技术在进行基于容器的进程防护过程中能够基于进程身份信息在容器中确定需要防护的目标进程后以向该目标进程注入安全防护进程进行监控,这样安全防护进程就会随着被注入的目标进程活动,而不需要额外单独进行设置和维护,从而避免了在对安全防护进程进行单独设置和维护时的系统资源占用的情况,可以减少对硬件系统资源的占用,从而解决了目前常规的基于容器的进程防护过程中对硬件系统资源占用较大的问题。
69、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。