一种基于云边协同的容器安全管理方法和系统与流程

文档序号:25543231发布日期:2021-06-18 20:40阅读:144来源:国知局
一种基于云边协同的容器安全管理方法和系统与流程
本发明涉及容器安全
技术领域
,具体涉及一种基于云边协同的容器安全管理方法和系统。
背景技术
:云边协同的计算场景中,边缘节点远离云中心的管理,被恶意入侵的可能性增加,而且边缘节点资源受限,更倾向于使用轻量级容器技术,容器共享底层操作系统,隔离性更差,安全威胁更加严重。一般来说,容器的攻击模型主要有三种:①远程攻击容器;②容器攻击主机;③容器攻击容器。也就是说,攻击可能发生在容器集群的外部或者内部。在基于runc的容器模型下,以docker容器为例,通过监控宿主机进程或资源的常规手段,难以确切知道运行于该宿主机上的各个容器内部运行了的应用,也难以知道是否有某个docker容器是否已经被入侵,即其内部正在执行一些异常的操作,例如:sql注入攻击、执行非法命令、下载和执行恶意代码、往外传输敏感数据等等。在现有的容器安全管理中,不论是docker还是kubernetes默认是通过容器的以下几个主要特性来预防可能产生的容器安全问题:apparmor/selinux:其本质是阻止对容器内某些文件系统路径的访问;seccomp:其本质是过滤了容器对某些系统调用指令的运行,例如,docker内部默认禁用操作系统300多个系统调用指令中的44个。但是这些文件系统的过滤和禁止系统调用的方法,存在一定的缺陷性:一方面对正常应用造成了干扰,另一方面入侵应用易绕开过滤或禁用。技术实现要素:针对现有技术中存在的上述技术问题,本发明提供一种基于云边协同的容器安全管理方法和系统,通过构建系统调用规则库对容器的系统调用进行监控,以实时检测容器的安全性。本发明公开了一种基于云边协同的容器安全管理方法,所述方法包括:获取容器的系统调用数据,所述系统调用数据包括系统调用序列;根据容器的类别,从所述系统调用数据中筛选出建模数据;根据所述容器的安全状态和建模数据构建训练集;根据基于规则的分类算法,云节点利用所述训练集进行训练,得到特征规则库;将所述特征规则库下发到边缘节点;边缘节点利用所述特征规则库对采集到的系统调用数据进行分析,获得容器的安全状态。优选的,建立正常容器分类规则的方法包括:从建模数据中筛选出正常容器的系统调用序列,并建立正常建模数据集;基于所述分类算法,利用所述正常建模数据集训练,得到正常特征规则库;边缘节点利用正常特征库对采集到的系统调用数据进行分析,获得容器的安全状态。优选的,所述分类算法包括c4.5算法或ripper算法。优选的,本发明的方法还包括根据域值判断容器安全状态的方法;获取一定时间内系统调用数据的分析结果,安全状态为异常的占比超过域值时,判断容器的安全状态为异常。优选的,本发明的方法还包括生成告警的方法:判断边缘节点中的容器安全状态是否异常;若是,生成告警信息,并将所述告警信息发送给云节点;所述云节点根据告警信息,执行相应的安全措施。优选的,建模数据处理的方法包括:获取一种容器类别的正常系统调用序列;对所述系统调用序列进行预处理,并转换为数字序列,所述数字序列包括属性和属性值;为所述数字序列打上正常的标签。优选的,分别为多种容器类别建立特征规则库;采用与容器类别相应的特征规则库对所述系统调用数据进行分析;一种容器类别通过相同的容器镜像构建。本发明还提供一种用于实现上述方法的系统,包括设置在云节点的云端组件和设置在边缘节点的边缘端组件,所述云端组件包括第一预处理模块、训练模块和第一传输模块,所述边缘组件包括第二采集模块、第二传输模块和检测模块,所述第二采集模块用于获取容器的系统调用数据,所述系统调用数据包括系统调用序列;所述第一预处理模块用于根据容器的类别,对所述系统调用数据进行预处理,构建训练集;所述训练模块根据基于规则的分类算法,利用所述训练集进行训练,得到特征规则库;所述第一传输模块和第二传输模块用于云边通信,所述云边通信包括将所述特征规则库从云节点下发到边缘节点以及边缘节点的告警信息上传到云节点;所述检测模块利用所述特征规则库对采集到的系统调用数据进行分析,获得容器的安全状态。优选的,所述云端组件还包括存储模块和第一采集模块,所述存储模块用于保存特征规则库,所述第一采集模块用于从云端的容器管理平台中采集容器的系统调用数据;边缘端组件还包括第二预处理模块,第二预处理模块用于根据采集到的系统调用数据构建待测试数据集,所述检测模块对所述待测试数据集进行分析,获得容器的安全状态。优选的,边缘端组件还包括告警模块,云端组件还包括执行模块,所述告警模块用于判断容器安全状态是否异常;若是,生成告警信息,并通过第二传输模块将所述告警信息发送给云节点;所述告警信息包括异常发生时间、异常事件和判定为异常的原因;所述执行模块用于根据所述告警信息执行相应的安全措施。与现有技术相比,本发明的有益效果为:根据容器类别筛选建模数据,基于规则的分类算法,构建特征规则库,边缘节点通过特征规则库对采用到的系统调用序列进行检测,以实时获得容器的安全状态,特征规则库包含了安全状态的规则,因此对于不符合安全状态规则的系统调用可以判定为异常,可以检测已知和未知的异常状态,提高泛化性;在云节点进行训练,边缘节点执行检测分析,解决边缘节点计算资源有限的问题,实现一次训练,同种容器处处可用的效果。附图说明图1是本发明的容器安全管理方法流程图;图2是建立正常容器分类规则的方法流程图;图3是生成告警的方法流程图;图4是建模数据处理的方法流程图;图5是本发明的系统逻辑框图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。下面结合附图对本发明做进一步的详细描述:一种基于云边协同的容器安全管理方法,如图1所示,所述方法包括:步骤101:获取容器的系统调用数据,所述系统调用数据包括系统调用序列。容器中运行应用,与系统进行交互时,调用系统资源或接口,如读、写、存储、打开等,可以采用sendmail跟踪和采集系统调用数据。步骤102:根据容器的类别,从所述系统调用数据中筛选出建模数据。不同的容器类别,其涉及到的系统调用特征差别较大,按容器类别筛选建模数据,可以提高检测的准确性。步骤103:根据容器的安全状态和所述建模数据构建训练集。安全状态可以是正常或异常。步骤104:根据基于规则的分类算法,云节点利用所述训练集进行训练,得到特征规则库。基于规则的分类算法可以是c4.5算法或ripper算法。步骤105:将所述特征规则库下发到边缘节点。步骤106:边缘节点利用所述特征规则库对采集到的系统调用数据进行分析,获得容器的安全状态。根据容器类别筛选建模数据,基于规则的分类算法,构建特征规则库,边缘节点通过特征规则库对采用到的系统调用序列进行检测,以实时获得容器的安全状态,一方面构建不同容器类别的特征规则库,以提高检测准确率;另一方面特征规则库包含了安全状态的规则,因此对于不符合安全状态规则的系统调用可以判定为异常,可以检测已知和未知的异常状态,提高泛化性;再一方面,在云节点进行训练,边缘节点执行检测分析,解决边缘节点计算资源有限的问题,实现一次训练,同种容器处处可用的效果。其中,所述特征规则库可以包括正常特征规则库和异常特征规则库。以正常特征规则库为例进行说明,如图2所示,建立正常容器分类规则的方法包括:步骤201:从建模数据中筛选出正常容器的系统调用序列,并建立正常建模数据集。步骤202:基于所述分类算法,利用所述正常建模数据集训练,得到正常特征规则库。步骤203:边缘节点利用正常特征库对采集到的系统调用数据进行分析,获得容器的安全状态。其检测逻辑为:不符合正常特征规则库的系统调用数据判定为异常,可以检测出未知的异常状态。但不限于此,也可以建立异常规则库,符合异常规则库的系统调用判定为异常。其中,可以根据域值判断容器安全状态:获取一定时间内系统调用数据的分析结果,安全状态为异常的占比超过域值时,判断容器的安全状态为异常。例如,30秒内的系统调用序列为异常的百比分超过2%时,判定容器的安全状态为异常。如图3所示,本发明还包括生成告警的方法:步骤301:判断边缘节点中的容器安全状态是否异常。若是,执行步骤302:生成告警信息,并将所述告警信息发送给云节点,执行步骤303。步骤303:所述云节点根据告警信息,执行相应的安全措施。其中,告警信息可以包括异常发生时间、异常事件和判定为异常的原因等。基于kubernetes进行编排调度的容器,可以通过扩展开发api-server的admissionwebhook或者开发controller调和程序,根据异常事件对该容器实施网络隔离或者直接制止运行。但可执行的安全措施不限于此。c4.5算法是由rossquinlan开发的用于产生决策树的算法。该算法是对rossquinlan之前开发的id3算法的一个扩展。c4.5算法产生的决策树可以被用作分类目的,因此该算法也可以用于统计分类。c4.5算法使用了信息熵的概念,并通过学习数据来建立决策树。ripper(repeatedincrementalpruningtoproduceerrorreduction)算法,也称为重复增量修剪算法,是cohen开发的一种规则学习系统,对irep(增量减少误差修剪算法)进行改进后再生成规则,性能与决策树相当。如图4所示:建模数据处理的方法包括:步骤401:获取一种容器类别的正常系统调用序列。其中容器类别是指一种容器镜像构建出的容器,获取系统调用序列的方法为现有技术,本发明不再赘述。步骤402:对所述系统调用序列进行预处理,并转换为数字序列,所述数字序列包括属性和属性值。其中预处理包括数据清洗、去重等,将属性转换为数字序列是指将属性和属性值定义为特定的数字,例如,将p1-pn定义为属性,将属性值定义为数字,具体如p2=104指系统调用序列的第二个属性的属性值为104(vimes),再如p7=112,指系统调用序列的第7个属性为112(vtrace)。步骤403:为所述数字序列打上正常的标签。构建了正常容器的训练集,因此该训练集的类别标签都为正常。在一个具体实施例,训练集的样本的形式如下表所示:属性127……属性n类别属性值1104112……属性值n正常经过训练后,得到正常类别的规则:属性值1=x,……,属性值n=y;同时得到缺省类别,样本不属于正常类别时,为异常类别。其中,可以分别为多种容器类别建立特征规则库,采用与容器类别相应的特征规则库对所述系统调用数据进行分析,一种容器类别通过相同的容器镜像构建。本发明还提供一种用于实现上述方法的系统,如图5所示,包括设置在云节点的云端组件和设置在边缘节点的边缘端组件,云端组件包括第一预处理模块2、训练模块3和第一传输模块4,边缘组件包括第二采集模块11、第二传输模块14和检测模块13;第二采集模块11用于获取容器的系统调用数据,所述系统调用数据包括系统调用序列;第一预处理模块2用于根据容器的类别,对所述系统调用数据进行预处理,构建训练集;训练模块3根据基于规则的分类算法,利用所述训练集进行训练,得到特征规则库;第一传输模块4和第二传输模块14用于云边通信,所述云边通信包括将所述特征规则库从云节点下发到边缘节点以及边缘节点的告警信息上传到云节点;检测模块13利用所述特征规则库对采集到的系统调用数据进行分析,获得容器的安全状态。所述云端组件还包括存储模块6、第一采集模块1和执行模块8,存储模块6用于保存特征规则库,第一采集模块1用于从云端的容器管理平台中采集容器的系统调用数据;边缘端组件还包括第二预处理模块12和告警模块15,第二预处理模块12用于根据采集到的系统调用数据构建待测试数据集,所述检测模块13对所述待测试数据集进行分析,获得容器的安全状态;告警模块15用于判断容器安全状态是否异常;若是,生成告警信息,并通过第二传输模块14将所述告警信息发送给云节点;所述告警信息包括异常发生时间、异常事件和判定为异常的原因;执行模块8用于根据所述告警信息执行相应的安全措施。以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1