基于历史数据分析的容器云安全风险评估方法

2022-12-01 01:06徐胜超
计算机测量与控制 2022年11期
关键词:镜像容器权重

徐胜超

(广州华商学院 数据科学学院, 广东 广州 511300)

0 引言

容器技术是近年来云计算行业发展中的新兴技术,容器虚拟化技术及其平台更是凭借自身部署快、移植性、轻量级、性能高、启动迅速等优势,被广泛应用于各大云服务项目中[1-5]。由于容器 Docker的存在,容器技术极大地改变了云计算的发展, 在容器云平台的一个单独的空间里,每个进程都有自己的文件系统、网络栈、进程组等,并且可以把 CPU、存储器等资源分配到这个独立的空间。在不同的容器中,过程是彼此独立的,这样就不会有任何的干涉和冲突,管理员可以在整个环境下配置并监视容器中的应用。容器云是云上的容器技术服务,但随着容器云存储的异质性数据不断增多,容器云会因数据不兼容而引发CPU数据异常、内存数据异常、网络数据异常等故障[6-9]。

国内外专家对容器云安全风险进行了研究。国内文献[10]提出基于粗糙集构建了容器云系统健康度评价模型,利用信息熵分割容器云安全监控数据的连续属性,建立一致性检查决策表,完成对容器云系统的安全评价。文献[11]基于灰色神经网络设计了云平台大数据安全风险评估方法,采用基于自治的元组划分方法分类云数据的安全风险信息;利用高斯密度谱提取风险信息特征;利用灰色神经网络构建信息风险分解模型;采用自适应差分改进方法评估云平台大数据的安全风险。国外研究文献[12]深入评估云计算的安全风险。分析云计算的复杂环境,提出了一个基于Delphi的云安全风险评估模型,用于识别、分析和评估云计算的安全风险。

基于以上研究成果,本文提出基于历史数据分析的容器云安全风险评估方法。根据云计算安全标准,将容器云的风险等级分为四类;根据风险等级,创新性地利用粗糙集算法挖掘和度量容器云历史数据中的三种风险因素对程序运行的攻击情况,并进行归约集合;基于风险因素度量结果,根据容器云的运行特点,设立隐私影响、脆弱性和威胁频度三个风险评估指标;通过德尔菲方法和决策隶属度矩阵计算安全风险权重。实验结果表明本文方法通过计算容器云安全的隐私影响、脆弱性和威胁频度风险值,实现了精准风险评估,最大程度保证用户隐私数据安全。

1 容器云及其历史数据风险因素度量

1.1 容器云技术概述

容器云平台开展工作的时候,平台基本单位为容器,封装软件为平台运行环境。容器云平台主要侧重于容器的编排以及资源的部署、共享,结合容器技术与虚拟化技术,构建容器云平台的体系结构,如图1所示。从图1中可以看出,容器云平台的架构由下往上划分为设备层、共享资源层、集群服务层、应用层。设备层主要是指用户购买的服务器,路由器,集线器,物理存储等。共享资源层是以硬件资源库为基础,利用虚拟化技术将多个大型服务器设备按特定的类型进行分区。集群服务层次包括资源配置、项目发布、多个集群提供真实服务。应用层次主要是云客服端对容器云的访问。

图1 容器云平台的分层结构

集群服务层次是通过安装 Docker、 Kubernetes之类的容器平台软件来实现的,它可以一键式地安装 shell脚本,并大量地配置集群。该系统是一种面向对象的人机交互系统,它可以让开发者将自己的应用程序以容器的形式发布到集群中,并为应用程序提供迁移、升级、扩充、回滚等服务。其中,资源配置模块的作用就是在容器云平台上进行资源分配,确保其安全性、稳定性、决策策略,以提高资源的使用效率和服务质量,并承担软件发布系统的开发和维护工作。

1.2 容器云资源的整合

