一种Kubernetes云原生应用的安全检测方法及其系统技术方案

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

A Security Detection Method and System for Native Kubernetes Cloud Applications

The invention discloses a security detection method and system for Kubernetes cloud native application, which belongs to the cloud computing technology field. The security detection method of the present invention mainly includes the following steps: initialization of configuration information, loading information base, scanning application library, format recognition and package determination, unpacking, file category recognition, malicious mirror detection, feature recognition inspection and collection of integrated report content. That is, the invention identifies whether or not malicious mirror exists in various resources within Chart by sequential scanning, and requests permissible. Suspicious resources, too large resource applications, and the existence of suspicious connections, etc., and then comparative analysis, according to the results of the comparison and the corresponding project weight value to determine the validity of the application or trust value, to achieve the purpose of security testing. The invention provides a scanning method according to various resource types in the application of kubernets chart, fills the blank of no application security scanning in the cloud platform of kubernets, and improves the detection efficiency and accuracy remarkably.

【技术实现步骤摘要】
一种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、persistentvolumes、podtemplates、replicasets、replicationcontrollers、statefulsets、storageclasses、certificatesigningrequests、clusterrolebindings、clusterroles、componentstatuses、configmaps、serviceaccounts、networkpolicies、resourcequotas、customresourcedefinition、controllerrevisions、namespaces、poddisruptionbudgets、podsecuritypolicies、podpreset、rolebindings、horizontalpodautoscalers、roles、secrets,在识别时每一个文件根据上述的特征字符进行提取并筛选确定。作为优选实施方式,所述类型2文件为包括含有如下特征字符的文件:deployments、cronjobs、daemonsets、jobs和pods。本专利技术还提供了一种Kubernetes云原生应用的安全检测系统,包括系统配置信息模块、信息库、应用库扫描模块、格式识别模块、包裹判定模块、解包模块、类别识别模块、恶意镜像检测模块、特征识别检查模块、未识别模块和报告模块,所述系统配置信息模块与信息库连接,用于初始化系统配置信息,所述系统配置信息包括应用库信息和信息库的信息,其中,应用库信息包括应用库的地址与认证信息;所述信息库包括本地信息库和远端信息库,用于扫描识别出恶意应用,并通过对本地或远端信息库进行加载并根据加载结果来选择是否执行应用库扫描,若加载失败则显示错误信息后结束退出;反之,执行应用库扫描;所述应用库扫描模块扫描应用库,并对应用库中是否包含有命名为index.yaml的应用列表文件进行扫描,若含有index.yaml的应用列表文件,则通过扫描获得对应的应用个数本文档来自技高网...

【技术保护点】
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,直至所有应用扫描完毕;最后将各单个应用报告和应用扫描结果按生成的时间顺序依次整合即生成最终报告。...

【技术特征摘要】
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、persistentvolumeclaims、persistentvolumes、podtemplates、replicasets、replicationcontrollers、statefulsets、storageclasses、certificatesigningrequests、clusterrolebindings、clusterroles、componentstatuses、configmaps、serviceaccounts、networkpolicies、resourcequotas、customresourcedefinition、controllerrevisions、namespaces、poddisr...

【专利技术属性】
技术研发人员:韦克璐王志雄赵凯麟
申请(专利权)人:中国—东盟信息港股份有限公司
类型:发明
国别省市:广西,45

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1