zhcn 技术 游戏 使用 Snyk 查找 Docker 镜像中的漏洞的最简单方法

使用 Snyk 查找 Docker 镜像中的漏洞的最简单方法

Snyk 是一个专门分析基础设施配置文件中代码漏洞的编辑器,包括容器和应用程序包中的漏洞。

Snyk首先提供云平台,但他们还提供各种产品。

Snyk OpenSource通过编辑器的 CLI 集成到您的 Git 流程中。启动后,该软件会检测漏洞,按敏感度对其进行分类,并自动修复已知的安全错误。此功能可以合并到您的拉取请求周期中,以应用于提交到存储库的代码。

另一方面, Snyk 基础设施即代码分析漏洞并在 JSON 和 YAML Kubernetes 配置文件中修复它们。在这里,您可以使用规则引擎根据管理员确定的参数配置 Git 存储库中检测的敏感度。

Snyk Container允许您在创建期间和创建之后测试 Docker 映像和关联的注册表。该程序可以与 CLI、SCM、CI 工具、容器注册表和 Kubernetes 集成。

斯尼克容器
斯尼克容器
斯尼克容器

今天我们来看看如何使用Docker内置的Snyk Container来检测漏洞。

示例 docker 文件

要使用Snyk检测漏洞,首先需要一个Docker镜像。此示例使用以下 Docker 映像。

 FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
EXPOSE 8000 CMD
[“python”, “app.py”]

您需要做的第一件事是使用以下命令在本地生成图像:

 docker build -t 0xyz0/python-app.

现在我们有一个图像需要分析。

从 Docker 客户端扫描镜像

将 Snyk 服务与 Docker 集成使这个过程变得异常简单。要开始扫描,只需运行以下命令:

 docker scan 0***0/python-app

它首先进行分析,然后根据检测到的漏洞返回或多或少的广泛输出,从而给出最终概述。

Docker 扫描显示镜像中的所有漏洞

正如您所看到的,它不仅仅告诉您发现的漏洞数量。向上滚动仍然会向您显示它们是什么以及它们的重要性,但它还会为您提供有关应使用的基本图像的建议

漏洞详细信息也可以在Snyk 漏洞数据库中找到。

就我而言,我使用第一个选项来修改 Dockerfile,因为它提供了多种替代方案。

 FROM python:3.7.11-slim

ADD . /code

WORKDIR /code

RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["python", "app.py"]

重建并扫描图像后我得到:

 docker build -t 0***0/python-app . && docker scan 0***0/python-app

您可以看到输出显示的漏洞较少。在这种情况下,您知道您现在使用的是更安全的基础映像。

Docker 扫描可确保您使用最安全的基础镜像

您还可以通过将生成图像的 docker 文件添加到命令中来获取更详细的报告。

 docker scan -f Dockerfile 0***0/python-app

如果您想重点关注问题所在,您还可以从分析中排除基本映像。

 docker scan -f Dockerfile --exclude-base 0***0/python-app

该服务还可以与 Docker Hub 存储库集成。

但是,要执行此操作,您将需要付费订阅之一。但是,您可以使用免费计划(具有明确的扫描限制)在本地启动它,只需登录 Docker Hub。另一方面,它也可以在开发过程中或当您想确保所需的第三方映像安全时使用。使用。

将 Snyk 与 Github Actions 结合使用

要做的第一件事是创建一个存储库并在其中创建一个文件夹。

 .github / worflows /

接下来,要在 Github 上使用 Snyk Container,请创建一个新映像或获取在 Docker Hub 上创建的映像。要使用 Snyk,您需要创建一个名为 SNYK_TOKEN 的新密钥,并获取使用 Snyk 创建帐户所需的令牌。 “API Token”显示在“常规设置”下,可以立即生成。

令牌允许您在 Github 上创建秘密并在操作中使用它们。此处需要传递在 Docker Hub 中创建的存储库的名称。接下来我们需要传递要发送的消息。您可以访问该步骤的输出并将其用作消息中的变量。

 with:
args: 'A new commit has been pushed. Please verify github action:
| worflow $ {{fromJson (steps.repo.outputs.result) .html_url}} / actions
| Exec: $ {{steps.prep.outputs.created}}
| Version: $ {{steps.prep.outputs.version}} '

我如何运行整个工作流程?简单,只需按 master 即可。 Github Action 检测 .github/workflows/ 中的文件。

最后的话👈

随着容器的日益普及,安全漏洞事件变得越来越常见,其中大多数是由于容器部署中的配置错误造成的。 Snyk 提供高效且简单的工具来帮助避免错误配置并检测 Docker 镜像中最常见的漏洞。

通俗易懂的讲解《使用Snyk查找Docker镜像漏洞的最简单方法》!您必须观看的 2 个最佳视频

Docker と Snyk を使用してコンテナ イメージの脆弱性を見つけて修正する
https://www.youtube.com/watch?v=e607Eitd2zM&pp=ugMICgJqYRABGAHKBV8gU255ayDjgpLkvb_nlKjjgZfjgaYgRG9j a2VyIOOCpOODoeODvOOCuOOBruiEhuW8seaAp-OCkuimi-OBpOOBkeOCi-acgOOCguewoeWNmOOBquaWueazlSZobD1KQQ%3D%3D
オープンソースコミュニティの脆弱性修正に貢献し、Big FixでSnykオリジナルTシャツをゲットしよう!
https://www.youtube.com/watch?v=mFZ59bL49AE&pp=ygVfIFNueWsg44KS5L2_55So44GX44GmIERvY2tlciD jgqTjg6Hjg7zjgrjjga7ohIblvLHmgKfjgpLopovjgaTjgZHjgovmnIDjgoLnsKHljZjjgarmlrnms5UmaGw9SkE%3D

