CN113065125A - Docker镜像的分析方法、装置、电子设备及存储介质 - Google Patents
Docker镜像的分析方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113065125A CN113065125A CN202110353108.9A CN202110353108A CN113065125A CN 113065125 A CN113065125 A CN 113065125A CN 202110353108 A CN202110353108 A CN 202110353108A CN 113065125 A CN113065125 A CN 113065125A
- Authority
- CN
- China
- Prior art keywords
- information
- open source
- source component
- docker
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种Docker镜像的分析方法、装置、电子设备及存储介质,其中方法包括:对Docker镜像压缩包进行解压。遍历Docker镜像压缩包完全解压后的所有文件寻找特征文件,特征文件包括当前镜像层的操作系统包含和依赖的开源组件信息以及当前操作系统下的应用程序包含和依赖的组件信息。解析特征文件以获取操作系统包含和依赖的开源组件信息以及应用程序包含和依赖的开源组件信息。在数据库查找与解析出的所有开源组件信息对应的漏洞信息和许可信息。显示所有开源组件信息、所有查找出的漏洞信息和许可信息的分析结果。上述方法能快速寻找并解析特征文件中的开源组件信息,并在数据库中查找出对应的漏洞信息和许可信息,实现全面的安全检测,提高检测效率。
Description
技术领域
本发明涉及Docker镜像技术领域,尤其涉及一种Docker镜像的分析方法、装置、电子设备及存储介质。
背景技术
Docker是一个开源的应用容器引擎,可以让开发者将打包应用程序到可移植的镜像中,然后发布到终端设备上。Docker容器是完全使用沙箱机制,相互之间不会有任何接口。目前较多设备管理系统在开发、测试及生产环境中,已经采用Docker容器技术,而Docker镜像则是Docker容器最基础的载体。
市面上有大量的开源组件,开发者根据自身需求将多种开源组件打包至Docker镜像中使用,非常便捷。但开源组件并不是每个都符合基本安全标准,因此需要对应用进行检测,保障应用的安全。
目前针对单个应用进行安全检测的工具比较多,但检测效率较低,对于多个应用的检测难免会出现漏检。
发明内容
本发明的目的是为解决上述技术问题的不足而提供一种Docker镜像的分析方法、装置、电子设备及存储介质,能够对Docker镜像内包含的开源组件进行全面的安全检测并提高检测效率。
为了实现上述目的,本发明公开了一种Docker镜像的分析方法,其包括:
对Docker镜像压缩包进行解压并遍历其包含的所有的文件以解压其包含的所有压缩包;
通过遍历Docker镜像压缩包完全解压后的所有文件寻找特征文件,所述特征文件包括当前镜像层的操作系统包含和依赖的开源组件信息以及当前操作系统下的应用程序包含和依赖的组件信息;
解析所述特征文件以获取所述操作系统包含和依赖的开源组件信息以及所述应用程序包含和依赖的开源组件信息;
在数据库中查找与解析出的所有开源组件信息对应的漏洞信息和许可信息;
显示所有开源组件信息、所有查找出的漏洞信息和许可信息的分析结果。
较佳地,所述特征文件还包括当前镜像层的操作系统信息。
较佳地,所述特征文件还包括Docker镜像的元数据信息文件和配置信息文件。
较佳地,所述数据库为开源组件和漏洞的关系库,其形成方法包括:
收集漏洞库的信息和开源组件库的信息;
将漏洞库的漏洞对应的开源组件的版本范围与收集到的开源组件库的开源组件关联并形成所述数据库。
为了实现上述目的,本发明还公开一种Docker镜像的分析装置,其包括解压模块、寻找模块、解析模块、查找模块以及显示模块,其中,所述解压模块用于对Docker镜像压缩包进行解压并遍历其包含的所有的文件以解压其包含的所有压缩包;所述寻找模块用于通过遍历Docker镜像压缩包完全解压后的所有文件寻找特征文件,所述特征文件包括当前镜像层的操作系统包含和依赖的开源组件信息以及当前操作系统下的应用程序包含和依赖的组件信息;所述解析模块用于解析所述特征文件以获取所述操作系统包含和依赖的开源组件信息以及所述应用程序包含和依赖的开源组件信息;所述查找模块用于在数据库中查找与解析出的所有开源组件信息对应的漏洞信息和许可信息;所述显示模块用于显示所有开源组件信息、所有查找出的漏洞信息和许可信息的分析结果。
较佳地,所述特征文件还包括当前镜像层的操作系统信息。
较佳地,所述特征文件还包括Docker镜像的元数据信息文件和配置信息文件。
较佳地,所述数据库为开源组件和漏洞的关系库,其形成方法包括:
收集漏洞库的信息和开源组件库的信息;
将漏洞库的漏洞对应的开源组件的版本范围与收集到的开源组件库的开源组件关联并形成所述数据库。
为了实现上述目的,本发明还公开一种电子设备,其包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述Docker镜像的分析方法的指令。
为了实现上述目的,本发明还公开一种计算机可读存储介质,其包括测试用计算机程序,所述计算机程序可被处理器执行以完成如上所述Docker镜像的分析方法。
本发明首先对需要安全检测的Docker镜像压缩包进行完全解压,接着通过遍历Docker镜像压缩包完全解压后的所有文件寻找特征文件,解析特征文件来获取其中的开源组件信息,并在数据库中查找与其对应的漏洞信息和许可信息,最后显示分析结果。由此可知,本发明能快速寻找并解析特征文件中的开源组件信息,并在数据库中查找出对应的漏洞信息和许可信息,实现全面的安全检测,提高检测效率。
附图说明
图1为本发明实施例Docker镜像的分析方法的流程示意图。
图2为本发明实施例Docker镜像的分析装置的示意框图。
图3为本发明实施例电子设备的示意框图。
具体实施方式
为详细说明本发明的技术内容、结构特征、实现原理及所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参阅图1,本发明实施例公开了一种Docker镜像的分析方法,其包括:
S1、对Docker镜像压缩包进行解压并遍历其包含的所有的文件以解压其包含的所有压缩包。
具体地,用户可将使用的整个系统打包形成Docker镜像压缩包,压缩包的名称中一般含有tar后缀。当接收到对Docker镜像压缩包分析请求时,则对Docker镜像压缩包进行解压,并遍历其包含的所有文件,其中若发现以tar为后缀的压缩包则继续对其进行解压,直至不再发现tar为后缀的压缩包。
S2、通过遍历Docker镜像压缩包完全解压后的所有文件寻找特征文件,特征文件包括当前镜像层的操作系统包含和依赖的开源组件信息以及当前操作系统下的应用程序包含和依赖的组件信息。
具体地,特征文件的命名一般具有一定的特点,可通过寻找特征文件对应的名称来找到特征文件。
S3、解析特征文件以获取操作系统包含和依赖的开源组件信息以及应用程序包含和依赖的开源组件信息。
S4、在数据库中查找与解析出的所有开源组件信息对应的漏洞信息和许可信息。
S5、显示所有开源组件信息、所有查找出的漏洞信息和许可信息的分析结果。
具体地,分析结果可包括该Docker镜像的组件的数量、组件对应的漏洞信息的数量以及组件的许可信息的数量,同时可以分别对组件、漏洞和许可信息进行分类统计,可分为超危、高危、中危、低危以及无风险这五种级别,可分别统计这五个级别的组件、漏洞和许可信息的数目。
对于上述实施例中所公开的Docker镜像的分析方法,首先对需要安全检测的Docker镜像压缩包进行完全解压,接着通过遍历Docker镜像压缩包完全解压后的所有文件寻找特征文件,解析特征文件来获取其中的开源组件信息,并在数据库中查找与其对应的漏洞信息和许可信息,最后显示分析结果。由此可知,本发明能快速寻找并解析特征文件中的开源组件信息,并在数据库中查找出对应的漏洞信息和许可信息,实现全面的安全检测,提高检测效率。
进一步地,特征文件还包括当前镜像层的操作系统信息。
具体地,用于记载当前镜像层的操作系统信息的特征文件是os-release文件,通过解析os-release文件可获取当前镜像层的操作系统信息,可根据需求去提取所需要的操作系统信息,优选地,可提取操作系统名称、ID以及版本等信息。若当前镜像层使用alpine操作系统,搭配有apk包管理工具,则用于记载操作系统包含和依赖的开源组件的特征文件是apk文件下的子文件installed,通过解析installed文件可从中获取多个开源组件的信息,优选地,一般只需提取开源组件名称、开源组件的版本以及需要依赖的组件的信息,而其他信息可暂时不需要提取,这样可以减少无关信息量的输出,方便开发者快速获取最主要的信息。当然,在不同的操作系统里面,用于记载操作系统包含和依赖的开源组件的特征文件是不一样的,比如在ubuntu系统里,采用dpkg包管理工具,用于记载操作系统包含和依赖的开源组件的特征文件是dpkg文件中的子文件status。
进一步地,特征文件还包括Docker镜像的元数据信息文件和配置信息文件。
具体地,元数据信息文件一般是manifest.json文件,元数据信息文件记载着Docker镜像的tag、config以及layer的信息。配置信息文件记载着镜像的环境信息、cmd命令以及创建时间等。其中,元数据信息文件和配置信息文件所记载的信息与当前的Docker镜像有关,可以将当前Docker镜像的上述基本信息通过显示模块显示给开发者参阅。
通过上述方法,寻找并解析对应记载着元数据信息和配置信息的特征文件,方便开发者及时获取Docker镜像的基础信息,增加实用性。
进一步地,数据库为开源组件和漏洞的关系库,其形成方法包括:
收集漏洞库的信息和开源组件库的信息;
将漏洞库的漏洞对应的开源组件的版本范围与收集到的开源组件库的开源组件关联并形成数据库。
通过上述方法,能确保漏洞库的信息和开源组件库的信息为较新版本的信息,确定信息的可靠性。另外可以建立漏洞与组件之间的对应关系,有利于后续将需要分析的开源组件与漏洞进行快速匹配,提高效率。
具体地,漏洞库的信息包括其内部的漏洞信息以及漏洞信息影响的开源组件的版本范围等信息。开源组件库的信息包括开源组件的组件版本、名称、发布时间以及许可信息等。可以从公开的漏洞网站,比如cve官网、cnnvd官网等获取相关的漏洞信息,以及从开源组件的官网或者包管理工具的镜像网站,比如maven、npm、pypi等网站收集开源组件的相关信息。
请参阅图2,本发明实施例还公开了一种Docker镜像的分析装置,其包括解压模块10、寻找模块11、解析模块12、查找模块13以及显示模块14。其中,解压模块11用于对Docker镜像压缩包进行解压并遍历其包含的所有的文件以解压其包含的所有压缩包。寻找模块11用于通过遍历Docker镜像压缩包完全解压后的所有文件寻找特征文件,特征文件包括当前镜像层的操作系统包含和依赖的开源组件信息以及当前操作系统下的应用程序包含和依赖的组件信息。解析模块12用于解析特征文件以获取操作系统包含和依赖的开源组件信息以及应用程序包含和依赖的开源组件信息。查找模块13用于在数据库中查找与解析出的所有开源组件信息对应的漏洞信息和许可信息。显示模块14用于显示所有开源组件信息、所有查找出的漏洞信息和许可信息的分析结果。
进一步地,特征文件还包括当前镜像层的操作系统信息。
进一步地,特征文件还包括Docker镜像的元数据信息文件和配置信息文件。
进一步地,数据库为开源组件和漏洞的关系库,其形成方法包括:
收集漏洞库的信息和开源组件库的信息;
将漏洞库的漏洞对应的开源组件的版本范围与收集到的开源组件库的开源组件关联并形成数据库。
关于Docker镜像的分析装置的具体描述,详见上述Docker镜像的分析方法,在此不再赘述。
请参阅图3,本发明实施例还公开一种电子设备,其包括一个或多个处理器21、存储器20以及一个或多个程序,其中一个或多个程序被存储在存储器20中,并且被配置成由一个或个多处理器21执行,程序包括用于执行上述Docker镜像的分析方法的指令。
本发明实施例还公开一种计算机可读存储介质,其包括测试用计算机程序,计算机程序可被处理器执行以完成上述Docker镜像的分析方法。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述Docker镜像的分析方法。
应当理解,在本发明实施例中,所称处理器可以是中央处理模块(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所揭露的仅为本发明的较佳实例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属于本发明所涵盖的范围。
Claims (10)
1.一种Docker镜像的分析方法,其特征在于,包括:
对Docker镜像压缩包进行解压并遍历其包含的所有的文件以解压其包含的所有压缩包;
通过遍历Docker镜像压缩包完全解压后的所有文件寻找特征文件,所述特征文件包括当前镜像层的操作系统包含和依赖的开源组件信息以及当前操作系统下的应用程序包含和依赖的组件信息;
解析所述特征文件以获取所述操作系统包含和依赖的开源组件信息以及所述应用程序包含和依赖的开源组件信息;
在数据库中查找与解析出的所有开源组件信息对应的漏洞信息和许可信息;
显示所有开源组件信息、所有查找出的漏洞信息和许可信息的分析结果。
2.如权利要求1所述的Docker镜像的分析方法,其特征在于,所述特征文件还包括当前镜像层的操作系统信息。
3.如权利要求1所述的Docker镜像的分析方法,其特征在于,所述特征文件还包括Docker镜像的元数据信息文件和配置信息文件。
4.如权利要求1所述的Docker镜像的分析方法,其特征在于,
所述数据库为开源组件和漏洞的关系库,其形成方法包括:
收集漏洞库的信息和开源组件库的信息;
将漏洞库的漏洞对应的开源组件的版本范围与收集到的开源组件库的开源组件关联并形成所述数据库。
5.一种Docker镜像的分析装置,其特征在于,包括:
解压模块,用于对Docker镜像压缩包进行解压并遍历其包含的所有的文件以解压其包含的所有压缩包;
寻找模块,用于通过遍历Docker镜像压缩包完全解压后的所有文件寻找特征文件,所述特征文件包括当前镜像层的操作系统包含和依赖的开源组件信息以及当前操作系统下的应用程序包含和依赖的组件信息;
解析模块,用于解析所述特征文件以获取所述操作系统包含和依赖的开源组件信息以及所述应用程序包含和依赖的开源组件信息;
查找模块,用于在数据库中查找与解析出的所有开源组件信息对应的漏洞信息和许可信息;
显示模块,用于显示所有开源组件信息、所有查找出的漏洞信息和许可信息的分析结果。
6.如权利要求5所述的Docker镜像的分析装置,其特征在于,所述特征文件还包括当前镜像层的操作系统信息。
7.如权利要求5所述的Docker镜像的分析装置,其特征在于,所述特征文件还包括Docker镜像的元数据信息文件和配置信息文件。
8.如权利要求5所述的Docker镜像的分析装置,其特征在于,
所述数据库为开源组件和漏洞的关系库,其形成方法包括:
收集漏洞库的信息和开源组件库的信息;
将漏洞库的漏洞对应的开源组件的版本范围与收集到的开源组件库的开源组件关联并形成所述数据库。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如权利要求1至4任一项所述Docker镜像的分析方法的指令。
10.一种计算机可读存储介质,其特征在于,包括测试用计算机程序,所述计算机程序可被处理器执行以完成如权利要求1至4任一项所述Docker镜像的分析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110353108.9A CN113065125A (zh) | 2021-03-30 | 2021-03-30 | Docker镜像的分析方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110353108.9A CN113065125A (zh) | 2021-03-30 | 2021-03-30 | Docker镜像的分析方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113065125A true CN113065125A (zh) | 2021-07-02 |
Family
ID=76564998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110353108.9A Pending CN113065125A (zh) | 2021-03-30 | 2021-03-30 | Docker镜像的分析方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113065125A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023072002A1 (zh) * | 2021-10-31 | 2023-05-04 | 华为技术有限公司 | 开源组件包的安全检测方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150242515A1 (en) * | 2014-02-25 | 2015-08-27 | Sap Ag | Mining Security Vulnerabilities Available from Social Media |
CN108984391A (zh) * | 2018-06-06 | 2018-12-11 | 优视科技有限公司 | 应用程序的分析方法、装置及电子设备 |
CN111625834A (zh) * | 2020-05-15 | 2020-09-04 | 深圳开源互联网安全技术有限公司 | Docker镜像文件漏洞检测系统及检测方法 |
CN112395042A (zh) * | 2020-10-27 | 2021-02-23 | 国电南瑞科技股份有限公司 | 一种面向业务容器镜像进行安全扫描的方法和装置 |
-
2021
- 2021-03-30 CN CN202110353108.9A patent/CN113065125A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150242515A1 (en) * | 2014-02-25 | 2015-08-27 | Sap Ag | Mining Security Vulnerabilities Available from Social Media |
CN108984391A (zh) * | 2018-06-06 | 2018-12-11 | 优视科技有限公司 | 应用程序的分析方法、装置及电子设备 |
CN111625834A (zh) * | 2020-05-15 | 2020-09-04 | 深圳开源互联网安全技术有限公司 | Docker镜像文件漏洞检测系统及检测方法 |
CN112395042A (zh) * | 2020-10-27 | 2021-02-23 | 国电南瑞科技股份有限公司 | 一种面向业务容器镜像进行安全扫描的方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023072002A1 (zh) * | 2021-10-31 | 2023-05-04 | 华为技术有限公司 | 开源组件包的安全检测方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108763928B (zh) | 一种开源软件漏洞分析方法、装置和存储介质 | |
CN110489345B (zh) | 一种崩溃聚合方法、装置、介质和设备 | |
US10481964B2 (en) | Monitoring activity of software development kits using stack trace analysis | |
CN109766719B (zh) | 一种敏感信息检测方法、装置及电子设备 | |
US20210182031A1 (en) | Methods and apparatus for automatic detection of software bugs | |
US20140006429A1 (en) | Generation of technical description of report from functional description of report | |
US7913233B2 (en) | Performance analyzer | |
US11036479B2 (en) | Devices, systems, and methods of program identification, isolation, and profile attachment | |
CN110909363A (zh) | 基于大数据的软件第三方组件漏洞应急响应系统及方法 | |
CN110674360B (zh) | 一种用于数据的溯源方法和系统 | |
CN112579476B (zh) | 一种漏洞和软件对齐的方法、装置以及存储介质 | |
CN113449310A (zh) | 一种应用程序漏洞检测方法、装置及设备 | |
EP3444738A1 (en) | Entry point finder | |
CN114386032A (zh) | 电力物联网设备的固件检测系统及方法 | |
CN111324510B (zh) | 日志处理方法、装置及电子设备 | |
CN113065125A (zh) | Docker镜像的分析方法、装置、电子设备及存储介质 | |
CN114860573A (zh) | 软件成分的分析方法、装置、电子设备及存储介质 | |
CN111460448B (zh) | 一种恶意软件家族检测方法及装置 | |
CN108255891B (zh) | 一种判别网页类型的方法及装置 | |
CN116821903A (zh) | 检测规则确定及恶意二进制文件检测方法、设备及介质 | |
CN111143203B (zh) | 机器学习、隐私代码确定方法、装置及电子设备 | |
CN109558418B (zh) | 一种自动识别信息的方法 | |
US10572669B2 (en) | Checking for unnecessary privileges with entry point finder | |
CN117172249B (zh) | 合同审查方法、装置、设备及计算机可读存储介质 | |
Cam et al. | Detect repackaged android applications by using representative graphs |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210702 |