译者 | 陈峻
审校 | 重楼
近年来,随着网络威胁的增加,容器化设置中的漏洞逐渐给各类应用程序带来不同程度的安全风险。特别是随着 DevOps 领域的不断发展,各种容器的使用频率也逐步攀升,这让各类安全漏洞也逐渐成为了话题中的焦点。
而旨在提高容器安全性的高级工具--Docker Scout,通过支持漏洞检测、软件物料清单( Software Bill of Materials,SBOM)的生成、以及策略的实施,从而保护 Docker 容器的生命周期,进而使之更简化和更有效。
下面,我将和你讨论 Docker Scout 的基本工作流,如何对其配置、以及其他特定功能技巧的演示。同时,你也可以了解到如何将 Docker Scout 集成到自己的 DevOps 工作流中。
了解 Docker Scout
作为一款安全必备的工具箱,Docker Scout 可以通过与 Docker 的无缝集成,协助你进行漏洞分析、依赖关系和合规性研判,进而最大限度地提高容器的安全性。
在使用过程中,Docker Scout 可以扫描容器的镜像,以识别漏洞。同时,它也会创建 SBOM,并遵循安全策略。借助 Docker Scout的监控,容器化应用的风险将变得易于管理且简单明了。
Docker Scout 的工作流
如图所示, Scout 使得用户能够通过跟踪他们的 Docker 镜像以扫清漏洞。同时,它可以被轻松地集成到工作流程中,以实时扫描的方式提供有关目标容器中软件组件的更多详细信息。当然,它也可以通过生成SBOM,来确保不包含任何易受攻击的代码片段,进而允许用户跟踪和评估目标应用程序中嵌入的所有组件和依赖项。
此外,由于Docker Scout 的策略实施功能可以验证容器的镜像是否被“锁定(locked-in)”。因此,它可以帮助开发团队遵守行业的最佳实践,进而轻松、主动地保护容器化的应用。
Docker Scout 的主要特点
- 漏洞扫描:Docker Scout 可以检测容器中的已知漏洞。
- 生成SBOM:Docker Scout 能够生成详细的软件物料清单。
- 策略实施:Docker Scout 会确保你的镜像符合既定的安全标准。
因此,如果Docker Scout 能够被恰当地集成到现有的软件工具和工作流中,将能在 Docker 生态系统中良好运行,可以在不减慢开发速度的情况下,简化容器的安全性。
如何设置 Docker Scout?
Docker Scout 的设置
Docker Scout 设置起来既快速又简单。以下是最常见的入门步骤:
先决条件和安装
在安装Docker Scout之前,请确保你的Docker能够按预期运行起来,以便Docker Scout与Docker桌面或Docker引擎配合使用。若要安装Docker Scout,请运行以下命令:
这将安装Docker Scout及其所有依赖项。至此,你已为扫描镜像做好了准备。
首次运行扫描
请使用以下命令运行第一次扫描。
完成后,它将为你的镜像快速提供安全概述。例如,若要扫描自己的应用请输入:
此命令将扫描你的Docker镜像,并提供漏洞和合规性问题的摘要。
解读扫描结果
Docker Scout的扫描结果会以章节形式呈现。其中:
- 漏洞部分:显示了在镜像中发现的任何CVE。
- SBOM部分:显示了镜像的软件物料清单。
- 策略违规部分:列出任何被发现的违反安全策略的地方。
这些结果有助于你了解Docker镜像的安全状态。下面,我们来详细了解Docker Scout的关键性功能是如何保护容器镜像的:
漏洞扫描
漏洞扫描的工作流
为了在镜像中查找已知的漏洞,Docker Scout会扫描每个包,并将其与CVE数据库进行核对。当找到匹配项时,它会标记危险并显示其严重程度、以及修复方法。这有助于在将问题镜像投入生产环境之前,提前予以处理。
SBOM
Docker Scout为每个扫描的镜像生成一个唯一的SBOM。它概述了形成镜像的所有软件组件。
SBOM可用于跟踪所有的依赖关系,以方便识别那些存在于第三方软件包中的漏洞。这对于提高供应链安全性和镜像的完整性都是至关重要的。
安全策略和补救建议
你可以使用Docker Scout来设置安全策略(例如可接受的漏洞评级),以及确定潜在的风险。如果镜像违反了相关策略,Docker Scout会提出采取补救措施,以便你在部署容器之前,为其建立最佳的安全实践。
将Docker Scout集成到CI/CD管道中
为了自动化CI/CD管道中的安全检查,你可以将Docker Scout集成到DevOps工作流,以便从一开始就确保安全性成为管道的一部分。
将Docker Scout与GitHub Actions/GitLab CI结合使用
Docker Scout与Github集成
将Docker Scout与GitHub Actions或GitLab CI相集成,可以自动化构建过程中的安全性。例如,在GitHub Actions中,你可以对每次推送都执行Docker Scout扫描,以确保镜像在部署前的安全性。
以下是针对GitHub Actions的基本配置:
此配置会在每次将更改推送到 main 分支时,运行安全扫描。
在部署之前自动执行安全检查
将 Docker Scout 引入 CI/CD 管道,将有助于及早发现安全问题。也就是说,在每一次构建或更新镜像时,Docker Scout 都会对其进行扫描,如果发现漏洞,则构建失败。此举可以有效地防止将不安全的镜像部署到生产环境中。
以下是 GitLab CI 的配置示例:
通过此设置,Docker Scout 将作为构建过程的一部分自动运行。
安全容器镜像开发的最佳实践
虽然 Docker Scout 有助于识别漏洞,但我们仍需配合从如下方面来降低安全风险。
减少攻击面
最大限度地减少镜像中的依赖项数量,毕竟包含的库越少,潜在漏洞也就越少。可使用类似 Alpine 这样的最小基础镜像,并且仅包含基本组件。
定期更新和修补
容器安全是一项持续的工作,请定期更新你的镜像,以包含最新的补丁。当然,Docker Scout 也有助于跟踪漏洞,方便你掌握必要的更新。
利用 Docker Scout 的洞见
请使用 Docker Scout 的洞见来持续改进你的安全态势。这包括:查看漏洞报告,参考修复建议,并定期更新你的策略。毕竟,持续扫描和改进能够及时验证你的镜像是否安全。
常见问答
- Docker Scout 如何检测 Docker 镜像中的漏洞?
- Docker Scout 会扫描容器镜像,以查找已知的 CVE。它是通过将镜像的组件与 CVE 数据库进行比对来实现。
- 可以将 Docker Scout 集成到 CI/CD 管道中吗?
- 是的,Docker Scout 可以与 CI/CD 管道无缝集成。例如,它可与 GitHub Actions 和 GitLab CI 相结合,在构建过程中运行自动安全扫描。
- Docker Scout 中的SBOM是什么?
- SBOM 可以跟踪 Docker 镜像中存在的所有软件组成部分和依赖项,进而帮助开发者监控容器与外部库相关联的漏洞。
- 如何配置 Docker Scout 以实施安全策略?
- 通过在 Docker Scout 中自定义安全策略,以实施诸如:判定漏洞严重性级别,加固依赖项的最低补丁版本等策略。
- 如果 Docker Scout 在镜像中发现漏洞,应该如何处置?
- Docker Scout 不但能突出显示现有的漏洞,而且可以提供严重性评级。开发者应该根据所提供的修复步骤,在容器部署之前及时解决发现的问题。
小结
作为一种提供容器安全的工具,Docker Scout 能够自动检查和扫描漏洞并执行策略,从而帮助 DevOps 团队改进 Docker 对其镜像的整体保护。同时,将 Docker Scout 实施到现有的 CI/CD 管道中,也可以确保开发流程中的安全构建。
此外,Docker Scout 也能赋能用户主动纠正可能违规的软件行为,确保在开发的整个生命周期中遵循既定的策略。而在效率上,Docker Scout 则能够让用户在几个小时内构建、测试和部署出安全的应用,从而大幅提高了生产力。
译者介绍
陈峻(Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验。
原文标题:Your Docker Containers Are Probably Full of Security Holes—Here’s How to Fix Them Now,作者:Advait Patel