Snyk 是一个专门分析基础设施配置文件中代码漏洞的编辑器,包括容器和应用程序包中的漏洞。

Snyk首先提供云平台,但他们还提供各种产品。

Snyk OpenSource通过编辑器的 CLI 集成到您的 Git 流程中。启动后,该软件会检测漏洞,按敏感度对其进行分类,并自动修复已知的安全错误。此功能可以合并到您的拉取请求周期中,以应用于提交到存储库的代码。

另一方面, Snyk 基础设施即代码分析漏洞并在 JSON 和 YAML Kubernetes 配置文件中修复它们。在这里,您可以使用规则引擎根据管理员确定的参数配置 Git 存储库中检测的敏感度。

Snyk Container允许您在创建期间和创建之后测试 Docker 映像和关联的注册表。该程序可以与 CLI、SCM、CI 工具、容器注册表和 Kubernetes 集成。

斯尼克容器
斯尼克容器
斯尼克容器

今天我们来看看如何使用Docker内置的Snyk Container来检测漏洞。

示例 docker 文件

要使用Snyk检测漏洞,首先需要一个Docker镜像。此示例使用以下 Docker 映像。

 FROM python:3.4-alpine
ADD . /code
WORKDIR /code
RUN pip install -r requirements.txt
EXPOSE 8000 CMD
[“python”, “app.py”]

您需要做的第一件事是使用以下命令在本地生成图像:

 docker build -t 0xyz0/python-app.

现在我们有一个图像需要分析。

从 Docker 客户端扫描镜像

将 Snyk 服务与 Docker 集成使这个过程变得异常简单。要开始扫描,只需运行以下命令:

 docker scan 0***0/python-app

它首先进行分析,然后根据检测到的漏洞返回或多或少的广泛输出,从而给出最终概述。

Docker 扫描显示镜像中的所有漏洞

正如您所看到的,它不仅仅告诉您发现的漏洞数量。向上滚动仍然会向您显示它们是什么以及它们的重要性,但它还会为您提供有关应使用的基本图像的建议

漏洞详细信息也可以在Snyk 漏洞数据库中找到。

就我而言,我使用第一个选项来修改 Dockerfile,因为它提供了多种替代方案。

 FROM python:3.7.11-slim

ADD . /code

WORKDIR /code

RUN pip install -r requirements.txt

EXPOSE 8000

CMD ["python", "app.py"]

重建并扫描图像后我得到:

 docker build -t 0***0/python-app . && docker scan 0***0/python-app

您可以看到输出显示的漏洞较少。在这种情况下,您知道您现在使用的是更安全的基础映像。

Docker 扫描可确保您使用最安全的基础镜像

您还可以通过将生成图像的 docker 文件添加到命令中来获取更详细的报告。

 docker scan -f Dockerfile 0***0/python-app

如果您想重点关注问题所在,您还可以从分析中排除基本映像。

 docker scan -f Dockerfile --exclude-base 0***0/python-app

该服务还可以与 Docker Hub 存储库集成。

但是,要执行此操作,您将需要付费订阅之一。但是,您可以使用免费计划(具有明确的扫描限制)在本地启动它,只需登录 Docker Hub。另一方面,它也可以在开发过程中或当您想确保所需的第三方映像安全时使用。使用。

将 Snyk 与 Github Actions 结合使用

要做的第一件事是创建一个存储库并在其中创建一个文件夹。

 .github / worflows /

接下来,要在 Github 上使用 Snyk Container,请创建一个新映像或获取在 Docker Hub 上创建的映像。要使用 Snyk,您需要创建一个名为 SNYK_TOKEN 的新密钥,并获取使用 Snyk 创建帐户所需的令牌。 “API Token”显示在“常规设置”下,可以立即生成。

令牌允许您在 Github 上创建秘密并在操作中使用它们。此处需要传递在 Docker Hub 中创建的存储库的名称。接下来我们需要传递要发送的消息。您可以访问该步骤的输出并将其用作消息中的变量。

 with:
args: 'A new commit has been pushed. Please verify github action:
| worflow $ {{fromJson (steps.repo.outputs.result) .html_url}} / actions
| Exec: $ {{steps.prep.outputs.created}}
| Version: $ {{steps.prep.outputs.version}} '

我如何运行整个工作流程?简单,只需按 master 即可。 Github Action 检测 .github/workflows/ 中的文件。

最后的话👈

随着容器的日益普及,安全漏洞事件变得越来越常见,其中大多数是由于容器部署中的配置错误造成的。 Snyk 提供高效且简单的工具来帮助避免错误配置并检测 Docker 镜像中最常见的漏洞。

通俗易懂的讲解《使用Snyk查找Docker镜像漏洞的最简单方法》!您必须观看的 2 个最佳视频

Docker と Snyk を使用してコンテナ イメージの脆弱性を見つけて修正する
https://www.youtube.com/watch?v=e607Eitd2zM&pp=ugMICgJqYRABGAHKBV8gU255ayDjgpLkvb_nlKjjgZfjgaYgRG9j a2VyIOOCpOODoeODvOOCuOOBruiEhuW8seaAp-OCkuimi-OBpOOBkeOCi-acgOOCguewoeWNmOOBquaWueazlSZobD1KQQ%3D%3D
オープンソースコミュニティの脆弱性修正に貢献し、Big FixでSnykオリジナルTシャツをゲットしよう!
https://www.youtube.com/watch?v=mFZ59bL49AE&pp=ygVfIFNueWsg44KS5L2_55So44GX44GmIERvY2tlciD jgqTjg6Hjg7zjgrjjga7ohIblvLHmgKfjgpLopovjgaTjgZHjgovmnIDjgoLnsKHljZjjgarmlrnms5UmaGw9SkE%3D