首页龙虾技能列表 › secrets-audit — 密钥审计

secrets-audit — 密钥审计

v1.0.0

扫描项目和代码库中暴露的密钥、API密钥、令牌、密码和敏感凭证。检测源代码、配置文件、环境文件及Git历史中的硬编码密钥。适用于审计项目密钥、检查暴露凭证、扫描API密钥、查找硬编码密码、审查代码库安全、检查泄露令牌、审计.env文件或验证无密钥提交等场景。

0· 55·0 当前·0 累计
下载技能包
License
MIT-0
最后更新
2026/4/11
安全扫描
VirusTotal
无害
查看报告
OpenClaw
安全
high confidence
该技能的代码和运行时指令与其声明的用途(本地密钥扫描和可选的git历史检查)一致;没有迹象表明存在隐藏的数据外泄或无关的权限获取,但在运行之前有一些小的代码质量问题需要审查。
评估建议
该技能看起来是连贯的,并实现了所宣传的本地密钥扫描器。在运行之前:(1) 审查脚本(尤其是git历史代码)以确保其符合您的策略;(2) 如果项目包含非常敏感的数据,请针对仓库副本或在隔离环境(容器/VM)中运行;(3) 注意脚本通过subprocess.run调用git进行历史检查——这是预期的,但请审查/限制运行位置;(4) 在scan_git_history末尾有一个小的代码bug(明显的未定义变量引用)——在CI/自动化使用前考虑修复或审查完整脚本;(5) 扫描器使用熵启发式和正则规则,可能产生误报/漏报——手动审查发现并立即轮换任何真实/高严重性凭证;(6) 不要假设该工具会将结果上传到任何地方(提供的文件中没有),但请验证您信任运行它的任何环境。...
详细分析 ▾
用途与能力
名称/描述、SKILL.md和scripts/scan_secrets.py是一致的:脚本实现了模式匹配、熵检查、目录跳过、CI退出码和可选的git历史扫描。该技能不请求无关的凭证、二进制文件或配置路径。
指令范围
运行时指令仅指示代理针对目标目录运行随附的Python扫描器(带可选的--git-history标志)。SKILL.md和脚本完全在本地文件和git历史上操作;没有向外部端点传输数据的指令。git历史检查使用git subprocess调用,这对于此目的是预期的。
安装机制
无安装规范;该技能仅是指令加脚本,依赖Python标准库。技能本身不下载或安装任何内容。
凭证需求
该技能不请求环境变量或凭证。它扫描用户提供的仓库;不需要额外的密钥。
持久化与权限
always:false 且无特殊持久性或系统范围修改。该技能不声称修改其他技能或全局代理设置。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv1.0.02026/4/11

初始版本

● 无害

安装命令 点击复制

官方npx clawhub@latest install secrets-audit
镜像加速npx clawhub@latest install secrets-audit --registry https://cn.clawhub-mirror.com

技能文档

扫描任何项目目录以发现暴露的密钥、硬编码凭证和数据泄露。生成带有修复步骤的严重性分级报告。

快速开始

# 完整项目扫描
python3 scripts/scan_secrets.py /path/to/project

# 扫描并检查git历史 python3 scripts/scan_secrets.py /path/to/project --git-history

# 仅扫描特定文件类型 python3 scripts/scan_secrets.py /path/to/project --extensions .py,.js,.ts,.env,.yml,.json

# JSON输出用于CI集成 python3 scripts/scan_secrets.py /path/to/project --format json

检测内容

高严重性

  • API密钥(AWS、GCP、Azure、OpenAI、Stripe等)
  • 带凭证的数据库连接字符串
  • 私钥(RSA、SSH、PGP)
  • OAuth令牌和刷新令牌
  • JWT密钥和签名密钥
  • 带字面值的密码字段

中严重性

  • 包含密钥的.env文件
  • 带凭证的配置文件(database.yml、settings.py等)
  • 带嵌入式认证的硬编码URL(user:pass@host)
  • 带令牌的Webhook URL
  • 赋值上下文中的通用高熵字符串

低严重性

  • 提及密钥的TODO/FIXME注释
  • 占位符凭证(admin/admin、test/test)
  • 文档中的示例API密钥
  • 已注释掉的凭证

忽略(减少误报)

  • 锁文件(package-lock.json、yarn.lock等)
  • 二进制文件
  • 压缩的JS/CSS
  • 明确标记为假数据的测试fixture
  • node_modules、.git、vendor目录

扫描输出

扫描器生成结构化报告:

=== Secrets Audit Report ===
Project: /path/to/project
Scanned: 247 files | Skipped: 1,203 files
Time: 2.3s

--- HIGH SEVERITY (3 findings) ---

[H1] AWS Access Key ID File: src/config/aws.js:14 Match: AKIA...EXAMPLE Context: const accessKey = "AKIA..." Fix: Move to environment variable AWS_ACCESS_KEY_ID

[H2] Database Password File: config/database.yml:8 Match: password: "pr0duction_p@ss" Fix: Use DATABASE_URL env var or secrets manager

--- MEDIUM SEVERITY (5 findings) --- ...

--- SUMMARY --- High: 3 | Medium: 5 | Low: 2 | Total: 10

Recommendation: Rotate all HIGH severity credentials immediately

工作流程

1. 扫描

针对目标目录运行scripts/scan_secrets.py。脚本会:

  • 递归遍历目录树
  • 跳过二进制文件、锁文件和依赖目录
  • 应用references/secret-patterns.md中的40多个正则模式
  • 计算潜在密钥的熵
  • 对发现结果去重

2. 审查

按严重性分组展示发现结果。对于每个发现:

  • 显示文件、行号和周围上下文
  • 解释发现的是哪种类型的密钥
  • 评估是真实密钥还是误报

3. 修复

对于每个确认的发现,提供具体的修复指导:

  • 使用哪个环境变量
  • 如何添加到.gitignore
  • 密钥是否需要轮换(如果已提交到git)
  • 显示修复的示例代码

4. 验证

修复后:

  • 重新运行扫描以确认修复
  • 如果密钥曾被提交,检查git历史
  • 建议添加pre-commit钩子以防止未来泄露

Git历史扫描

使用--git-history标志时,脚本还会检查:

  • 曾包含密钥的已删除文件
  • 密钥被移除的文件先前版本
  • 提交消息中包含"secret"、"password"、"key"的提交

重要提示:如果密钥曾被提交到git,即使后来被移除,也必须进行轮换——它存在于git历史中。

CI集成

脚本返回用于CI流水线的退出码:

  • 0 — 无发现
  • 1 — 仅低/中严重性发现
  • 2 — 高严重性发现(应阻止部署)

JSON输出(--format json)可被CI工具解析以进行自动报告。

Pre-commit钩子设置

审计后,建议设置pre-commit钩子。请参阅references/prevention-guide.md了解钩子的安装和配置。

数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制

免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制

了解定制服务