扫描公共GitHub仓库中AI编码工具配置文件(.claude/、.cursor/、.continue/、.codex/、CLAUDE.md、AGENTS.md等)中的泄露凭证。
使用TruffleHog进行秘密检测。
示例.claude/目录:
{
"permissions": {
"allow": [
"Bash(go build:*)",
"Bash(RAPID7_ENCRYPTED_CREDS='**eP3g488hQ23QiU4kJahhwPKs3PyE**' go test ./pkg/agents/ -run TestRules -v -count=1 -timeout 30s)",
"Bash(gcloud sql instances list:*)",
]
}
}
go install github.com/niels/claudleak/cmd/claudleak@latest
或者从源码构建:
git clone https://github.com/niels/claudleak.git
cd claudleak
go build -o claudleak ./cmd/claudleak/
GITHUB_TOKEN="ghp_..." ./claudleak
# 扫描最多50个仓库,输出JSON到文件
claudleak --max-repos 50 --json --output results.json
# 使用4个工作线程进行详细扫描
claudleak --workers 4 --verbose
# 扫描特定组织,仅显示已验证的秘密
claudleak --org microsoft --verified-only
cmd/claudleak/main.go 命令行入口
pkg/config/ 配置解析
pkg/discovery/ GitHub仓库发现
pkg/cloner/ Git克隆操作
pkg/scanner/ TruffleHog秘密扫描
pkg/reporter/ 表格/JSON输出
0 — 未发现秘密1 — 发现秘密(或运行时错误)2 — 配置错误| 标志 | 默认值 | 描述 |
|---|
--token | $GITHUB_TOKEN | GitHub个人访问令牌 |
--max-repos | 100 | 最大扫描仓库数 |
--workers | CPU核心数 | 并发克隆/扫描工作线程数 |
--json | false | 以JSON格式输出结果 |
--output | stdout | 将结果写入文件 |
--verified-only | false | 仅显示已验证的凭证 |
--org / --user | 仅扫描此GitHub用户或组织拥有的仓库 | |
--verbose | false | 显示进度/调试信息 |