CN116150768A - Docker容器运行状态下漏洞检测方法、系统及设备 - Google Patents

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

Info

Publication number
CN116150768A
CN116150768A CN202310188185.2A CN202310188185A CN116150768A CN 116150768 A CN116150768 A CN 116150768A CN 202310188185 A CN202310188185 A CN 202310188185A CN 116150768 A CN116150768 A CN 116150768A
Authority
CN
China
Prior art keywords
docker container
information
detected
vulnerability
cve
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.)
Granted
Application number
CN202310188185.2A
Other languages
English (en)
Other versions
CN116150768B (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.)
Shanghai Hongji Information Technology Co Ltd
Original Assignee
Shanghai Hongji Information Technology 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 Shanghai Hongji Information Technology Co Ltd filed Critical Shanghai Hongji Information Technology Co Ltd
Priority to CN202310188185.2A priority Critical patent/CN116150768B/zh
Publication of CN116150768A publication Critical patent/CN116150768A/zh
Application granted granted Critical
Publication of CN116150768B publication Critical patent/CN116150768B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

Docker容器运行状态下漏洞检测方法、系统及设备
技术领域
本发明涉及漏洞检测领域,特别是涉及一种Docker容器运行状态下漏洞检测方法、系统及设备。
背景技术
目前云计算平台的广泛应用,以虚拟化及容器为代表的云基础软件负责对数据中心存算资源进行高效的调配管理,并合理分配给上层应用,实现“软件定义数据中心”,成为云计算时代重要的基础设施。Docker作为虚拟化技术应运而生,凭借其轻量、快速和高效的绝对优势,在互联网企业中得到了大量应用。伴随Docker技术的发展与普及,Docker安全问题越来越引起人们的重视。
2021年,安全公司PaloAlto Networks研究人员Aviv Sasson,在DockerHub上发现的恶意容器映像档,分别来自10个不同账号,总下载次数超过2000万次。
为了及时有效的查看Docker容器运行状态下操作系统漏洞,需要分析内部应用软件的漏洞。但现有的漏洞检测方法无法有效分析Docker容器运行状态下操作系统漏洞以及应用软件的漏洞。
发明内容
本发明的目的是提供一种Docker容器运行状态下漏洞检测方法、系统及设备,以解决现有的漏洞检测方法无法有效分析Docker容器运行状态下操作系统漏洞以及应用软件的漏洞的问题。
为实现上述目的,本发明提供了如下方案:
一种Docker容器运行状态下漏洞检测方法,包括:
在Docker环境中部署Docker容器探针;
利用Docker容器探针将宿主机的proc目录挂载至待检测的Docker容器内;所述proc目录为位于内存中的伪文件系统,所述proc目录保存运行时信息以及查看有关系统硬件及正在运行的进程信息;
利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息;
利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息;
利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息;
将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露CVE数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果;所述漏洞分析结果包括CVE名称、软件包版本、修正版本、发布时间以及严重程度。
可选的,利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息,具体包括:
切换到“/proc/<待检测容器进程在宿主机的PID>/ns/mnt”目录的命名空间内;
在所述命名空间内读取“/etc/os-release”目录中的信息,获取内核版本信息;/etc/os-release为内核版本信息所在位置。
可选的,利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息,具体包括:
通过读取“/proc/<待检测容器进程在宿主机的PID>/root/lib/apk/db/installed”目录获取系统软件信息。
可选的,利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息,具体包括:
循环读取“/proc/<待检测容器进程在宿主机的PID>/root/”目录下的文件;
当所述文件为软件包类型时,获取应用软件信息。
可选的,将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果,具体包括:
根据所述内核信息信息获取所述公共漏洞和暴露CVE数据库中对应的CVE数据;
将CVE数据按照软件名称为key,根据所述系统软件信息以及应用软件信息构造CVE Map类型结构数据;
通过软件名称,根据所述CVE Map类型结构数据,判断所述应用软件信息是否存在CVE漏洞;
若存在CVE漏洞且应用软件的当前版本小于所述CVE的已修复版本时,记录所述CVE,确定所述待检测的Docker容器的漏洞分析结果。
一种Docker容器运行状态下漏洞检测系统,包括:
Docker容器探针部署模块,用于在Docker环境中部署Docker容器探针;
挂载模块,用于利用Docker容器探针将宿主机的proc目录挂载至待检测的Docker容器内;所述proc目录为位于内存中的伪文件系统,所述proc目录保存运行时信息以及查看有关系统硬件及正在运行的进程信息;
内核版本信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息;
系统软件信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息;
应用软件信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息;
漏洞分析结果检测模块,用于将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露CVE数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果;所述漏洞分析结果包括CVE名称、软件包版本、修正版本、发布时间以及严重程度。
可选的,内核版本信息获取模块,具体包括:
切换单元,用于切换到“/proc/<待检测容器进程在宿主机的PID>/ns/mnt”目录的命名空间内;
内核版本信息获取单元,用于在所述命名空间内读取“/etc/os-release”目录中的信息,获取内核版本信息;/etc/os-release为内核版本信息所在位置。
可选的,漏洞分析结果检测模块,具体包括:
CVE数据获取单元,用于根据所述内核信息信息获取所述公共漏洞和暴露CVE数据库中对应的CVE数据;
CVE Map类型结构数据构造单元,用于将CVE数据按照软件名称为key,根据所述系统软件信息以及应用软件信息构造CVE Map类型结构数据;
判断单元,用于通过软件名称,根据所述CVE Map类型结构数据,判断所述应用软件信息是否存在CVE漏洞;
漏洞分析结果确定单元,用于若存在CVE漏洞且应用软件的当前版本小于所述CVE的已修复版本时,记录所述CVE,确定所述待检测的Docker容器的漏洞分析结果。
一种电子设备,包括存储器及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行上述所述的Docker容器运行状态下漏洞检测方法。
一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的Docker容器运行状态下漏洞检测方法。
根据本发明提供的具体实施例,本发明公开了以下技术效果:本发明提供了一种Docker容器运行状态下漏洞检测方法、系统及设备,通过将利用Docker容器探针将宿主机的proc目录挂载至待检测的Docker容器内,利用Docker容器探针探测所述待检测的Docker容器的内核版本信息、系统软件信息以及应用软件信息,并构建公共漏洞和暴露(CommonVulnerabilities and Exposures,CVE)数据库,生成待检测的Docker容器的漏洞分析结果,从而针对Docker容器在运行状态也能够有效检测出操作系统漏洞以及应用软件的漏洞,实时发现Docker容器中存在的安全风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的一种Docker容器运行状态下漏洞检测方法流程图;
图2为本发明所提供的Docker容器探针与待检测的Docker容器之间的关系图;
图3为本发明所提供的另一种Docker容器运行状态下漏洞检测方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种Docker容器运行状态下漏洞检测方法、系统及设备,针对Docker容器在运行状态也能够有效检测出操作系统漏洞以及应用软件的漏洞,实时发现Docker容器中存在的安全风险。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例一
如图1所示,本发明提供了一种Docker容器运行状态下漏洞检测方法,包括:
步骤101:在Docker环境中部署Docker容器探针。
步骤102:利用Docker容器探针将宿主机的proc目录挂载至待检测的Docker容器内;所述proc目录为位于内存中的伪文件系统,所述proc目录保存运行时信息以及查看有关系统硬件及正在运行的进程信息。Docker容器探针与待检测的Docker容器之间的关系如图2所示。
步骤103:利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息。
所述步骤103具体包括:切换到“/proc/<待检测容器进程在宿主机的PID>/ns/mnt”目录的命名空间内;在所述命名空间内读取“/etc/os-release”目录中的信息,获取内核版本信息;/etc/os-release为内核版本信息所在位置。
步骤104:利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息。
所述步骤104具体包括:通过读取“/proc/<待检测容器进程在宿主机的PID>/root/lib/apk/db/installed”目录获取系统软件信息。
步骤105:利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息。
所述步骤105具体包括:循环读取“/proc/<待检测容器进程在宿主机的PID>/root/”目录下的文件;当所述文件为软件包类型时,获取应用软件信息。
步骤106:将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露CVE数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果;所述漏洞分析结果包括CVE名称、软件包版本、修正版本、发布时间以及严重程度。
所述步骤106具体包括:根据所述内核信息信息获取所述公共漏洞和暴露CVE数据库中对应的CVE数据;将CVE数据按照软件名称为key,根据所述系统软件信息以及应用软件信息构造CVE Map类型结构数据;通过软件名称,根据所述CVE Map类型结构数据,判断所述应用软件信息是否存在CVE漏洞;若存在CVE漏洞且应用软件的当前版本小于所述CVE的已修复版本时,记录所述CVE,确定所述待检测的Docker容器的漏洞分析结果。
实施例二
图3为本发明所提供的另一种Docker容器运行状态下漏洞检测方法流程图,如图3所示。
1.在开放源代码的开放平台软件(Docker)环境中部署Docker容器探针,所述Docker容器探针用于获取待检测容器的信息。
2.Docker容器探针将宿主机proc(GUN/Linux操作系统中标准目录)目录挂载入探针容器内。
3.Docker容器探针获取待检测容器信息。
4.Docker容器探针获取内核版本信息。
1)切换到/proc/<待检测容器进程在宿主机的PID>/ns/mnt命名空间内。
2)读取/etc/os-release信息获取内核信息。
5.Dcoker容器探针获取系统软件信息以及应用软件信息。
1)通过读取/proc/<待检测容器进程在宿主机的PID>/root/lib/apk/db/installed获取系统软件信息。
2)通过循环读取/proc/<待检测容器进程在宿主机的PID>/root/目录下的文件。
3)判断是否为软件包类型获取应用软件信息。
6.匹配CVE数据库进行分析。
7.根据内核信息获取对应的CVE数据。
8.将CVE数据按照软件名称为key构造CVE Map类型结构数据;CVE Map类型为一种key/value格式。
9.应用软件信息根据软件名称通过CVE Map类型结构数据判断是否存在CVE数据。
10.如果存在CVE数据,应用软件当前版本小于该CVE已修复版本时,将该CVE记录分析结果;分析结果为所有匹配的CVE;分析结果包括CVE名称、软件包版本、修正版本、发布时间以及严重程度等。
实施例三
为了执行上述实施例一对应的方法,以实现相应的功能和技术效果,下面提供一种Docker容器运行状态下漏洞检测系统。
一种Docker容器运行状态下漏洞检测系统,包括:
Docker容器探针部署模块,用于在Docker环境中部署Docker容器探针;
挂载模块,用于利用Docker容器探针将宿主机的proc目录挂载至待检测的Docker容器内;所述proc目录为位于内存中的伪文件系统,所述proc目录保存运行时信息以及查看有关系统硬件及正在运行的进程信息;
内核版本信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息;
系统软件信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息;
应用软件信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息;
漏洞分析结果检测模块,用于将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露CVE数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果;所述漏洞分析结果包括CVE名称、软件包版本、修正版本、发布时间以及严重程度。
可选的,内核版本信息获取模块,具体包括:
切换单元,用于切换到“/proc/<待检测容器进程在宿主机的PID>/ns/mnt”目录的命名空间内;
内核版本信息获取单元,用于在所述命名空间内读取“/etc/os-release”目录中的信息,获取内核版本信息;/etc/os-release为内核版本信息所在位置。
可选的,漏洞分析结果检测模块,具体包括:
CVE数据获取单元,用于根据所述内核信息信息获取所述公共漏洞和暴露CVE数据库中对应的CVE数据;
CVE Map类型结构数据构造单元,用于将CVE数据按照软件名称为key,根据所述系统软件信息以及应用软件信息构造CVE Map类型结构数据;
判断单元,用于通过软件名称,根据所述CVE Map类型结构数据,判断所述应用软件信息是否存在CVE漏洞;
漏洞分析结果确定单元,用于若存在CVE漏洞且应用软件的当前版本小于所述CVE的已修复版本时,记录所述CVE,确定所述待检测的Docker容器的漏洞分析结果。
实施例三
本发明实施例提供一种电子设备包括存储器及处理器,该存储器用于存储计算机程序,该处理器运行计算机程序以使电子设备执行实施例一提供的Docker容器运行状态下漏洞检测方法。
在实际应用中,上述电子设备可以是服务器。
在实际应用中,电子设备包括:至少一个处理器(processor)、存储器(memory)、总线及通信接口(Communications Interface)。
其中:处理器、通信接口、以及存储器通过通信总线完成相互间的通信。
通信接口,用于与其它设备进行通信。
处理器,用于执行程序,具体可以执行上述实施例所述的方法。
具体地,程序可以包括程序代码,该程序代码包括计算机操作指令。
处理器可能是中央处理器CPU,或者是特定集成电路ASIC(Application SpecificIntegrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器,用于存放程序。存储器可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
基于以上实施例的描述,本申请实施例提供一种存储介质,其上存储有计算机程序指令,计算机程序指令可被处理器执行以实现任意实施例所述的方法
本申请实施例提供的Docker容器运行状态下漏洞检测系统以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网性能。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)其他具有数据交互功能的电子设备。
至此,已经对本主题的特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作可以按照不同的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序,以实现期望的结果。在某些实施方式中,多任务处理和并行处理可以是有利的。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。本领域内的技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、
数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带、磁盘存储或其他磁性存储设备
或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

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,确定所述待检测的Docker容器的漏洞分析结果。
6.一种Docker容器运行状态下漏洞检测系统,其特征在于,包括:
Docker容器探针部署模块,用于在Docker环境中部署Docker容器探针;
挂载模块,用于利用Docker容器探针将宿主机的proc目录挂载至待检测的Docker容器内;所述proc目录为位于内存中的伪文件系统,所述proc目录保存运行时信息以及查看有关系统硬件及正在运行的进程信息;
内核版本信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的内核版本信息;
系统软件信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的系统软件信息;
应用软件信息获取模块,用于利用所述Docker容器探针获取所述待检测的Docker容器的应用软件信息;
漏洞分析结果检测模块,用于将所述内核版本信息、所述系统软件信息以及所述应用软件信息与所述公共漏洞和暴露CVE数据库进行匹配,检测所述待检测的Docker容器的漏洞分析结果;所述漏洞分析结果包括CVE名称、软件包版本、修正版本、发布时间以及严重程度。
7.根据权利要求6所述的Docker容器运行状态下漏洞检测系统,其特征在于,内核版本信息获取模块,具体包括:
切换单元,用于切换到“/proc/<待检测容器进程在宿主机的PID>/ns/mnt”目录的命名空间内;
内核版本信息获取单元,用于在所述命名空间内读取“/etc/os-release”目录中的信息,获取内核版本信息;/etc/os-release为内核版本信息所在位置。
8.根据权利要求6所述的Docker容器运行状态下漏洞检测系统,其特征在于,漏洞分析结果检测模块,具体包括:
CVE数据获取单元,用于根据所述内核信息信息获取所述公共漏洞和暴露CVE数据库中对应的CVE数据;
CVEMap类型结构数据构造单元,用于将CVE数据按照软件名称为key,根据所述系统软件信息以及应用软件信息构造CVEMap类型结构数据;
判断单元,用于通过软件名称,根据所述CVEMap类型结构数据,判断所述应用软件信息是否存在CVE漏洞;
漏洞分析结果确定单元,用于若存在CVE漏洞且应用软件的当前版本小于所述CVE的已修复版本时,记录所述CVE,确定所述待检测的Docker容器的漏洞分析结果。
9.一种电子设备,其特征在于,包括存储器及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使所述电子设备执行如权利要求1-5中任一项所述的Docker容器运行状态下漏洞检测方法。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的Docker容器运行状态下漏洞检测方法。
CN202310188185.2A 2023-03-01 2023-03-01 Docker容器运行状态下漏洞检测方法、系统及设备 Active CN116150768B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310188185.2A CN116150768B (zh) 2023-03-01 2023-03-01 Docker容器运行状态下漏洞检测方法、系统及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310188185.2A CN116150768B (zh) 2023-03-01 2023-03-01 Docker容器运行状态下漏洞检测方法、系统及设备

