容器镜像存储原理及其安全风险研究.docxVIP

容器镜像存储原理及其安全风险研究.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

容器镜像存储原理

及其安全风险研究

1概述

近10年来,云计算的发展取得了显著的成就,虚拟化作为其中关键技术发展日益迅速,特别是轻量级的虚拟化技术——Docker容器技术。Docker提供一种可移植、可重用且自动化的方式来打包和运行应用。随着容器技术的广泛应用,Docker容器的安全问题日益突出,尤其是容器镜像安全问题。

镜像仓库是容器镜像的主要传播方式,DockerHub作为Docker官方的镜像仓库,对于镜像上传过程缺乏完善的监督,导致镜像的版本、质量和安全性处

——————————

收稿日期:2022-07-15

于不可控的状态。文献[1]分析DockerHub仓库中的

2500个镜像后指出,高达82%被认证的镜像包含至少

1个高危漏洞,而不含漏洞的镜像仅占17.8%。可见镜像安全已经成为容器面临的最主要风险之一。为方便读者更好理解镜像的脆弱性,本文详细分析了镜像在仓库和本地存储的结构特点,并针对性地分析了镜像存在的安全风险。最后以1个含有木马病毒的镜像为例,通过对比镜像文件的变化,分析了非法篡改镜像的过程,最后简要介绍了镜像漏洞扫描器的工作原理。

2容器镜像及其特点

Docker镜像是容器运行的模板,它含有启动

82 2022/09/DTPT

Docker容器所需要的文件系统及其内容,Docker镜像文件与Docker容器的配置文件共同构成了Docker容器的静态文件系统运行环境RootFS,镜像是容器的静态视角,而容器则是镜像的运行状态。容器镜像主要具有以下特点。

a)分层存储:Docker镜像采用分层存储的方式,每个镜像都由一系列的层文件(Layer)组成,这些文件按照一定顺序排列,不同镜像层可以共享底层镜像层文件,从而达到节省存储空间的目的。

b)写时复制:在未更改镜像文件时,所有的容器共享同样的镜像文件,当需要修改容器内容时,只需修改最上层的镜像文件。修改后的文件存储在容器的读写层,写时复制与分层存储一样,节省了存储空间。

c)内容寻址:内容寻址是指系统根据镜像内容的Hash值来索引镜像位置,在对镜像执行pull、push、load和save等操作时,可以通过Hash值验证镜像数据的完整性,内容寻址既提高了镜像的安全性,又降低了镜像名称冲突的可能。

d)联合挂载:Docker镜像通过联合挂载技术实现多层文件的叠加,如AUFS、OverlayFS等。OverlayFS将Linux主机上的2个目录合并成1个目录,对外提供一个统一的视角,如图1所示。下层目录为只读的镜像层。上层目录为可写的容器层。合并对外展示的统一视图称为merged层,在合并后的视图中,上层目录会覆盖下层目录的内容。当需要修改一个文件时,通过写时复制技术将文件从只读的lowerdir复制到可写的upperdir,进行修改后保存在upperdir层。

式启动,镜像在容器中默认的存储位置是/var/lib/regis?try,通过-v命令将该目录挂载到本地/var/lib/registry,该目录包括blobs和repositories2个目录,其中blobs目录存储镜像文件,repositories目录存储镜像元数据,镜像元数据与镜像文件被设计成独立隔离存储。以ubuntu:16.04镜像为例,当registry中存储该镜像后,目录blobs和repositories存储的具体内容如图2所示。

manifest文件是存储在registry中作为Docker镜像的元数据文件,在镜像pull、push、save和load中作为镜像结构和基础信息描述文件,当镜像被pull到宿主机时,manifest被转化为本地镜像的配置文件。在存储镜像元数据文件的目录repositories中,_layers目录下link文本文件指向blobs目录下与之对应的data文件,而

_manifests目录包含镜像revisions和tags信息,其中的

current/link文件链接到镜像的manifest文件。

blobs目录存储镜像文件,它是以data为名的压缩文件,目录名称为data的sha256数值,即在上文中所述的内容寻址,结果为64位16进制字符串。为了便于展示,此处缩减为12位字符串,

文档评论(0)

新思想与新技术 + 关注
实名认证
文档贡献者

新思想与新技术

1亿VIP精品文档

相关文档