CN109815704B - 一种Kubernetes云原生应用的安全检测方法及其系统 - Google Patents

一种Kubernetes云原生应用的安全检测方法及其系统 Download PDF

Info

Publication number
CN109815704B
CN109815704B CN201910065942.0A CN201910065942A CN109815704B CN 109815704 B CN109815704 B CN 109815704B CN 201910065942 A CN201910065942 A CN 201910065942A CN 109815704 B CN109815704 B CN 109815704B
Authority
CN
China
Prior art keywords
application
module
malicious
file
mirror image
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.)
Active
Application number
CN201910065942.0A
Other languages
English (en)
Other versions
CN109815704A (zh
Inventor
韦克璐
王志雄
赵凯麟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Asean Information Harbor Co ltd
Original Assignee
China Asean Information Harbor Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Asean Information Harbor Co ltd filed Critical China Asean Information Harbor Co ltd
Priority to CN201910065942.0A priority Critical patent/CN109815704B/zh
Publication of CN109815704A publication Critical patent/CN109815704A/zh
Application granted granted Critical
Publication of CN109815704B publication Critical patent/CN109815704B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种Kubernetes云原生应用的安全检测方法及其系统,属于云计算技术领域。本发明的安全检测方法主要包括的步骤有:配置信息初始化、加载信息库、扫描应用库、格式识别与包裹判定、解包、文件类别识别、恶意镜像检测、特征识别检查和收集整合报告内容,即本发明通过依次扫描识别Chart内的各项资源是否存在使用恶意镜像、请求可疑资源、资源申请过大、和存在可疑连接等情况,然后进行比对分析,根据比对结果与相应项目权重值对应用的合法性或信任值进行判定,达到安全检测的目的。本发明提出了根据kubernets chart应用中的各种资源类型进行扫描的方式,填补了kubernetes云平台无应用安全扫描的空白,具有检测效率和检测准确性均显著地提高。

Description

一种Kubernetes云原生应用的安全检测方法及其系统
技术领域
本发明涉及一种安全检测方法,特别是一种Kubernetes云原生应用的安全检测方法及其系统,属于云计算技术领域。
背景技术
随着云计算的不断发展,容器和Kubernetes已经成为云原生应用的基石。其中,所述云原生应用是指专门为了运行在云计算环境中而开发的软件应用。与传统软件应用相比,云原生应用的后端计算、可拓展性和并行处理都与云架构相匹配。由于云生应用均运行在云端,因此云原生应用由多项云服务组成,每个服务都具有伸缩性、弹性和组合性。
Kubernetes正在成为广大互联网公司和传统IT行业进行云化和简化运维的利器,并在生产环境上得到大规模部署且被越来越多的公司采用。然而作为新兴技术,容器和Kubernetes相关的安全研究相对滞后,使Kubernetes云平台也正面临着越来越多的攻击和威胁。目前仍然没有Kubernetes的云原生应用的静态安全检测方案,完全依赖于运维人员凭借经验手工排查。
发明内容
本发明的发明目的是,针对上述问题,提供一种Kubernetes云原生应用的安全检测方法,通过依次扫描识别Chart内的各项资源是否存在使用恶意镜像、请求可疑资源、资源申请过大和存在可疑连接等情况,然后进行比对分析,根据比对结果与相应项目权重值对应用的合法性或信任值进行判定,以达到安全检测的目的。
为达到上述目的,本发明所采用的技术方案是:
一种Kubernetes云原生应用的安全检测方法,包括如下步骤:
S1、配置信息初始化:初始化系统配置信息,所述系统配置信息包括应用库信息和信息库的信息,其中,应用库信息包括应用库的地址与认证信息;信息库包含特征识别、恶意镜像检测和其他功能插件的加载地址,用于扫描识别出恶意应用;
S2、加载信息库:加载本地或远端信息库,若加载出错则显示错误信息后结束退出;反之,执行步骤S3的扫描步骤;
S3、加载并扫描应用库:首先扫描应用库中是否包含命名为index.yaml的应用列表文件,若含有则对应获得应用个数及各个应用地址,并提供给步骤S4,以进一步进行扫描和格式识别;不含有则结束退出;其中,所述应用为chart应用;
S4、格式识别与包裹判定:扫描并将单个chart应用拷贝至临时目录,以判断及识别出在临时目录中的chart应用是否为压缩文件或包含有压缩文件,若是,则执行步骤S5;否则直接进入步骤S6;
S5、解包:通过解包模块对步骤S4识别出的压缩文件进行解压,完成解压后将该压缩文件进行删除,然后返回步骤S4,以检测解压后的文件中是否包含有压缩文件,通过不断重复执行步骤S4和步骤S5直至将对应的chart应用中所含的压缩文件全部解压完成;
S6、文件类别识别:对步骤S5解压完成的chart应用的所有文件进行识别,文件类别分为类型1文件、类型2文件和未识别类型文件,其中所述未识别类型文件是指文件类别既不是类型1文件也不属于类型2文件;
若识别出的文件为类型1文件,则执行完步骤S8后再执行步骤S9;若识别出的文件为类型2文件,则执行完步骤S7后再依次执行步骤S8、步骤S9;若识别出的文件为未识别类型文件,则直接执行步骤S9;
S7、恶意镜像检测:识别并加载镜像内容后,采用两种方式对类型2文件进行恶意镜像检测,以定位出已知的恶意镜像或可能的恶意镜像;
S8、特征识别检查:对已加载的信息库进行特征识别,具体是采用AC/BM库与检测算法进行特征识别,所述特征识别的类型包括恶意命令、敏感端口、可疑权限申请、可疑挂载和可疑环境变量;
S9、收集整合报告内容:收集整合报告的过程为,首先返回至步骤S5并执行步骤S5,直至单个应用扫描完毕后,生成单个应用报告;返回至步骤S4并执行步骤S4,直至所有应用扫描完毕;最后将各单个应用报告和应用扫描结果按生成的时间顺序依次整合即生成最终报告。
作为优选实施方式,步骤S1中,该应用是否为恶意应用的识别方法为:在对chart应用进行扫描时,首先根据应用的特征或镜像的程序行为,与信息库中保存的恶意应用特征或恶意行为进行比对;然后根据预先设定该特征的权重值对当前应用赋予某分值,汇总得到总分值,并将该总分值与正常应用的默认阈值进行比对,若总分值大于阈值,则该应用为恶意应用,反之该应用为非恶意应用。
作为优选实施方式,步骤S7中,采用的两种方式分别为:方式1,获得该镜像的若干层,并基于镜像分层的标识符,使用已加载的信息库进行恶意容器的排查,以快速定位已知的恶意镜像;方式2,在封闭空间中运行镜像,监控、扫描该镜像内可疑请求、可疑进程、资源占用以及崩溃行为,以定位可能的恶意镜像。
作为优选实施方式,步骤S1中,对所述信息库内存储的恶意应用进行周期性更新,所述更新方法包括手工更新;或是基于步骤S7中方式2中,对扫描dockerhub.com的镜像进行自动标记或人工标记。
作为优选实施方式,步骤S5中,所述压缩文件的格式为tar格式。
作为优选实施方式,步骤S6中,所述类型1文件为包括含有如下特征字符的文件:endpoints、events、ingresses、limitranges、services、nodes、persistentvolumeclaims、persistent volumes、pod templates、replicasets、replicationcontrollers、statefulsets、storage classes、certificate signing requests、clusterrolebindings、clusterroles、component statuses、config maps、service accounts、network policies、resource quotas、custom resource definition、controllerrevisions、namespaces、pod disruption budgets、pod security policies、podpreset、rolebindings、horizontal pod autoscalers、roles、secrets,在识别时每一个文件根据上述的特征字符进行提取并筛选确定。
作为优选实施方式,所述类型2文件为包括含有如下特征字符的文件:deployments、cronjobs、daemonsets、jobs和pods。
本发明还提供了一种Kubernetes云原生应用的安全检测系统,包括系统配置信息模块、信息库、应用库扫描模块、格式识别模块、包裹判定模块、解包模块、类别识别模块、恶意镜像检测模块、特征识别检查模块、未识别模块和报告模块,
所述系统配置信息模块与信息库连接,用于初始化系统配置信息,所述系统配置信息包括应用库信息和信息库的信息,其中,应用库信息包括应用库的地址与认证信息;
所述信息库包括本地信息库和远端信息库,用于扫描识别出恶意应用,并通过对本地或远端信息库进行加载并根据加载结果来选择是否执行应用库扫描,若加载失败则显示错误信息后结束退出;反之,执行应用库扫描;
所述应用库扫描模块扫描应用库,并对应用库中是否包含有命名为index.yaml的应用列表文件进行扫描,若含有index.yaml的应用列表文件,则通过扫描获得对应的应用个数及各个应用地址,并作为输出发送给格式识别模块;反之,使系统结束安全检测操作;
所述格式识别模块与应用库扫描模块连接,用以将应用库扫描模块发来的扫描结果进行再次扫描,扫描时首先将单个chart应用拷贝至临时目录,然后在临时目录中通过所述包裹判定模块识别出该应用是否为压缩文件或包含压缩文件,若是,则进行解包操作;否则进行文件类别识别操作;
所述解包模块的输入端与所述包裹判定模块连接,解包模块的输出端与格式识别模块连接,用以对所述格式识别模块发来的压缩文件进行解压,将解压出的压缩文件进行删除后,再次通过所述格式识别模块来扫描检测解压得到的文件中是否包含有压缩文件;通过所述格式识别模块和解包模块来对chart应用中的压缩文件进行层层解压,直至全部解压完成;
所述类别识别模块的输入端与所述包裹判定模块连接,类别识别模块的输出端分别连接有第一类型数据库、第二类型数据库和第三类型数据库,所述识别模块用以对chart应用中解压出来的所有文件进行识别,并将识别出的文件类别分为类型1文件、类型2文件和未识别类型文件,其中所述未识别类型文件是指文件类别既不是类型1文件也不属于类型2文件;类型1文件发送至第一类型数据库存储,类型2文件发送至第二类型数据库存储,未识别类型文件发送至第三类型数据库存储;
所述恶意镜像检测模块的输入端与第二类型数据库连接、恶意镜像检测模块的输出端与特征识别检查模块连接,用以识别并加载镜像内容,并采用两种方式对类型2文件进行恶意镜像检测,以定位出已知的恶意镜像或可能的恶意镜像,同时将定位出的恶意镜像和可能的恶意镜像发送至所述特征识别检查模块上进行特殊识别处理;
所述特征识别检查模块的输入端分别与第一类型数据库连接、恶意镜像检测模块连接,特征识别检查模块的输出端与报告模块连接,用于对应用库进行特征识别,具体是采用AC/BM库与检测算法进行特征识别,所述特征识别的类型包括恶意命令、敏感端口、可疑权限申请、可疑挂载和可疑环境变量;
所述未识别模块的输入端与第三类型数据库连接,未识别模块的输出端与报告模块连接;用于对未识别类型文件的识别;
所述报告模块用于收集整合报告内容,所述报告内容的收集整合过程为:首先通过解压模块进行对压缩文件进行解压,直至单个应用扫描完毕后,生成单个应用报告;然后通过所述格式识别模块对应用库扫描模块发来的扫描结果进行再次扫描,直至所有应用扫描完毕;最后按生成报告的时间进行顺序整合,得到安全检测报告结果。
作为优选实施方式,所述安全检测系统在应用库中,判定该应用是否为恶意应用的方法为:在对chart应用进行扫描过程,首先根据应用的特征或镜像的程序行为,与信息库中保存的恶意应用特征或恶意行为进行比对;然后根据预先设定该特征的权重值对当前应用赋予某分值,汇总得到总分值,并将该总分值与正常应用的默认阈值进行比对,若总分值大于阈值,则该应用为恶意应用,反之该应用为非恶意应用。
作为优选实施方式,所述安全检测系统中,所述恶意镜像检测模块采用的两种方式分别为:方式1,获得该镜像的若干层,并基于镜像分层的标识符,使用已加载的信息库进行恶意容器的排查,以快速定位已知的恶意镜像;方式2,在封闭空间中运行镜像,监控、扫描该镜像内可疑请求、可疑进程、资源占用以及崩溃行为,以定位可能的恶意镜像。
由于采用上述技术方案,本发明具有以下有益效果:
1.本发明通过依次扫描识别Chart内的各项资源是否存在使用恶意镜像、请求可疑资源、资源申请过大、和存在可疑连接等情况,然后进行比对分析,根据比对结果与相应项目权重值对应用的合法性或信任值进行判定,以达到安全检测的目的。本发明提出了根据kubernets chart应用中的各种资源类型进行扫描的方式,填补了kubernetes云平台无应用安全扫描的空白,相对于传统手工检测方法,检测效率和检测准确性均显著地提高。
2.本安全检测方法,不仅在扫描应用安全性的同时,也能标准化kubernetes资源设计,使kubernetes应用开发者可将扫描结果作为资源评估上线的一个标准,对于处于标准以下的应用,可将欠缺的资源限制补足,这将有利于提高应用的标准性、专业性、安全性。
附图说明
图1是本发明一种Kubernetes云原生应用的安全检测方法的运行流程框图。
图2是本发明一种Kubernetes云原生应用的安全检测方法的信息执行示意框图。
图3是一种Kubernetes云原生应用的安全检测系统的系统框图。
具体实施方式
以下结合附图对发明的具体实施进一步说明。
与传统安全软件的常规文件扫描不同,在容器镜像中,每个镜像包含若干层,每一层都有特殊的标识符进行标记,基于镜像分层的标识符进行恶意容器的排查,能够更加快速有效定位恶意应用,而这是传统安全软件在云原生时代所欠缺的。Chart应用中包含了创建Kubernetes的一个应用实例的必要信息,Chart应用实现了Kubernetes资源的打包,可它来安装或卸载Kubernetes集群中的应用。
如图1、图2所示,一种Kubernetes云原生应用的安全检测方法,包括如下步骤:
S1、配置信息初始化:初始化系统配置信息,所述系统配置信息包括应用库信息和信息库的信息,其中,应用库信息包括应用库的地址与认证信息。所述信息库包含特征识别、恶意镜像检测和其他功能插件的加载地址,用于扫描识别出恶意应用。
所述信息库用于S4~S9步骤中扫描识别出恶意应用,以防止恶意应用进入系统运行,保证系统安全。其中,本领域技术人员应该知晓:包含有恶意镜像的应用即视为恶意应用。
S2、加载信息库:加载本地或远端信息库,若加载出错则显示错误信息后结束退出;反之,执行步骤S3的扫描步骤;
S3、扫描应用库:首先扫描应用库中是否包含有命名为index.yaml的应用列表文件,index.yaml是kubernetes约定的一种用于识别应用列表的文件格式。若含有则对应获得应用个数及各个应用地址,并提供给如下步骤S4,以进一步进行扫描与格式识别;否则因无法正确识别到应用列表进而无法扫描,结束退出。其中,所述应用具体是指chart应用库。
S4、格式识别与包裹判定:扫描并将单个chart应用拷贝至临时目录,以判断识别在临时目录中的chart应用是否为压缩文件或包含有压缩文件,若是,则执行步骤S5;否则直接进入步骤S6;
S5、解包:通过解包模块对步骤S4识别出的压缩文件进行解压,完成解压后将该压缩文件进行删除,然后返回步骤S4,以检测解压后的文件中是否包含有压缩文件,通过不断重复执行步骤S4和步骤S5直至将对应的chart应用中所含的压缩文件全部完成解压;其中,所述压缩文件的格式为tar格式。
S6、文件类别识别:对步骤S5解压完成的chart应用的所有文件进行识别,文件类别分为类型1文件、类型2文件和未识别类型文件,其中所述未识别类型文件是指文件类别既不是类型1文件也不属于类型2文件;
若识别出的文件为类型1文件,则执行完步骤S8后再执行步骤S9;若识别出的文件为类型2文件,则执行完步骤S7后再依次执行步骤S8、步骤S9;若识别出的文件为未识别类型文件,则直接执行步骤S9;
S7、恶意镜像检测:识别并加载镜像内容后,采用两种方式对类型2文件进行恶意镜像检测,以定位出已知的恶意镜像或可能的恶意镜像;
S8、特征识别检查:对已加载的信息库进行特征识别,具体是采用AC/BM库与检测算法进行特征识别,所述特征识别的类型包括恶意命令、敏感端口、可疑权限申请、可疑挂载和可疑环境变量;
S9、收集整合报告内容:收集整合报告的过程为,首先返回至步骤S5并执行步骤S5,直至单个应用扫描完毕后,生成单个应用报告;然后返回至步骤S4并执行步骤S4,直至所有应用扫描完毕;最后将各单个应用报告和应用扫描结果按生成的时间顺序依次整合即生成最终报告。
步骤S1中,该应用是否为恶意应用的识别方法为:在对chart应用进行扫描过程,首先根据应用的特征或镜像的程序行为,与信息库中保存的恶意应用特征或恶意行为进行比对;然后根据信息库中预先设定该特征的权重值对当前应用赋予某分值,分值计算是将信息库预设的权重值乘以信息库预设的分值常量。例如权重值范围1~10,该特征权重为5,分值常量10,则赋予分值5*10=50分。在报告模块中将所有分值相加、汇总,得到总分值,并将该总分值与正常应用的默认阈值进行比对,若总分值大于阈值,则该应用为恶意应用,反之该应用为非恶意应用。即上述对于恶意应用的判定过程中,步骤S1~S5为chart应用扫描过程,步骤S6为格式识别,步骤S7、S8、S9为识别应用特征或镜像的程序行为的过程。
步骤S7中,采用的两种方式分别为:
方式1,获得该镜像的若干层,并基于镜像分层的标识符,使用已加载的信息库进行恶意容器的排查,以快速定位已知的恶意镜像;
方式2,在封闭空间中运行镜像,监控、扫描该镜像内可疑请求、可疑进程、资源占用以及崩溃行为,以定位可能的恶意镜像;已知的恶意镜像和可能的恶意镜像进一步可以进行如步骤S8的特征识别检查,以最终判定其是否为恶意镜像。
步骤S1中,对所述信息库内存储的恶意应用进行周期性更新。所述更新方法包括手工更新;或是基于步骤S7中方式2中对扫描dockerhub.com的镜像进行自动标记或人工标记。恶意应用进行周期性更新目的是保持信息库不断更新进化,以便更快速识别出恶意应用。
步骤S6中,所述类型1文件包括含有如下特征字符的文件:endpoints、events、ingresses、limitranges、services、nodes、persistent volumeclaims、persistentvolumes、podtemplates、replica sets、replication controllers、statefulsets、storage classes、certificate signing requests、clusterrolebindings、clusterroles、component statuses、config maps、service accounts、network policies、resource quotas、custom resource definition、controllerrevisions、name spaces、pod disruption budgets、pod security policies、podpreset、rolebindings、horizontal podautosc-alers、roles、secrets,在识别时每一个文件根据上述的特征字符进行提取并筛选确定。
作为优选实施方式,步骤S6中,所述类型2文件包括含有如下特征字符的文件:deployments、cronjobs、daemon sets、jobs和pods。
当然,上述类型1文件和类型2文件所示的特征字符仅为现有kubernetes应用版本所具有的chart应用文件特征字符,若当kubernetes应用进行升级后还可以是其他的chart应用文件特征字符,不作唯一限定。
本发明的对于云原应用的检测步骤过程,首先通过步骤S3来扫描应用库中是否包含命名为index.yaml的应用列表文件,此为第一次资源扫描;然后,对第一次资源扫描出的chart应用依次进行扫描,以判别出在临时目录中的chart应用是否为压缩文件或包含有压缩文件。此为第二次扫描判别(具体是步骤S4);接着,根据第二次扫描判别的结果分别进行处理(即步骤S5的解包和步骤S6的文件类别识别);最后根据步骤S6的文件类别识别结果分别进行处理,具体是步骤S7对charat应用模块中文件进行恶意镜像检测、步骤S8对charat应用模块中的文件进行特征识别检查以及步骤S9对charat应用模块中各个类型文件进行收集整合报告内容。最后,通过执行系统中步骤S1的恶意应用判定方法,来判别现行扫描的该应用是否为恶意应用,从而使云原生应用做出后续相应的卸载或安装的操作。
从各个执行步骤,由此不难看出,本发明对Chart内的各项资源是层层的扫描与识别,以检测出是否存在使用恶意镜像、请求可疑资源、资源申请过大、和存在可疑连接等情况,通过匹配信息库中的恶意镜像记录、可疑请求资源记录、常用申请资源记录、可疑链接记录等等内容进行对比,对比对结果与相应项目权重值对应用的合法性或信任值进行判定,以达到安全检测的目的。
如图3所示,本发明还提供了一种Kubernetes云原生应用的安全检测系统,包括系统配置信息模块、信息库、应用库扫描模块、格式识别模块、包裹判定模块、解包模块、类别识别模块、恶意镜像检测模块、特征识别检查模块、未识别模块和报告模块。
所述系统配置信息模块与信息库连接,用于初始化系统配置信息,所述系统配置信息包括应用库信息和信息库的信息,其中,应用库信息包括应用库的地址与认证信息。
所述信息库包括本地信息库和远端信息库,用于扫描识别出恶意应用,并通过对本地或远端信息库进行加载并根据加载结果来选择是否执行应用库扫描,若加载失败则显示错误信息后结束退出;反之,执行应用库扫描。
在上述信息库中,判定该应用是否为恶意应用的方法为:在对chart应用进行扫描过程,首先根据应用的特征或镜像的程序行为,与信息库中保存的恶意应用特征或恶意行为进行比对;然后根据预先设定该特征的权重值对当前应用赋予某分值,汇总得到总分值并将该总分值与正常应用的默认阈值进行比对,若总分值大于阈值,则该应用为恶意应用,反之该应用为非恶意应用。
所述应用库扫描模块的输入端接收信息库发来的扫描指令,并对信息库中是否包含有命名为index.yaml的应用列表文件进行扫描,若含有index.yaml的应用列表文件,则通过扫描获得对应的应用个数及各个应用地址,并作为输出发送给格式识别模块;反之,使系统结束安全检测操作。所述应用为chart应用。
所述格式识别模块与应用库扫描模块连接,用以将应用库扫描模块发来的扫描结果进行再次扫描,扫描时首先将单个chart应用拷贝至临时目录,然后在临时目录中通过所述包裹判定模块识别出该应用是否为压缩文件或包含有压缩文件,若是,则进行解包操作;否则进行文件类别识别操作。
所述解包模块的输入端与所述包裹判定模块连接,解包模块的输出端与格式识别模块连接,用以对所述格式识别模块发来的压缩文件进行解压,将解压出的压缩文件进行删除后,再次通过所述格式识别模块来扫描检测解压得到的文件中是否包含有压缩文件;通过所述格式识别模块和解包模块来对chart应用中的压缩文件进行层层解压,直至全部解压完成;。
所述类别识别模块的输入端与所述包裹判定模块连接,类别识别模块的输出端分别连接有第一类型数据库、第二类型数据库和第三类型数据库,所述识别模块用以对chart应用的所有模块进行识别,并将识别出的文件类别分为类型1文件、类型2文件和未识别类型文件,其中所述未识别类型文件是指文件类别既不是类型1文件也不属于类型2文件;类型1文件发送至第一类型数据库存储,类型2文件发送至第二类型数据库存储,未识别类型文件发送至第三类型数据库存储。
所述恶意镜像检测模块的输入端与第二类型数据库连接、恶意镜像检测模块的输出端与特征识别检查模块连接,用以识别并加载镜像内容,并采用两种方式对类型2文件进行恶意镜像检测,以定位出已知的恶意镜像或可能的恶意镜像,同时将定位出的已知的恶意镜像和可能的恶意镜像发送至所述特征识别检查模块上。
所述恶意镜像检测模块采用的两种方式分别为:方式1,获得该镜像的若干层,并基于镜像分层的标识符,使用已加载的信息库进行恶意容器的排查,以快速定位已知的恶意镜像;方式2,在封闭空间中运行镜像,监控、扫描该镜像内可疑请求、可疑进程、资源占用以及崩溃行为,以定位可能的恶意镜像。
所述特征识别检查模块的输入端分别与第一类型数据库和恶意镜像检测模块连接,特征识别检查模块的输出端与报告模块连接,用于对已加载的信息库进行特征识别,具体是采用AC/BM库与检测算法进行特征识别,所述特征识别的类型包括恶意命令、敏感端口、可疑权限申请、可疑挂载和可疑环境变量。
所述未识别模块的输入端与第三类型数据库连接,未识别模块的输出端与报告模块连接,用于对未识别类型文件的识别。
所述报告模块用于收集整合报告内容,所述报告内容的收集整合过程为:首先通过解压模块进行对压缩文件进行解压,直至单个应用扫描完毕后,生成单个应用报告;然后通过所述格式识别模块对应用库扫描模块发来的扫描结果进行再次扫描,直至所有应用扫描完毕;最后按生成报告的时间进行顺序整合,得到安全检测报告结果。
上述说明是针对本发明较佳可行实施例的详细说明,但实施例并非用以限定本发明的专利申请范围,凡本发明所提示的技术精神下所完成的同等变化或修饰变更,均应属于本发明所涵盖专利范围。

Claims (10)

1.一种Kubernetes云原生应用的安全检测方法,其特征在于,包括如下步骤:
S1、配置信息初始化:初始化系统配置信息,所述系统配置信息包括应用库信息和信息库的信息,其中,应用库信息包括应用库的地址与认证信息;信息库包含特征识别、恶意镜像检测和其他功能插件的加载地址,用于扫描识别出恶意应用;
S2、加载信息库:加载本地或远端信息库,若加载出错则显示错误信息后结束退出;反之,执行步骤S3的扫描步骤;
S3、加载并扫描应用库:首先扫描应用库中是否包含命名为index.yaml的应用列表文件,若含有则对应获得应用个数及各个应用地址,并提供给步骤S4,以进一步进行扫描和格式识别;不含有则结束退出;其中,所述应用为chart应用;
S4、格式识别与包裹判定:扫描并将单个chart应用拷贝至临时目录,以判断及识别出在临时目录中的chart应用是否为压缩文件或包含有压缩文件,若是,则执行步骤S5;否则直接进入步骤S6;
S5、解包:通过解包模块对步骤S4识别出的压缩文件进行解压,解压完成后将该压缩文件进行删除,然后返回步骤S4,以检测解压得到的文件中是否包含有压缩文件,并通过不断重复执行步骤S4和步骤S5直至将对应的chart应用中所含的压缩文件全部解压出来;
S6、文件类别识别:对步骤S5解压完成的chart应用的所有文件进行识别,文件类别分为类型1文件、类型2文件和未识别类型文件,其中所述未识别类型文件是指文件类别既不是类型1文件也不属于类型2文件;
若识别出的文件为类型1文件,则执行完步骤S8后再执行步骤S9;若识别出的文件为类型2文件,则执行完步骤S7后再依次执行步骤S8、步骤S9;若识别出的文件为未识别类型文件,则直接执行步骤S9;
S7、恶意镜像检测:识别并加载镜像内容后,采用两种方式对类型2文件进行恶意镜像检测,以定位出已知的恶意镜像或可能的恶意镜像;
S8、特征识别检查:对已加载的信息库进行特征识别,具体是采用AC/BM库与检测算法进行特征识别,所述特征识别的类型包括恶意命令、敏感端口、可疑权限申请、可疑挂载和可疑环境变量;
S9、收集整合报告内容:收集整合报告的过程为,首先返回至步骤S5并执行步骤S5,直至单个应用扫描完毕后,生成单个应用报告;返回至步骤S4并执行步骤S4,直至所有应用扫描完毕;最后将各单个应用报告和应用扫描结果按生成的时间顺序依次整合即生成最终报告。
2.根据权利要求1所述的一种Kubernetes云原生应用的安全检测方法,其特征在于:步骤S1中,该应用是否为恶意应用的识别方法为:在对chart应用进行扫描时,首先根据应用的特征或镜像的程序行为,与信息库中保存的恶意应用特征或恶意行为进行比对;然后根据预先设定该特征的权重值对当前应用赋予某分值,汇总得到总分值,并将该总分值与正常应用的默认阈值进行比对,若总分值大于阈值,则该应用为恶意应用,反之该应用为非恶意应用。
3.根据权利要求1所述的一种Kubernetes云原生应用的安全检测方法,其特征在于:步骤S7中,采用的两种方式分别为:方式1,获得该镜像的若干层,并基于镜像分层的标识符,使用已加载的信息库进行恶意容器的排查,以快速定位已知的恶意镜像;方式2,在封闭空间中运行镜像,监控、扫描该镜像内可疑请求、可疑进程、资源占用以及崩溃行为,以定位可能的恶意镜像。
4.根据权利要求3所述的一种Kubernetes云原生应用的安全检测方法,其特征在于:步骤S1中,对所述信息库内存储的恶意应用进行周期性更新,所述更新方法包括手工更新;或是基于步骤S7中方式2中,对扫描dockerhub.com的镜像进行自动标记或人工标记。
5.根据权利要求1所述的一种Kubernetes云原生应用的安全检测方法,其特征在于:步骤S5中,所述压缩文件的格式为tar格式。
6.根据权利要求1所述的一种Kubernetes云原生应用的安全检测方法,其特征在于:步骤S6中,所述类型1文件为包括含有如下特征字符的文件:endpoints、events、ingresses、limitranges、services、nodes、persistent volumeclaims、persistent volumes、podtemplates、replicasets、replication controllers、statefulsets、storage classes、certificate signing requests、cluster rolebindings、clusterroles、componentstatuses、config maps、service accounts、network policies、resource quotas、customresource definition、controller revisions、namespaces、pod disruption budgets、pod security policies、podpreset、rolebindings、horizontal pod autoscalers、roles、secrets,在识别时每一个文件根据上述的特征字符进行提取并筛选确定。
7.根据权利要求1所述的一种Kubernetes云原生应用的安全检测方法,其特征在于:步骤S6中,所述类型2文件为包括含有如下特征字符的文件:deployments、cronjobs、daemonsets、jobs和pods。
8.一种Kubernetes云原生应用的安全检测系统,其特征在于:包括系统配置信息模块、信息库、应用库扫描模块、格式识别模块、包裹判定模块、解包模块、类别识别模块、恶意镜像检测模块、特征识别检查模块、未识别模块和报告模块,
所述系统配置信息模块与信息库连接,用于初始化系统配置信息,所述系统配置信息包括应用库信息和信息库的信息,其中,应用库信息包括应用库的地址与认证信息;
所述信息库包括本地信息库和远端信息库,用于扫描识别出恶意应用,并通过对本地或远端信息库进行加载并根据加载结果来选择是否执行应用库扫描,若加载失败则显示错误信息后结束退出;反之,执行应用库扫描;
所述应用库扫描模块扫描应用库,并对应用库中是否包含有命名为index.yaml的应用列表文件进行扫描,若含有index.yaml的应用列表文件,则通过扫描获得对应的应用个数及各个应用地址,并作为输出发送给格式识别模块;反之,使系统结束安全检测操作;
所述格式识别模块与应用库扫描模块连接,用以将应用库扫描模块发来的扫描结果进行再次扫描,扫描时首先将单个chart应用拷贝至临时目录,然后在临时目录中通过所述包裹判定模块识别出该应用是否为压缩文件或包含压缩文件,若是,则进行解包操作;否则进行文件类别识别操作;
所述解包模块的输入端与所述包裹判定模块连接,解包模块的输出端与格式识别模块连接,用以对所述格式识别模块发来的压缩文件进行解压,将解压出的压缩文件进行删除后,再次通过所述格式识别模块来扫描检测解压得到的文件中是否包含有压缩文件;通过所述格式识别模块和解包模块来对chart应用中的压缩文件进行层层解压,直至全部完成解压;
所述类别识别模块的输入端与所述包裹判定模块连接,类别识别模块的输出端分别连接有第一类型数据库、第二类型数据库和第三类型数据库,所述识别模块用以对chart应用中解压出来的所有文件进行识别,并将识别出的文件类别分为类型1文件、类型2文件和未识别类型文件,其中所述未识别类型文件是指文件类别既不是类型1文件也不属于类型2文件;类型1文件发送至第一类型数据库存储,类型2文件发送至第二类型数据库存储,未识别类型文件发送至第三类型数据库存储;
所述恶意镜像检测模块的输入端与第二类型数据库连接、恶意镜像检测模块的输出端与特征识别检查模块连接,用以识别并加载镜像内容,并采用两种方式对类型2文件进行恶意镜像检测,以定位出已知的恶意镜像或可能的恶意镜像,同时将定位出的恶意镜像和可能的恶意镜像发送至所述特征识别检查模块上进行特殊识别处理;
所述特征识别检查模块的输入端分别与第一类型数据库连接、恶意镜像检测模块连接,特征识别检查模块的输出端与报告模块连接,用于对应用库进行特征识别,具体是采用AC/BM库与检测算法进行特征识别,所述特征识别的类型包括恶意命令、敏感端口、可疑权限申请、可疑挂载和可疑环境变量;
所述未识别模块的输入端与第三类型数据库连接,未识别模块的输出端与报告模块连接;用于对未识别类型文件的识别;
所述报告模块用于收集整合报告内容,所述报告内容的收集整合过程为:首先通过解压模块进行对压缩文件进行解压,直至单个应用扫描完毕后,生成单个应用报告;然后通过所述格式识别模块对应用库扫描模块发来的扫描结果进行再次扫描,直至所有应用扫描完毕;最后按生成报告的时间进行顺序整合,得到安全检测报告结果。
9.根据权利要求8所述的一种Kubernetes云原生应用的安全检测系统,其特征在于:在应用库中,判定该应用是否为恶意应用的方法为:在对chart应用进行扫描过程,首先根据应用的特征或镜像的程序行为,与信息库中保存的恶意应用特征或恶意行为进行比对;然后根据预先设定该特征的权重值对当前应用赋予某分值,汇总得到总分值,并将该总分值与正常应用的默认阈值进行比对,若总分值大于阈值,则该应用为恶意应用,反之该应用为非恶意应用。
10.根据权利要求8所述的一种Kubernetes云原生应用的安全检测系统,其特征在于:所述恶意镜像检测模块采用的两种方式分别为:方式1,获得该镜像的若干层,并基于镜像分层的标识符,使用已加载的信息库进行恶意容器的排查,以快速定位已知的恶意镜像;方式2,在封闭空间中运行镜像,监控、扫描该镜像内可疑请求、可疑进程、资源占用以及崩溃行为,以定位可能的恶意镜像。
CN201910065942.0A 2019-01-24 2019-01-24 一种Kubernetes云原生应用的安全检测方法及其系统 Active CN109815704B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910065942.0A CN109815704B (zh) 2019-01-24 2019-01-24 一种Kubernetes云原生应用的安全检测方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910065942.0A CN109815704B (zh) 2019-01-24 2019-01-24 一种Kubernetes云原生应用的安全检测方法及其系统

Publications (2)

Publication Number Publication Date
CN109815704A CN109815704A (zh) 2019-05-28
CN109815704B true CN109815704B (zh) 2020-08-04

Family

ID=66603664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910065942.0A Active CN109815704B (zh) 2019-01-24 2019-01-24 一种Kubernetes云原生应用的安全检测方法及其系统

Country Status (1)

Country Link
CN (1) CN109815704B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110276199B (zh) * 2019-06-25 2020-12-01 中国—东盟信息港股份有限公司 一种Kubernetes云原生应用的动态安全检测方法
CN110990025B (zh) * 2019-12-06 2024-02-06 无锡华云数据技术服务有限公司 一种实例部署方法及系统
CN111026414B (zh) * 2019-12-12 2023-09-08 杭州安恒信息技术股份有限公司 一种基于kubernetes的HDP平台部署方法
CN111338657B (zh) * 2020-02-26 2023-12-01 山东汇贸电子口岸有限公司 一种基于模板的helm参数批量配置方法
CN113688384A (zh) * 2020-05-19 2021-11-23 网神信息技术(北京)股份有限公司 程序的检测方法、装置、电子设备和介质
CN113420288B (zh) * 2021-06-30 2022-07-15 上海交通大学 一种容器镜像敏感信息检测系统及方法
CN115189934A (zh) * 2022-07-06 2022-10-14 上海交通大学 针对Kubernetes的自动化配置安全检测方法及系统
CN115996152B (zh) * 2023-03-23 2023-06-09 北京腾达泰源科技有限公司 安全防护方法、装置、设备及存储介质
CN116522350A (zh) * 2023-07-05 2023-08-01 中电科新型智慧城市研究院有限公司 应用程序检测方法、装置、终端设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582588B2 (en) * 2012-06-07 2017-02-28 Google Inc. Methods and systems for providing custom crawl-time metadata
CN107302604A (zh) * 2017-06-30 2017-10-27 挖财网络技术有限公司 基于Kubernetes的PaaS平台域名配置方法及装置和电子设备
CN107766126A (zh) * 2017-11-15 2018-03-06 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、装置及存储介质
CN108038375A (zh) * 2017-12-21 2018-05-15 北京星河星云信息技术有限公司 一种恶意文件检测方法及装置
CN109032645A (zh) * 2018-07-28 2018-12-18 烽火云科技有限公司 基于Kubernetes的持续集成与部署的方法和系统
CN109062655A (zh) * 2018-06-05 2018-12-21 腾讯科技(深圳)有限公司 一种容器化云平台及服务器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9582588B2 (en) * 2012-06-07 2017-02-28 Google Inc. Methods and systems for providing custom crawl-time metadata
CN107302604A (zh) * 2017-06-30 2017-10-27 挖财网络技术有限公司 基于Kubernetes的PaaS平台域名配置方法及装置和电子设备
CN107766126A (zh) * 2017-11-15 2018-03-06 腾讯科技(深圳)有限公司 容器镜像的构建方法、系统、装置及存储介质
CN108038375A (zh) * 2017-12-21 2018-05-15 北京星河星云信息技术有限公司 一种恶意文件检测方法及装置
CN109062655A (zh) * 2018-06-05 2018-12-21 腾讯科技(深圳)有限公司 一种容器化云平台及服务器
CN109032645A (zh) * 2018-07-28 2018-12-18 烽火云科技有限公司 基于Kubernetes的持续集成与部署的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
容器安全解决方案探讨与研究;胡俊等;《网络空间安全》;20181231;全文 *

Also Published As

Publication number Publication date
CN109815704A (zh) 2019-05-28

Similar Documents

Publication Publication Date Title
CN109815704B (zh) 一种Kubernetes云原生应用的安全检测方法及其系统
US8881131B2 (en) Method and apparatus for populating a software catalogue with software knowledge gathering
CN104506522B (zh) 漏洞扫描方法及装置
CN112733146B (zh) 基于机器学习的渗透测试方法、装置、设备及存储介质
CN115033894B (zh) 一种基于知识图谱的软件组件供应链安全检测方法及装置
CN113779585A (zh) 越权漏洞检测方法和装置
KR20110086198A (ko) 악성 코드 감염 차단 장치 및 시스템과 그 방법
CN113469857A (zh) 一种数据处理方法、装置、电子设备以及存储介质
CN113268739A (zh) 一种Docker镜像安全性检测方法
CN112818343B (zh) 一种区块链大数据分析预警方法、系统及云平台
CN112115507B (zh) 基于云计算和信息数字化的云业务交互方法及大数据平台
CN113220588A (zh) 一种数据处理的自动化测试方法、装置、设备及存储介质
US8468116B2 (en) Rule creation method and rule creating apparatus
CN108075918B (zh) 互联网业务变更检测方法及系统
CN116225622A (zh) 基于Docker的PaaS应用参数模板的测试方法
CN115758389A (zh) 漏洞处理结果校验方法、装置、电子设备及存储介质
US11921854B2 (en) Malware detection quality control
CN113239353B (zh) 基于内容差分的容器软件安全性检测系统及方法
KR102304231B1 (ko) 계층 구조를 이용한 컴플라이언스 관리 체계 지원 시스템 및 그 방법
CN112688947B (zh) 基于互联网的网络通信信息智能监测方法及系统
CN114138839A (zh) 一种基于数据库路由的测试账号实现方法
CN114138402A (zh) 一种容器集群部署平台
CN117009960B (zh) 基于人工智能的数据安全清洗方法
Carter et al. Proposing the Use of Hazard Analysis for Machine Learning Data Sets
CN115809466B (zh) 基于stride模型的安全需求生成方法、装置、电子设备及介质

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
GR01 Patent grant
GR01 Patent grant