Publications (2)

Publication Number Publication Date
CN116150768A true CN116150768A (zh) 2023-05-23
CN116150768B CN116150768B (zh) 2024-01-30

Family

ID=86340665

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310188185.2A Active CN116150768B (zh) 2023-03-01 2023-03-01 Docker容器运行状态下漏洞检测方法、系统及设备

Country Status (1)

Country Link
CN (1) CN116150768B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395042A (zh) * 2020-10-27 2021-02-23 国电南瑞科技股份有限公司 一种面向业务容器镜像进行安全扫描的方法和装置
US20210382997A1 (en) * 2020-06-08 2021-12-09 Electronics And Telecommunications Research Institute Method and apparatus for providing visibility of security into container images
CN114925369A (zh) * 2022-03-15 2022-08-19 国家电网有限公司大数据中心 一种针对业务系统容器安全的静态分析方法与系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210382997A1 (en) * 2020-06-08 2021-12-09 Electronics And Telecommunications Research Institute Method and apparatus for providing visibility of security into container images
CN112395042A (zh) * 2020-10-27 2021-02-23 国电南瑞科技股份有限公司 一种面向业务容器镜像进行安全扫描的方法和装置
CN114925369A (zh) * 2022-03-15 2022-08-19 国家电网有限公司大数据中心 一种针对业务系统容器安全的静态分析方法与系统

