DockerScan v2.0 是一款面向 Docker 容器和镜像的下一代安全扫描器,完全用 Go 语言重写。它基于最新 2024-2025 年的研究成果、行业标准(CIS Benchmark、NIST SP 800-190)以及生产环境中发现的真实攻击模式,整合了多种安全扫描技术。
包含 80 多项自动化检查的完整合规性检测:
基于真实的 2024 年攻击活动:
包含 40 多种密钥模式(2024 年更新):
关键 2024-2025 年 CVE 检测:
容器运行时加固检查:
DockerScan v2.0 是从头开始的完全重写。以下是 v1.x 的变更:
--from-file 标志 - 从本地文件安装 CVE 数据库(离线/隔离环境)-q) - 抑制横幅,适用于 CI/CD 管道预编译的二进制文件通过 GitHub Actions 为每个版本标签自动构建并发布。
支持的平台:
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -o dockerscan chmod +x dockerscan sudo mv dockerscan /usr/local/bin/
#### Linux (arm64)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-arm64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-amd64 -o dockerscan chmod +x dockerscan sudo mv dockerscan /usr/local/bin/
#### macOS (Apple Silicon)```bash
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-darwin-arm64 -o dockerscan
chmod +x dockerscan
sudo mv dockerscan /usr/local/bin/
Invoke-WebRequest -Uri "https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-windows-amd64.exe" -OutFile "dockerscan.exe"
#### 验证下载(可选但推荐)```bash
# Download checksums
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/checksums.txt -o checksums.txt
# Verify (Linux/macOS)
sha256sum -c checksums.txt --ignore-missing
git clone https://github.com/cr0hn/dockerscan cd dockerscan/dockerscan-v2
make build
sudo make install
go build -o bin/dockerscan ./cmd/dockerscan
### 选项三:Go 安装```bash
go install github.com/cr0hn/dockerscan/v2/cmd/dockerscan@latest
在扫描之前,下载CVE数据库(每日更新,压缩后约30MB):```bash
dockerscan update-db
> **提示**: 数据库每天通过 GitHub Actions 更新。请定期运行 `update-db` 以获取最新的 CVE 数据。
### 基本扫描```bash
# Scan a Docker image
dockerscan nginx:latest
# Scan with specific scanners
dockerscan --scanners cis,secrets ubuntu:22.04
# Scan and save reports
dockerscan alpine:latest --output /tmp/reports
# Quiet mode (suppress banner)
dockerscan -q nginx:latest
╔══════════════════════════════════════════════════════════════════════════╗ ║ ██████╗ ██████╗ ██████╗██╗ ██╗███████╗██████╗ ███████╗ ██████╗ █████╗ ███╗ ██╗ ║ ██╔══██╗██╔═══██╗██╔════╝██║ ██╔╝██╔════╝██╔══██╗██╔════╝██╔════╝██╔══██╗████╗ ██║ ║ ██║ ██║██║ ██║██║ █████╔╝ █████╗ ██████╔╝███████╗██║ ███████║██╔██╗ ██║ ║ ██║ ██║██║ ██║██║ ██╔═██╗ ██╔══╝ ██╔══██╗╚════██║██║ ██╔══██║██║╚██╗██║ ║ ██████╔╝╚██████╔╝╚██████╗██║ ██╗███████╗██║ ██║███████║╚██████╗██║ ██║██║ ╚████║ ║ ║ ║ Advanced Docker Security Scanner v2.0.0 ║ ║ ║ ║ Author: Daniel Garcia (cr0hn) ║ ║ Website: https://cr0hn.com ║ ╚══════════════════════════════════════════════════════════════════════════════════════╝
🔍 Scanning image: nginx:latest
═══════════════════════════════════════════════════════════════════ SCAN RESULTS ═══════════════════════════════════════════════════════════════════
📊 Summary: Total Findings: 47 Duration: 2.3s
🔴 By Severity: Critical: 8 High: 15 Medium: 18 Low: 6
📁 By Category: CIS-Benchmark: 12 Secrets: 8 Supply-Chain: 5 Vulnerability: 10 Runtime-Security: 12
📄 JSON report saved to: dockerscan-report.json 📄 SARIF report saved to: dockerscan-report.sarif
---
## 📖 用法
### 命令行选项```bash
dockerscan [COMMAND] [OPTIONS] <IMAGE>
Commands:
scan Scan a Docker image (default)
update-db Download or update the CVE database
Options: --from-file <path> Install from local SQLite file
version Show version information
help Show help message
Options:
-h, --help Show help message
-v, --version Show version
-q, --quiet Suppress banner output (quiet mode)
--scanners SCANNERS Comma-separated list of scanners to run
(default: all)
Options: cis,secrets,supplychain,vulnerabilities,runtime
--output DIR Output directory for reports (default: .)
--only-critical Show only critical/high severity findings
--verbose, -v Show scan progress (scanner names, findings count, image pull status). Output to stderr.
--debug Show verbose output plus internal errors and technical details. Output to stderr.
Authentication (for private registries):
--registry-user <username> Registry username
--registry-password <password> Registry password (not recommended, use env vars)
--registry <url> Registry URL (optional, auto-detected from image)
--docker-config <path> Path to Docker config file (default: ~/.docker/config.json)
Environment variables (recommended for CI/CD):
DOCKER_USERNAME or REGISTRY_USERNAME Registry username
DOCKER_PASSWORD or REGISTRY_PASSWORD Registry password or token
DOCKER_REGISTRY or REGISTRY Registry URL (optional)
Exit Codes:
0 No issues found
1 HIGH severity issues found
2 CRITICAL severity found
dockerscan myapp:latest
dockerscan --scanners secrets,supplychain redis:7
dockerscan --output /var/reports postgres:14
dockerscan --only-critical production-app:v1.0
dockerscan --verbose ubuntu:22.04
dockerscan --debug ubuntu:22.04
dockerscan ghcr.io/myorg/private-app:v1.0
### 🔐 私有仓库认证
DockerScan 支持三种与私有仓库进行认证的方法:
#### 方法一:Docker 配置文件(推荐本地使用)
最便捷的方法——使用你现有的 Docker 凭据:```bash
# First, authenticate with your registry using Docker
docker login ghcr.io
# Username: your-username
# Password: ghp_your-token-here
# Now DockerScan can use these credentials automatically
dockerscan ghcr.io/myorg/private-app:latest
DockerScan 会自动从 ~/.docker/config.json 读取凭据。这适用于您已使用 docker login 登录的所有注册表。
完全支持凭据助手。 DockerScan 原生通过以下方式解析凭据:
credsStore — 全局凭据助手(例如 macOS 上 Docker Desktop 的 osxkeychain,Windows 上的 wincred,Linux 上的 pass)credHelpers — 按注册表的凭据助手(优先级高于 credsStore)config.json 中的明文 auths 块在 macOS 上的 Docker Desktop 中,这无需额外配置即可直接使用:```json { "credsStore": "osxkeychain" }
DockerScan 会透明地调用 `docker-credential-osxkeychain` 来获取令牌,因此您无需显式传递凭据。
#### 方法 2:环境变量(推荐用于 CI/CD)
最适合自动化环境和 CI/CD 流水线:```bash
# Set environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=mytoken
# Scan private image
dockerscan ghcr.io/myorg/private-app:latest
# Or use alternative variable names
export REGISTRY_USERNAME=myusername
export REGISTRY_PASSWORD=mytoken
dockerscan myregistry.example.com/app:v1.0
CI/CD 示例(GitHub Actions):```yaml
#### 方法3:命令行参数(不推荐)
仅用于快速测试(凭据在进程列表中可见):```bash
dockerscan --registry-user myuser --registry-password mytoken ghcr.io/myorg/app:v1
安全警告: 此方法会将凭证暴露在你的 shell 历史记录和进程列表中。请改用环境变量或 Docker 配置。
docker login docker.io dockerscan myusername/private-repo:latest
export DOCKER_USERNAME=myusername export DOCKER_PASSWORD=dckr_pat_XXXXXXXXXXXXX dockerscan myusername/private-repo:latest
#### GitHub 容器注册表 (GHCR)```bash
# Using Docker config
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin
dockerscan ghcr.io/myorg/myapp:v1.0
# Using environment variables
export DOCKER_USERNAME=myusername
export DOCKER_PASSWORD=ghp_XXXXXXXXXXXXXXXXXXXX
dockerscan ghcr.io/myorg/myapp:v1.0
aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin
123456789012.dkr.ecr.us-east-1.amazonaws.com
dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest
export DOCKER_USERNAME=AWS export DOCKER_PASSWORD=$(aws ecr get-login-password --region us-east-1) dockerscan 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:latest
#### Google 容器注册表 (GCR) / 制品注册表```bash
# Authenticate with gcloud
gcloud auth configure-docker gcr.io
# Scan GCR image
dockerscan gcr.io/my-project/myapp:latest
# For Artifact Registry
gcloud auth configure-docker us-docker.pkg.dev
dockerscan us-docker.pkg.dev/my-project/my-repo/myapp:latest
# Or use service account JSON key
export DOCKER_USERNAME=_json_key
export DOCKER_PASSWORD="$(cat service-account-key.json)"
dockerscan gcr.io/my-project/myapp:latest
az acr login --name myregistry
dockerscan myregistry.azurecr.io/myapp:v1.0
export DOCKER_USERNAME= export DOCKER_PASSWORD= dockerscan myregistry.azurecr.io/myapp:v1.0
#### GitLab Container Registry```bash
# Using Docker config
docker login registry.gitlab.com
dockerscan registry.gitlab.com/mygroup/myproject/myapp:latest
# Using environment variables with deploy token
export DOCKER_USERNAME=gitlab+deploy-token-1
export DOCKER_PASSWORD=DEPLOY_TOKEN_HERE
dockerscan registry.gitlab.com/mygroup/myproject/myapp:latest
docker login myregistry.example.com:5000 dockerscan myregistry.example.com:5000/myapp:latest
export DOCKER_USERNAME=admin export DOCKER_PASSWORD=secret dockerscan myregistry.example.com:5000/myapp:latest
### 故障排除:身份验证
#### 常见问题
**1. "需要身份验证" 错误**```bash
# Make sure you're logged in
docker login <registry>
# Or set environment variables
export DOCKER_USERNAME=your-username
export DOCKER_PASSWORD=your-token
2. "未授权:认证失败" 错误
3. AWS ECR "授权令牌已过期"```bash
aws ecr get-login-password --region us-east-1 |
docker login --username AWS --password-stdin
123456789012.dkr.ecr.us-east-1.amazonaws.com
**4. Docker Hub 上的速率限制**
- 进行身份验证以提高速率限制(免费帐户每 6 小时 200 次拉取)
- 考虑使用 Docker Hub Pro 帐户以获得更高限制
**5. 自签名证书的证书错误**
- 将 CA 证书添加到系统信任存储区
- 或配置 Docker 以信任该注册表(参见 Docker 文档)
---
## 🔍 安全扫描器
### CIS Docker 基准
针对 CIS Docker 基准 v1.7.0 的自动化合规性检查:```bash
dockerscan --scanners cis nginx:latest
Checks include:
:latest)检测真实世界中的供应链攻击:```bash dockerscan --scanners supplychain suspicious-image:1.0
检测:
- 无镜像容器(仅文档攻击)
- 加密货币挖矿程序(xmrig、claymore等)
- 后门库(xz-utils案例)
- 未签名/未验证的镜像
- 文档中的钓鱼尝试
- 连接到矿池、C2服务器
### 秘密检测
查找硬编码的秘密:```bash
dockerscan --scanners secrets webapp:prod
发现:
检测已知 CVE:```bash dockerscan --scanners vulnerabilities node:16
- 检查项:
- 关键Docker CVE(2024-2025)
- 容器逃逸漏洞
- BuildKit远程代码执行漏洞
- 生命周期结束的基础镜像
- 易受攻击的包
### 运行时安全
审计运行时配置:```bash
dockerscan --scanners runtime running-container
分析内容:
{ "target": { "image_name": "nginx:latest" }, "start_time": "2024-11-22T10:30:00Z", "findings": [ { "id": "CIS-4.1", "title": "Container should not run as root", "severity": "HIGH", "category": "CIS-Benchmark", "description": "Running containers as root increases attack surface...", "remediation": "Use USER instruction in Dockerfile..." } ], "summary": { "total_findings": 47, "by_severity": { "CRITICAL": 8, "HIGH": 15 } } }
### SARIF Output
兼容 GitHub Security、Azure DevOps、VS Code:```json
{
"$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json",
"version": "2.1.0",
"runs": [
{
"tool": {
"driver": {
"name": "DockerScan",
"version": "2.0.0"
}
},
"results": [...]
}
]
}
GitHub Actions:```yaml name: Docker Security Scan
on: [push]
jobs: security-scan: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3
- name: Build Docker image
run: docker build -t myapp:${{ github.sha }} .
- name: Install DockerScan
run: |
curl -L https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -o dockerscan
chmod +x dockerscan
- name: Update CVE Database
run: ./dockerscan update-db
- name: Run Security Scan
run: ./dockerscan -q myapp:${{ github.sha }}
- name: Upload SARIF results
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: dockerscan-report.sarif
**GitLab CI:**```yaml
docker-security-scan:
stage: test
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
- wget https://github.com/cr0hn/dockerscan/releases/latest/download/dockerscan-linux-amd64 -O dockerscan
- chmod +x dockerscan
- ./dockerscan update-db
- ./dockerscan -q $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
artifacts:
reports:
sast: dockerscan-report.sarif
for image in $(docker images --format "{{.Repository}}:{{.Tag}}"); do echo "Scanning $image..." dockerscan $image --output /audit-reports/ done
cat /audit-reports/*.json | jq -s ' { total_images: length, total_findings: map(.summary.total_findings) | add, critical_findings: map(.summary.by_severity.CRITICAL // 0) | add } '
### 3. **部署前验证**```bash
# Fail deployment if critical issues found
dockerscan production-app:v2.0
exit_code=$?
if [ $exit_code -eq 2 ]; then
echo "❌ Critical vulnerabilities found. Deployment blocked."
exit 1
elif [ $exit_code -eq 1 ]; then
echo "⚠️ High severity issues found. Manual review required."
# Send notification...
else
echo "✅ No critical issues. Proceeding with deployment."
fi
dockerscan --scanners cis --only-critical all-production-images:* > cis-compliance-report.txt
0 0 * * 0 /usr/local/bin/dockerscan --scanners cis,vulnerabilities production-images:latest --output /compliance/weekly/
### 5. **开发者工作流**```bash
# Pre-commit hook
#!/bin/bash
# .git/hooks/pre-commit
docker build -t local-test:latest .
dockerscan --only-critical local-test:latest
if [ $? -ne 0 ]; then
echo "❌ Docker security scan failed. Fix issues before committing."
exit 1
fi
dockerscan/ ├── logo.png # Project logo ├── cmd/ │ ├── dockerscan/ # Main CLI application │ │ └── main.go │ └── nvd2sqlite/ # CVE database builder tool │ └── main.go ├── data/ # CVE database (auto-updated daily) │ ├── latest.db.gz # Compressed SQLite database │ └── metadata.json # Database version info ├── internal/ │ ├── scanner/ # Extensible scanner framework │ │ ├── scanner.go # Scanner interface & registry │ │ ├── cis/ # CIS Benchmark implementation │ │ ├── secrets/ # Secrets detection │ │ ├── supplychain/ # Supply chain attacks │ │ ├── vulnerabilities/ # CVE scanning │ │ └── runtime/ # Runtime security │ ├── report/ # Report generators │ │ ├── json.go # JSON reporter │ │ └── sarif.go # SARIF reporter │ ├── models/ # Data models │ │ └── models.go # Findings, scan results, etc. │ └── config/ # Configuration │ └── config.go # App config & banner └── pkg/docker/ # Docker client wrapper └── client.go
### CVE 数据库与 nvd2sqlite 工具
DockerScan 使用本地 SQLite 数据库进行 CVE 查找。该数据库通过 GitHub Actions **每日自动更新**并托管在仓库中,因此您始终可以获取最新的 CVE 数据。
#### 数据库特性
- 🗄️ **预构建数据库** - 开箱即用,无需手动设置
- 🔄 **每日更新** - GitHub Action 每天在 UTC 时间 00:00 更新数据库
- 📅 **2.5 年的 CVE 数据** - 涵盖从 2022 年中期至今的 CVE
- ⚡ **快速查找** - 使用优化索引的 SQLite
- 🌐 **托管于 GitHub** - 通过 `update-db` 命令自动下载
#### 更新数据库```bash
# Download latest database from GitHub (recommended)
dockerscan update-db
# Install from local file (for air-gapped/offline environments)
dockerscan update-db --from-file /path/to/cve-db.sqlite
注意:首次运行
dockerscan时,它会提示你下载数据库。之后,你可以使用update-db定期更新它。
对于高级用户,你可以直接从 NVD 构建 CVE 数据库:```bash
make build # Builds both dockerscan and nvd2sqlite
./bin/nvd2sqlite --output data/cve-db.sqlite --verbose
NVD_API_KEY=your-key ./bin/nvd2sqlite --output data/cve-db.sqlite --verbose
./bin/nvd2sqlite --output data/cve-db.sqlite
--start-date 2023-01-01
--end-date 2024-12-31
**nvd2sqlite 功能:**
- ⚡ **4 个并行下载工作线程**,加快下载速度
- 🔄 **自动重试,带指数退避**,应对速率限制(HTTP 429)
- 📦 **下载至临时目录**,随后按顺序处理
- 🗄️ **SQLite 输出**,带索引表,支持快速查询
---
### 可扩展性
添加新扫描器很简单:```go
package myscan
import (
"context"
"github.com/cr0hn/dockerscan/v2/internal/models"
"github.com/cr0hn/dockerscan/v2/internal/scanner"
)
type MyScanner struct {
scanner.BaseScanner
}
func NewMyScanner() *MyScanner {
return &MyScanner{
BaseScanner: scanner.NewBaseScanner(
"my-scanner",
"Description of my scanner",
true, // enabled
),
}
}
func (s *MyScanner) Scan(ctx context.Context, target models.ScanTarget) ([]models.Finding, error) {
var findings []models.Finding
// Your scanning logic here...
return findings, nil
}
// Register in main.go:
// registry.Register(myscan.NewMyScanner())
欢迎贡献!DockerScan 设计为可扩展的。
git checkout -b feature/amazing-scanner)internal/scanner/git commit -am 'Add amazing scanner')git push origin feature/amazing-scanner)git clone https://github.com/cr0hn/dockerscan cd dockerscan/dockerscan-v2
make deps
make test
make coverage
make build
make fmt
make lint
### 添加新扫描器
我们特别欢迎:
- 与漏洞数据库集成(NVD、GitHub 安全公告)
- Kubernetes 安全扫描
- 容器镜像仓库安全
- Docker Compose 安全分析
- IaC 扫描(Dockerfile)
---
## 📚 参考
### 标准与基准
- [CIS Docker 基准 v1.7.0](https://www.cisecurity.org/benchmark/docker) - 互联网安全中心
- [NIST SP 800-190](https://csrc.nist.gov/publications/detail/sp/800-190/final) - 应用容器安全指南
- [OWASP Docker 安全备忘单](https://cheatsheetseries.owasp.org/cheatsheets/Docker_Security_Cheat_Sheet.html)
### 研究与 CVE
- [400 万恶意无镜像容器](https://thehackernews.com/2024/04/millions-of-malicious-imageless.html) - The Hacker News,2024 年 4 月
- [使用容器镜像的供应链攻击](https://www.aquasec.com/blog/supply-chain-threats-using-container-images/) - Aqua Security
- [CVE-2024-21626: runc 容器逃逸](https://nvd.nist.gov/vuln/detail/CVE-2024-21626) - NIST NVD
- [CVE-2024-23651: BuildKit 远程代码执行](https://nvd.nist.gov/vuln/detail/CVE-2024-23651) - NIST NVD
- [xz-utils 后门(2024 年 3 月)](https://www.openwall.com/lists/oss-security/2024/03/29/4) - OpenWall
### 工具与项目
- [Trivy](https://github.com/aquasecurity/trivy) - 漏洞扫描器
- [Docker Bench Security](https://github.com/docker/docker-bench-security) - CIS 基准脚本
- [Cosign](https://github.com/sigstore/cosign) - 容器签名与验证
- [SARIF 规范](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) - 静态分析结果格式
---
## 📄 许可协议
本项目采用 **DockerScan 专有源代码可用许可协议**。
### 这意味着什么
✅ **您可以(免费):**
- 免费使用 DockerScan 进行内部安全扫描
- 在您的 **CI/CD 流水线**和安全工作流程中使用
- **修改、复刻并贡献**回社区
- 用于**教育和研究**目的
- 作为**专业服务中的工具**(咨询、安全审计、渗透测试)
- **集成**到其他产品中作为辅助组件
❌ **您不得(未经明确书面许可或商业许可):**
- 提供**作为商业 SaaS 的 Docker 扫描**
- **销售 DockerScan 托管实例**
- 构建一个**主要基于 DockerScan 的商业平台**
- 创建**以 DockerScan 为主要产品的付费管理服务**
### 为什么采用此许可协议?
该许可协议通过以下方式保护项目的可持续性:
- ✅ 授予**自由**,允许为合法目的使用软件
- ❌ 防止**有害的搭便车行为**,即公司通过将其作为服务提供获利而不回馈社区
- 💰 通过竞争性用途的商业许可确保项目保持**可持续性**
- 🔓 保持**源代码可用**,以实现透明度和社区贡献
**这不是开源** - 它是**源代码可用**,对商业竞争性使用有限制。
### 商业许可
**适用于:**
- SaaS 或托管服务
- 使用 DockerScan 作为主要功能的商业平台
- 作为商业产品转售或再分发
- 以 DockerScan 为核心产品的托管服务
**商业许可联系方式:**
📧 邮箱:cr0hn [at] cr0hn.com
🌐 网站:https://cr0hn.com
💼 为企业与初创公司提供灵活许可条款
完整法律条款请参见 [LICENSE](https://github.com/cr0hn/dockerscan/blob/HEAD/LICENSE) 文件。
---
## 👤 作者
<div align="center">
### **Daniel Garcia (cr0hn)**
[](https://cr0hn.com)
[](https://github.com/cr0hn)
[](https://twitter.com/ggdaniel)
**安全研究员 | 开源开发者 | Docker 安全专家**
</div>
---
## 🙏 致谢
特别感谢:
- Docker 安全社区
- CIS 提供的 Docker 基准
- NIST 提供的 SP 800-190
- 发现 2024 年供应链攻击的安全研究员
- DockerScan 的所有贡献者和用户
---
## 📞 支持
- **问题**:[GitHub Issues](https://github.com/cr0hn/dockerscan/issues)
- **讨论**:[GitHub Discussions](https://github.com/cr0hn/dockerscan/discussions)
- **安全**:报告漏洞至 [email protected]
---
<div align="center">
**⭐ 如果您觉得 DockerScan 有用,请给仓库点个星标! ⭐**
*让 Docker 安全面向所有人*
[⬆ 返回顶部](#-dockerscan-v20)
</div>
| 功能 | v1.x (Python) | v2.0 (Go) |
|---|
| 语言 | Python 3.5+ | Go 1.21+ |
| 性能 | 约 500 个镜像/小时 | 约 5000 个镜像/小时 |
| 内存使用 | 200-500 MB | 50-100 MB |
| 分发方式 | pip install + 依赖 | 单个二进制文件 |
| 安全扫描器 | 2 个模块 | 5 个模块 |
| CIS 基准 | 部分 | 完整 v1.7.0(80 项以上检查) |
| 供应链 | ❌ 不支持 | ✅ 基于 2024 年研究 |
| 密钥模式 | 10 种模式 | 40 种以上模式 |
| CVE 检测 | 基础 | 2024-2025 年 CVE |
| 运行时安全 | ❌ 不支持 | ✅ 完整能力审计 |
| SARIF 输出 | ❌ 不支持 | ✅ 完全支持 |
| CI/CD 集成 | 手动 | 原生(退出码、SARIF) |
| 功能 | DockerScan v2.0 | Trivy | Clair | Snyk | Grype |
|---|
| CIS Benchmark v1.7 | ✅ 全面(80+ 项检查) | ❌ | ❌ | 部分 | ❌ |
| 供应链检测 (2024) | ✅ 是 | ❌ | ❌ | ❌ | ❌ |
| 密钥扫描 | ✅ 40+ 种模式 | 基础 | ❌ | ✅ | ❌ |
| CVE 数据库 | ✅ 2024-2025 年 CVE | ✅ | ✅ | ✅ | ✅ |
| 运行时安全 | ✅ 全面 | ❌ | ❌ | ❌ | ❌ |
| SARIF 输出 | ✅ | ✅ | ❌ | ✅ | ✅ |
| 速度 (Go语言) | ⚡ 非常快 | ⚡ 非常快 | 🐌 慢 | ⚡ 快 | ⚡ 非常快 |
| 可扩展性 | ✅ 插件系统 | 有限 | 有限 | ❌ | 有限 |
| 退出码 | ✅ 支持 CI/CD | ✅ | 部分 | ✅ | ✅ |
| 成本 | 🆓 免费 | 🆓 免费 | 🆓 免费 | 💰 付费层级 | 🆓 免费 |
| 离线模式 | ✅ | ✅ | ❌ | ❌ | ✅ |
| 许可证 | 专有·源码可用 | Apache-2.0 | Apache-2.0 | 专有 | Apache-2.0 |