Secrets / Repository
secret-leak-sentinel
一个全面的机密检测与防护平台,持续监控仓库、日志、CI/CD 工件和云环境中的泄露凭证、API key、token 和证书——并配有自动告警和修复工作流。
在 GitHub 上查看 ↗关于项目
Secret Leak Sentinel 是一个多层平台,用于检测和防止敏感凭证的意外暴露——API key、访问 token、密码、私有证书、数据库连接字符串、OAuth secret,以及任何一旦泄露就可能导致未授权访问的凭证。机密泄露是从初始暴露到系统完全失陷最快的路径之一,从凭证公开出现到被自动扫描机器人利用,往往只需要几个小时。 该平台在三个层面运行:Prevention Layer 包含在代码更改提交到版本控制之前进行扫描的 pre-commit hooks,从源头阻止意外的凭证提交。这些 hooks 结合了正则表达式模式、熵分析(检测随机性异常高的字符串)以及机器学习分类,以高准确率和低误报率识别机密。Detection Layer 会持续扫描现有仓库、CI/CD 流水线日志、构建工件和云服务配置中的历史机密。与一次性扫描工具不同,这种持续监控可以捕获那些已提交、已删除但仍可在 git 历史中访问的机密。Response Layer 会在检测到泄露时自动化修复流程:立即通知相关团队、创建事件工单、启动凭证轮换流程,并跟踪修复进度直到完成。 该平台开箱即支持 200 多种凭证类型(AWS key、GCP service account、Azure secret、GitHub token、Stripe key、Twilio 凭证、数据库密码等),并允许组织为内部凭证格式定义自定义模式。所有发现都包含上下文信息——谁提交了该机密、何时提交、位于哪个文件和行,以及该机密看起来是有效凭证还是测试/示例值。
为什么这很重要
机密泄露是现代软件开发中最常见且最危险的安全失败之一。研究显示,超过 10% 的公共 GitHub 仓库至少包含一个暴露的机密,而自动化机器人会持续扫描 GitHub 中新提交的凭证——往往在暴露后几分钟内就加以利用。一把泄露的 AWS access key 就可能导致整个云基础设施失陷、数据外传,以及高达数十万美元的加密货币挖矿费用。 问题具有系统性:开发者每天要处理大量凭证(API key、数据库密码、service token),尽管有最佳实践,错误仍会发生——为了测试硬编码了一个凭证却意外提交了,一个 .env 文件因为 .gitignore 配置不当而被提交,或者 CI/CD 日志暴露了环境变量。每一种场景都会创建一个攻击者主动利用的脆弱窗口。 本平台全面应对机密泄露——在提交级别防止新泄露,通过持续扫描检测现有泄露,并在发现泄露时自动化响应。目标是将暴露窗口从行业平均的数天或数周缩短到几分钟。
分步指南
- 在每个仓库中运行 'sentinel install-hook' 安装本地预防用的 pre-commit hook。该 hook 对典型提交的运行时间少于 2 秒,并会阻止任何包含已检测凭证的提交。开发者可以使用 'sentinel allow --hash <hash>' 显式批准误报。该 hook 兼容 git 并支持所有编程语言。
- 通过提供的 OAuth 集成连接到您的 GitHub/GitLab/Bitbucket 组织,以在组织仓库上配置持续扫描。扫描器将分析所有仓库(包括 git 历史),安排为每天运行一次,并在 push 事件发生时立即扫描。结果会在几分钟内显示在 Web 仪表板中。
- 为与您环境特定的凭证模式定义自定义检测规则。规则引擎支持正则表达式、熵阈值和上下文分析(文件名模式、与已知机密变量名的接近程度)。/rules/examples/ 中提供了内部 API key 格式、数据库连接字符串和专有 token 模式的示例自定义规则。
- 配置自动化响应工作流,包括实时告警(Slack、email、PagerDuty)、为修复跟踪自动创建 Jira/ServiceNow 工单,以及与密钥轮换 API(AWS Secrets Manager、HashiCorp Vault)集成,在确认泄露后自动轮换凭证。通过管理层仪表板监控修复 SLA 合规情况。