基于环境感知的容器集群风险分析与漏洞评估方法及装置
文献发布时间:2024-04-18 20:02:18
技术领域
本发明涉及信息安全、虚拟化技术领域,涉及针对微服务项目中的容器集群环境下的风险分析与漏洞评估方法及装置。
背景技术
在虚拟化技术不断发展的今天,容器技术愈发成熟。容器具有启动快速、部署方便、资源占用少和运行效率高等优点,被开发人员和组织广泛使用。Portworx在2019年的容器年度调查报告显示,超过87%的IT专业人员在使用容器技术;在容器中运行的应用程序,近90%已经在生产环境中投入使用。与系统虚拟化类似,容器提供了一个隔离的运行时环境和简单的方法来打包和部署应用程序的许多实例。容器是一个标准的软件单元,它包装了支持目标应用程序所需的系统库、文件和代码,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境,方便模块化以及产业化,便于开发、交付和部署。
容器环境改变了软件供应链的生态,加快了应用程序的开发流程。但由于第三方容器和开源代码的使用,大量漏洞被引入容器环境中。在采用Docker技术时,容器镜像中的安全漏洞是关键考虑因素,因为漏洞的利用会对容器化软件的机密性、完整性和可用性产生负面影响。在Redhat的报告中,开发人员将漏洞管理列为建立可靠容器环境的首要问题。容器化软件中的漏洞管理包括多个步骤,例如漏洞的检测、评估、优先级排序和修复。漏洞评估和优先级划分是漏洞管理的关键步骤之一,其中包括确定可利用性特征,例如攻击者的技能成熟度、攻击发起位置(例如,外部网络或本地网络)、攻击要求(例如,关于容器的权限要求或交互要求)等。
公开号为CN113111353A的专利文献提供了一种基于依赖关系的容器镜像库安全评估系统及方法,包括管理节点和检测节点。通过管理节点和检测节点的数据协调作用来检测容器镜像是否存在安全隐患,以及检测存在安全隐患的文件在子镜像中的修复情况。
公开号CN114780965A的专利文献给出了一种漏洞修复优先级评估方法与系统,包括同时考虑待测漏洞的漏洞利用成熟度、漏洞影响范围和漏洞修复难易度,再结合通用漏洞评分系统重新评定风险值;依据重新评定的漏洞风险值、漏洞所在网络环境以及所在资产的重要性计算出最终的风险评分;按照最终的风险评分,结合待测漏洞在不同资产上的情况评估出待测漏洞的修复优先级。
虽然针对容器镜像的漏洞评估已经取得了一定的成果,但在集群环境下漏洞的评估检测仍然存在以下两点缺陷:
(1)在集群内,各容器之间存在功能依赖关系,部分容器需要基于父级容器才可以起作用,需加以考虑才能更好的评估容器的安全性以进行漏洞管理。
(2)目前对于漏洞的严重性评估,没有考虑集群下多容器间的同一漏洞的优先级评估结果,对于集群下的环境信息考虑的不全面。
发明内容
针对现在技术存在的不足之处,本申请实施例的目的是提供一种在容器集群环境下的风险分析及漏洞评估方法,以解决同一集群内部不同容器间的漏洞修复优先级难以评估的问题。
根据本申请实施例的第一方面,提供一种基于环境感知的容器集群风险分析与漏洞评估方法,包括:
收集容器集群开源项目,对所述容器集群开源项目进行分析,获取配置信息与漏洞脆弱性评估指标的关系并构建数据集,利用所述数据集训练卷积神经网络模型;
加载集群配置环境,并基于规则提取集群内元数据,提取集群内部容器之间的网络通讯关系和功能依赖关系保存为系统架构特征;
扫描集群内各容器镜像所包含的漏洞,并获取漏洞脆弱性特征,所述漏洞脆弱性特征包括通用脆弱性评估指标、漏洞利用性子评分、漏洞影响性子评分、漏洞利用成熟度、补丁发布情况;
利用训练好的神经网络模型对漏洞在容器集群环境下进行分析,结合系统架构特征与漏洞脆弱性特征评估在资源约束的情况下集群漏洞的修复优先级排名。
可选的,收集容器集群开源项目,对所述容器集群开源项目进行分析,获取配置信息与漏洞脆弱性评估指标的关系并构建数据集,利用所述数据集训练卷积神经网络模型,包括:
借助GitHub公开数据平台,收集与Docker Compose有关的开源项目,以commits为标准过滤玩具项目,提高所收集项目的代表性;
分析集群项目中的配置文件,以通用漏洞脆弱性评估指标分别构建用于神经网络训练的数据集,其中包括攻击矢量、攻击复杂度、权限需求、用户交互;
构建卷积神经网络模型,利用所述数据集,针对通用脆弱性评估指标训练多组卷积神经网络模型。
可选的,加载集群配置环境,并基于规则提取集群内元数据,提取集群内部容器之间的网络通讯关系和功能依赖关系保存为系统架构特征,包括:
通过语法树解析与正则化提取集群中单个容器的配置信息,所述配置信息包括容器镜像源、网络模式、容器依赖;
通过递归查询容器依赖信息获得集群内部容器的功能依赖特征,基于网络模式提取集群的网络依赖特征,保存为系统架构特征。
可选的,扫描集群内各容器镜像所包含的漏洞,并获取漏洞脆弱性特征,包括:
通过容器镜像内部操作系统软件包的版本与公共漏洞数据源进行比较,获得镜像内部的CVE漏洞清单;
调用美国国家通用漏洞数据库NVD和Exploit-DB公共漏洞数据库的API,查询所述漏洞清单的脆弱性相关特征。
可选的,利用训练好的神经网络模型对漏洞在容器集群环境下进行分析,结合系统架构特征与漏洞脆弱性特征评估在资源约束的情况下集群漏洞的修复优先级排名,包括:
利用训练好的神经网络模型,以容器集群环境为输入,映射通用脆弱性评估指标的阈值,获得集群环境下的通用脆弱性评估指标值,进而计算集群环境下漏洞利用性子评分,更新漏洞脆弱性特征;
以系统架构特征与漏洞脆弱性特征计算漏洞的修复成本和风险分数,以可利用的修复成本为约束条件,以集群系统风险分数为依据评估集群漏洞的修复优先级排名。
根据本申请实施例的第二方面,提供一种基于环境感知的容器集群风险分析与漏洞评估系统,包括:
数据收集和模型训练模块,用于收集容器集群开源项目,对所述容器集群开源项目进行分析,获取配置信息与漏洞脆弱性评估指标的关系并构建数据集,利用所述数据集训练卷积神经网络模型;
环境感知模块,用于加载集群配置环境,并基于规则提取集群内元数据,基于集群内部容器之间的网络通讯关系和功能依赖关系生成抽象模型保存为系统架构特征;
漏洞扫描模块,用于扫描集群内各容器镜像所包含的漏洞,并获取漏洞脆弱性特征,其中包括通用脆弱性评估指标、漏洞利用性子评分、漏洞影响性子评分、漏洞利用成熟度、补丁发布情况;
风险分析模块,用于利用训练好的神经网络模型对漏洞在容器集群环境下进行分析,结合系统架构特征与漏洞脆弱性特征评估在资源约束的情况下集群漏洞的修复优先级排名。
根据本申请实施例的第三方面,提供一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的方法。
根据本申请实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请根据容器集群中容器网络配置关系、各容器依赖关系构建容器集群的架构特征,根据通用脆弱性评估指标、漏洞利用性子评分、漏洞影响性子评分、漏洞利用成熟度、补丁发布情况构建容器镜像的漏洞脆弱性特征,在结合架构特征、脆弱性特征的基础上在容器集群环境下对漏洞的风险分数进行评估,并根据修复成本以及当前可利用修复资源得到容器集群漏洞修复优先级的排名结果,极大的改善了之前的安全工程师在调配集群内漏洞修复资源的难度,极大地提高了安全分析师的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种基于环境感知的容器集群风险分析与漏洞评估方法的流程图。
图2是根据一示例性实施例示出的一种容器集群环境感知计算接口构建方法的流程图。
图3是根据一示例性实施例示出的一种基于环境感知的容器集群风险分析与漏洞评估系统的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
图1是根据一示例性实施例示出的一种基于环境感知的容器集群风险分析与漏洞评估方法的流程图,如图1所示,该方法主要用于对容器集群进行风险分析和漏洞评估,可以包含以下步骤:
S1:收集容器集群开源项目,对所述容器集群开源项目进行分析,获取配置信息与漏洞脆弱性评估指标的关系并构建数据集,利用所述数据集训练卷积神经网络模型;
S2:加载集群配置环境,并基于规则提取集群内元数据,提取集群内部容器之间的网络通讯关系和功能依赖关系保存为系统架构特征;
S3:扫描集群内各容器镜像所包含的漏洞,并获取漏洞脆弱性特征,所述漏洞脆弱性特征包括通用脆弱性评估指标、漏洞利用性子评分、漏洞影响性子评分、漏洞利用成熟度、补丁发布情况;
S4:利用训练好的神经网络模型对漏洞在容器集群环境下进行分析,结合系统架构特征与漏洞脆弱性特征评估在资源约束的情况下集群漏洞的修复优先级排名。
由上述实施例可知,本申请根据容器集群中容器网络配置关系、各容器依赖关系构建容器集群的架构特征,根据通用脆弱性评估指标、漏洞利用性子评分、漏洞影响性子评分、漏洞利用成熟度、补丁发布情况构建容器镜像的漏洞脆弱性特征,在结合架构特征、脆弱性特征的基础上在容器集群环境下对漏洞的风险分数进行评估,并根据修复成本以及当前可利用修复资源得到容器集群漏洞修复优先级的排名结果,极大的改善了之前的安全工程师在调配集群内漏洞修复资源的难度,极大地提高了安全分析师的效率。
在S1的具体实施中:收集容器集群开源项目,对所述容器集群开源项目进行分析,获取配置信息与漏洞脆弱性评估指标的关系并构建数据集,利用所述数据集训练卷积神经网络模型;该步骤可以包含以下子步骤:
S11:借助GitHub公开数据平台,收集与Docker Compose有关的开源项目,以commits为标准过滤玩具项目,提高所收集项目的代表性;
具体地,如图2所示,以GitHub平台为数据源,通过检索包含docker compose的开源项目,以commits、stars为筛选条件,筛选出具有代表性的开源项目,并利用自定义脚本进行数据收集。
S12:分析集群项目中的配置文件,以通用漏洞脆弱性评估指标分别构建用于神经网络训练的数据集,其中包括攻击矢量、攻击复杂度、权限需求、用户交互;
具体地,根据通用漏洞评分系统CVSS,漏洞的脆弱性评估指标包含攻击矢量AV、攻击复杂度AC、权限需求PR和用户交互UI四部分,经过分析集群项目中的配置文件,在容器环境变量信息中,部分信息存在与漏洞脆弱性评估指标的对应关系,例如,ports,networks,links与AV存在对应关系,environment,secrets与AC存在对应关系。例如,某一例集群环境变量信息中environment中的变量信息为:
['MYSQL_ROOT_PASSWORD=root','MYSQL_DATABASE=laravel']
由含义可知在环境变量中存在对于容器的密码的设置,则其漏洞脆弱性评估指标中AC对应的脆弱性阈值为E,其真实脆弱性取值范围只能为H。以通用漏洞脆弱性评估指标分别构建用于神经网络训练的数据集。
表1脆弱性评估指标与集群环境变量信息映射表
S13:构建卷积神经网络模型,利用所述数据集,针对通用脆弱性评估指标训练多组卷积神经网络模型;
具体地,构建卷积神经网络模型,利用所述数据集,针对通用脆弱性评估指标训练多组卷积神经网络模型,将集群配置文件的文本信息作为训练集,以Precision,Recall作为模型评估指标训练分类模型,其中AV为多分类器,AC,PR,UI为二分类器,并封装为计算分类接口。
在S2的具体实施中:加载集群配置环境,并基于规则提取集群内元数据,提取集群内部容器之间的网络通讯关系和功能依赖关系保存为系统架构特征;该步骤可以包含以下子步骤:
S21:通过语法树解析与正则化提取集群中单个容器的配置信息,所述配置信息包括容器镜像源、网络模式、容器依赖;
具体地,在集群配置文件中,容器的环境配置信息都是以特定的文本格式存储的,其中容器间的存在依赖关系,例如,depend_on指令一般会表现出同一集群内部容器与容器之间的依赖关系;network和link指令一般会表现出同一集群内部容器与容器之间的网络关系。通过语法树解析与正则化提取集群中单个容器的配置信息,其中配置信息包括容器镜像源、网络模式、容器依赖。
S22:通过递归查询容器依赖信息获得集群内部容器的功能依赖特征,基于网络模式提取集群的网络依赖特征,保存为系统架构特征;
具体地,通过递归查询容器依赖信息获得集群内部容器的功能依赖特征,基于网络模式提取集群的网络依赖特征,保存为系统架构特征。
在S3的具体实施中:扫描集群内各容器镜像所包含的漏洞,并收集漏洞脆弱性特征;该步骤可以包含以下子步骤:
S31:通过容器镜像内部操作系统软件包的版本与公共漏洞数据源进行比较,获得镜像内部的CVE漏洞清单;
具体地,通过容器镜像内部操作系统软件包的版本与公共漏洞数据源进行比较,获得镜像内部的CVE漏洞清单。
S32:调用美国国家通用漏洞数据库NVD和Exploit-DB公共漏洞数据库的API,查询所述漏洞清单的脆弱性相关特征;
具体地,调用美国国家通用漏洞数据库NVD和Exploit-DB公共漏洞数据库的API,查询所述漏洞清单的脆弱性相关特征,其中包括通用脆弱性评估指标、漏洞利用性子评分、漏洞影响性子评分、漏洞利用成熟度、补丁发布情况。
表2漏洞脆弱性特征及取值
在S4的具体实施中:利用训练好的神经网络模型对漏洞在容器集群环境下进行分析,结合系统架构特征与漏洞脆弱性特征评估在资源约束的情况下集群漏洞的修复优先级排名,该步骤可以包含以下子步骤:
S41:利用训练好的神经网络模型,以容器集群环境为输入,映射通用脆弱性评估指标的阈值,获得集群环境下的通用脆弱性评估指标值,进而计算集群环境下漏洞利用性子评分,更新漏洞脆弱性特征;
具体地,在S1中已经训练好了各组脆弱性评估指标的神经网络模型,其输入信息为容器的环境变量信息,分类器对输入的容器环境变量信息进行映射计算,获得对应的脆弱性阈值,结合漏洞的CVSS脆弱性指标,得到漏洞在集群环境下的脆弱性评估指标值,计算在集群环境下漏洞利用性子评分,更新漏洞脆弱性特征。
S42:以系统架构特征与漏洞脆弱性特征计算漏洞的修复成本和风险分数,以可利用的修复成本为约束条件,以集群系统风险分数为依据评估集群漏洞的修复优先级排名;具体地,在S2中获取容器集群的系统架构特征,即系统网络依赖NetDep和系统功能依赖FunDep,在S3中获取漏洞脆弱性特征,如漏洞利用成熟度Vul
以漏洞修复计划中可利用的修复资源为约束条件,以集群系统风险分数为依据,评估集群漏洞的修复优先级排名。集群系统风险评分是最终的评估指标,漏洞的修复计划目标是实现Risk-Score的最小化,即在消耗成本小于可利用资源的前提下,实现minRS。
RS=∑
Cost
R
∑
ISC,ESC∈(0,10)(5)
Patch,Vul∈(0,1) (6)
k
ρ
根据公式(3)可以计算出当前集群环境中漏洞v的风险分数,根据公式(2)可以计算出修复该漏洞所需要的修复成本,在满足公式(4)的前提下,对容器集群中的漏洞进行修复。当修复资源充足的情况下,即
表3漏洞利用成熟度取值
表4补丁发布情况取值
与前述的基于环境感知的容器集群风险分析与漏洞评估方法的实施例相对应,本申请还提供了基于环境感知的容器集群风险分析与漏洞评估装置的实施例。
图3是根据一示例性实施例示出的一种基于环境感知的容器集群风险分析与漏洞评估装置框图。参照图3,该装置包括:
数据收集和模型训练模块1,用于收集容器集群开源项目,对所述容器集群开源项目进行分析,获取配置信息与漏洞脆弱性评估指标的关系并构建数据集,利用所述数据集训练卷积神经网络模型;
环境感知模块2,用于加载集群配置环境,并基于规则提取集群内元数据,基于集群内部容器之间的网络通讯关系和功能依赖关系生成抽象模型保存为系统架构特征;
漏洞扫描模块3,用于扫描集群内各容器镜像所包含的漏洞,并获取漏洞脆弱性特征,其中包括通用脆弱性评估指标、漏洞利用性子评分、漏洞影响性子评分、漏洞利用成熟度、补丁发布情况;
风险分析模块4,用于利用训练好的神经网络模型对漏洞在容器集群环境下进行分析,结合系统架构特征与漏洞脆弱性特征评估在资源约束的情况下集群漏洞的修复优先级排名。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本申请还提供一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述的基于环境感知的容器集群风险分析与漏洞评估方法。
相应的,本申请还提供一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述的基于环境感知的容器集群风险分析与漏洞评估方法。
本领域技术人员在考虑说明书及实践这里公开的内容后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
- 一种基于工业控制系统的集群漏洞挖掘方法和装置
- 基于开放漏洞评估语言的系统漏洞评估方法、装置和系统
- 基于开放漏洞评估语言的系统漏洞评估方法、装置和系统