一、核心理念:安全左移,持续防护

将安全测试从传统“发布前检测”转变为开发全流程的嵌入式检查,实现“安全即代码”。


二、集成架构设计

分层安全测试策略

text

CI/CD流水线安全防护链:
├── 提交前(Pre-commit)
│   ├── Git Hooks:代码规范/敏感信息扫描
│   └── IDE插件:实时SAST检查
├── CI阶段(代码合并)
│   ├── SAST:静态应用安全测试
│   ├── SCA:软件成分分析
│   └── 密钥扫描
├── 构建阶段
│   ├── 容器镜像扫描
│   └── 依赖库漏洞检查
├── 测试阶段
│   ├── DAST:动态应用安全测试
│   ├── IAST:交互式应用安全测试
│   └── API安全扫描
└── 部署阶段
    ├── 基础设施扫描(Terraform安全扫描)
    └── 运行时保护(RASP)

三、关键技术实现

1. SAST无缝集成方案

yaml

# GitLab CI示例
stages:
  - security-scan

sast:
  stage: security-scan
  image: 
    name: semgrep/semgrep:latest
  script:
    - semgrep scan --config auto --json --output semgrep-results.json
  artifacts:
    reports:
      sast: semgrep-results.json
  rules:
    - if: $CI_MERGE_REQUEST_ID  # 仅在MR时触发,避免每次提交都扫描

关键配置

  • 增量扫描:只分析变更代码(如使用git diff

  • 质量门禁:设置严重漏洞数阈值,超过则流水线失败

  • 精准去重:关联Jira/SonarQube,避免重复告警

2. DAST在CD中的集成

yaml

# Jenkins Pipeline示例
stage('Dynamic Security Test') {
    steps {