【问题标题】:How do I remediate a critical vulnerability in my Docker image?如何修复 Docker 映像中的严重漏洞?
【发布时间】:2022-08-23 00:41:57
【问题描述】:

我的 Dockerfile 很简单,代码如下。它是一个 Angular 应用程序。将代码合并到我的主分支 CodePipeline 接管后,CodeBuild 将构建映像并推送到 ECR,CodeDeploy 将使用该映像部署 ECS Fargate 任务。一切正常。但此图像有 1 个严重漏洞。 CVE-2021-22945 - curl

node14:14182alpine312 基本构建自:FROM node:14.18.2-alpine3.12 nginx:latest 是从 FROM nginx:latest 构建的

FROM <awsaccountid>.dkr.ecr.<region>.amazonaws.com/node14:14182alpine312 as builder

WORKDIR /app

COPY ./hello-world-web/ /app/

RUN apk add --no-cache git

RUN npm install

RUN npm run build

FROM <awsaccountid>.dkr.ecr.<region>.amazonaws.com/nginx:latest

COPY --from=builder /app/dist/hello-world-web /usr/share/nginx/html

COPY --from=builder /app/nginx.conf  /etc/nginx/conf.d/default.conf

EXPOSE 80

扫描 ECR Repo 的工具提到该漏洞位于第 0 层。我可以在构建可以修复此问题的映像时运行任何脚本吗?单独的节点和 nginx 映像没有此严重漏洞。似乎可以在运行 npm install 时引入它。非常感谢任何补救此问题的帮助。

    标签: docker security dockerfile


    【解决方案1】:

    我看到 libcurl 被apk add git 拉进来(点击“依赖”):https://pkgs.alpinelinux.org/package/edge/main/x86/git

    但在 alpine 3.12 上,libcurl 版本是 7.79.1,不受 CVE 影响:https://nvd.nist.gov/vuln/detail/CVE-2021-22945

    也许在apk add 之前运行apk update 并查看它是否引入了正确的版本?

    【讨论】:

      【解决方案2】:

      如果是预安装的软件和库,apk update 命令可能会起作用。理想情况下,您可以更好地控制,并告诉 apk 安装特定更新,例如说

      apk add "your_package_name>=VERSION-SUFFIX"
      

      不用说,你可能会遇到依赖地狱,但根据我的经验,这种情况很少发生。

      另外,如果您对安全负责,我建议您也不要只寻找安全漏洞。过时的图像,但也wrt。配置。我看到那里正在使用 Nginx,并遵循例如还推荐CIS benchmarks。有一些开源工具可以帮助你(例如CoGuard

      【讨论】:

        猜你喜欢
        • 2022-12-19
        • 2021-08-14
        • 1970-01-01
        • 1970-01-01
        • 2021-08-01
        • 2022-01-17
        • 2021-08-20
        • 2020-02-15
        • 1970-01-01
        相关资源
        最近更新 更多