本申请涉及docker容器,具体而言,涉及一种docker容器的安全加固方法、装置、介质。
背景技术:
1、近年来docker容器技术在开发者社区迅速升温, docker容器具有高移动性和可扩展性, 以简便的方式确保运行环境一致。虚拟化技术的开发和使用呈爆炸式增长, 目前docker容器 hub镜像仓库中的镜像已达800多万个且增长迅速,在现有技术中,针对docker容器进行安全加固主要采用静态扫描的方式筛选处对应的漏洞特征,并针对漏洞特征进行逐一排查,以确保待测镜像的安全加固,可是,在静态扫描中,docker容器中的异常的系统调用还是存在,并没有被静态扫描所发现,导致docker容器的安全加固力度还是不足。
技术实现思路
1、本申请的实施例提供了一种docker容器的安全加固方法、装置、介质,进而至少在一定程度上针对待测镜像兼容静态分析和动态分析,并且基于静态分析确定待测镜像的安全漏洞,基于动态分析确定异常的系统调用,以便于针对docker容器进行综合性安全加固,提高了docker容器的安全加固力度,保证了docker容器的正常运行。
2、本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
3、根据本申请实施例的一个方面,提供了一种docker容器的安全加固方法,应用于docker容器;
4、所述docker容器的安全加固方法包括:
5、基于待测镜像进行静态分析,并获取镜像层中已有漏洞特征;
6、将漏洞特征存入自建知识库;
7、基于自建知识库的漏洞特征辅助待测镜像的静态扫描,以确定待测镜像的安全漏洞;
8、基于待测镜像进行动态分析,并获取动态分析工具所对应的白名单;
9、监控docker容器的运行,在发现白名单外的系统调用时,确定该系统调用为异常调用,并阻断该系统调用。
10、可选的,所述基于待测镜像进行静态分析,并获取镜像层中已有漏洞特征,包括:
11、在对待测镜像进行静态分析时,对待测镜像进行分析;
12、扫描待测镜像内的二进制文件,以获取软件包的名称和版本号信息;
13、将软件包的名称和版本号信息与已知的漏洞库比对,以确定镜像层中已有漏洞特征。
14、可选的,所述基于待测镜像进行静态分析,并获取镜像层中已有漏洞特征,还包括:
15、基于镜像二进制文件获取镜像的层结构信息;
16、根据镜像的层结构信息确定镜像层文件;
17、基于镜像层文件与静态分析工具确定对应镜像层的已有漏洞特征。
18、可选的,所述将漏洞特征存入自建知识库,包括:
19、获取自建知识库;
20、将漏洞特征存入自建知识库,以丰富自建知识库。
21、可选的,所述基于自建知识库的漏洞特征辅助待测镜像的静态扫描,以确定待测镜像的安全漏洞,包括:
22、记录公共父镜像的漏洞特征追踪到由其构建的子镜像的漏洞特征;
23、获取自建知识库的漏洞特征;
24、以自建知识库的漏洞特征为参考,并辅助待测镜像的静态扫描;
25、在待测镜像的静态扫描下,确定待测镜像的安全漏洞。
26、可选的,所述基于待测镜像进行动态分析,并获取动态分析工具所对应的白名单,包括:
27、在对待测镜像进行静态分析时,获取动态分析工具;
28、基于动态分析工具确定对应的白名单,其中,白名单为安全的系统调用。
29、可选的,所述监控docker容器的运行,在发现白名单外的系统调用时,确定该系统调用为异常调用,并阻断该系统调用,包括:
30、监控docker容器的运行,将目前的系统调用与白名单进行对比;
31、基于目前的系统调用与白名单的对比确定白名单外的系统调用;
32、在发现白名单外的系统调用时,确定该系统调用为异常调用。
33、可选的,所述监控docker容器的运行,在发现白名单外的系统调用时,确定该系统调用为异常调用,并阻断该系统调用,还包括:
34、在该系统调用为异常调用时,触发异常调用的控制,并阻断该系统调用。
35、根据本申请实施例的一个方面,提供了一种docker容器的安全加固装置,包括:
36、获取模块,用于基于待测镜像进行静态分析,并获取镜像层中已有漏洞特征;
37、存入模块,用于将漏洞特征存入自建知识库;
38、安全漏洞模块,用于基于自建知识库的漏洞特征辅助待测镜像的静态扫描,以确定待测镜像的安全漏洞;
39、白名单模块,用于基于待测镜像进行动态分析,并获取动态分析工具所对应的白名单;
40、阻断模块,用于监控docker容器的运行,在发现白名单外的系统调用时,确定该系统调用为异常调用,并阻断该系统调用。
41、根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的docker容器的安全加固方法。
42、根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的docker容器的安全加固方法。
43、根据本申请实施例的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中提供的docker容器的安全加固方法。
44、在本申请的一些实施例所提供的技术方案中,基于待测镜像进行静态分析,并获取镜像层中已有漏洞特征;将漏洞特征存入自建知识库;基于自建知识库的漏洞特征辅助待测镜像的静态扫描,以确定待测镜像的安全漏洞;基于待测镜像进行动态分析,并获取动态分析工具所对应的白名单;监控docker容器的运行,在发现白名单外的系统调用时,确定该系统调用为异常调用,并阻断该系统调用,此时,针对待测镜像兼容静态分析和动态分析,并且基于静态分析确定待测镜像的安全漏洞,基于动态分析确定异常的系统调用,以便于针对docker容器进行综合性安全加固,提高了docker容器的安全加固力度,保证了docker容器的正常运行。
45、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
1.一种docker容器的安全加固方法,其特征在于,应用于docker容器;
2.根据权利要求1所述的方法,其特征在于,所述基于待测镜像进行静态分析,并获取镜像层中已有漏洞特征,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于待测镜像进行静态分析,并获取镜像层中已有漏洞特征,还包括:
4.根据权利要求2所述的方法,其特征在于,所述将漏洞特征存入自建知识库,包括:
5.根据权利要求1所述的方法,其特征在于,所述基于自建知识库的漏洞特征辅助待测镜像的静态扫描,以确定待测镜像的安全漏洞,包括:
6.根据权利要求5所述的方法,其特征在于,所述基于待测镜像进行动态分析,并获取动态分析工具所对应的白名单,包括:
7.根据权利要求1所述的方法,其特征在于,所述监控docker容器的运行,在发现白名单外的系统调用时,确定该系统调用为异常调用,并阻断该系统调用,包括:
8.根据权利要求7所述的方法,其特征在于,所述监控docker容器的运行,在发现白名单外的系统调用时,确定该系统调用为异常调用,并阻断该系统调用,还包括:
9.一种docker容器的安全加固装置,其特征在于,包括:
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的docker容器的安全加固方法。