mcpField
S
sast-configuration

sast-configuration

github.com/sickn33安全48.8k112 次安装今天更新
代码仓库

关于 sast-configuration

为需要配置静态应用安全测试的开发团队提供操作指南,涵盖 Semgrep、SonarQube 和 CodeQL 的规则、扫描及 CI/CD 集成。

主要功能

  1. 01配置 Semgrep、SonarQube 和 CodeQL
  2. 02编写自定义安全规则
  3. 03将扫描接入 CI/CD
  4. 04调整误报与扫描性能
  5. 05设置质量门禁和合规策略

适用场景

  1. 01在 CI/CD 流水线加入 SAST 扫描
  2. 02为代码库创建定制安全规则
  3. 03按合规要求设置扫描策略

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill sast-configuration

安装后在 Claude Code 中输入/sast-configuration确认已加载。

详细介绍

SAST 配置

静态应用程序安全测试(SAST)工具的设置、配置和自定义规则创建,用于对多种编程语言进行全面安全扫描。

适用场景

  • 在 CI/CD 流水线中设置 SAST 扫描
  • 为代码库创建自定义安全规则
  • 配置质量门禁和合规策略
  • 优化扫描性能并减少误报
  • 集成多个 SAST 工具,构建纵深防御

不适用场景

  • 只需要 DAST 或手动渗透测试方面的指导
  • 无法访问源代码或 CI/CD 流水线
  • 需要的是组织政策决策,而非工具设置

说明

  1. 确定编程语言、代码库和合规要求。
  2. 选择工具并制定基线策略。
  3. 将扫描集成到 CI/CD 中,并设置门禁阈值。
  4. 根据误报调整规则和抑制项。
  5. 跟踪修复进度并验证修复结果。

安全

  • 未经批准,请勿使用第三方服务扫描敏感代码库。
  • 防止扫描产物和日志泄露机密信息。

概述

本技能提供设置和配置 SAST 工具的全面指导,包括 Semgrep、SonarQube 和 CodeQL。

核心功能

1. Semgrep 配置
  • 使用模式匹配创建自定义规则
  • 特定语言的安全规则(Python、JavaScript、Go、Java 等)
  • CI/CD 集成(GitHub Actions、GitLab CI、Jenkins)
  • 误报调优和规则优化
  • 执行组织策略
2. SonarQube 设置
  • 配置质量门禁
  • 分析安全热点
  • 跟踪代码覆盖率和技术债务
  • 为各语言定制质量配置文件
  • 通过 LDAP/SAML 进行企业集成
3. CodeQL 分析
  • 集成 GitHub Advanced Security
  • 开发自定义查询
  • 漏洞变体分析
  • 安全研究工作流
  • 处理 SARIF 结果

快速入门

初步评估
  1. 确定代码库中主要使用的编程语言
  2. 确定合规要求(PCI-DSS、SOC 2 等)
  3. 根据语言支持和集成需求选择 SAST 工具
  4. 查看基线扫描,了解当前安全态势
基本设置
# Semgrep quick start
pip install semgrep
semgrep --config=auto --error

# SonarQube with Docker
docker run -d --name sonarqube -p 127.0.0.1:9000:9000 sonarqube:REPLACE_WITH_REVIEWED_VERSION

# CodeQL CLI setup
gh extension install github/gh-codeql
codeql database create mydb --language=python

参考文档

  • Semgrep 规则创建 - 基于模式开发安全规则
  • SonarQube 配置 - 质量门禁和配置文件
  • CodeQL 设置指南 - 查询开发和工作流

模板与资源

以下模板、脚本和引用的 Semgrep 规则并未随此目录提供。使用依赖这些内容的命令前,请获取并检查实际的上游材料;请勿声称这些内容已通过此目录运行。以下历史操作引用和工具版本需要替换为受维护且不可变的版本。

  • semgrep-config.yml - 适用于生产环境的 Semgrep 配置
  • sonarqube-settings.xml - SonarQube 质量配置文件模板
  • run-sast.sh - 自动化 SAST 执行脚本

集成模式

CI/CD 流水线集成
# GitHub Actions example
- name: Run Semgrep
  uses: returntocorp/semgrep-action@v1
  with:
    config: >-
      p/security-audit
      p/owasp-top-ten
提交前钩子
# .pre-commit-config.yaml
- repo: https://github.com/returntocorp/semgrep
  rev: v1.45.0
  hooks:
    - id: semgrep
      args: ['--config=auto', '--error']

最佳实践

  1. 从基线开始

    • 运行初始扫描,建立安全基线
    • 优先处理严重和高危问题
    • 制定修复路线图
  2. 逐步采用

    • 从安全重点规则开始
    • 逐步添加代码质量规则
    • 仅针对严重问题实施阻断
  3. 误报管理

    • 记录合理的抑制项
    • 为已知安全模式创建允许列表
    • 定期检查已抑制的问题
  4. 性能优化

    • 排除测试文件和生成代码
    • 对大型代码库使用增量扫描
    • 在 CI/CD 中缓存扫描结果
  5. 团队赋能

    • 为开发人员提供安全培训
    • 为常见模式编写内部文档
    • 建立安全倡导者计划

常见用例

新项目设置
./scripts/run-sast.sh --setup --language python --tools semgrep,sonarqube
自定义规则开发
# See references/semgrep-rules.md for detailed examples
rules:
  - id: hardcoded-jwt-secret
    pattern: jwt.encode($DATA, "...", ...)
    message: JWT secret should not be hardcoded
    severity: ERROR
    languages: [python]
合规扫描
# PCI-DSS focused scan
semgrep --config p/pci-dss --json -o pci-scan-results.json

故障排查

误报率过高
  • 检查并调整规则敏感度
  • 添加路径筛选器以排除测试文件
  • 仅对有证据支持的误报使用有文档记录的规则/路径排除项;记录理由和到期时间
  • 创建组织专属的规则例外
性能问题
  • 启用增量扫描
  • 并行扫描各模块
  • 优化规则模式以提高效率
  • 缓存依赖项和扫描结果
集成失败
  • 验证 API 令牌和凭据
  • 检查网络连接和代理设置
  • 检查 SARIF 输出格式兼容性
  • 验证 CI/CD 运行器权限

相关技能

  • OWASP Top 10 检查清单
  • 容器安全
  • 依赖项扫描

工具对比

工具适用场景语言支持成本集成
Semgrep自定义规则、快速扫描30+ 种语言免费/企业版优秀
SonarQube代码质量 + 安全25+ 种语言免费/商业版良好
CodeQL深度分析、研究10+ 种语言免费(OSS)GitHub 原生

后续步骤

  1. 完成 SAST 工具的初始设置
  2. 运行基线安全扫描
  3. 为组织专属模式创建自定义规则
  4. 集成到 CI/CD 流水线
  5. 制定安全门禁策略
  6. 培训开发团队了解发现的问题及其修复方法

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 不要将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请暂停并请求澄清。

评论

支持 Markdown