
deepfenceio/deepfence_secret_scanner。它能帮助用户检测因开发周期中的疏忽或不当安全策略导致的密钥泄露问题,并输出包含所有发现密钥详情的 JSON 文件,从而降低组织基础设施的安全风险。
密钥是任何类型的敏感或私有数据,授权用户可通过其访问组织的关键 IT 基础设施(如账户、设备、网络、云服务)、应用程序、存储、数据库及其他关键数据。例如,密码、AWS 访问 ID、AWS 密钥、Google OAuth 密钥等均属于密钥。密钥应严格保密,但由于安全策略缺陷或开发人员的疏忽,***者可能轻易获取密钥。开发人员有时会在容器镜像中使用默认密钥或硬编码密钥(如密码、API 密钥、加密密钥、SSH 密钥、令牌等),尤其是在 CI/CD 流水线的快速开发和部署周期中。此外,用户有时会以明文形式存储密码。密钥泄露给未授权实体可能给组织和基础设施带来严重安全风险。
$ ./SecretScanner --help Usage of ./SecretScanner: -config-path string 从指定目录搜索config.yaml配置文件。若未设置,将尝试从SecretScanner二进制文件目录和当前目录查找 -debug-level string 调试级别包括FATAL、ERROR、IMPORTANT、WARN、INFO、DEBUG。仅显示高于指定级别的日志(默认"ERROR") -image-name string 要扫描密钥的镜像名称(含标签) -json-filename string 输出JSON文件名。若未设置,将根据镜像或目录名称自动生成 -local string 指定要扫描的本地目录(绝对路径),递归扫描该目录 -max-multi-match uint 单个文件中同一模式的最大匹配次数。仅在启用multi-match选项时生效(默认3) -max-secrets uint 单个容器镜像或文件系统中最多可发现的密钥数量(默认1000) -maximum-file-size uint 要处理的最大文件大小(KB)(默认256) -multi-match 输出单个文件中同一模式的多个匹配项。默认仅输出一个匹配项以提高性能 -output-path string JSON文件的输出目录。若未设置,将输出到当前目录 -temp-directory string 用于处理和存储仓库/匹配结果的目录(默认"/tmp") -threads int 并发线程数(默认逻辑CPU数量) -socket-path string gRPC服务器套接字路径
安装Docker后,可通过以下步骤使用SecretScanner扫描容器镜像:
shell./bootstrap.sh docker build --rm=true --tag=deepfenceio/deepfence_secret_scanner:latest -f Dockerfile .
shelldocker pull deepfenceio/deepfence_secret_scanner:latest
shelldocker pull node:8.11
扫描容器镜像:
shelldocker run -it --rm --name=deepfence-secretscanner -v $(pwd):/home/deepfence/output -v /var/run/docker.sock:/var/run/docker.sock -v /run/containerd/containerd.sock:/run/containerd/containerd.sock deepfenceio/deepfence_secret_scanner:latest -image-name node:8.11
扫描本地目录:
shelldocker run -it --rm --name=deepfence-secretscanner -v /:/deepfence/mnt -v $(pwd):/home/deepfence/output -v /var/run/docker.sock:/var/run/docker.sock -v /run/containerd/containerd.sock:/run/containerd/containerd.sock deepfenceio/deepfence_secret_scanner:latest -host-mount-path /deepfence/mnt -local /deepfence/mnt
shelldocker run -it --rm --name=deepfence-secretscanner -v $(pwd):/home/deepfence/output -v /var/run/docker.sock:/var/run/docker.sock -v /run/containerd/containerd.sock:/run/containerd/containerd.sock -v /tmp/sock:/tmp/sock deepfenceio/deepfence_secret_scanner:latest -socket-path /tmp/sock/s.sock
扫描容器镜像:
shellgrpcurl -plaintext -import-path ./agent-plugins-grpc/proto -proto secret_scanner.proto -d '{"image": {"name": "node:8.11"}}' -unix '/tmp/sock/s.sock' secret_scanner.SecretScanner/FindSecretInfo
扫描本地目录:
shellgrpcurl -plaintext -import-path ./agent-plugins-grpc/proto -proto secret_scanner.proto -d '{"path": "/tmp"}' -unix '/tmp/sock/s.sock' secret_scanner.SecretScanner/FindSecretInfo
默认情况下,SecretScanner会在当前工作目录生成包含密钥详情的JSON文件。可通过相应选项显式指定输出目录和JSON文件名。注意,上述命令中也可使用nerdctl替代docker。
gohs、yaml.v3和colorgo get github.com/deepfence/SecretScanner会自动下载并在$GOPATH/bin或$HOME/go/bin目录构建SecretScanner;或克隆仓库后运行go build -v -i在当前目录生成可执行文件有关在Ubuntu系统上构建的参考命令,可查看Install文件。
shell./SecretScanner --help ./SecretScanner -config-path /path/to/config.yaml/dir -local test ./SecretScanner -config-path /path/to/config.yaml/dir -image-name node:8.11
shell./SecretScanner -socket-path /path/to/socket.sock
发送请求的方法参见上文“使用Docker快速尝试”部分。
本工具基于shhgit项目的配置文件构建。
本工具不得用于黑客行为。请仅将其用于合法目的,如检测您拥有的基础设施上的密钥,而非他人的基础设施。对于因SecretScanner在任何用途中的不足或缺陷直接或间接导致的利润损失、业务损失、其他经济损失或任何其他损失或损害,DEEPFENCE不承担责任。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务