用途:在 GitLab CI/CD 中嵌入安全测试,把 SAST、DAST、容器扫描、依赖扫描、密钥检测和许可证合规集成到流水线,实现安全左移,在开发阶段而非部署后发现漏洞。
主要能力:SAST 在编译前分析源码,支持 Semgrep、SpotBugs、Gosec、Bandit、NodeJsScan 等分析器,覆盖 14 种以上语言;DAST 对运行中的应用模拟攻击载荷,检测 XSS、SQLi、CSRF 等运行时漏洞;容器扫描用 Trivy 检查镜像中的 CVE;依赖扫描检查 package.json、requirements.txt、pom.xml、Gemfile.lock 等清单;密钥检测通过模式匹配和熵分析扫描提交中的凭据、API 密钥、令牌和私钥。GitLab Duo AI 可辅助 SAST 误报检测。
使用方式:在 .gitlab-ci.yml 中通过 include 引入 GitLab 托管模板,如 Security/SAST.gitlab-ci.yml、Security/Secret-Detection.gitlab-ci.yml、Security/Dependency-Scanning.gitlab-ci.yml、Security/Container-Scanning.gitlab-ci.yml、DAST.gitlab-ci.yml、Security/License-Scanning.gitlab-ci.yml,并定义 build、test、security、deploy-staging、dast、deploy-production 等阶段。可覆盖各扫描任务的 stage 与变量,例如 SAST_EXCLUDED_PATHS、CS_IMAGE、CS_SEVERITY_THRESHOLD、DAST_WEBSITE、DAST_FULL_SCAN_ENABLED。可通过 .gitlab/sast-ruleset.toml 自定义 Semgrep 规则集。还可在 Security & Compliance > Policies 配置扫描执行策略和合并请求审批策略。
适用场景:部署或配置 GitLab CI DevSecOps 流水线、建立符合合规要求的安全控制、改进该领域安全架构、开展需要此实现的安全评估。
限制:完整安全扫描套件需要 GitLab Ultimate 许可证;需要配置 GitLab Runner;需熟悉 .gitlab-ci.yml;容器构建需 Docker-in-Docker 或 Kaniko;DAST 需要已部署且可访问的暂存环境。其他细节暂未提供。