JuniorZikali/chainguard

GitHub: JuniorZikali/chainguard

基于大语言模型的智能合约自动化审计平台,覆盖漏洞扫描、不变式发现、Foundry 测试生成与风险评分的全流程。

Stars: 0 | Forks: 0

# ChainGuard — AI 驱动的智能合约审计器 (v2) ## 🚀 快速部署 (15 分钟) ### 步骤 1 — 设置 Supabase 1. 访问 [supabase.com](https://supabase.com) → **New Project** 2. 进入 **SQL Editor** → 粘贴 `supabase/schema.sql` 的全部内容 → **Run** 3. 进入 **Project Settings → API** 并复制: - `Project URL` → `NEXT_PUBLIC_SUPABASE_URL` - `anon / public` 密钥 → `NEXT_PUBLIC_SUPABASE_ANON_KEY` - `service_role` 密钥 → `SUPABASE_SERVICE_ROLE_KEY` ### 步骤 2 — 获取 Groq API 密钥 (免费) 1. 访问 [console.groq.com](https://console.groq.com) → 注册 (免费,无需信用卡) 2. 点击 **API Keys** → **Create Key** → 复制密钥 → `GROQ_API_KEY` ### 步骤 3 — 部署到 Vercel ``` git add . git commit -m "chainguard v2 - groq + supabase" git push ``` 1. 访问 [vercel.com](https://vercel.com) → **Add New Project** → 导入代码库 2. 添加环境变量: NEXT_PUBLIC_SUPABASE_URL=... NEXT_PUBLIC_SUPABASE_ANON_KEY=... SUPABASE_SERVICE_ROLE_KEY=... GROQ_API_KEY=... 3. 点击 **Deploy** ### 步骤 4 — 本地运行 ``` cp .env.example .env.local # 在 .env.local 中填入你的 keys npm install npm run dev # 打开 http://localhost:3000 ``` ## 🏗️ 架构 ``` ┌─────────────────────────────────────────────────────────┐ │ CLIENT BROWSER │ │ Next.js (React + TypeScript) │ └──────────────────────┬──────────────────────────────────┘ │ HTTPS ┌──────────────────────▼──────────────────────────────────┐ │ VERCEL SERVERLESS │ │ /api/contracts → Upload .sol source code │ │ /api/analyses → Trigger AI analysis pipeline │ │ /api/analyses/[id] → Poll for results │ │ /api/dashboard → List all audits │ └──────────┬─────────────────────────────────┬────────────┘ │ │ ┌──────────▼──────────┐ ┌────────────▼────────────┐ │ SUPABASE DB │ │ GROQ API │ │ PostgreSQL │ │ llama-3.3-70b │ │ │ │ │ │ contracts │ │ • Invariant discovery │ │ analyses │ │ • Vulnerability scan │ │ properties │ │ • Foundry test gen │ │ findings │ │ • Risk scoring │ │ audit_logs │ │ │ └─────────────────────┘ └─────────────────────────┘ ``` ### 流水线 (单次审计) ``` .sol upload → Supabase(contracts) → Groq LLM analysis → Invariants → Supabase(properties) Findings → Supabase(findings) Summary → analyses.summary Risk score → analyses.risk_score Foundry tests → analyses.foundry_test_code Audit log → Supabase(audit_logs) [SHA-256 chain] ``` ## 📁 项目结构 ``` chainguard/ ├── pages/ │ ├── _app.tsx # Next.js app wrapper │ ├── index.tsx # Dashboard page │ └── api/ │ ├── contracts.ts # POST /api/contracts │ ├── analyses.ts # POST /api/analyses │ ├── analyses/[id].ts # GET /api/analyses/:id │ └── dashboard.ts # GET /api/dashboard ├── components/ │ ├── Layout.tsx # Nav + background │ ├── ContractUpload.tsx # Dropzone + upload form │ ├── AnalysisResult.tsx # Findings, invariants, Foundry code, log │ └── RecentAudits.tsx # Sidebar with audit history ├── lib/ │ ├── supabase.ts # Supabase client │ ├── llm.ts # Groq AI client + prompts │ └── types.ts # Shared TypeScript types ├── styles/ │ └── globals.css ├── supabase/ │ └── schema.sql # ← Run this first in Supabase └── .env.example ``` ## 🔧 本地运行 Foundry 测试 从 UI 下载生成的模糊测试文件并在本地运行: ``` # 安装 Foundry (Linux/WSL2) curl -L https://foundry.paradigm.xyz | bash foundryup forge init audit-workspace cd audit-workspace cp YourContract.sol src/ cp YourContractFuzzTest.t.sol test/ forge test --match-contract Fuzz -vvv ``` ## 📊 数据库结构 | 数据表 | 用途 | |-------|---------| | `contracts` | 上传的 Solidity 源代码 | | `analyses` | 带有状态、风险评分、摘要的审计任务 | | `properties` | 发现的不变式 (来自 LLM) | | `findings` | 带有严重级别和修复建议的漏洞 | | `audit_logs` | 不可变的 SHA-256 链式审计轨迹 | *由 [Your Name] (H2XXXXXXQ) 构建 · ISA 系 · HIT · 2025*
标签:AI代码分析, CISA项目, DApp安全, DLL 劫持, OSV, React, Serverless, Solidity, Supabase, Syscalls, Sysdig, TypeScript, Vercel, Web3安全, Web3开发, 人工智能, 区块链安全, 去中心化应用, 大语言模型, 安全插件, 对称加密, 智能合约安全, 智能合约审计, 测试用例, 用户模式Hook绕过, 自动化审计, 自动化攻击