用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/killvxk/cybersecurity-skills-zh --skill building-devsecops-pipeline-with-gitlab-ci命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
基于 SOC 职业分类
| name | building-devsecops-pipeline-with-gitlab-ci |
| description | 在 GitLab CI/CD 中设计并实现全面的 DevSecOps 流水线,集成 SAST、DAST、容器扫描、依赖扫描和密钥检测。 |
| domain | cybersecurity |
| subdomain | devsecops |
| tags | ["gitlab-ci","devsecops","sast","dast","container-scanning","dependency-scanning","secret-detection","cicd-security"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
GitLab 提供了一个集成的 DevSecOps 平台,将安全测试直接嵌入 CI/CD 流水线。通过利用 GitLab 内置的安全扫描器——SAST、DAST、容器扫描、依赖扫描、密钥检测和许可证合规——团队可以将安全左移(Shift Left),在开发阶段而非部署后发现漏洞。GitLab Duo AI 协助进行 SAST 漏洞的误报检测,帮助安全团队专注于真正的问题。
.gitlab-ci.yml 流水线配置SAST 在编译前分析源代码中的漏洞。GitLab 使用 Semgrep、SpotBugs、Gosec、Bandit 和 NodeJsScan 等分析器支持 14+ 种语言。最简单的集成方式是使用 GitLab 托管的模板。
DAST 通过向 HTTP 端点模拟攻击载荷来测试运行中的应用程序。它能检测静态分析无法发现的 XSS、SQLi、CSRF 和其他运行时漏洞。DAST 需要已部署的、可访问的目标 URL。
使用 Trivy 扫描 Docker 镜像中 OS 包和应用依赖的已知 CVE。在 Docker 构建阶段之后运行,在镜像进入仓库前进行门控。
检查依赖清单(package.json、requirements.txt、pom.xml、Gemfile.lock)中的已知漏洞版本。在源代码级别运行,是容器扫描的补充。
使用模式匹配和熵分析扫描提交中意外提交的凭据、API 密钥、令牌和私钥。在每次提交时运行,防止密钥进入仓库。
# .gitlab-ci.yml
stages:
- build
- test
- security
- deploy-staging
- dast
- deploy-production
variables:
DOCKER_IMAGE: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
SECURE_LOG_LEVEL: "info"
# 引入 GitLab 托管的安全模板
include:
- template: Security/SAST.gitlab-ci.yml
- template: Security/Secret-Detection.gitlab-ci.yml
- template: Security/Dependency-Scanning.gitlab-ci.yml
- template: Security/Container-Scanning.gitlab-ci.yml
- template: DAST.gitlab-ci.yml
- template: Security/License-Scanning.gitlab-ci.yml
build:
stage: build
image: docker:24.0
services:
- docker:24.0-dind
variables:
DOCKER_TLS_CERTDIR: "/certs"
script:
- docker login
配置扫描执行策略以强制执行必要的安全扫描:
创建 .gitlab/sast-ruleset.toml 以自定义分析器行为:
[semgrep]
[[semgrep.ruleset]]
dirs = ["src"]
[[semgrep.passthrough]]
type = "url"
target = "/sgrep-rules/custom-rules.yml"
value = "https://semgrep.dev/p/owasp-top-ten"
[[semgrep.passthrough]]
type = "url"
target = "/sgrep-rules/java-rules.yml"
value = "https://semgrep.dev/p/java"
GitLab 将所有扫描器发现的问题整合到单一漏洞报告中,可通过 Security & Compliance > Vulnerability Report 访问。每个漏洞包括:
每个合并请求都显示安全扫描组件,显示:
SAST_INCREMENTAL: "true" 仅扫描变更文件allow_failure: false 以强制执行质量门控| 指标 | 描述 | 目标 |
|---|---|---|
| 流水线安全覆盖率 | 启用了所有扫描器的项目百分比 | > 95% |
| 严重漏洞 MTTR | 从检测到修复严重发现的时间 | < 48 小时 |
| 误报率 | 被标记为误报而关闭的发现百分比 | < 15% |
| 密钥检测拦截率 | 被推送规则拦截的密钥提交百分比 | > 99% |