Docker容器运行状态下漏洞检测方法、系统及设备技术方案

技术编号:37671181 阅读:14 留言:0更新日期:2023-05-26 04:32
本发明专利技术提供了一种Docker容器运行状态下漏洞检测方法、系统及设备。该方法包括:在Docker环境中部署Docker容器探针;利用Docker容器探针将宿主机的proc目录挂载至待检测的Docker容器内;利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息;利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息;利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息;将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露CVE数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果。本发明专利技术能够有效检测出Docker容器在运行状态下操作系统漏洞以及应用软件的漏洞,实时发现Docker容器中存在的安全风险。实时发现Docker容器中存在的安全风险。实时发现Docker容器中存在的安全风险。

【技术实现步骤摘要】
Docker容器运行状态下漏洞检测方法、系统及设备


[0001]本专利技术涉及漏洞检测领域,特别是涉及一种Docker容器运行状态下漏洞检测方法、系统及设备。

技术介绍

[0002]目前云计算平台的广泛应用,以虚拟化及容器为代表的云基础软件负责对数据中心存算资源进行高效的调配管理,并合理分配给上层应用,实现“软件定义数据中心”,成为云计算时代重要的基础设施。Docker作为虚拟化技术应运而生,凭借其轻量、快速和高效的绝对优势,在互联网企业中得到了大量应用。伴随Docker技术的发展与普及,Docker安全问题越来越引起人们的重视。
[0003]2021年,安全公司PaloAlto Networks研究人员Aviv Sasson,在DockerHub上发现的恶意容器映像档,分别来自10个不同账号,总下载次数超过2000万次。
[0004]为了及时有效的查看Docker容器运行状态下操作系统漏洞,需要分析内部应用软件的漏洞。但现有的漏洞检测方法无法有效分析Docker容器运行状态下操作系统漏洞以及应用软件的漏洞。

技术实现思路

[0005]本专利技术的目的是提供一种Docker容器运行状态下漏洞检测方法、系统及设备,以解决现有的漏洞检测方法无法有效分析Docker容器运行状态下操作系统漏洞以及应用软件的漏洞的问题。
[0006]为实现上述目的,本专利技术提供了如下方案:
[0007]一种Docker容器运行状态下漏洞检测方法,包括:
[0008]在Docker环境中部署Docker容器探针;
[0009]利用Docker容器探针将宿主机的proc目录挂载至待检测的Docker容器内;所述proc目录为位于内存中的伪文件系统,所述proc目录保存运行时信息以及查看有关系统硬件及正在运行的进程信息;
[0010]利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息;
[0011]利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息;
[0012]利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息;
[0013]将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露CVE数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果;所述漏洞分析结果包括CVE名称、软件包版本、修正版本、发布时间以及严重程度。
[0014]可选的,利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息,具体包括:
[0015]切换到“/proc/<待检测容器进程在宿主机的PID>/ns/mnt”目录的命名空间内;
[0016]在所述命名空间内读取“/etc/os

release”目录中的信息,获取内核版本信息;/
etc/os

