AIdhirajSingh/clauderabbit
GitHub: AIdhirajSingh/clauderabbit
ClaudeRabbit 通过在隔离沙箱中真实运行公开 GitHub 仓库来检测恶意行为,为开源社区提供带证据链的 0–100 安全评分。
Stars: 1 | Forks: 1
# ClaudeRabbit
2025 年出现了超过 454,600 个新的恶意开源包——一年内增长了 75%——而且真正致命的攻击根本不带 CVE;它们只在 runtime 中存在。
ClaudeRabbit 是一款专为开发者社区打造的免费、开源安全产品。
粘贴任何公开的 GitHub repo,我们会将其 clone 到一个隔离的 sandbox 中,真实地运行它,并给出一个诚实的 **0–100 安全评分**:这个项目是什么、我们运行它时它做了什么,以及我们无法验证的内容。每份报告都在 `/owner/repo` 下公开且永久保存,支持分享,并可嵌入为信任徽章——这是一项公共产品,而非付费墙产品。登录仅会保存您自己的扫描历史;它永远不会为您带来更多权限。
## 工作原理 — 双速漏斗
```
paste URL → API/edge fn → cache check (by commit SHA)
└─ miss → FAST PATH (~95%): static signals + reputation + a fast model reads only
the flagged regions → score + confidence
└─ confident clean → ship verdict
└─ suspicious / low-confidence → ESCALATE
→ DEEP PATH (~5%): an AGENTIC analyzer on a throwaway GCP VM —
Gemini agents (brain OUTSIDE the blast radius) explore the whole
repo for what stage-1 missed, then DETONATE chosen files as a
non-root user under a monitored sinkhole, recording CODE-VERIFIED
facts (hermetic, egress-locked, no real packet leaves, reset every scan)
→ blend → 0–100 score → report generated from design.md → persist + public /owner/repo
```
始终遵循两条安全原则:**(1)** 任何界面都不会直接显示简单的“安全”——每个判定都会展示其证据以及*未*经验证的内容;**(2)** sandbox 是完全封闭的(无真实凭证、锁定 egress、限制资源上限),并且**在每次扫描后重新镜像/删除**。
## 使用方法
**在网页端** — 访问 **[clauderabbit.in](https://clauderabbit.in)**,粘贴一个 GitHub URL(或 `owner/repo`),点击扫描。无需登录;使用 Google 或电子邮件登录只会保存您的扫描历史。
**在终端中** — 发布到 npm 上的 [CLI](cli/) [`clauderabbit`](https://www.npmjs.com/package/clauderabbit),可在您安装或 clone repo 或 npm 包之前对其进行扫描:
```
npm install -g clauderabbit # one-time setup
clauderabbit scan expressjs/express # run a real scan
```
**在 AI 编码 agent 中** — [MCP server](mcp-server/) 通过 stdio 暴露了一个具备缓存感知能力的 `scan` 工具,以便 agent 可以在运行依赖项之前对其进行检查(同时也通过 `clauderabbit.in/mcp` 上的 Streamable HTTP 为 claude.ai 自定义连接器提供远程服务)。构建一次(`cd mcp-server && npm install && npm run build`),然后通过 `cd cli && npm install && npm run build && node dist/index.js mcp install` 将其接入 Claude Desktop——它会自动找到您真实的 `claude_desktop_config.json`(包括 Windows MSIX/Store 安装的不同路径)并为您添加配置条目。
CLI 和 MCP server 都会调用网站使用的同一个公共扫描 API,并且需要已登录的 ClaudeRabbit 账户(这是一个真实的产品/访问权限决策,而不是因为数据敏感——无论哪种情况,报告页面都是公开的);首次调用会打开您的浏览器进行一次登录,然后在您退出登录之前保持静默。完整的命令/工具参考请参见 [cli/README.md](cli/README.md) 和 [mcp-server/README.md](mcp-server/README.md)。
## 技术栈
| 层级 | 选择 |
|---|---|
| Web | **Next.js 16 (App Router) + React 19 + TypeScript** — 主页 SPA,SSR `/owner/repo` SEO 页面,API |
| 数据库 / 验证 / Edge | **Supabase**(Postgres + RLS,Google + email/OTP 验证,Deno edge functions) |
| 模型 | **全部通过 Vertex AI 使用 Gemini** — 快速的 `gemini-3.1-flash-lite`,深度/agent 用的 `gemini-3.5-flash`(为未来将深度路径替换为 Kimi K2.7 保留了无缝切换接口) |
| 评分 | **代码计算**的确定性公式(`_shared/scoring.ts`)— 模型提供加权信号;代码决定最终引用的 0–100 分 |
| Sandbox | Google Cloud 上的 **Agentic 行为分析器** — 知识图谱探索 + sinkhole 引爆,经过代码验证的事实(`sandbox/`) |
| 设计 | 对已发布的 Claude Design 规范的忠实移植(`design.md`) |
## 模型切换接口
**通过 Vertex AI 使用的 Gemini 是生产环境的模型层**(全部为 Gemini)。快速/深度模型 ID 从 Supabase secrets `GEMINI_FAST_MODEL` / `GEMINI_DEEP_MODEL` 中读取,并通过 `supabase/functions/_shared/vertex.ts` 进行调用;agentic sandbox 层(`sandbox/agent/vertex_client.py`)运行 `gemini-3.1-flash-lite`(探索)+ `gemini-3.5-flash`(顾问/分析),通过 `global` Vertex 位置(通过 `VERTEX_LOCATION` 解耦)得到实时验证。该切换接口为未来将 **Kimi K2.7 Code** 替换为深度路径保持完好——只需更改 secret 或那一个模块;编排、代码计算的评分以及升级门槛都是真实的且保持不变。
## 本地开发
```
npm install
cp .env.example .env.local # fill in the Supabase URL + publishable key (public values)
npm run dev # http://localhost:2311
```
`npm run lint` · `npm run typecheck` · `npm run build` 均可顺利运行(在 CI 中也会强制执行)。
## Secrets(仅限服务端 — 绝不出现在客户端或 repo 中)
客户端**仅**包含 `NEXT_PUBLIC_SUPABASE_URL` + `NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY`。
其他所有内容都存在于 Supabase edge-function 的 secrets 中:
`GOOGLE_SERVICE_ACCOUNT_JSON`、`GCP_PROJECT_ID`、`GCP_LOCATION`、`GEMINI_FAST_MODEL`、
`GEMINI_DEEP_MODEL`、`GITHUB_TOKEN`(可选)。请参见 `docs/INFRASTRUCTURE.md`。
```
supabase db push # apply migrations + seed
supabase functions deploy scan --no-verify-jwt
supabase secrets set NAME="value"
```
## 部署到 Vercel
1. 将 repo 导入 Vercel(自动检测框架:Next.js)。
2. 在 Vercel 项目中设置三个 `NEXT_PUBLIC_*` 环境变量(来自 `.env.example`)。
3. 部署。Supabase 后端(数据库 + edge functions)已经上线,并通过 Supabase CLI 单独部署;Vercel 托管 Next.js Web 层。
## Repo 布局
```
app/ Next.js routes (SPA home, /[owner]/[repo] SSR report, /badge, /auth/callback, /api/deep)
components/spa/ the faithful design port (8 screens + shared chrome + state machine)
lib/ score logic, types, demo seed, supabase clients, scan client, report view
supabase/migrations/ schema + RLS + scan-limit function
supabase/functions/scan/ the fast-path orchestrator (Vertex seam, GitHub fetch, static signals)
sandbox/ the dynamic sandbox engine (the moat) — production runs as Cloud Run
Job executions (sandbox/cloudrun/), which replaced the earlier
microVM-on-persistent-host substrate (sandbox/microvm/, superseded but
kept — see sandbox/cloudrun/harness/README.md for what changed and why)
cli/ the clauderabbit CLI (scan, mcp install, login/logout)
mcp-server/ MCP server (one cache-aware scan tool over stdio for AI coding tools)
docs/ north star, system design / PRD, UX, INFRASTRUCTURE
design.md the shipped Claude Design spec (source of truth for the UI + reports)
```
免费且无限次,扫描绝不需要登录或广告。不断积累的经过审查的 repo 数据库才是真正的资产——关于(目前尚未解决的)变现问题的真实当前状态,请参见 `docs/INFRASTRUCTURE.md`。
标签:AI安全分析, MITM代理, 沙箱分析, 自动化攻击, 软件供应链安全, 远程方法调用, 逆向工具, 静态与动态分析