docker扫描镜像

「这是我参与11月更文挑战的第15天,活动详情查看:2021最后一次更文挑战

Docker 和 Snyk 携手合作,通过为开发人员构建和部署安全容器提供一种简单而精简的方法,将安全性融入到开发工作流程中。容器安全跨越多个团队——开发人员、安全和运营。此外,还有适用于容器的多层安全性:

  • 容器镜像和运行在里面的软件
  • 容器、主机操作系统和同一主机上的其他容器之间的交互
  • 主机操作系统
  • 容器网络和存储

在 Docker 平台中包含漏洞扫描选项扩展了现有的、熟悉的漏洞检测过程,并允许在开发过程的早期修复漏洞。简单而持续的检查过程,例如,通过使用Snyk Advisor在后台检查图像,可以减少检查到 Docker Hub 的漏洞。这可以导致更短的 CI 周期和更可靠的生产部署。

扫描图片 您可以通过将映像推送到 Docker Hub 来自动触发扫描。您可以通过docker scanCLI 中的命令或通过 Docker Hub实现此目的。

使用 CLI 扫描 在构建映像之后,在将映像推送到 Docker Hub 之前,运行该docker scan命令。有关如何使用 CLI 扫描图像的详细说明,请参阅docker scan。

使用 Docker Hub 扫描 您可以通过 Docker Hub 触发扫描、查看和检查漏洞。

在 Docker Desktop 中查看扫描摘要 Docker 桌面在 Docker 仪表板上为您提供漏洞状态的快照。将鼠标悬停在图像上并单击在 Hub中查看以查看 Docker Hub 中的详细漏洞报告。

最佳实践 作为开发人员,您可以通过几个简单的步骤来提高容器的安全性。这包括:

从可信赖的来源中选择正确的基础映像并保持较小 使用多阶段构建 重建图像 在开发过程中扫描图像 在生产过程中扫描图像 现在,让我们详细看看这些最佳实践中的每一个:

选择正确的基础图片 实现安全映像的第一步是选择正确的基础映像。选择映像时,请确保它是从可信来源构建的,并保持较小。

Docker Hub 拥有超过 830 万个存储库。其中一些镜像是官方镜像,由 Docker 发布为一组精选的 Docker 开源和嵌入式解决方案存储库。Docker 还提供由Verified Publishers 发布的镜像。这些高质量图像由与 Docker 合作的组织发布和维护,Docker 会验证其存储库中内容的真实性。选择基本图片时,请注意官方图片和经过验证的发布商徽章。

从 Dockerfile 构建自己的映像时,请确保选择符合您要求的最小基础映像。较小的基础映像不仅提供可移植性和快速下载,而且还缩小了映像的大小并最大限度地减少了通过依赖项引入的漏洞数量。

我们还建议您使用两种类型的基础映像:第一个映像用于开发和单元测试,第二个映像用于在开发和生产的最新阶段进行测试。在开发的后期阶段,您的映像甚至可能不需要一些构建工具,例如编译器、构建系统或任何调试工具。具有最小依赖性的小图像可以显着降低攻击面。

使用多阶段构建 多阶段构建旨在创建易于阅读和维护的优化 Dockerfile。通过多阶段构建,您可以使用多个图像并有选择地仅复制特定图像所需的工件。

您可以FROM在 Dockerfile 中使用多个语句,并且可以为每个FROM. 您还可以有选择地将工件从一个阶段复制到另一个阶段,从而在最终图像中留下您不需要的东西。这可以产生简洁的最终图像。

这种创建微小图像的方法不仅显着降低了复杂性,而且还改变了在图像中实施易受攻击的工件。因此,多阶段构建允许您“挑选”您的工件,而不是从它们所依赖的基础镜像中继承漏洞,而不是构建在镜像上的镜像,而后者再次构建在其他镜像上。

おすすめ

転載: juejin.im/post/7032649900500353037