tanikush/vibescan
GitHub: tanikush/vibescan
VibeScan 是一款检测 AI 编码工具引入的安全漏洞的扫描工具,弥补了传统扫描器的不足。
Stars: 0 | Forks: 0
# VibeScan
[](LICENSE)
[](https://www.python.org)
[](.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 编码工具常引入的不安全编码模式而构建。
## 架构
## 工作原理
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)。永久免费。无许可费用。无云锁定。
## 工作原理
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项目, 二进制发布, 交互式仪表板, 代码安全, 代码漏洞扫描器, 安全合规, 安全测试, 安全评分系统, 密钥泄露, 开源工具, 攻击性安全, 漏洞枚举, 熵分析, 秘密扫描, 终端工具, 网络代理, 输入验证, 逆向工具, 错误基检测, 静态代码分析