release为内核版本信息所在位置。
[0017]可选的,利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息,具体包括:
[0018]通过读取“/proc/<待检测容器进程在宿主机的PID>/root/lib/apk/db/installed”目录获取系统软件信息。
[0019]可选的,利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息,具体包括:
[0020]循环读取“/proc/<待检测容器进程在宿主机的PID>/root/”目录下的文件;
[0021]当所述文件为软件包类型时,获取应用软件信息。
[0022]可选的,将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果,具体包括:
[0023]根据所述内核信息信息获取所述公共漏洞和暴露CVE数据库中对应的CVE数据;
[0024]将CVE数据按照软件名称为key,根据所述系统软件信息以及应用软件信息构造CVE Map类型结构数据;
[0025]通过软件名称,根据所述CVE Map类型结构数据,判断所述应用软件信息是否存在CVE漏洞;
[0026]若存在CVE漏洞且应用软件的当前版本小于所述CVE的已修复版本时,记录所述CVE,确定所述待检测的Docker容器的漏洞分析结果。
[0027]一种Docker容器运行状态下漏洞检测系统,包括:
[0028]Docker容器探针部署模块,用于在Docker环境中部署Docker容器探针;
[0029]挂载模块,用于利用Docker容器探针将宿主机的proc目录挂载至待检测的Docker容器内;所述proc目录为位于内存中的伪文件系统,所述proc目录保存运行时信息以及查看有关系统硬件及正在运行的进程信息;
[0030]内核版本信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息;
[0031]系统软件信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息;
[0032]应用软件信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息;
[0033]漏洞分析结果检测模块,用于将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露CVE数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果;所述漏洞分析结果包括CVE名称、软件包版本、修正版本、发布时间以及严重程度。
[0034]可选的,内核版本信息获取模块,具体包括:
[0035]切换单元,用于切换到“/proc/<待检测容器进程在宿主机的PID>/ns/mnt”目录的命名空间内;
[0036]内核版本信息获取单元,用于在所述命名空间内读取“/etc/os

release”目录中的信息,获取内核版本信息;/etc/os

release为内核版本信息所在位置。
[0037]可选的,漏洞分析结果检测模块,具体包括:
[0038]CVE数据获取单元,用于根据所述内核信息信息获取所述公共漏洞和暴露CVE数据库中对应的CVE数据;
[0039]CVE Map类型结构数据构造单元,用于将CVE数据按照软件名称为key,根据所述系统软件信息以及应用软件信息构造CVE Map类型结构数据;
[0040]判断单元,用于通过软件名称,根据所述CVE Map类型结构数据,判断所述应用软件信息是否存在CVE漏洞;
[0041]漏洞分析结果确定单元,用于若存在CVE漏洞且应用软件的当前版本小于所述CVE的已修复版本时,记录所述CVE,确定所述待检测的Do本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Docker容器运行状态下漏洞检测方法,其特征在于,包括:在Docker环境中部署Docker容器探针;利用Docker容器探针将宿主机的proc目录挂载至待检测的Docker容器内;所述proc目录为位于内存中的伪文件系统,所述proc目录保存运行时信息以及查看有关系统硬件及正在运行的进程信息;利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息;利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息;利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息;将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露CVE数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果;所述漏洞分析结果包括CVE名称、软件包版本、修正版本、发布时间以及严重程度。2.根据权利要求1所述的Docker容器运行状态下漏洞检测方法,其特征在于,利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息,具体包括:切换到“/proc/<待检测容器进程在宿主机的PID>/ns/mnt”目录的命名空间内;在所述命名空间内读取“/etc/os

release”目录中的信息,获取内核版本信息;/etc/os

release为内核版本信息所在位置。3.根据权利要求1所述的Docker容器运行状态下漏洞检测方法,其特征在于,利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息,具体包括:通过读取“/proc/<待检测容器进程在宿主机的PID>/root/lib/apk/db/installed”目录获取系统软件信息。4.根据权利要求1所述的Docker容器运行状态下漏洞检测方法,其特征在于,利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息,具体包括:循环读取“/proc/<待检测容器进程在宿主机的PID>/root/”目录下的文件;当所述文件为软件包类型时,获取应用软件信息。5.根据权利要求1所述的Docker容器运行状态下漏洞检测方法,其特征在于,将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果,具体包括:根据所述内核信息信息获取所述公共漏洞和暴露CVE数据库中对应的CVE数据;将CVE数据按照软件名称为key,根据所述系统软件信息以及应用软件信息构造CVEMap类型结构数据;通过软件名称,根据所述CVEMap类型结构数据,判断所述应用软件信息是否存在CVE漏洞;若存在CVE漏洞且应用软件的当前版本小于所述CVE的已修复版本时,记录所述CVE,确定所述待检...

【专利技术属性】
技术研发人员:赵云龙
申请(专利权)人:上海弘积信息科技有限公司
类型:发明
国别省市:

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

1