tanikush/vibescan

GitHub: tanikush/vibescan

VibeScan 是一款检测 AI 编码工具引入的安全漏洞的扫描工具,弥补了传统扫描器的不足。

Stars: 0 | Forks: 0

# VibeScan [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) [![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org) [![GitHub Actions](https://img.shields.io/github/actions/workflow/status/tanikush/vibescan/scan.yml)](.github/workflows/scan.yml) ## 问题所在 AI 编码工具(Cursor、Claude、Copilot)能快速生成代码——但**其中 45% 存在安全漏洞**([《Veracode 2025 GenAI 代码安全报告》](https://www.veracode.com/resources/analyst-reports/2025-genai-code-security-report/))。传统的密钥扫描器(如 GitLeaks 和 TruffleHog)专注于凭据泄漏检测。VibeScan 专为检测 AI 编码工具常引入的不安全编码模式而构建。 ## 架构 Structure ## 工作原理 image 1. **模式匹配** — 14 条密钥正则规则 + 22 条 AI 特定漏洞规则,针对每个代码文件运行。 2. **熵分析** — 对每一行应用香农熵分析,标记出类似密钥但不符合已知模式的高熵字符串。 3. **上下文过滤** — 跳过注释行(不会对 `# eval()` 文档产生误报),并遵守允许列表。 4. **风险评分** — 每个发现被分类为“严重” / “高” / “中”,并汇总为一个 0-100 的安全评分和 A-F 等级。 5. **输出** — 丰富的终端表格、HTML 报告、用于 CI/CD 的 JSON,或交互式仪表板。 | 功能 | 状态 | |---|---| | 14 种密钥模式(AWS、OpenAI、GitHub、Stripe、JWT、数据库 URL 等) | ✅ | | 香农熵检测(未知令牌) | ✅ | | 22 种 AI 特定漏洞模式 | ✅ | | 实时密钥验证(GitHub + OpenAI 令牌) | ✅ | | 提供安全代码片段的自动修复建议 | ✅ | | Git 钩子(在“严重”等级时阻止推送) | ✅ | | GitHub Actions PR 机器人 | ✅ | | HTML 报告 + 安全仪表板(0-100 分,A-F 等级) | ✅ | | 支持允许列表和基线的配置文件 | ✅ | | 零成本 · 支持离线使用 · MIT 许可证 | ✅ | ## 快速开始 ``` # 安装 — 一次 pip install vibescan-ai # 扫描任意项目 vibescan scan . # 保存 HTML 报告 vibescan scan . -o report.html ``` **输出:** `文件 | 行 | 问题 | 风险 | 匹配项`,以彩色 Rich 表格形式呈现。 ## 📸 截图 | 功能 | 图片 | |--------|-------| | 终端输出 | | | HTML 报告 | | | 安全仪表板 | | ## 演示 [VibeScan v1 演示](https://youtu.be/us6Efr1zF1U) | [VibeScan v2 演示](https://youtu.be/yc_Ud2gm5Zs) ## 用法 ``` # 扫描当前文件夹 vibescan scan . # 扫描指定文件夹 vibescan scan path/to/your/project # HTML 报告 vibescan scan . -o report.html # 安全仪表板(0-100 分 + A-F 等级) vibescan scan . -d dashboard.html # JSON 导出(CI/CD 集成) vibescan scan . -j results.json # 快速扫描 — 仅密钥,跳过 AI 模式 vibescan scan . --no-vibe # 临界时失败(CI/CD 退出代码 1) vibescan scan . --fail-on-critical # 验证检测到的密钥是活跃还是已撤销 vibescan scan . --validate ``` ## 检测到的问题 ### 密钥类 AWS 访问密钥 · AWS 密钥 · OpenAI API 密钥 · GitHub 令牌 / OAuth / PAT · Google API 密钥 · JWT 令牌 · 数据库 URL(PostgreSQL / MongoDB / MySQL / Redis) · 通用 API 密钥 · 通用密码 · 私钥 · Stripe 密钥 / 测试密钥 · Slack 令牌 · 硬编码的 `.env` 值 ### AI 特定漏洞类 提示注入 · 未经验证的 LLM 输入 · 密码/令牌被记录 · 使用 `shell=True` 的 `subprocess` · `os.system()` · 路径遍历 · 路由中提供 `.env` 服务 · 硬编码的管理员凭据 · 脆弱的 `random` 模块 · `yaml.load()` · `pickle.loads()` · 认证缺少速率限制 · 未经验证的文件上传 · 缺少认证检查 · 通过 f-string 进行 SQL 注入 · 生产环境中的调试模式 · CORS 通配符 · 直接读取 `.env` · 使用 `eval()` ## VibeScan 与传统扫描器的比较 | 功能 | GitLeaks / TruffleHog | VibeScan | |---------|----------------------|----------| | 密钥/凭据泄漏检测 | ✅ | ✅ | | 香农熵分析 | ❌ | ✅ | | AI 特定漏洞模式 | ❌ | ✅ | | 缺失认证检测 | ❌ | ✅ | | SQL 注入检查 | ❌ | ✅ | | 自动修复建议 | ❌ | ✅ | | GitHub Actions / PR 机器人 | ❌ | ✅ | | 安全仪表板(0-100 分) | ❌ | ✅ | | 成本 | 免费 | 免费 | 传统工具是为人工编写的代码构建的,主要暴露凭据泄漏问题。VibeScan 专注于另一类问题——AI 助手(Cursor、Claude、Copilot)常引入的不安全编码模式:缺失的认证检查、不安全的 `eval()`、通过 `shell=True` 进行的 shell 注入,以及在生产环境中留用的调试模式。这些模式本身不是密钥,但它们仍然是通用扫描器不会寻找的关键漏洞。 ## 技术栈 Python · Click · Rich · Jinja2 · 正则表达式 · 香农熵 · GitHub Actions ## 安装(从源码) ``` git clone https://github.com/tanikush/vibescan.git cd vibescan pip install -r requirements.txt pip install -e . ``` ## 许可证 MIT — 详情见 [LICENSE](LICENSE)。永久免费。无许可费用。无云锁定。
标签:AI代码分析, AI安全, AI编码工具, API安全, API密钥检测, Chat Copilot, CI/CD工具, GitHub集成, HTML报告, JSON输出, Python项目, 二进制发布, 交互式仪表板, 代码安全, 代码漏洞扫描器, 安全合规, 安全测试, 安全评分系统, 密钥泄露, 开源工具, 攻击性安全, 漏洞枚举, 熵分析, 秘密扫描, 终端工具, 网络代理, 输入验证, 逆向工具, 错误基检测, 静态代码分析