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

正如您所看到的,它不仅仅告诉您发现的漏洞数量。向上滚动仍然会向您显示它们是什么以及它们的重要性,但它还会为您提供有关应使用的基本图像的建议。
漏洞详细信息也可以在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 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 镜像中最常见的漏洞。




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