在容器云类似是一种网络资源管理平台,其最重要的功能是资源整合。资源整合之前,需要对云资源进行虚拟化处理。将物理机的 CPU、内存、存储器等全部仿真出来,并将 Guest OS的指令与下级硬件接口连接,然后捕获并处理这些对虚拟机敏感的权限命令。在此基础上,针对虚拟化的容器云资源按照图2表示流程进行整合处理。

图2 容器云平台资源整合处理流程图

如果要求容器云资源整合结果中不存在冗余资源数据,因此需要计算容器云资源中的任意两个数据之间的冗余度。若冗余度计算结果为1,则表示判断的两个数据为冗余资源,需要删除其中一个。最终按照容器资源的存储空间顺序进行资源融合,并得出冗余度较低的云资源融合结果。

容器云资源编排重组的实质是为计算节点指定一个容器,其目的是在较低的违约率条件下使用尽可能多的容器来实现最小的开销,从而实现最大的利润。排列重构大致可以分成两个阶段,第一步是缩减节点数目,将资源消耗较低的计算节点中的容器尽量转移到其他的节点,同时销毁闲置的计算节点,从而达到减少节点总量、降低运营费用的目的。其次,采用负载平衡策略,在两个节点间找到一对满足交换条件的容器,从而减少结点的碎片率,并实现负载平衡。最终以物理机为单位,将其内部的容器云资源根据CPU占用率从高到低进行排列,得出容器云资源序列的编排重组结果,由此完成容器云资源的部署任务。

类似于这种Docker这种容器云平台,资源管理模块还负责在容器云中的各个结点上对层次文件缓存进行同步,并通过 API对 Docker镜像中的元数据进行处理。为了在容器云中获得层次档案的缓存,必须在 Docker引擎中增加一个界面,定期地将每个结点的层次缓存资源与物理机结点进行增量同步。

1.3 容器云资源整合的约束条件

为了管理好容器云内的物理资源,容器云资源部署的约束条件为:

(1)

(2)

(3)

(4)

(5)

通过上面的分析可以看出,容器云是将原有应用程序镜像虚拟化,如果程序本身携带病毒,病毒很容易通过应用程序入侵容器云程序,对CPU、内存、网络带宽数据进行攻击,导致数据出现异常,严重干扰容器云的运维,甚至危害容器云内部存储的隐私数据的安全。因此,为了准确判断出风险攻击类型,最大程度保证用户隐私数据安全,需要对容器云进行安全风险评估。

1.4 容器云的数据风险因素

容器云的数据中的风险因素有CPU异常数据、内存异常数据、网络异常数据。假设决策系统DS称S=(U,A,{Va},a)代表云安全内知识系统(该知识系统基于《云计算服务安全能力要求》),其中S代表论域,a:U→Va代表单射A代表历史数据风险属性集合,a代表风险等级,Va代表风险因素a∈A域,U是Va内唯一参数值。

若A是通过容器云历史数据风险因素集合C与结论属性集合D所构成的,那么C、D满足C∩D=φ。在决策系统内,U集合中的所有元素都存在对应的规则,其中,规则前件通过C确定,规则后件通过D确定。

假设不可分辨关系:决策系统S=(U,C∪D),用B⊆C描述属性子集,二元关系IND(B,D)={(x,y)∈U×U:f(x,a)=f(y,a)∀a∈B}则代表S不可分辨。

相对于风险因素等级判定指标S(U,A),设置历史数据安全属性B⊆A,属性X⊆U,以此可得到具体公式为:

BX={x∈U|[x]IND(B)∈X}

(6)

(7)

其中:式(6)表示为下近似,式(7)表示为上近似,而下近似BX则表示全部X子集内原子集并集,且包括X最小复合集。

假设X⊆U上近似与下近似,把U进行划分,明确边界区域BND(X)、正向区域POS(X)以及负向区域NEG(X),可以得到具体公式为:

POS(X)=B(X)

(8)

(9)

(10)

