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代理, 沙箱分析, 自动化攻击, 软件供应链安全, 远程方法调用, 逆向工具, 静态与动态分析