SuperAPI AI 工具集

git-security-2025

安全与审计

查看项目

更新于 10-15 13:59

技能介绍

用途

本技能提供 2025-2026 年 Git 安全最佳实践,围绕签名提交、零信任安全模型和密钥扫描三大主题,帮助开发者在仓库配置、开发工作站和工作流三个层面加固 Git 使用安全。技能会在配置签名提交(GPG、SSH)、实施零信任 Git 工作流、扫描或阻止密钥泄露等场景下主动激活。

主要能力

零信任安全模型

以“永不信任、始终验证”为核心原则,要求每次提交都经过验证、采用最小权限访问、持续监控所有操作并假设已发生入侵。具体实现包括:强制签名提交、身份验证、持续审计日志、最小权限访问控制和持续监控。

签名提交

支持两种签名方式:

  • GPG 签名(传统方式):生成 GPG 密钥、配置 Git 使用签名密钥、导出公钥添加到 GitHub/GitLab/Bitbucket,并提供 GPG agent 未运行、缓存口令等故障排查方法。
  • SSH 签名(2023+ 现代替代方案):复用现有 SSH 密钥,无需 GPG,配置 gpg.format ssh 和 user.signingkey,并支持配置 allowed signers 文件用于验证。

密钥扫描与防护

  • GitHub Secret Scanning(推送保护):在仓库设置中启用,可在推送时阻止密钥泄露,支持 AI 驱动的检测(AWS 凭据、Azure 服务主体、Google Cloud 密钥、GitHub 令牌、数据库连接字符串、API 密钥、私钥、OAuth 令牌及自定义模式)。
  • Gitleaks(本地扫描):提供 macOS、Linux、Windows 安装命令,支持扫描整个仓库、未提交更改、指定目录,可生成 JSON 报告并用于 CI/CD,也可配置为 pre-commit 钩子。
  • Git-secrets(AWS 聚焦):安装、初始化、注册 AWS 模式、添加自定义模式并扫描。

强制签名提交

提供 GitHub、GitLab、Azure DevOps 的分支保护规则配置,以及服务端 pre-receive 钩子脚本,用于拒绝未签名提交。

安全配置

推荐 Git 全局配置,包括签名、协议版本、fsckobjects 传输校验、凭据助手、行尾安全和编辑器安全。同时提供 .gitignore 安全模板,覆盖密钥、云服务商、数据库、日志、IDE 密钥和构建产物。

凭据管理与 CodeQL 扫描

详细的凭据管理指导(PAT、SSH 密钥、Git Credential Manager、轮换、存储)和 CodeQL/安全扫描设置位于 references/credential-and-code-scanning.md,在加固开发者凭据或添加仓库级静态安全分析时加载该参考文件。

审计追踪

提供启用详细日志的 Git 别名、提交验证检查、审计日志导出和分支提交验证命令。

安全检查清单

覆盖仓库设置、开发者工作站和工作流三个层面的检查项,包括启用分支保护、要求签名提交、启用密钥扫描与推送保护、启用 CodeQL、配置 Dependabot/Renovate、要求 2FA、使用 GPG 或 SSH 签名、配置凭据管理器、安装 gitleaks、创建 .gitignore、启用 fsckobjects、使用带口令的 SSH 密钥、不提交密钥、提交前审查、验证签名、定期安全审计、定期轮换凭据、使用环境变量存储密钥。

事件响应

提供密钥泄露和未签名提交检测后的处理步骤,包括立即轮换凭据、从最新提交或历史中移除密钥、通知团队重新克隆、启用推送保护,以及重新签名提交并强制推送。

使用方式

技能以 Markdown 文档形式提供,包含可直接复制使用的 Git 配置命令、CI/CD 工作流 YAML 示例、pre-receive 钩子脚本和检查清单。用户可根据自身仓库平台(GitHub/GitLab/Azure DevOps)和签名方式(GPG/SSH)选择对应章节执行。

适用场景

  • 配置 GPG 或 SSH 签名提交
  • 实施零信任 Git 工作流
  • 扫描或阻止密钥泄露
  • 设置分支保护规则强制签名提交
  • 配置 CI/CD 中的提交验证和密钥扫描
  • 加固开发者凭据和仓库安全

限制

  • 部分内容(如凭据管理和 CodeQL 扫描)需加载外部参考文件 references/credential-and-code-scanning.md。
  • 具体平台设置路径可能随平台版本变化,需以实际界面为准。
  • 技能未提供收费、价格或效果保证等信息。