如何修复 Docker 映像中的严重漏洞?

问题描述 投票:0回答:2

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

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
2个回答
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 update
之前运行
apk add
看看它是否引入了正确的版本?


-1
投票

如果是预装的软件和库,则可以使用

apk update
命令。理想情况下,您可以更好地控制,并告诉 apk 安装特定更新,例如:

apk add "your_package_name>=VERSION-SUFFIX"

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

此外,如果您注重安全,我建议您不要仅仅寻找安全漏洞。过时的图像,但也有。配置。我看到那里正在使用 Nginx,并遵循例如还建议使用 CIS 基准测试。

© www.soinside.com 2019 - 2024. All rights reserved.