CN114968470A - 基于k8s集群的容器检测方法、装置、电子设备及存储装置 - Google Patents
基于k8s集群的容器检测方法、装置、电子设备及存储装置 Download PDFInfo
- Publication number
- CN114968470A CN114968470A CN202110208812.5A CN202110208812A CN114968470A CN 114968470 A CN114968470 A CN 114968470A CN 202110208812 A CN202110208812 A CN 202110208812A CN 114968470 A CN114968470 A CN 114968470A
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- cluster
- pod
- container
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种基于k8s集群的容器检测方法、装置、电子设备及存储装置,属于计算机网络安全管理技术领域,所述方法包括:构建k8s集群模型,所述k8s集群模型是基于容器的集群管理平台;对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描;根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护。本发明通过构建k8s集群模型,并基于构建的k8s集群模型对k8s集群模型的容器内端口和应用程序进行漏洞扫描,能及时发现容器内端口漏洞以及应用程序漏洞。
Description
技术领域
本发明涉及计算机网络安全管理技术领域,尤其涉及一种基于k8s集群的容器检测方法、装置、电子设备及存储装置。
背景技术
容器是一个标准化的软件单元,它将代码及其所有依赖关系打包,以便应用程序从一个计算环境可靠快速地运行到另一个计算环境。
现有的应用部署方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。作为容器技术的一种具体实现,Docker近年来受到越来越多的关注,在某种程度上,Docker已经成为了容器技术的代表。Docker的设计虽然实现了良好的操作系统级隔离,但同时也存在很多安全隐患,比如其默认的组网模式以及与主机共享操作系统内核、共享主机资源、采用Linux Capabilities机制、隔离的不充分等。
为此,需要对Docker容器进行全面的安全防护,主要包括模板文件的安全防护、镜像文件安全防护、容器运行保护、容器内应用保护、容器运行环境的保护。然而现有的容器安全方式在容器和隔离后已经满足不了容器安全防护需求,体现在如下几点:第一,没有基于K8S系统的节点检测模型;第二,无法检测端口镜像的安全漏洞及病毒木马;第三,难以发现容器网络存在的攻击。
发明内容
本发明提供一种基于k8s集群的容器检测方法、装置、电子设备及存储装置,用以解决现有技术中在容器和隔离后已经满足不了容器安全防护需求的问题,实现容器安全防护过程中的安全防护,并提升检测效率。
本发明提供一种基于k8s集群的容器检测方法,包括:
构建k8s集群模型,所述k8s集群模型是基于容器的集群管理平台;
对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描;
根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护。
根据本发明提供的一种基于k8s集群的容器检测方法,所述构建k8s集群模型,包括:
设置多个Master节点控制Node节点的通信网络模型;
针对每一个Master节点设置多个Node节点,并对每一个Node节点部署多个Pod,Master节点为k8s集群模型的控制节点,Node节点用于运行Pod;
将应用程序部署在一组相互关联的容器内,一个Pod包括一个或多个容器,Pod里的容器与其他Node节点的Pod容器通信连接。
根据本发明提供的一种基于k8s集群的容器检测方法,所述对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描,包括:
利用预设插件通过域名访问所述k8s集群模型内的服务;
将所述服务对应的域名和端口信息加入到应用程序扫描的任务队列;
定时从所述任务队列中获取扫描任务,并根据所述扫描任务对应用程序进行页面抓取以获取页面文件和目录信息;
根据所述页面文件和目录信息,获取应用程序的名称以及版本信息,并对端口进行漏洞扫描,得到所述端口漏洞信息;
根据所述应用程序的名称以及版本信息、所述端口漏洞信息,对应用程序进行漏洞扫描,得到应用程序漏洞信息。
根据本发明提供的一种基于k8s集群的容器检测方法,所述根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护,包括:
将k8s集群模型中一个Node节点的多个Pod中的一个Pod设置为漏洞扫描节点Pod1,所述漏洞扫描节点Pod1不部署应用程序但具有存储空间;
通过所述漏洞扫描节点Pod1,对同一个Node节点下的所有Pod进行漏洞扫描;
根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护。
根据本发明提供的一种基于k8s集群的容器检测方法,所述根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护,包括:
当扫描到某一个Pod出现漏洞时,获取出现漏洞的Pod的存储数据,并将所述存储数据存储至所述漏洞扫描节点Pod1中,同时将所述出现漏洞的Pod设置为新的漏洞扫描节点Pod2;
通过所述出现漏洞的Pod的对应Node节点,根据扫描的漏洞内容向对应的Master节点获取漏洞解决方案或清除所述漏洞。
根据本发明提供的一种基于k8s集群的容器检测方法,所述根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护,还包括:
当扫描到多个Pod出现漏洞时,通过调度其他Node节点中的多个Pod对出现漏洞的多个Pod的存储数据进行对应转存;或
当扫描到多个Pod出现漏洞时,通过调度其他Node节点中的多个Pod的备份存储空间对出现漏洞的多个Pod的存储数据进行对应的临时存储,并依次标记标号;
当所述出现漏洞的多个Pod恢复正常后,根据所述标号将对应Pod容器内的数据再有序存储回原来的Pod中以实现k8s集群的容器的安全防护。
根据本发明提供的一种基于k8s集群的容器检测方法,所述根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护,进一步包括:
对所述漏洞扫描节点Pod1设置基于神经网络的漏洞训练模型,所述漏洞训练模型存储有基于漏洞或病毒或威胁的数据库;
当所述漏洞扫描节点Pod1对其他Pod进行漏洞扫描时,所述漏洞扫描节点Pod1获取某一个待扫描的Pod中的数据,并将所述数据作为测试集输入至所述漏洞训练模型中;
若所述漏洞训练模型输出结果正常,则表示没有漏洞,所述漏洞扫描节点Pod1继续对下一个Pod进行扫描;
若所述漏洞训练模型输出结果是异常,则表示出现漏洞,将出现漏洞的Pod进行标记,并实时获取所述出现漏洞的Pod的数据并调度至已经扫描且安全的Pod中,同时向对应的Master节点发送漏洞解决请求以获取漏洞解决方案。
本发明还提供一种基于k8s集群的容器检测装置,包括:
构建k8s集群模型模块,用于构建k8s集群模型,所述k8s集群模型是基于容器的集群管理平台;
漏洞扫描模块,用于对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描;
调度处理模块,用于根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于k8s集群的容器检测方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于k8s集群的容器检测方法的步骤。
本发明提供的一种基于k8s集群的容器检测方法、装置、电子设备及存储装置,通过构建k8s集群模型,并基于构建的k8s集群模型对k8s集群模型的容器内端口和应用程序进行漏洞扫描,能及时发现容器内端口漏洞以及应用程序漏洞。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于k8s集群的容器检测方法的流程示意图;
图2是本发明提供的构建k8s集群模型的流程示意图;
图3是发明提供的构建k8s集群模型的示意图;
图4是本发明提供的扫描端口漏洞和扫描应用程序漏洞的流程示意图;
图5是本发明提供的数据调度处理的流程示意图;
图6是本发明提供的单个Pod出现漏洞的流程示意图;
图7是本发明提供的多个Pod出现漏洞的流程示意图;
图8是本发明提供的基于漏洞训练模型的数据调度处理的流程示意图;
图9是本发明提供的基于漏洞训练模型的单个Pod出现漏洞的流程示意图;
图10是本发明提供的基于漏洞训练模型的多个Pod出现漏洞的流程示意图;
图11是本发明提供的基于k8s集群的容器检测装置的结构示意图;
图12是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。
以下对本发明涉及的技术术语进行描述:
K8s是Kubernetes的简称,是用8代替8个字符“ubernete”而成的缩写,它是一个开源的,用于管理云平台中多个主机上的容器化的应用。Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署,规划,更新,维护的一种机制。
本发明通过构建基于K8s集群的节点检测模型,并基于所述K8s集群模型,对容器内端口以及应用程序进行漏洞扫描,能够检测端口镜像的安全漏洞及病毒木马等,并且也能检测容器内应用程序的漏洞从而发现容器网络存在的攻击,解决了现有技术没有基于K8s系统的节点检测模型,无法检测端口镜像的安全漏洞及病毒木马以及难以发现容器网络存在的攻击等问题。
下面结合图1-图12描述本发明的基于k8s集群的容器检测方法、装置、电子设备及存储装置。
图1是本发明提供的基于k8s集群的容器检测方法的流程示意图,如图1所示。一种基于k8s集群的容器检测方法,包括:
步骤101,构建k8s集群模型,所述k8s集群模型是基于容器的集群管理平台。
Docker作为容器技术的代表,是创建容器的工具。但想要将Docker应用到具体的业务实现,是存在困难的,比如编排、管理和调度等各方面。所以通过构建k8s集群模型对Docker及容器进行更高级更灵活的管理。
步骤102,对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描。
通过基于构建的k8s集群模型,对k8s集群模型的容器内端口和应用程序进行漏洞扫描,能及时发现容器内端口漏洞以及应用程序漏洞,实现容器运行的安全保护。
步骤103,根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护。
可选的,所述基于k8s集群的容器检测方法,还包括:
将所述漏洞扫描的所有漏洞信息保存至数据库中,并生成漏洞汇总表以供设置有基于神经网络的漏洞训练模型的Pod使用。
本发明根据对容器内端口漏洞和应用程序漏洞进行漏洞扫描的结果,对出现漏洞导致数据存储不安全的问题,可通过对应的数据调度处理以实现高效的漏洞预防。
以下将对上述步骤101~步骤103进行具体描述。
图2是本发明提供的构建k8s集群模型的流程示意图,图3是发明提供的构建k8s集群模型的示意图,如图2、图3所示。上述步骤101中,所述构建k8s集群模型,包括:
步骤201,设置多个Master节点控制Node节点的通信网络模型。k8s集群是由Master节点和Node(Worker)节点组成。k8s集群中大部分的操作可通过kubectl命令行工具来实现的。
步骤202,针对每一个Master节点设置多个Node节点,并对每一个Node节点部署多个Pod,Master节点为k8s集群模型的控制节点,Node节点用于运行Pod。
具体的,Master节点包括API Sever、Scheduler和Controller Management。APISever用于响应用户请求和同一Master节点控制领域内各个组件的协调工作,Scheduler用于集群的资源调度,为待调度Pod队列的每一个Pod绑定宿主机。Controller Management负责控制值k8s中的不同控制器。
具体的,Node节点是工作节点,用于运行Pod,每一个Node节点中还包括组件kublet、Proxy以及Docker。其中,kublet负责管理控制Pod,包括接收创建Pod、启动Pod以及监控Pod的运行状态;Proxy主要为Pod创建代理服务,获取Service的资源描述文件,进行路由转发;Docker是用于创建容器的。
具体的,Pod是k8s集群最基本的操作单元。一个Pod代表着集群中运行的一个进程,Pod内部封装了一个或多个紧密相关的容器。
步骤203,将应用程序部署在一组相互关联的容器内,一个Pod包括一个或多个容器,Pod里的容器与其他Node节点的Pod容器通信连接。
可选的,一个Pod中的多个容器通常是紧耦合的,并且容器运行在同一台宿主机上,所有的容器均使用相同的IP地址和端口,这样使得Pod里的容器就可以与其他节点上的Pod容器直接通信。采用Pod容器组将一组功能相关联的容器作为一个整体进行资源管理和调度,提高了调度的灵活性和高效性。
因此,通过上述的k8s集群模型,可完成Master节点、Node节点、数据库、容器网络以及相应的前端模块的构建。所述构建的k8s集群模型对于应用的部署和运维更加方便。
图4是本发明提供的扫描端口漏洞和扫描应用程序漏洞的流程示意图,如图4所示。上述步骤102中,所述对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描,包括:
步骤401,利用预设插件通过域名访问所述k8s集群模型内的服务。
可选的,利用利用kube-dns插件,通过域名来访问k8s集群内的服务,实现服务自动发现。可通过kubectl命令行工具来配置多个kube-dns,kube-dns为k8s集群提供了DNS服务。
步骤402,将所述服务对应的域名和端口信息加入到应用程序扫描的任务队列。
可选的,通过API Server接口来获取k8s集群中的服务,并将服务所对应的域名和端口信息加入到应用程序扫描的任务队列。
步骤403,定时从所述任务队列中获取扫描任务,并根据所述扫描任务对应用程序进行页面抓取以获取页面文件和目录信息。
可选的,可通过扫描系统的任务获取器定时从所述任务队列中获取扫描任务,并交给对应模块(比如爬虫模块)对应用程序进行页面抓取以获取页面文件和目录信息。
步骤404,根据所述页面文件和目录信息,获取应用程序的名称以及版本信息,并对端口进行漏洞扫描,得到所述端口漏洞信息。
可选的,可通过端口扫描模块获取应用程序所的名称以及版本信息。
可选的,通过对端口进行漏洞扫描,可获取能上传后门程序对应的第一漏洞信息、上传文件漏洞组成的第二漏洞信息、后台登录破解密码对应的第三漏洞信息以及开源Web系统自身漏洞组成的第四漏洞信息。并将第一漏洞信息、第二漏洞信息、第三漏洞信息以及第四漏洞信息汇总成所述端口漏洞信息。
步骤405,根据所述应用程序的名称以及版本信息、所述端口漏洞信息,对应用程序进行漏洞扫描,得到应用程序漏洞信息。
可选定,当识别出所述应用程序的名称以及版本信息之后,将上述所述端口漏洞信息交由通用漏洞检测模块以及exploit检测模块检测应用程序漏洞,得到应用程序漏洞信息。所述漏洞检测模块和所述exploit检测模块检测应用程序漏洞是系统预先设置的模块。
基于上述容器内端口漏洞扫描和应用程序漏洞扫描之后,当存在漏洞问题时,需要对容器内的数据安全问题进行数据调度处理。
图5是本发明提供的数据调度处理的流程示意图,如图5所示。上述步骤103中,所述根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护,包括:
步骤501,将k8s集群模型中一个Node节点的多个Pod中的一个Pod设置为漏洞扫描节点Pod1,所述漏洞扫描节点Pod1不部署应用程序但具有存储空间。
步骤502,通过所述漏洞扫描节点Pod1,对同一个Node节点下的所有Pod进行漏洞扫描。
可选的,根据实际应用场景部署需求,还可以部署至少一个Pod属于空的状态,通过部署这种空的状态的Pod对同一个Node节点下的所有Pod进行漏洞扫描,以实现高效漏洞预防。
步骤503,根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护。
上述漏洞扫描的方式可通过对k8s集群中的每一个Node节点包含多个Pod中的一个Pod(比如命名为Pod1)设置为漏洞扫描节点,并且设置为漏洞扫描节点的Pod1可不部署应用,但具有与其他Pod相同的部署存储空间,这样当作为漏洞扫描节点的Pod1扫描其他Pod发现漏洞时,能够将有出现漏洞的Pod中存储的数据转存至自己的存储空间中,以解决出现漏洞中数据不安全的问题,同时也实现了高效漏洞防护。
以下针对上述步骤503中,出现漏洞的Pod个数进行对应的数据调度处理进行描述。
图6是本发明提供的单个Pod出现漏洞的流程示意图,如图6所示。上述步骤503中,所述根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护,包括:
步骤601,当扫描到某一个Pod出现漏洞时,获取出现漏洞的Pod的存储数据,并将所述存储数据存储至所述漏洞扫描节点Pod1中,同时将所述出现漏洞的Pod设置为新的漏洞扫描节点Pod2。
由于新的漏洞扫描节点Pod2不存储数据(因为新的漏洞扫描节点Pod2之前存储的数据已经转存至漏洞扫描节点Pod1中,漏洞扫描节点Pod1部署有存储空间),所以即使漏洞存在,也没有安全威胁。
步骤602,通过所述出现漏洞的Pod的对应Node节点,根据扫描的漏洞内容向对应的Master节点获取漏洞解决方案或清除所述漏洞。
图7是本发明提供的多个Pod出现漏洞的流程示意图,如图7所示。上述步骤503中,所述根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护,包括:
步骤701,当扫描到多个Pod出现漏洞时,通过调度其他Node节点中的多个Pod对出现漏洞的多个Pod的存储数据进行对应转存。
为了解决扫描到多个Pod出现漏洞的问题,可通过调度其他Node节点中的Pod进行数据存储。
步骤702,当扫描到多个Pod出现漏洞时,通过调度其他Node节点中的多个Pod的备份存储空间对出现漏洞的多个Pod的存储数据进行对应的临时存储,并依次标记标号。
步骤702是不同于步骤701的另一种处理方式,即在部署时,可将每一个Node中的Pod中的容器都部署至少一个备份空间,以调度同一个出现漏洞Pod中的应用调度至其他Pod中的备份空间进行临时存储,并一一标记标号。
步骤703,当所述出现漏洞的多个Pod恢复正常后,根据所述标号将对应Pod容器内的数据再有序存储回原来的Pod中以实现k8s集群的容器的安全防护。
上述漏洞扫描的方式可通过对k8s集群中的每一个Node中的Pod中的容器部署至少一个备份空间,用于存储扫描过程中出现漏洞的Pod中所存储的数据,从而实现Pod容器内数据的安全防护。
基于上述Pod的数据调度处理方式之外,还可以通过作为漏洞扫描节点的Pod1设置一种基于神经网络的漏洞训练模型来实现数据调度处理,以下将具有漏洞训练模型的Pod1的数据调度处理进行描述。
图8是本发明提供的基于漏洞训练模型的数据调度处理的流程示意图,如图8所示。上述步骤503中,所述根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护,进一步包括:
步骤801,对所述漏洞扫描节点Pod1设置基于神经网络的漏洞训练模型,所述漏洞训练模型存储有基于漏洞或病毒或威胁的数据库。
步骤802,当所述漏洞扫描节点Pod1对其他Pod进行漏洞扫描时,所述漏洞扫描节点Pod1获取某一个待扫描的Pod(可将该Pod记为task节点)中的数据,并将所述数据作为测试集输入至所述漏洞训练模型中。
步骤803,若所述漏洞训练模型输出结果正常,则表示没有漏洞,所述漏洞扫描节点Pod1继续对下一个Pod进行扫描。
步骤804,若所述漏洞训练模型输出结果是异常,则表示出现漏洞,将出现漏洞的Pod(可将该Pod记为miss task节点,如果是多个Pod,则分别记为miss task1、misstask2、…、miss taskn)进行标记,并实时获取所述出现漏洞的Pod的数据并调度至已经扫描且安全的Pod中,同时向对应的Master节点发送漏洞解决请求以获取漏洞解决方案。
以下对上述步骤804中当某一个Pod出现漏洞问题(如图9所示)和当多个Pod出现漏洞问题(如图10所示)进行描述。
图9是本发明提供的基于漏洞训练模型的单个Pod出现漏洞的流程示意图,如图9所示。上述步骤804中,所述若所述漏洞训练模型输出结果是异常,则表示出现漏洞,包括:
步骤901,当扫描到某一个Pod出现漏洞时,则直接调度所述漏洞扫描节点Pod1中的漏洞训练模型至出现漏洞的Pod中,同时将出现漏洞的Pod存储的数据转存至所述漏洞扫描节点Pod1中。
步骤902,当所述出现漏洞的Pod恢复正常(即漏洞问题已解决)后,由出现漏洞的Pod扮演漏洞扫描角色(其之前存储的数据已调度至Pod1),继续对下一个未扫描的Pod进行漏洞扫描。
图10是本发明提供的基于漏洞训练模型的多个Pod出现漏洞的流程示意图,如图10所示。上述步骤804中,所述若所述漏洞训练模型输出结果是异常,则表示出现漏洞,包括:
步骤1001,当扫描到多个Pod出现漏洞时,则调度所述漏洞扫描节点Pod1中的漏洞训练模型至最先出现漏洞的Pod中,同时通过调度其他Node节点中的多个Pod的备份存储空间对出现漏洞的多个Pod的存储数据进行对应的临时存储,并依次标记标号。
虽然已调度所述漏洞扫描节点Pod1中的漏洞训练模型至最先出现漏洞的Pod中,但是所述最先出现漏洞的Pod,其漏洞问题可能还没解决,会扮演漏洞扫描角色继续对下一个未扫描的Pod进行漏洞扫描的,所以可通过前述内容在部署每一个Pod中都预留有备份存储空间,在进行调度过程中,每一个Pod的数据都可进行标识匹配。
步骤1002,当所述出现漏洞的多个Pod恢复正常后,根据所述标号将对应Pod容器内的数据再有序存储回原来的Pod中以实现k8s集群的容器的安全防护。
由此可知,通过上述数据调度处理,可实现K8s集群的容器安全防护检测及解决漏洞问题,有效提高漏洞检测效率,从而实现K8s集群的容器安全的有效防护。
下面对本发明提供的基于k8s集群的容器检测装置进行描述,下文描述的基于k8s集群的容器检测装置与上文描述的基于k8s集群的容器检测方法可相互对应参照。
图11是本发明提供的基于k8s集群的容器检测装置的结构示意图,如图11所示。一种基于k8s集群的容器检测装置1100,包括构建k8s集群模型模块1110、漏洞扫描模块1120以及调度处理模块1130。
构建k8s集群模型模块1110,用于构建k8s集群模型,所述k8s集群模型是基于容器的集群管理平台。
漏洞扫描模块1120,用于对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描。
调度处理模块1130,用于根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护。
可选的,所述基于k8s集群的容器检测装置1100还包括漏洞信息保存模块(图中暂未标示),所述漏洞信息保存模块将所述漏洞扫描的所有漏洞信息保存至数据库中,并生成漏洞汇总表以供设置有基于神经网络的漏洞训练模型的Pod使用。
可选的,所述构建k8s集群模型模块1110,还用于执行如下步骤:
设置多个Master节点控制Node节点的通信网络模型;
针对每一个Master节点设置多个Node节点,并对每一个Node节点部署多个Pod,Master节点为k8s集群模型的控制节点,Node节点用于运行Pod;
将应用程序部署在一组相互关联的容器内,一个Pod包括一个或多个容器,Pod里的容器与其他Node节点的Pod容器通信连接。
可选的,所述漏洞扫描模块1120还用于执行如下步骤:
利用预设插件通过域名访问所述k8s集群模型内的服务;
将所述服务对应的域名和端口信息加入到应用程序扫描的任务队列;
定时从所述任务队列中获取扫描任务,并根据所述扫描任务对应用程序进行页面抓取以获取页面文件和目录信息;
根据所述页面文件和目录信息,获取应用程序的名称以及版本信息,并对端口进行漏洞扫描,得到所述端口漏洞信息;
根据所述应用程序的名称以及版本信息、所述端口漏洞信息,对应用程序进行漏洞扫描,得到应用程序漏洞信息。
可选的,所述调度处理模块1130还用于执行如下步骤:
将k8s集群模型中一个Node节点的多个Pod中的一个Pod设置为漏洞扫描节点Pod1,所述漏洞扫描节点Pod1不部署应用程序但具有存储空间;
通过所述漏洞扫描节点Pod1,对同一个Node节点下的所有Pod进行漏洞扫描;
根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护。
可选的,所述调度处理模块1130还用于执行如下步骤:
当扫描到某一个Pod出现漏洞时,获取出现漏洞的Pod的存储数据,并将所述存储数据存储至所述漏洞扫描节点Pod1中,同时将所述出现漏洞的Pod设置为新的漏洞扫描节点Pod2;
通过所述出现漏洞的Pod的对应Node节点,根据扫描的漏洞内容向对应的Master节点获取漏洞解决方案或清除所述漏洞。
可选的,所述调度处理模块1130还用于执行如下步骤:
当扫描到多个Pod出现漏洞时,通过调度其他Node节点中的多个Pod对出现漏洞的多个Pod的存储数据进行对应转存;或
当扫描到多个Pod出现漏洞时,通过调度其他Node节点中的多个Pod的备份存储空间对出现漏洞的多个Pod的存储数据进行对应的临时存储,并依次标记标号;
当所述出现漏洞的多个Pod恢复正常后,根据所述标号将对应Pod容器内的数据再有序存储回原来的Pod中以实现k8s集群的容器的安全防护。
可选的,所述调度处理模块1130还用于执行如下步骤:
对所述漏洞扫描节点Pod1设置基于神经网络的漏洞训练模型,所述漏洞训练模型存储有基于漏洞或病毒或威胁的数据库;
当所述漏洞扫描节点Pod1对其他Pod进行漏洞扫描时,所述漏洞扫描节点Pod1获取某一个待扫描的Pod中的数据,并将所述数据作为测试集输入至所述漏洞训练模型中;
若所述漏洞训练模型输出结果正常,则表示没有漏洞,所述漏洞扫描节点Pod1继续对下一个Pod进行扫描;
若所述漏洞训练模型输出结果是异常,则表示出现漏洞,将出现漏洞的Pod进行标记,并实时获取所述出现漏洞的Pod的数据并调度至已经扫描且安全的Pod中,同时向对应的Master节点发送漏洞解决请求以获取漏洞解决方案。
图12示例了一种电子设备的实体结构示意图,如图12所示,该电子设备可以包括:处理器(processor)1210、通信接口(Communications Interface)1220、存储器(memory)1230和通信总线1240,其中,处理器1210,通信接口1220,存储器1230通过通信总线1240完成相互间的通信。处理器1210可以调用存储器1230中的逻辑指令,以执行所述基于k8s集群的容器检测方法,所述方法包括:
构建k8s集群模型,所述k8s集群模型是基于容器的集群管理平台;
对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描;
根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护。
此外,上述的存储器1230中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的所述基于k8s集群的容器检测方法,所述方法包括:
构建k8s集群模型,所述k8s集群模型是基于容器的集群管理平台;
对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描;
根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各提供的所述基于k8s集群的容器检测方法,所述方法包括:
构建k8s集群模型,所述k8s集群模型是基于容器的集群管理平台;
对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描;
根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于k8s集群的容器检测方法,其特征在于,包括:
构建k8s集群模型,所述k8s集群模型是基于容器的集群管理平台;
对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描;
根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护。
2.根据权利要求1所述的基于k8s集群的容器检测,其特征在于,所述构建k8s集群模型,包括:
设置多个Master节点控制Node节点的通信网络模型;
针对每一个Master节点设置多个Node节点,并对每一个Node节点部署多个Pod,Master节点为k8s集群模型的控制节点,Node节点用于运行Pod;
将应用程序部署在一组相互关联的容器内,一个Pod包括一个或多个容器,Pod里的容器与其他Node节点的Pod容器通信连接。
3.根据权利要求1所述的基于k8s集群的容器检测,其特征在于,所述对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描,包括:
利用预设插件通过域名访问所述k8s集群模型内的服务;
将所述服务对应的域名和端口信息加入到应用程序扫描的任务队列;
定时从所述任务队列中获取扫描任务,并根据所述扫描任务对应用程序进行页面抓取以获取页面文件和目录信息;
根据所述页面文件和目录信息,获取应用程序的名称以及版本信息,并对端口进行漏洞扫描,得到所述端口漏洞信息;
根据所述应用程序的名称以及版本信息、所述端口漏洞信息,对应用程序进行漏洞扫描,得到应用程序漏洞信息。
4.根据权利要求2所述的基于k8s集群的容器检测,其特征在于,所述根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护,包括:
将k8s集群模型中一个Node节点的多个Pod中的一个Pod设置为漏洞扫描节点Pod1,所述漏洞扫描节点Pod1不部署应用程序但具有存储空间;
通过所述漏洞扫描节点Pod1,对同一个Node节点下的所有Pod进行漏洞扫描;
根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护。
5.根据权利要求4所述的基于k8s集群的容器检测,其特征在于,所述根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护,包括:
当扫描到某一个Pod出现漏洞时,获取出现漏洞的Pod的存储数据,并将所述存储数据存储至所述漏洞扫描节点Pod1中,同时将所述出现漏洞的Pod设置为新的漏洞扫描节点Pod2;
通过所述出现漏洞的Pod的对应Node节点,根据扫描的漏洞内容向对应的Master节点获取漏洞解决方案或清除所述漏洞。
6.根据权利要求4所述的基于k8s集群的容器检测,其特征在于,所述根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护,还包括:
当扫描到多个Pod出现漏洞时,通过调度其他Node节点中的多个Pod对出现漏洞的多个Pod的存储数据进行对应转存;或
当扫描到多个Pod出现漏洞时,通过调度其他Node节点中的多个Pod的备份存储空间对出现漏洞的多个Pod的存储数据进行对应的临时存储,并依次标记标号;
当所述出现漏洞的多个Pod恢复正常后,根据所述标号将对应Pod容器内的数据再有序存储回原来的Pod中以实现k8s集群的容器的安全防护。
7.根据权利要求4所述的基于k8s集群的容器检测,其特征在于,所述根据所述漏洞扫描的出现漏洞的Pod个数进行对应的数据调度处理以实现k8s集群的容器的安全防护,进一步包括:
对所述漏洞扫描节点Pod1设置基于神经网络的漏洞训练模型,所述漏洞训练模型存储有基于漏洞或病毒或威胁的数据库;
当所述漏洞扫描节点Pod1对其他Pod进行漏洞扫描时,所述漏洞扫描节点Pod1获取某一个待扫描的Pod中的数据,并将所述数据作为测试集输入至所述漏洞训练模型中;
若所述漏洞训练模型输出结果正常,则表示没有漏洞,所述漏洞扫描节点Pod1继续对下一个Pod进行扫描;
若所述漏洞训练模型输出结果是异常,则表示出现漏洞,将出现漏洞的Pod进行标记,并实时获取所述出现漏洞的Pod的数据并调度至已经扫描且安全的Pod中,同时向对应的Master节点发送漏洞解决请求以获取漏洞解决方案。
8.一种基于k8s集群的容器检测装置,其特征在于,包括:
构建k8s集群模型模块,用于构建k8s集群模型,所述k8s集群模型是基于容器的集群管理平台;
漏洞扫描模块,用于对所述k8s集群模型的容器内端口进行漏洞扫描,得到端口漏洞信息,并基于所述端口漏洞信息对所述k8s集群模型的容器内应用程序进行漏洞扫描;
调度处理模块,用于根据所述漏洞扫描的结果进行对应的数据调度处理以实现k8s集群的容器的安全防护。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述基于k8s集群的容器方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于k8s集群的容器方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110208812.5A CN114968470A (zh) | 2021-02-24 | 2021-02-24 | 基于k8s集群的容器检测方法、装置、电子设备及存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110208812.5A CN114968470A (zh) | 2021-02-24 | 2021-02-24 | 基于k8s集群的容器检测方法、装置、电子设备及存储装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968470A true CN114968470A (zh) | 2022-08-30 |
Family
ID=82973277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110208812.5A Pending CN114968470A (zh) | 2021-02-24 | 2021-02-24 | 基于k8s集群的容器检测方法、装置、电子设备及存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968470A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115643112A (zh) * | 2022-12-22 | 2023-01-24 | 杭州默安科技有限公司 | 一种安全防护能力的测试方法及装置 |
CN116431276A (zh) * | 2023-02-28 | 2023-07-14 | 港珠澳大桥管理局 | 容器安全防护方法、装置、计算机设备和存储介质 |
-
2021
- 2021-02-24 CN CN202110208812.5A patent/CN114968470A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115643112A (zh) * | 2022-12-22 | 2023-01-24 | 杭州默安科技有限公司 | 一种安全防护能力的测试方法及装置 |
CN116431276A (zh) * | 2023-02-28 | 2023-07-14 | 港珠澳大桥管理局 | 容器安全防护方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11196773B2 (en) | Framework for coordination between endpoint security and network security services | |
CN109076063B (zh) | 在云环境中保护动态和短期虚拟机实例 | |
EP3391274B1 (en) | Dual memory introspection for securing multiple network endpoints | |
EP3469781B1 (en) | Dynamic, load-based, auto-scaling network security microservices architecture | |
US10091238B2 (en) | Deception using distributed threat detection | |
US9762599B2 (en) | Multi-node affinity-based examination for computer network security remediation | |
US20180191779A1 (en) | Flexible Deception Architecture | |
US9235705B2 (en) | Secure virtualization system software | |
US9223966B1 (en) | Systems and methods for replicating computing system environments | |
US20140304800A1 (en) | Methods and apparatus for agent-based malware management | |
US9088618B1 (en) | System and methods for ensuring fault tolerance of antivirus protection realized in a virtual environment | |
CN106778243B (zh) | 基于虚拟机的内核漏洞检测文件保护方法及装置 | |
JP2014506045A (ja) | ネットワーク刺激エンジン | |
CN109379347B (zh) | 一种安全防护方法及设备 | |
CN109951359A (zh) | 分布式网络资产异步扫描方法及设备 | |
CN106778244B (zh) | 基于虚拟机的内核漏洞检测进程保护方法及装置 | |
CA2943271A1 (en) | Method and system for providing security aware applications | |
CN110276199B (zh) | 一种Kubernetes云原生应用的动态安全检测方法 | |
CN114968470A (zh) | 基于k8s集群的容器检测方法、装置、电子设备及存储装置 | |
CN112272177A (zh) | 一种批量部署蜜网诱捕节点的方法 | |
WO2019094420A1 (en) | Secure invocation of network security entities | |
US10075559B1 (en) | Server configuration management system and methods | |
CN111447076B (zh) | 网络功能虚拟化nvf系统的容器部署方法及网元 | |
Micro | Deep Security Software | |
US8161551B1 (en) | System, method, and computer program product for enabling communication between security systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |