本文档围绕 CI/CD 安全集成、容器镜像扫描与软件成分分析(SCA)、基础设施即代码(IaC)与配置合规三大核心模块,系统性梳理各环节所涉及工具的开源状态、功能定位及国产化替代方案,为企业 DevSecOps 体系建设提供完整参考。
| 工具名称 | 类型 | 开源协议 | 开源状态 | 维护方 |
|---|---|---|---|---|
| OWASP ZAP | DAST(动态应用安全测试) | Apache 2.0 | ✅ 完全开源 | 原 OWASP 维护,2023 年起由 Checkmarx 接管维护,仍保持完全开源免费 |
| Trivy | 容器镜像/文件系统/SBOM 扫描 | Apache 2.0 | ✅ 完全开源 | Aqua Security |
| Clair | 容器镜像漏洞扫描 | Apache 2.0 | ✅ 完全开源 | Red Hat / Quay 项目 |
| SonarQube Community Build | SAST + 代码质量 | LGPLv3(核心)+ SSALv1(分析器) | ⚠️ 核心开源,社区版免费 | SonarSource |
| Checkov | IaC 静态安全扫描 | Apache 2.0 | ✅ 完全开源 | Prisma Cloud(原 Bridgecrew) |
| Semgrep OSS | SAST(轻量规则引擎) | LGPL 2.1 | ✅ 完全开源 | Semgrep Inc. |
| Syft | SBOM 生成 | Apache 2.0 | ✅ 完全开源 | Anchore |
| Grype | 漏洞扫描(基于 SBOM) | Apache 2.0 | ✅ 完全开源 | Anchore |
| kube-bench | Kubernetes CIS 基准检测 | Apache 2.0 | ✅ 完全开源 | Aqua Security |
| Wazuh | 安全配置评估 + SIEM | GPLv2 | ✅ 完全开源 | Wazuh Inc. |
| OpenSCA | SCA(软件成分分析) | Apache 2.0 | ✅ 完全开源 | 悬镜安全(国内) |
| murphysec | SCA + 漏洞检测 | Apache 2.0 | ✅ CLI 开源 | 墨菲安全(国内) |
| 工具名称 | 类型 | 授权模式 | 说明 |
|---|---|---|---|
| Checkmarx | SAST + SCA + IaC + DAST | 商业闭源 | 企业级 AppSec 平台,功能全面但价格较高,规则定制门槛高 |
| SonarQube Developer/Enterprise | SAST + 代码质量 | 商业授权 | 社区版之上增加分支分析、污点分析、更多语言支持等 |
| CIS-CAT Pro | CIS 基准合规评估 | 商业授权 | CIS 官方出品的专业评估工具 |
关键结论:ZAP、Trivy、Clair、Checkov、Syft、Grype、kube-bench、OpenSCA、murphysec 等核心工具均为完全开源,可免费商用;SonarQube 社区版可免费使用但部分高级功能需付费;Checkmarx 为纯商业闭源产品。
代码提交 → 静态安全扫描(SAST/SCA) → 镜像构建 → 镜像扫描 → IaC扫描 → 动态扫描(DAST) → 安全门禁 → 部署
pipeline {
agent any
stages {
stage('SAST - SonarQube') {
steps {
withSonarQubeEnv('SonarQube') {
sh 'sonar-scanner'
}
}
}
stage('SCA - Trivy FS Scan') {
steps {
sh 'trivy fs --format json --output trivy-fs-report.json ./src'
}
}
stage('Build Image') {
steps {
sh 'docker build -t myapp:${BUILD_NUMBER} .'
}
}
stage('Image Scan - Trivy') {
steps {
sh 'trivy image --format json --output trivy-image-report.json myapp:${BUILD_NUMBER}'
}
}
stage('IaC Scan - Checkov') {
steps {
sh 'checkov -d ./terraform --output json > checkov-report.json'
}
}
stage('DAST - ZAP Baseline') {
steps {
sh 'zap-baseline.py -t http://staging.myapp.com -r zap-report.html'
}
}
stage('Security Gate') {
steps {
script {
// 安全门禁判定逻辑
def highCount = sh(script: "jq '[.Results[].Vulnerabilities[]? | select(.Severity==\"HIGH\")] | length' trivy-image-report.json", returnStdout: true).trim() as int
def criticalCount = sh(script: "jq '[.Results[].Vulnerabilities[]? | select(.Severity==\"CRITICAL\")] | length' trivy-image-report.json", returnStdout: true).trim() as int
if (criticalCount > 0 || highCount > 5) {
error("安全门禁未通过:严重漏洞 ${criticalCount} 个,高危漏洞 ${highCount} 个")
}
}
}
}
}
}
stages:
- sast
- sca
- build
- image-scan
- iac-scan
- dast
- security-gate
sonarqube:
stage: sast
script:
- sonar-scanner -Dsonar.projectKey=$CI_PROJECT_NAME
allow_failure: false
trivy-fs:
stage: sca
script:
- trivy fs --exit-code 0 --severity HIGH,CRITICAL --format json -o trivy-fs.json .
artifacts:
paths: [trivy-fs.json]
build-image:
stage: build
script:
- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .
trivy-image:
stage: image-scan
script:
- trivy image --exit-code 0 --severity HIGH,CRITICAL --format json -o trivy-image.json $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA
artifacts:
paths: [trivy-image.json]
checkov:
stage: iac-scan
script:
- checkov -d ./terraform --soft-fail-on LOW --hard-fail-on HIGH,CRITICAL --output junitxml > checkov-report.xml
artifacts:
reports:
junit: checkov-report.xml
zap-baseline:
stage: dast
image: owasp/zap2docker-stable
script:
- zap-baseline.py -t $STAGING_URL -r zap-report.html -I
artifacts:
paths: [zap-report.html]
security-gate:
stage: security-gate
script:
- |
CRITICAL=$(jq '[.Results[].Vulnerabilities[]? | select(.Severity=="CRITICAL")] | length' trivy-image.json)
HIGH=$(jq '[.Results[].Vulnerabilities[]? | select(.Severity=="HIGH")] | length' trivy-image.json)
echo "严重漏洞: $CRITICAL, 高危漏洞: $HIGH"
if [ "$CRITICAL" -gt 0 ] || [ "$HIGH" -gt 5 ]; then
echo "安全门禁未通过!"
exit 1
fi
| 检测维度 | 严重级别 | 阻断阈值 | 警告阈值 | 处理方式 |
|---|---|---|---|---|
| SAST 漏洞 | Critical | > 0 | - | 强制阻断,必须修复 |
| High | > 5 | 1-5 | 超过阈值阻断,阈值内警告 | |
| Medium | > 20 | 1-20 | 超过阈值阻断,阈值内记录跟踪 | |
| SCA 依赖漏洞 | Critical | > 0 | - | 强制阻断,必须升级或修复 |
| High | > 3 | 1-3 | 超过阈值阻断,评估升级方案 | |
| Medium | > 15 | 1-15 | 记录跟踪,排期修复 | |
| 容器镜像漏洞 | Critical | > 0 | - | 强制阻断,禁止部署 |
| High | > 5 | 1-5 | 超过阈值阻断 | |
| IaC 配置风险 | High | > 0 | - | 强制阻断,必须修复 |
| Medium | > 10 | 1-10 | 超过阈值阻断 | |
| DAST 漏洞 | Critical | > 0 | - | 强制阻断 |
| High | > 3 | 1-3 | 超过阈值阻断 | |
| 许可证合规 | GPL/AGPL 等强 Copyleft | > 0 | - | 强制阻断,法务审核 |
| 未知许可证 | > 5 | 1-5 | 超过阈值阻断 |
工具定位:Aqua Security 开源的全能型安全扫描器,支持容器镜像、文件系统、Git 仓库、SBOM 等多种扫描场景。
核心功能:
输出报告示例结构:
{
"ArtifactName": "myapp:latest",
"ArtifactType": "container_image",
"Results": [
{
"Target": "myapp:latest (debian 12.5)",
"Class": "os-pkgs",
"Vulnerabilities": [
{
"VulnerabilityID": "CVE-2024-1234",
"PkgName": "openssl",
"InstalledVersion": "3.0.11-1~deb12u2",
"FixedVersion": "3.0.13-1~deb12u1",
"Severity": "HIGH",
"Title": "OpenSSL 证书验证绕过漏洞",
"References": ["https://nvd.nist.gov/vuln/detail/CVE-2024-1234"]
}
]
}
]
}
工具定位:Red Hat 维护的容器镜像漏洞扫描器,与 Quay 容器 registry 深度集成。
特点:
| 漏洞级别 | 修复时限 | 升级策略 |
|---|---|---|
| Critical | 24 小时内 | 立即升级到最新安全版本 |
| High | 7 天内 | 升级到修复版本,评估兼容性影响 |
| Medium | 30 天内 | 纳入迭代计划,跟随版本发布升级 |
| Low | 季度内 | 批量处理,结合常规维护升级 |
| 工具 | 开源状态 | 语言支持 | 二进制扫描 | SBOM 输出 | 国内适配 |
|---|---|---|---|---|---|
| Trivy | ✅ 开源 (Apache 2.0) | 30+ | 部分支持 | CycloneDX/SPDX | 一般 |
| OpenSCA | ✅ 开源 (Apache 2.0) | 20+ | 支持 | CycloneDX/SPDX | ✅ 国产,信创适配 |
| murphysec | ✅ CLI 开源 | 18+ | 支持 | 支持 | ✅ 国产,中文漏洞库 |
| Syft + Grype | ✅ 开源 (Apache 2.0) | 30+ | 支持 | CycloneDX/SPDX | 一般 |
检测范围:
常见许可证风险等级:
| 风险等级 | 许可证类型 | 代表许可证 | 处理建议 |
|---|---|---|---|
| 高风险 | 强 Copyleft | GPL v2/v3、AGPL | 禁止使用或法务专项审核 |
| 中风险 | 弱 Copyleft | LGPL、MPL、EPL | 评估使用方式,动态链接可接受 |
| 低风险 | 宽松型 | MIT、Apache 2.0、BSD | 可自由使用,保留版权声明 |
| 未知 | 无许可证/自定义 | - | 需人工确认授权状态 |
| 标准 | 发起方 | 设计目标 | 适用场景 |
|---|---|---|---|
| CycloneDX | OWASP | 安全与供应链风险管理 | DevSecOps、漏洞管理、安全审计 |
| SPDX | Linux 基金会 | 许可证合规与组件信息交换 | 许可证管理、开源合规、软件供应链 |
推荐选择:安全场景优先选用 CycloneDX(原生支持 CVE 关联、漏洞信息嵌入);许可证合规场景优先选用 SPDX(ISO 国际标准,法律合规认可度高)。
CIS(Center for Internet Security)基准是全球公认的系统安全配置标准,覆盖操作系统、数据库、中间件、云平台、容器等各类环境。
| 工具 | 开源状态 | 覆盖范围 | 输出格式 | 特点 |
|---|---|---|---|---|
| kube-bench | ✅ 开源 | Kubernetes | JSON/CSV | 专门针对 K8s CIS 基准,轻量快速 |
| Wazuh | ✅ 开源 (GPLv2) | Linux/Windows/容器 | JSON/HTML | 全功能安全平台,含 CIS 扫描能力 |
| CIS-CAT Pro | 商业 | 全平台 | 多种格式 | CIS 官方工具,最权威最全面 |
| OpenSCAP | ✅ 开源 | Linux/Windows | XCCDF/ARF | 标准化程度高,支持 SCAP 协议 |
工具定位:Prisma Cloud(原 Bridgecrew)开源的 IaC 静态分析工具,支持 Terraform、CloudFormation、Kubernetes、Helm、Dockerfile、ARM 模板、Bicep 等多种 IaC 格式。
核心能力:
支持的 IaC 类型:
{
"check_type": "terraform",
"summary": {
"passed": 45,
"failed": 8,
"skipped": 2,
"parsing_errors": 0
},
"results": {
"failed_checks": [
{
"check_id": "CKV_AWS_19",
"check_name": "Ensure S3 bucket has server-side encryption enabled",
"resource": "aws_s3_bucket.my_bucket",
"file_path": "/terraform/s3.tf",
"start_line": 10,
"end_line": 20,
"severity": "HIGH",
"guideline": "https://docs.prismacloud.io/en/..."
}
]
}
}
配置漂移(Configuration Drift)是指实际运行环境的配置与预期基线配置之间的偏差,通常由手动变更、临时修复、环境差异等原因导致。
| 检测方式 | 工具 | 原理 | 适用场景 |
|---|---|---|---|
| 基线对比法 | Wazuh / OpenSCAP | 定期扫描与基线配置对比 | 系统级配置漂移 |
| IaC 状态对比 | Terraform plan / driftctl | 对比 IaC 定义与实际云资源状态 | 云基础设施漂移 |
| GitOps 对比 | ArgoCD / Flux | 对比 Git 仓库声明与集群实际状态 | Kubernetes 集群漂移 |
| 文件完整性监控 | OSSEC / Wazuh | 监控关键配置文件变更 | 配置文件篡改检测 |
发现配置问题 → 风险定级 → 分配责任人 → 制定整改方案 → 实施整改 → 验证修复 → 关闭工单
| 指标 | 说明 |
|---|---|
| 总问题数 | 本期发现的配置问题总数 |
| 已修复数 | 已完成整改并验证通过的数量 |
| 修复率 | 已修复数 / 总问题数 |
| 平均修复时长 | 从发现到关闭的平均时间(MTTR) |
| 逾期未修复数 | 超过 SLA 时限仍未修复的数量 |
| 重复出现率 | 已修复问题再次出现的比例 |
| 影响范围大 | 影响范围小 | |
|---|---|---|
| 风险高 | P0 - 立即整改 | P1 - 限期整改 |
| 风险中 | P1 - 限期整改 | P2 - 计划整改 |
| 风险低 | P2 - 计划整改 | P3 - 择机优化 |
| 工具/产品 | 厂商 | 类型 | 开源情况 | 核心优势 | 适用场景 |
|---|---|---|---|---|---|
| OpenSCA | 悬镜安全 | SCA | ✅ 开源 (Apache 2.0) | 国内用户量最大的开源 SCA,中文漏洞库,信创适配 | SCA 检测、SBOM 生成、开源治理 |
| 源鉴 SCA | 悬镜安全 | SCA | 商业 | 五大引擎(源码/二进制/同源/运行时/容器),AI 智能分析 | 企业级供应链安全治理 |
| 墨菲安全 SCA | 墨菲安全 | SCA | ✅ CLI 开源 | 漏洞可达性分析,AI 原生,许可证合规 | 依赖漏洞检测、合规治理 |
| Gitee CodePecker | 酷德啄木鸟 | SAST + SCA | 商业 | SCA「析微」+ SAST「补阙」双引擎,AI 图智引擎,Gitee 深度集成 | 代码安全审计、DevSecOps 落地 |
| PinPoint | 源伞科技 | SAST | 商业 | 自动程序分析,307 个 C/C++ 缺陷检测器 | C/C++ 代码质量与安全检测 |
| 轩宇 SpecChecker | 轩宇信息(航天旗下) | SAST | 商业 | 安全编码标准符合性检查,代码质量度量 | 航天/军工等高可信领域 |
方案一:Gitee CodePecker(SAST + SCA 一体化)
方案二:Semgrep OSS + 自定义规则(开源路线)
方案三:SonarQube 社区版 + 国内插件生态(兼容路线)
方案一:Gitee CodePecker + 悬镜源鉴 SCA(全栈国产替代)
| 能力维度 | Checkmarx | 国产替代组合 |
|---|---|---|
| SAST 静态分析 | CxSAST | Gitee CodePecker「补阙」 |
| SCA 成分分析 | CxSCA | 悬镜源鉴 SCA / OpenSCA |
| IaC 扫描 | Checkmarx IaC | Checkov(开源)+ 定制规则 |
| DAST 动态扫描 | CxDAST | OWASP ZAP(开源) |
| 容器扫描 | - | Trivy(开源) |
| 平台治理 | Checkmarx One | 自建 DevSecOps 平台 + 工具链集成 |
优势:
方案二:Semgrep + Trivy + Checkov + ZAP(全开源替代)
| 能力维度 | 开源工具 | 说明 |
|---|---|---|
| SAST | Semgrep OSS | 规则即代码,快速迭代 |
| SCA | Trivy / OpenSCA | 依赖漏洞 + 许可证 |
| IaC | Checkov | 基础设施即代码扫描 |
| DAST | OWASP ZAP | 动态应用安全测试 |
| 镜像扫描 | Trivy | 容器镜像安全 |
| SBOM | Syft / Trivy | 软件物料清单 |
优势:
方案三:墨菲安全 SCA 4.0(AI 原生路线)
| 企业类型 | 推荐方案 | 理由 |
|---|---|---|
| 党政/央企/国企 | Gitee CodePecker + 悬镜源鉴 SCA | 信创合规要求高,需自主可控 |
| 金融/运营商 | 悬镜源鉴 SCA + 墨菲安全 + 开源 SAST | 供应链安全要求高,预算充足 |
| 互联网/科技公司 | Semgrep + Trivy + Checkov + ZAP | 技术能力强,追求灵活高效 |
| 中小企业/创业团队 | SonarQube 社区版 + OpenSCA + Trivy | 成本敏感,快速落地 |
文档版本:v1.0 生成日期:2026年7月30日