CN113177204B - 一种容器镜像安全检测方法、终端设备及存储介质 - Google Patents
一种容器镜像安全检测方法、终端设备及存储介质 Download PDFInfo
- Publication number
- CN113177204B CN113177204B CN202110397750.7A CN202110397750A CN113177204B CN 113177204 B CN113177204 B CN 113177204B CN 202110397750 A CN202110397750 A CN 202110397750A CN 113177204 B CN113177204 B CN 113177204B
- Authority
- CN
- China
- Prior art keywords
- software package
- mirror image
- container
- software
- scanned
- 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
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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Virology (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种容器镜像安全检测方法、终端设备及存储介质,该方法中包括:S1:对镜像进行软件包扫描,并对扫描到的软件包进行分类,判断其使用的技术栈类型;S2:根据软件包的分类结果,通过分类结果所对应的漏洞检测规则,对该软件包进行漏洞检测;S3:对镜像内的软件包管理工具的数据进行读取,以获取所有与软件包相关的安装类文件的路径;S4:根据所有与软件包相关的安装类文件的路径组成的路径集合,在镜像中进行反向过滤,查找出所有不属于该路径集合的文件,并对所有查找出的文件进行通用漏洞检测规则的漏洞检测。本发明解决由于主流容器镜像扫描软件对镜像内数据的探测不够充分,而导致的无法满足实际容器安全使用场景的需求的问题。
Description
技术领域
本发明涉及容器镜像领域,尤其涉及一种容器镜像安全检测方法、终端设备及存储介质。
背景技术
随着容器技术的广泛应用,越来越多的软件采用了容器化的部署方式,而这些容器所使用的镜像大多来源于互联网的镜像仓库,而这些镜像仓库并不保证镜像的安全性。这种情形下很容易引入一些不安全的镜像,从而威胁到基础***的安全。
Docker镜像大多数都会依赖不同版本的操作***基础镜像,随着时间的推移,各种版本的软件都会暴露出一些漏洞,但是镜像并不会因此而即时变化。同时,一些个人或者组织会出于各种目的制作包含特定软件漏洞的镜像,放到互联网的公共仓库中供他人下载。同时,一些镜像还会企图在正常安装的软件包中混入恶意的文件或者程序,从而绕开单纯的基于漏洞识别的安全检测机制。所以,如何全面的对镜像中的软件进行审计,得到一个更加详细,更加全面的安全风险情报成为急需解决的问题。
当前主流的容器镜像扫描软件主要采取的是基于软件包管理工具所自带的数据库对该镜像中的软件进行探测,但是主流容器镜像扫描软件只能提供软件包名称以及软件版本号而无法提供更多的关于软件包其它信息以及镜像内非软件包相关文件的信息。限制了容器安全***对镜像中的安全问题进行预警和防护的能力,因此主流的容器镜像扫描软件的实际应用效果往往不够理想。
发明内容
为了解决上述问题,本发明提出了一种容器镜像安全检测方法、终端设备及存储介质,用于解决由于主流容器镜像扫描软件对镜像内数据的探测不够充分,导致的无法满足实际容器安全使用场景的需求的问题。
具体方案如下:
一种容器镜像安全检测方法,包括以下步骤:
S1:对镜像进行软件包扫描,并对扫描到的软件包进行分类,判断其使用的技术栈类型;
S2:根据软件包的分类结果,通过分类结果所对应的漏洞检测规则,对该软件包进行漏洞检测;
S3:对镜像内的软件包管理工具的数据进行读取,以获取所有与软件包相关的安装类文件的路径;
S4:根据所有与软件包相关的安装类文件的路径组成的路径集合,在镜像中进行反向过滤,查找出所有不属于该路径集合的文件,并对所有查找出的文件进行通用漏洞检测规则的漏洞检测。
进一步的,软件包分类时采用的线性模型进行分类,采用的特征数据包括文件名和文件后缀。
进一步的,步骤S2中还包括构建用于存储每种类型的软件包对应的漏洞检测规则的数据库。
进一步的,与软件包相关的安装类文件的路径通过对软件包管理工具的内部数据库进行解析得到。
进一步的,当需要批量扫描镜像时,在扫描第一个镜像时对其每一层均进行扫描,并将其扫描结果存储至文件数据库内并作为缓存,在后续扫描其他镜像时,首先从缓存内查找对应层是否包含扫描结果,如果是,则不再对该层进行扫描。
一种容器镜像安全检测终端设备,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例上述的方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述的方法的步骤。
本发明采用如上技术方案,可以检测出Docker镜像漏洞、软件中不安全的配置、软件中包含敏感信息的配置、非软件安装的文件、被改动的安装文件,并能够对镜像的用途和技术栈等进行预测和分类,从而能够全面发现Docker镜像中存在的各种安全风险,以便及时进行使用上的安全加固,提升Docker镜像的安全防护水平,满足如等级保护、行业规范等政策法规的安全建设要求。
附图说明
图1所示为本发明实施例一的流程图。
具体实施方式
为进一步说明各实施例,本发明提供有附图。这些附图为本发明揭露内容的一部分,其主要用以说明实施例,并可配合说明书的相关描述来解释实施例的运作原理。配合参考这些内容,本领域普通技术人员应能理解其他可能的实施方式以及本发明的优点。
现结合附图和具体实施方式对本发明进一步说明。
实施例一:
本发明实施例提供了一种容器镜像安全检测方法,如图1所示,所述方法包括以下步骤:
S1:对镜像进行软件包扫描,并对扫描到的软件包进行分类,判断其使用的技术栈类型。
对软件包进行分类时根据软件包对应的各文件的文件名、文件后缀等特征进行分类,分类的结果为其所属的技术栈的类型,如以java为主要服务的类型、以php为主要服务的类型等等,不同的类型预先制定了不同的漏洞检测规则。通过针对性的漏洞检测,可以检测出常规漏洞检测无法检测到的敏感信息(密码泄漏、WEB源码未混淆)、病毒木马、网页后门等安全隐患。
该实施例中分类时采用的逻辑分类算法为一种线性模型,可以表示为:
y=w*x+b
其中,w是训练得到的权重参数;x是样本的特征数据;b是偏置,表示一般情况下是的概率为多少。
逻辑分类模型预测一个样本一般分三步:
1.计算线性函数(y=w*x+b)
2.从分数到概率的转换(Sigmoid或Softmax)
3.从概率到标签的转换
通过采集的大量的不同类型的样本数据进行训练,训练的目的为根据输入样本的特征数据,利用梯度下降等方法反向推导出合理的权重w和偏置b,以使输出的预测结果更加准确。
S2:根据软件包的分类结果,通过分类结果所对应的漏洞检测规则,对该软件包进行漏洞检测。
为了方便的查找对应的漏洞检测规则,该实施例中还构建了漏洞检测规则数据库,用于存储每种类型的软件包对应的漏洞检测规则。
S3:对镜像内的软件包管理工具的数据进行读取,以获取所有与软件包相关的安装类文件的路径。
该实施例中与软件包相关的安装类文件的路径通过对软件包管理工具的内部数据库进行解析得到。
S4:根据所有与软件包相关的安装类文件的路径组成的路径集合,在镜像中进行反向过滤,查找出所有不属于该路径集合的文件,并对所有查找出的文件进行通用漏洞检测规则的漏洞检测。
通过反向过滤,可以确保对镜像中的每一个文件均进行检测。
在获取安装类文件的路径时,由于容器镜像的组成采用了层次化的联合文件***,每执行一次软件包的安装以及删除操作都会形成新的一层。最新的软件包数据库会存放在最新的一层,一般可以直接查找到包含软件包数据库的最新一层进行相关软件列表的扫描。
尽管如此,由于容器镜像千差万别,实际应用中需要扫描的层依然会非常的多,如果每一次都进行全镜像的扫描,则会对工具带来很大的性能负担。考虑到容器镜像的层本身就可以复用,而大多数镜像都会依赖一个基础镜像进行构建,它们之间大多都会包含一些被复用的层或者本身就具有一定的相互依赖关系。因此该实施例中在对多个镜像进行扫描时采取贪婪扫描的策略在扫描第一个镜像时对其每一层均进行扫描,并将其扫描结果存储至文件数据库内并作为缓存,在后续扫描其他镜像时,首先从缓存内查找对应层是否包含扫描结果,如果是,则不再对该层进行扫描,这将会大大提高容器镜像批量扫描的效率。
本发明实施例可以检测出Docker镜像漏洞、软件中不安全的配置、软件中包含敏感信息的配置、非软件安装的文件、被改动的安装文件,并能够对镜像的用途和技术栈等进行预测和分类,从而能够全面发现Docker镜像中存在的各种安全风险,以便及时进行使用上的安全加固,提升Docker镜像的安全防护水平,满足如等级保护、行业规范等政策法规的安全建设要求。本实施例为用户提供快速、完备的技术支持、为信息***安全可靠的可持续运行提供有力保障。
实施例二:
本发明还提供一种容器镜像安全检测终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例一的上述方法实施例中的步骤。
进一步地,作为一个可执行方案,所述容器镜像安全检测终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述容器镜像安全检测终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,上述容器镜像安全检测终端设备的组成结构仅仅是容器镜像安全检测终端设备的示例,并不构成对容器镜像安全检测终端设备的限定,可以包括比上述更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述容器镜像安全检测终端设备还可以包括输入输出设备、网络接入设备、总线等,本发明实施例对此不做限定。
进一步地,作为一个可执行方案,所称处理器可以是中央处理单元(CentralProcessing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述容器镜像安全检测终端设备的控制中心,利用各种接口和线路连接整个容器镜像安全检测终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述容器镜像安全检测终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据手机的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现本发明实施例上述方法的步骤。
所述容器镜像安全检测终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)以及软件分发介质等。
尽管结合优选实施方案具体展示和介绍了本发明,但所属领域的技术人员应该明白,在不脱离所附权利要求书所限定的本发明的精神和范围内,在形式上和细节上可以对本发明做出各种变化,均为本发明的保护范围。
Claims (7)
1.一种容器镜像安全检测方法,其特征在于,包括以下步骤:
S1:对镜像进行软件包扫描,并对扫描到的软件包进行分类,判断软件包使用的技术栈类型,对软件包进行分类是根据软件包对应的各文件的特征进行的,文件的特征包括文件名和文件后缀;
S2:不同类型的软件包预先制定了不同的漏洞检测规则,根据软件包的分类结果,通过分类结果所对应的漏洞检测规则,对该软件包进行漏洞检测;
S3:对镜像内的软件包管理工具的数据进行读取,以获取所有与软件包相关的安装类文件的路径;
S4:根据所有与软件包相关的安装类文件的路径组成的路径集合,在镜像中进行反向过滤,查找出所有不属于该路径集合的文件,并对所有查找出的文件进行通用漏洞检测规则的漏洞检测。
2.根据权利要求1所述的容器镜像安全检测方法,其特征在于:软件包分类时采用线性模型进行分类。
3.根据权利要求1所述的容器镜像安全检测方法,其特征在于:步骤S2中还包括构建用于存储每种类型的软件包对应的漏洞检测规则的数据库。
4.根据权利要求1所述的容器镜像安全检测方法,其特征在于:与软件包相关的安装类文件的路径通过对软件包管理工具的内部数据库进行解析得到。
5.根据权利要求1所述的容器镜像安全检测方法,其特征在于:当需要批量扫描镜像时,在扫描第一个镜像时对其每一层均进行扫描,并将其扫描结果存储至文件数据库内并作为缓存,在后续扫描其他镜像时,首先从缓存内查找对应层是否包含扫描结果,如果是,则不再对该层进行扫描。
6.一种容器镜像安全检测终端设备,其特征在于:包括处理器、存储器以及存储在所述存储器中并在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~5中任一所述方法的步骤。
7.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1~5中任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110397750.7A CN113177204B (zh) | 2021-04-14 | 2021-04-14 | 一种容器镜像安全检测方法、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110397750.7A CN113177204B (zh) | 2021-04-14 | 2021-04-14 | 一种容器镜像安全检测方法、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113177204A CN113177204A (zh) | 2021-07-27 |
CN113177204B true CN113177204B (zh) | 2022-06-14 |
Family
ID=76923584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110397750.7A Active CN113177204B (zh) | 2021-04-14 | 2021-04-14 | 一种容器镜像安全检测方法、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113177204B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656809A (zh) * | 2021-09-01 | 2021-11-16 | 京东科技信息技术有限公司 | 镜像的安全检测方法、装置、设备及介质 |
CN115359299B (zh) * | 2022-08-25 | 2024-06-11 | 上海人工智能创新中心 | 一种图像目标检测方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920250A (zh) * | 2018-06-05 | 2018-11-30 | 麒麟合盛网络技术股份有限公司 | 应用程序容器化的方法及装置 |
CN111917691A (zh) * | 2019-05-10 | 2020-11-10 | 张长河 | 一种基于虚假响应的web动态自适应防御***及防御方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10223534B2 (en) * | 2015-10-15 | 2019-03-05 | Twistlock, Ltd. | Static detection of vulnerabilities in base images of software containers |
-
2021
- 2021-04-14 CN CN202110397750.7A patent/CN113177204B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108920250A (zh) * | 2018-06-05 | 2018-11-30 | 麒麟合盛网络技术股份有限公司 | 应用程序容器化的方法及装置 |
CN111917691A (zh) * | 2019-05-10 | 2020-11-10 | 张长河 | 一种基于虚假响应的web动态自适应防御***及防御方法 |
Non-Patent Citations (1)
Title |
---|
吕彬 等.Docker容器安全性分析与增强方案研究.《保密科学技术》.2021,15-22. * |
Also Published As
Publication number | Publication date |
---|---|
CN113177204A (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10972493B2 (en) | Automatically grouping malware based on artifacts | |
US11704431B2 (en) | Data security classification sampling and labeling | |
Scalas et al. | On the effectiveness of system API-related information for Android ransomware detection | |
Razgallah et al. | A survey of malware detection in Android apps: Recommendations and perspectives for future research | |
US9998484B1 (en) | Classifying potentially malicious and benign software modules through similarity analysis | |
US10200390B2 (en) | Automatically determining whether malware samples are similar | |
Baldwin et al. | Leveraging support vector machine for opcode density based detection of crypto-ransomware | |
Arif et al. | Android mobile malware detection using fuzzy AHP | |
US8806641B1 (en) | Systems and methods for detecting malware variants | |
US9626511B2 (en) | Agentless enforcement of application management through virtualized block I/O redirection | |
RU2573265C2 (ru) | Способ выявления ложных положительных результатов сканирования файлов на вредоносное по | |
US20160202972A1 (en) | System and method for checking open source usage | |
CN113177204B (zh) | 一种容器镜像安全检测方法、终端设备及存储介质 | |
US11949719B2 (en) | Systems and methods of information security monitoring with third-party indicators of compromise | |
Atzeni et al. | Countering android malware: A scalable semi-supervised approach for family-signature generation | |
Olukoya et al. | Security-oriented view of app behaviour using textual descriptions and user-granted permission requests | |
Ab Razak et al. | “Less give more”: evaluate and zoning android applications | |
Goyal et al. | SafeDroid: a distributed malware detection service for android | |
Gómez‐Hernández et al. | Inhibiting crypto‐ransomware on windows platforms through a honeyfile‐based approach with R‐Locker | |
Okane et al. | Malware detection: program run length against detection rate | |
Rafiq et al. | AndroMalPack: enhancing the ML-based malware classification by detection and removal of repacked apps for Android systems | |
Anumula et al. | Adware and spyware detection using classification and association | |
RU2747514C2 (ru) | Система и способ категоризации приложения на вычислительном устройстве | |
Reyhani Hamedani et al. | AndroClass: An effective method to classify Android applications by applying deep neural networks to comprehensive features | |
US9842219B1 (en) | Systems and methods for curating file clusters for security analyses |
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 |