[发明专利]一种容器镜像的分层快速扫描方法在审
申请号: | 202010810412.7 | 申请日: | 2020-08-13 |
公开(公告)号: | CN113420292A | 公开(公告)日: | 2021-09-21 |
发明(设计)人: | 王震;袁曙光 | 申请(专利权)人: | 北京小佑科技有限公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F9/455;G06F21/53 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 102208 北京市昌平区回龙*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 容器 分层 快速 扫描 方法 | ||
本发明提供了一种容器镜像的分层快速扫描方法,本发明提供的容器镜像的分层快速扫描方法是基于镜像分层的原理,对镜像进行分层扫描,并按层存储扫描结果,最终合并所有层的结果,作为该镜像的扫描结果。这样的优点在于,当很多镜像都使用相同的镜像层时,在扫描这些镜像时,可以跳过已经扫描过的相同镜像层,直接从数据库中取出该层的扫描结果即可,大大节约了扫描时间。
技术领域
本发明涉及到镜像扫描技术领域,尤其涉及到一种容器镜像的分层快速扫描方法。
背景技术
容器镜像(以下简称镜像)作为容器运行的基础文件系统,经常会被恶意利用,在镜像中加入包括但不限于病毒文件、木马程序、以及其它常见的恶意文件。一旦使用带有上述恶意文件的镜像并运行成容器,那么该容器面临的潜在风险也是非常大的,比如破坏当前容器中运行的业务应用、窃取密码数据等信息、被木马客户端远程控制等等。所以有必要对镜像中的文件进行扫描,检测出其中存在的恶意文件并及时清除。
现有的镜像扫描工具与杀毒软件类似,通过全盘扫描所有文件,检测出恶意文件并上报。这种扫描方法比较费时,在镜像数量大的情况下,对每个镜像进行全盘扫描会花费非常久的时间。
Docker是目前使用范围非常广泛的镜像和容器的管理工具。现有的技术,通过docker save命令,将镜像保存成tar文件包,然后解压出所有的文件,使用病毒、木马等恶意文件的扫描引擎(此类扫描引擎在现有技术中已经是成熟的软件,故不作过多介绍)对镜像内所有文件进行扫描,生成镜像的扫描报告,报告中包含镜像中存在哪些恶意文件的信息。该技术方案在面对大量镜像的时候,仍然是对每个镜像重复解压进行全量扫描,无法加快扫描进度,无法缩短整体的扫描时间。
发明内容
本发明的目的是为了克服现有技术的不足,提供了一种容器镜像的分层快速扫描方法。
本发明是通过以下技术方案实现:
本发明提供了一种容器镜像的分层快速扫描方法,该容器镜像的分层快速扫描方法包括以下步骤:
S1:镜像扫描按层扫描,并按层存储扫描结果,扫描结果存入数据库中;
S2:扫描一个镜像层时,先查看该层是否在数据库中已经存有扫描结果;如果没有,则扫描该层,并将扫描结果存入数据库中;如果有,则跳过该层扫描;
S3:单个镜像所有层扫描完毕后,从数据库中取出每一层的扫描结果,做合并处理;
S4: 当数据库中的镜像层扫描结果的累积数量庞大时,可以直接从数据库中获取已经存有的镜像层扫描结果,镜像可以实现云扫描。
优选的,步骤S1中镜像扫描是通过在主机上布署扫描器软件,通过扫描器软件扫描本地存储的镜像。
优选的,步骤S1中镜像扫描时,先将本地存储的镜像分层处理,并获取每一层的唯一哈希ID。
优选的,步骤S2中扫描一个镜像层时,先链接数据库,通过该层的唯一哈希ID在数据库中查询该层是否已经有扫描结果。
优选的,步骤S3中,对扫描结果做合并处理时,每个扫描结果有新增、修改、删除三种类型,对应每一个镜像层中文件的新增、修改、删除。
优选的,步骤S4中,向数据库提供已有扫描结果的镜像层的ID,就可直接从数据库中获取镜像该层对应的扫描结果。
优选的,所述的数据库为云端数据库。
镜像是由不同层构成的,每一个镜像层都有唯一的标识字符串。本发明是基于镜像分层的原理,对镜像进行分层扫描,并按层存储扫描结果,最终合并所有层的结果,作为该镜像的扫描结果。这样的优点在于,当很多镜像都使用相同的镜像层时,在扫描这些镜像时,可以跳过已经扫描过的相同镜像层,直接从扫描结果中取出该层的扫描结果即可,大大节约了扫描时间。
附图说明
图1是本发明实施例提供的架构示意图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京小佑科技有限公司,未经北京小佑科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010810412.7/2.html,转载请声明来源钻瓜专利网。