Also Published As

Publication number Publication date
CN116150768B (zh) 2024-01-30

Similar Documents

Publication Publication Date Title
CN111291374B (zh) 一种应用程序的检测方法、装置及设备
CN111897623B (zh) 一种集群管理方法、装置、设备及存储介质
CN110851204B (zh) 应用启动的方法及装置、应用打包的方法及装置
CN114064594B (zh) 数据处理方法和装置
CN112965761B (zh) 一种数据处理方法、系统、电子设备及存储介质
CN104268472B (zh) 还原被第三方动态库修改函数地址的方法和装置
CN110673986A (zh) 内存操作的异常捕获方法、装置、终端及存储介质
CN117241276B (zh) 一种面向移动应用的检测工具及检测方法、系统及设备
CN112416303B (zh) 软件开发工具包热修复方法、装置及电子设备
CN111949297B (zh) 一种区块链智能合约升级方法、装置及电子设备
CN113886264A (zh) 分布式数据库的内嵌方法、装置、设备及存储介质
CN113391860B (zh) 服务请求处理方法、装置、电子设备及计算机存储介质
CN116150768B (zh) Docker容器运行状态下漏洞检测方法、系统及设备
CN113342660B (zh) 文件测试方法、装置、系统、电子设备及可读存储介质
CN112379967B (zh) 模拟器检测方法、装置、设备及介质
CN110502251B (zh) 应用安装方法及装置
CN110442403B (zh) 一种调用功能组件的方法、装置、电子设备及介质
CN109656805B (zh) 用于业务分析的代码链路的生成方法、装置及业务服务器
CN111797009A (zh) 用于检测代码兼容性的方法、装置和电子设备
CN112306683A (zh) 一种函数劫持方法、装置、介质和电子设备
CN112068814A (zh) 可执行文件的生成方法、装置、系统及介质
CN110489341B (zh) 一种测试方法、装置、存储介质及电子设备
CN110968875B (zh) 一种对网页进行权限漏洞检测的方法及装置
CN112131550B (zh) 一种Windows系统解锁方法、装置、电子设备及计算机可读介质
CN117331838A (zh) 一种渗透测试方法及装置

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