使用Boto3调用ECR describe_image_scan_findings()未返回预期字段问题排查
问题解答
你的推测成立
当ECR镜像扫描后未发现任何漏洞时,describe_image_scan_findings的响应会省略findingSeverityCounts、imageScanCompletedAt等字段,仅返回空的findings数组。官方文档中的响应结构是所有可能存在的字段集合,而非每次调用都会返回全部字段,无对应数据的字段会被自动忽略。结合你在Inspector控制台也看不到漏洞记录的情况,确实是镜像本身无漏洞导致的。
生成带漏洞的测试镜像方法
以下几种方式可以快速生成含已知漏洞的镜像用于测试:
1. 使用停止维护的旧版基础镜像
选择不再更新安全补丁的旧版本操作系统镜像,这类镜像通常包含大量未修复的漏洞:
# 基于Ubuntu 18.04(已停止官方支持)构建 FROM ubuntu:18.04 RUN apt-get update && apt-get install -y nginx
2. 手动安装已知有漏洞的软件包
在Dockerfile中指定安装存在明确CVE记录的旧版本软件:
FROM debian:10 # 安装存在CVE-2021-37600漏洞的旧版本curl RUN apt-get update && apt-get install -y curl=7.64.0-4+deb10u2
3. 使用现成的漏洞测试镜像
直接使用社区维护的专门用于漏洞测试的公开镜像,比如:
vulnerables/web-dvwa:包含Web应用漏洞测试环境vulnerables/cve-2017-7494:针对特定CVE的测试镜像
额外注意事项
- 镜像推送到ECR后,若自动扫描未触发,可通过Boto3调用
start_image_scan接口手动触发扫描 - 确认ECR仓库已开启镜像扫描功能(仓库配置中"Image scanning"需设为"Enabled")
内容的提问来源于stack exchange,提问作者Mitchell Privett
相关产品推荐
相关产品推荐

