Pravatta/github-secret-scanner

GitHub: Pravatta/github-secret-scanner

一款用于扫描 GitHub 公开仓库中泄露凭证的安全研究工具。

Stars: 1 | Forks: 0

# 🔍 GitHub 密钥扫描器 一款安全研究工具,用于扫描 GitHub **公开**仓库中意外泄露的凭证和密钥。 ## 检测范围 | 类型 | 严重性 | |------|-----------| | AWS Access Key / Secret Key | 🔴 严重 | | GitHub 个人访问令牌 | 🔴 严重 | | Stripe 密钥 | 🔴 严重 | | Firebase 服务账户 | 🔴 严重 | | RSA/EC 私钥 | 🔴 严重 | | Slack Bot/用户令牌 | 🔴 严重 | | OpenAI / Claude API 密钥 | 🟠 高危 | | Google API 密钥 | 🟠 高危 | | 数据库连接字符串 | 🟠 高危 | | NPM / Docker 令牌 | 🟠 高危 | | 硬编码的 JWT 密钥 | 🟠 高危 | | 代码中的通用密码 | 🟡 中危 | | 通用 API 密钥 | 🟡 中危 | ## 安装说明 ``` pip install requests ``` ## 使用方法 ``` # 基础(无 token——速率限制每分钟 10 次请求) python run.py # 使用 GitHub token(推荐——速率限制每小时 5000 次请求) python run.py --token ghp_SEU_TOKEN # 扫描更多文件 python run.py --token ghp_SEU_TOKEN --max 500 --queries 20 # 自动生成 LinkedIn 帖子 python run.py --token ghp_SEU_TOKEN --linkedin # 自定义输出 python run.py --token ghp_SEU_TOKEN --output meu_relatorio ``` ## 输出结果 - `report.html` — 可视化仪表板,包含所有发现项 - `report.json` — 用于分析的结构化数据 - `report_linkedin.txt` — 可直接发布到 LinkedIn 的文本 ## 工作原理 1. 使用 GitHub Code Search API 和特定查询条件 2. 下载找到的每个文件内容 3. 对每个文件应用 27 种正则表达式模式 4. 按严重性分级(严重 / 高危 / 中危 / 低危) 5. 映射到 MITRE ATT&CK 框架 6. 生成可视化 HTML 报告和 JSON 数据 ## 为何会发生这种情况? - 开发人员意外提交了 `.env` 文件 - 生成式 AI(如 ChatGPT、Copilot)生成的代码包含占位符凭证,后来被替换为真实凭证 - `.gitignore` 文件未正确配置 - 项目时间压力 → "能跑就行,先提交" ## 如何保护您的项目 ``` # 1. 安装 git-secrets git secrets --install git secrets --register-aws # 2. 使用环境变量 pip install python-dotenv # 3. 公开前检查历史记录 git log --all --full-history -- "**/*.env" # 4. 启用 GitHub Secret Scanning(公共仓库免费) # 设置 → 安全 → Secret scanning → 启用 ``` ## 项目结构 ``` github-secret-scanner/ ├── run.py # CLI principal ├── scanner.py # Core: GitHub API + busca ├── patterns.py # 27 patterns de detecção ├── report.py # Geração de HTML/JSON/LinkedIn └── README.md ```
标签:API密钥泄露, DevSecOps, GitHub API, GitHub安全扫描, MITRE ATT&CK映射, Python安全工具, StruQ, 上游代理, 代码安全, 代码泄露检测, 凭证泄露, 安全报告生成, 正则表达式匹配, 漏洞枚举, 秘密检测, 网络安全, 逆向工具, 隐私保护, 默认DNS解析器