假设数据属性B与R⊆U间的互相依赖,能够使用属性间依赖函数相互衡量[13],具体公式为:

(11)

(12)

式中,card(·)代表集合基数,POSR(B)代表属性集R处于U/IND(B)内正区域。

在属性α加入R,计算分类U/IND(B)的重要程度为:

SGF(a,R,B)=yR(B)-yR-{a}(B)

(13)

属性α依赖于B以及R,所以处于不同背景,属性有可能会不同。若定义D代表决策属性,那么SGF(α,R,D)可反映:把α添加至属性R内后,改变了R和D间依赖程度,体现属性α重要性。

若数据的冗余属性[14]相对于属性D以及R,则属性α∈R,若POSR(D)=POSR-{a}(D),那么α在R内则为冗余,反之,α在R内相对于D是必要的。

通过对容器云安全属性进行归约[15],可以使每个条件属性存在互相关联,通常为C′⊂C,其中C′内的云安全属性能够确认结论属性D取值[16-17]。

容器云安全数据属性的归约条件:在决策系统S=(U,C∪D)内,集合C归一代表C的非空子集C′,具体满足如下所示:

1)IND(C′,D)=IND(C,D)。

2)不存在C′′⊂C′,令IND(C′′,D)=IND(C,D)。

则C的全部归约集合可以标记成RED(C)。

以上集合即为容器云的历史数据中的风险因素归约集合,该集合中包含了风险因素CPU异常数据、内存异常数据、网络异常数据对程序运行的攻击类型和攻击结果。在此基础上,建立容器云安全风险评估模型。

1.5 容器云可信环境

容器云可信环境由管理节点和计算节点共同构成,公式如下所示:

En={M,N1,N2,...,Nn}

(14)

其中:E表示可信容器云环境,M则表示可信容器云其中的管理节点,Ni(i=1,2,...,n)表示可信容器云中的计算节点。

可信容器云中的管理节点M代表容器云整体环境的安全管理中心,能够管理容器云环境中全部的计算节点,主要由系统管理、安全管理以及审计管理三个部分共同构成。

而可信容器云中的计算节点N在整体容器云环境中,负责进行业务处理,其上运行容器引擎和容器实例,具体公式如下:

N={D,C1,C2,...,Cn}

(15)

其中:N就是可信容器云的计算节点,D则表示可信容器云上运行的容器引擎,能够管理容器实例,Ci(i=1,2,...,n)就是容器引擎所管理的容器实例。

2 容器云安全风险评估模型

由于容器云是对应用程序镜像虚拟化,因此受到应用程序中病毒和外来侵入病毒的双面威胁,且容器云内存在了大量异质性数据,因此程序运行较为脆弱,数据中包含了重要隐私信息。根据上节利用粗糙集算法根据容器云历史数据归纳计算出的风险因素CPU异常数据、内存异常数据、网络异常数据对程序运行的攻击方式、攻击位置和攻击结果,将安全风险评估的一级指标设为隐私影响、威胁频度、脆弱性[18-20]。首先计算指标权重。

2.1 对容器云中的镜像文件进行扫描

在容器云的平台上装备“扫描容器”,对容器云内的仓库镜像、节点镜像进行获取,并通过储存在扫描容器内部的镜像文件扫描器对镜像文件中的软件包进行分离,以CVE安全漏洞库、Webshell库和病毒木马库为基础,深度扫描软件包,对其中存在的漏洞以及安全风险进行发掘,逐层对其进行敏感扫描。扫描内容主要包括:镜像中的软件包和文件。

对镜像进行扫描后,使其分离为对应的层和软件包,再对软件包进行检查,对于镜像中的文件,要对其进行分层提取,同时对分层后的文件逐层进行检测。其中主要应用历史数据分析法、模糊哈希、YARA规则以及机器学习等方式。

镜像扫描的流程如下所述:

