本申请涉及计算机,尤其涉及一种容器扫描方法、装置、电子设备、计算机可读存储介质以及计算机程序产品。
背景技术:
1、随着计算机技术,尤其是虚拟化技术的不断发展,容器应运而生。容器是一种轻量级、可移植的软件运行环境,通过将应用程序及其依赖项打包在一起,能够在任何支持容器的环境中运行,进而使得应用程序可以在不同的运行环境中保持一致的运行状态。
2、针对容器进行全面、精准的扫描有助于确保容器安全。通常情况下,业界可以采用容器管理工具进行容器扫描,然而,上述方法难以完全覆盖容器中的全部文件,同时存在容器引擎兼容性的问题,容器扫描的完整性和兼容性较差。
技术实现思路
1、本申请提供了一种容器扫描方法。该方法能够提升容器扫描的完整性和兼容性,使得容器扫描更加灵活和高效。本申请还提供了上述方法对应的装置、电子设备、计算机可读存储介质以及计算机程序产品。
2、第一方面,本申请提供了一种容器扫描方法,应用于容器扫描器,所述容器扫描器部署在第一主机,所述第一主机部署有目标容器,该方法包括:
3、获取所述目标容器的命名空间的文件句柄信息,以及,在所述第一主机的主进程中,创建容器扫描线程;
4、根据所述目标容器的命名空间的文件句柄信息,将所述容器扫描线程切换至所述目标容器的命名空间,以使所述容器扫描线程在所述目标容器中执行容器扫描任务;
5、接收所述容器扫描线程发送的扫描结果,以及,根据所述目标容器的命名空间的文件句柄信息,将所述容器扫描线程切换至所述主进程的命名空间。
6、第二方面,本申请提供了一种容器扫描装置,所述装置部署在容器扫描器,所述述容器扫描器部署在第一主机,所述第一主机部署有目标容器,该装置包括:
7、获取模块,用于获取所述目标容器的命名空间的文件句柄信息;
8、创建模块,用于在所述第一主机的主进程中,创建容器扫描线程;
9、切换模块,用于根据所述目标容器的命名空间的文件句柄信息,将所述容器扫描线程切换至所述目标容器的命名空间,以使所述容器扫描线程在所述目标容器中执行容器扫描任务;
10、通信模块,用于接收所述容器扫描线程发送的扫描结果;
11、所述切换模块,还用于根据所述目标容器的命名空间的文件句柄信息,将所述容器扫描线程切换至所述主进程的命名空间。
12、第三方面,本申请提供了一种电子设备,所述电子设备包括处理器和存储器。所述处理器、所述存储器进行相互的通信。所述处理器用于执行所述存储器中存储的指令,以使得电子设备执行如第一方面或第一方面的任一种实现方式中的容器扫描方法。
13、第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示电子设备执行上述第一方面或第一方面的任一种实现方式所述的容器扫描方法。
14、第五方面,本申请提供了一种包含指令的计算机程序产品,当其在电子设备上运行时,使得电子设备执行上述第一方面或第一方面的任一种实现方式所述的容器扫描方法。
15、本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
16、从以上技术方案可以看出,本申请具有以下优点:
17、本申请提供了一种容器扫描方法,该方法应用于容器扫描器,该容器扫描器部署在第一主机,第一主机部署有目标容器。容器扫描器首先获取目标容器的命名空间的文件句柄信息,以及,在第一主机的主进程中,创建容器扫描线程,容器扫描器根据目标容器的命名空间的文件句柄信息,将容器扫描线程切换至目标容器的命名空间,以使容器扫描线程在目标容器中执行容器扫描任务,接着,容器扫描器接收容器扫描线程发送的扫描结果,以及,根据目标容器的命名空间的文件句柄信息,将容器扫描线程切换至主进程的命名空间。
18、在该方法中,通过在宿主机(即第一主机)的主进程中创建容器扫描线程,并将容器扫描线程切换至待扫描的目标容器的命名空间中,实现与目标容器内部环境的直接交互。如此,容器扫描任务可以被视为在主机内部进行扫描的任务,能够覆盖目标容器的完整文件系统,提升容器扫描的完整性。同时,通过目标容器的命名空间的文件句柄信息进行线程切换,不依赖于容器引擎提供的接口,对于不同容器引擎具有良好的兼容性,使得容器扫描更加灵活和高效。
1.一种容器扫描方法,其特征在于,应用于容器扫描器,所述容器扫描器部署在第一主机,所述第一主机部署有目标容器,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标容器的命名空间的文件句柄信息,将所述容器扫描线程切换至所述目标容器的命名空间,包括:
3.根据权利要求1所述的方法,其特征在于,所述获取所述目标容器的命名空间的文件句柄信息,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述目标容器的进程链路,从所述第一主机运行的进程信息中,确定所述目标容器的进程信息,包括:
5.根据权利要求4所述的方法,其特征在于,所述采集规则包括所述目标容器的进程信息、所述目标容器的父容器的进程信息以及所述目标容器的根容器的进程信息。
6.根据权利要求3所述的方法,其特征在于,所述扫描与所述目标容器的进程信息对应的命名空间目录,获取所述目标容器的命名空间的文件句柄信息,包括:
7.根据权利要求1所述的方法,其特征在于,所述主进程的命名空间与所述目标容器的命名空间之间具有共享内存;在所述将所述容器扫描线程切换至所述目标容器的命名空间之后,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,所述主进程的命名空间与所述目标容器的命名空间之间具有共享内存;所述接收所述容器扫描线程发送的扫描结果,包括:
9.根据权利要求1至8任一项所述的方法,其特征在于,在所述根据所述目标容器的命名空间的文件句柄信息,将所述容器扫描线程切换至所述主进程的命名空间之后,所述方法还包括:
10.一种容器扫描装置,其特征在于,所述装置部署在容器扫描器,所述述容器扫描器部署在第一主机,所述第一主机部署有目标容器,所述装置包括:
11.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;
12.一种计算机可读存储介质,其特征在于,包括指令,所述指令指示电子设备执行如权利要求1至9中任一项所述的方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机可读指令,所述计算机可读指令用于实现权利要求1至9任一项所述的方法。