一、核心理念:安全左移,持续防护
将安全测试从传统“发布前检测”转变为开发全流程的嵌入式检查,实现“安全即代码”。
二、集成架构设计
分层安全测试策略
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 {
浙公网安备 33010602011771号