首页/开发/CI/CD 与发布速查/流水线内置安全扫描
流水线设计54 条

流水线内置安全扫描

把 SAST、依赖、密钥、容器与 IaC 扫描挂在流水线上,问题尽量在合并前拦截;结果并入报告与门禁。

CI/CD 与发布速查开发更新于 2026-10-13

流水线安全扫描是什么

把安全扫描挂到流水线上:SAST 扫源码缺陷、SCA 查依赖漏洞、Secret 检测凭据泄漏、Container 扫镜像、IaC 查基础设施配置、DAST 做动态探测。结果进统一报告,按严重级接入门禁,尽量在合并前拦截,而不是等上线后被动救火。首次接入要允许观察期,先看数据再收紧。

基本信息

扫描家族SAST、DAST、SCA、Secret、Container、IaC 六类
接入方式GitLab 安全模板、GitHub code scanning、独立开源工具
输出格式JUnit、SARIF 等标准格式进报告与平台面板
门禁策略高危阻断,中低风险先观察,基线加增量
数据更新扫描规则库保持更新,否则漏报新漏洞

典型使用场景

  • 合并前扫描:新增代码与依赖的问题在合并前拦截。
  • 镜像入库前:构建产物扫描通过才允许推送仓库。
  • 密钥防泄漏:提交与构建阶段双重检测。
  • IaC 检查:基础设施清单在应用前先过配置检查。
  • 定期深扫:全量深度扫描放定时流水线跑。
  • 合规留痕:扫描报告作为发版材料归档。

GitLab 模板引用示例

GitLab 模板引用示例
include:
  - template: Security/Secret-Detection.gitlab-ci.yml
  - template: Security/SAST.gitlab-ci.yml

扫描类型对照

类型检查对象典型工具
SAST源码漏洞模式Semgrep、CodeQL
SCA依赖已知漏洞Dependabot、Trivy
Secret凭据泄漏gitleaks、Secret Detection
Container镜像漏洞与配置Trivy、Grype
IaC基础设施配置缺陷Checkov、kics
首次接入会有大量存量告警:先跑观察模式统计,再按严重级逐步收紧门禁。
扫描器有误报:先统计误报率再决定阻断范围,避免团队因为噪声绕过流程。
扫描要左移:合并前扫描的修复成本远低于发布后,越早拦截收益越大。
依赖许可证检查也常挂在 SCA 环节:许可冲突与漏洞同样值得在流水线上暴露。
检测到密钥泄漏先轮换再清理历史:凭据进过提交记录后,改代码不够,密钥本身必须更换。

易错点

  • 一开始就全量阻断:存量问题把所有人堵在门外,采用基线加增量策略。
  • 扫描结果无人看:至少把高危项接入通知与门禁,否则只是噪声。
  • 用忽略列表掩盖问题:每条忽略要有理由与复查期限。
  • 只在发布流水线扫描:修复成本最高的位置才拦截,应提前到合并前。
  • 扫描规则库陈旧:漏报新披露漏洞,定期更新依赖与规则。
  • 门禁命中即失败但不给定位:报告里没有文件与行号,修复效率低。

数据来源与参考

  • GitLab Docs《Secure your application》
  • GitHub Docs《About code scanning》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