SuperAPI AI 工具集

secret-leak-detector

安全与审计

查看项目

更新于 10-16 09:11

技能介绍

用途

secret-leak-detector 旨在保护代码仓库,通过识别硬编码的敏感信息(如 API 密钥、数据库凭据和认证令牌),在提交前或意外推送至历史记录后发现问题。

主要能力

  • 扫描源代码和配置文件中的硬编码凭据、API 密钥和令牌。
  • 支持扫描 git 历史记录(通过 scan_history: true),可发现已删除但仍存在于 git 日志中的密钥。
  • 输出泄漏列表,包含文件路径、行号、密钥类型、风险等级和掩码后的片段(如 sk_live_**********)。
  • 输入参数包括:directory_path(目标目录路径)和 scan_history(是否扫描历史记录)。

使用方式

何时使用

  • 预提交检查:在提交更改前运行此技能,确保没有引入密钥。
  • CI/CD 流水线:集成到自动化流水线中,阻止包含明文密钥的构建。
  • 遗留审计:配合 scan_history: true 对项目完整历史进行深度审计,查找已删除但仍在 git 日志中的密钥。

输入输出示例

输入:

directory_path: "./config"
scan_history: false

输出:

{
  "leaks": [
    {
      "file": "config/production.yaml",
      "line": 45,
      "type": "Stripe Secret Key",
      "risk_level": "critical",
      "snippet": "sk_live_**********"
    }
  ]
}

适用场景

  • 代码仓库提交前的密钥检查。
  • CI/CD 自动化流水线中的安全门禁。
  • 对历史提交进行深度审计,发现遗留密钥。

限制与注意事项

不适用场景

  • 生产日志:该工具面向源代码和配置文件,未针对扫描 TB 级运行时日志进行优化。
  • 二进制文件:无法有效检测编译后的二进制文件或加密数据块中的密钥。

错误条件与边界情况

  • 误报:测试数据或加密哈希中的高熵字符串可能被标记为密钥。
  • 需要 git 仓库:若 scan_history 为 true,目标目录必须是有效的 git 仓库。
  • 权限拒绝:若缺少对特定文件或 .git 目录的读取权限,技能将失败。

安全与数据处理

  • 无持久化:该技能不存储发现的密钥。
  • 掩码处理:输出片段经过掩码,防止工具本身成为日志或终端历史中的泄漏源。
  • 本地执行:技能在本地运行,不回传数据,也不将代码上传至第三方服务。