1)对容器进行扫描,从中提取容器镜像,并将其保存为压缩包,格式为tar;

2)用拆包器将属于tar格式的镜像拆分成镜像层;

3)对manifest.json文件中的镜像层进行提取;

4)通过layer_id对数据文件进行解析;

5)对可疑文件通过恶意病毒和WebShell进行检测打分;

6)对镜像中的软件包版本进行解析;

7)将解析结果与CVC漏洞进行匹配,发掘其中的安全风险;

8)分析镜像历史行为以及证书文件;

9)对漏洞信息进行综合打分;

10)将镜像扫描报告输出。

2.2 容器云安全风险指标权重

通过德尔菲方法获取安全指标的初步权重。再通过决策隶属度矩阵计算安全风险最终权重结果。具体分为以下几个步骤。

1)组建评估专家小组。

选取容器云、风险评估、社会管理等领域的专家若干,组建专家小组,每组包含三个领域的专家至少一名。

2)设计调查问卷。

依据相关材料设计调查问卷,调查问卷中全部为有助于确定指标权重的信息。

3)专家小组评估权值。

每个专家小组成员独立地依据调查问卷评估指标权重值。

4)获得结果。

重复步骤2)、3),直至专家小组的评估结果趋于一致,将此评估结果作为指标的初步权重值集合。为了避免初步权重值集合具有主观性误差,考虑容器云安全脆弱性、威胁频度以及隐私影响因素间存在的关联性,因此结合马尔科夫链[21]计算上节得出的初步权重值集合,构建决策矩阵,进一步对所有指标实行归一化处理,提高指标权重的客观性。

设评分影响隐私的风险因素为j,可以得到隐私影响指标权重具体公式为:

(16)

式中,E代表评估指标个数,k为隶属度系数。则隐私影响指标权重向量为ϖ = (pjk 1,pjk 2,…,pjk n1),其中n1代表隐私影响评价指标内的元素个数。

通过公式(16)计算出脆弱性因素f、威胁频度因素t的指标权重分别为pfk、ptk。

则威胁频度指标权重向量为μ= (ptk 1,ptk 2, …,ptk n2),其中n2代表威胁频度评价指标内的元素个数。

则脆弱度指标权重向量为θ= (pfk 1,pfk 2, …,pfk n2),其中n3代表威胁频度评价指标内的元素个数[22]。

那么三项指标权重合集公式为:

R=η+θ+ϖ

(17)

根据指标权重合集R构建决策矩阵Q,具体公式为:

(18)

式中,q代表决策权重。

进一步对Q内的每一行实行归一化处理,可以得到公式为:

(19)

最终获得评估指标最终权重。

2.3 实现容器云安全风险评估

基于容器云安全风险评估指标最终权重,对容器云的历史数据中的风险因素归约集合RED(C)建立风险值评判矩阵[23-24]。

(20)

在不损失信息的前提下,采用最简单的表达方式,集合管理评判属性。

核心数据分辨矩阵:在容器云安全系统S内,关于属性集RED(C)γ分辨矩阵M(C)γ=(Mi,j)n×n,具体公式:

(21)

式中,M(C)=(Mi,j)n×n表示区分指标权重项xi,xj完整信息[25-26]。

计算容器云的整体风险值:

(22)

通过上述步骤,实现容器云安全风险评估。

3 实验与性能分析

3.1 实验环境

为了验证基于历史数据分析的容器云安全风险评估方法在实际应用中是否能够达到合格标准,选择在容器云Kubernetes平台Slave采集的四组数据作为实验数据。第一组数据为600个基本训练数据;第二组数据在第一组基础上插入100条CPU异常数据;第三组数据在第二组数据基础上插入100条内存异常数据;第四组数据在第三组数据基础上插入100条网络异常数据。为了模拟容器云风险攻击,在容器中运行Tensorflow卷积神经网络Demo模拟CPU风险攻击、内存攻击、网络攻击对容器云网络安全风险进行评估测试。测试前对数据进行预处理:

