docker pull
由Trevor Jay撰写
除了隔离容器固有的一般挑战之外,Docker还以其自动获取和安装机制“ docker pull”的形式带来了全新的攻击面。 这可能是违反直觉的,但是“ docker pull”在一个步骤中同时获取和解压缩容器映像。 没有验证步骤,而且令人惊讶的是,格式错误的程序包可能损害系统,即使容器本身从未运行过。 CVE针对Docker的许多问题都与打包有关,打包可能导致安装时妥协和/或Docker注册表问题。
现在解决的这种恶意问题可能危害系统的方法是在解压缩步骤中通过简单的路径遍历。 通过简单地使用压缩包的功能来解压缩到诸如“ ../../../”之类的路径,恶意映像便能够覆盖所需的主机文件系统的任何部分。
因此,使用Docker映像时保护自己的最重要方法之一就是确保仅使用可信任来源中的内容,并分开下载和解压缩/安装步骤。 最简单的方法就是不使用“ docker pull”命令。 而是从安全来源通过安全通道下载Docker映像,然后使用“ docker load”命令。 大多数图像提供者还直接通过安全或至少可验证的连接来提供图像。 例如,红帽提供了SSL可访问的“容器映像”。 Fedora还为每个发行版提供Docker映像。
尽管Fedora并未为SSL提供所有镜像,但它确实提供了Docker映像的签名校验和,可用于在使用“ docker load”之前对其进行验证。
由于“ docker pull”会自动解压缩映像,并且此解压缩过程本身通常会受到危害,因此错别字可能会导致系统受损(例如,在您打算“ rhel”时下载并解压缩了恶意的“ rel”映像)。 Dockerfiles中也可能出现此错字问题。 保护自己的一种方法是,防止在防火墙级别意外访问index.docker.io或通过添加以下/ etc / hosts条目:
127.0.0.1 index.docker.io
这将导致此类错误超时,而不是潜在地下载不需要的图像。 您仍然可以通过显式提供注册表来对私有存储库使用“ docker pull”:
docker pull registry.somewhere.com/image
您可以在Dockerfiles中使用类似的语法:
from registry.somewhere.com/image
Docker是一项了不起的技术,但它既不是安全性也不是互操作性的灵丹妙药。 图像仍然需要来自证明其安全性,支持级别和兼容性的来源。
最初发布在Red Hat Security Blog上 。 经许可重新发布。
翻译自: https://opensource.com/business/14/12/steps-to-initiate-docker-pull
docker pull