1)将攻击数据矩阵格式转换为二维数据;

2)分离输出分类为OneHot编码;

3)对构造出来的二维数据进行归一化处理。

Tensorflow卷积神经网络Demo测试模型采用最经典的LeNet-5结构。以20×12(每行12个特征)的卷积层格式输入数据集进行测试。

设置风险评估指标,引入安全度ν,并且设置ν∈[0,1]。以此作为风险值的评估条件,对标准风险等级进行细化,将四级风险进一步划分为五级风险,具体指标如表1所示。

表1 风险值评估指标

3.2 实验结果与分析

为了验证容器云安全隐私影响情况,通过重复性的CPU风险攻击、内存攻击、网络攻击,评估搭建的容器云网络隐私影响风险结果,具体如图3所示。

图3 隐私影响风险评估

通过观察图3能够看出,CPU风险攻击在实验次数为40次时,出现大幅度上升,这是因为CPU风险攻击导致搭建的容器云网络平台运行出现卡顿,影响运行速度,其隐私影响风险值处于0~0.6之间,说明容器云网络存在一般风险,有一定危险性。而针对内存攻击、网络攻击,由于并未入侵成功,因此一直保持一个平稳的状态,并未对容器云安全造成严重影响,其风险值处于0~0.2之间,说明容器云网络无风险,容器云网络数据安全。

同样方式评估容器云安全威胁频度风险,具体如图4所示。

图4 威胁频度风险评估

通过观察图4能够看出,内存攻击在实验次数为40次时,出现大幅度上升的情况,这主要是因为在实验次数为30次之前的容器云忽略了内存入侵安全,并未实行有效处理,因此对整体网络造成了累积性的伤害,使其威胁频度风险上升,整体曲线处于0~0.8之间,存在较高风险,其容器云安全性较差。而CPU风险攻击和网络攻击则对容器云安全影响较低,这是因为CPU风险攻击和网络攻击虽然导致容器云运行速度降低,但并不会使容器云数据丢失,其风险值为0~0.4之间,说明容器云安全风险较小。

同样操作下评估容器云的脆弱性风险,具体结果如图5所示。

图5 脆弱性风险评估

通过观察图5能够看出,三种攻击对于容器云脆弱性影响均较大,且二者都是随着实验次数的增加,其容器云网络的脆弱程度提高,当实验次数为80次时,其风险值整体曲线处于0~0.8以内,说明容器云安全性较差,存在较大风险。

因为容器云的各风险之间存在关联性,所以要计算所有风险数值,本文将3种风险评估结果的风险数值进行整合处理,获得整体风险评估具体结果如图6所示。

图6 三种风险整合后的整体风险评估结果

观察图6能够看出,经过重复性实验,且并未对三种攻击行为实行有效的后续补救措施,因此,容器云整体风险评估值较高,均处于0~0.8之间,说明容器云网络环境存在较大风险,符合实验设置的行为,其评估结果精度较高。

综合上述分析,基于历史数据分析的容器云安全风险评估方法能够有效实现容器云安全风险评估,且评估结果较为准确,这主要是因为基于历史数据分析的容器云安全风险评估方法,通过分析历史数据,生成丰富的经验,从而有效提高容器云安全风险评估精度。

4 结束语

本文提出一种基于历史数据分析的容器云安全风险评估方法,通过挖掘出历史中影响容器云安全性能的风险因素,计算整体容器云安全的脆弱性、隐私影响以及威胁频度风险值,将三种风险进行整合,即可实现容器云安全整体的风险评估。

猜你喜欢
镜像容器权重
权重望寡:如何化解低地位领导的补偿性辱虐管理行为?*
容器倒置后压力压强如何变
镜像
权重常思“浮名轻”
难以置信的事情
镜像
为党督政勤履职 代民行权重担当
权重涨个股跌 持有白马蓝筹
取米
镜像