Hariniha/Smart_Contract_Auditor

GitHub: Hariniha/Smart_Contract_Auditor

这是一个集成了静态模式匹配与AI动态分析的Web应用程序,用于对Solidity、Vyper和Cairo智能合约进行双层安全审计和合规性检查。

Stars: 0 | Forks: 1

# 🛡️ SmartAudit - AI 智能合约审计器 一个全面的 Web 应用程序,使用静态模式检测和动态 AI 驱动的分析,结合行业标准安全分类,对智能合约(Solidity、Vyper、Cairo)执行双层安全分析。 ## 🌟 功能 ### 多语言支持 - **Solidity**: 完全支持以太坊智能合约 (.sol) - **Vyper**: 类 Python 智能合约语言分析 (.vy) - **Cairo**: StarkNet 智能合约安全审计 (.cairo) - **自动检测**: 从代码或文件扩展名自动检测合约语言 ### 双层安全分析 - **静态分析**: 使用 SWC Registry 和特定语言模式进行快速基于模式的漏洞检测 - **动态分析 (AI 驱动)**: 高级 AI 推理以理解复杂的业务逻辑、状态转换和边缘情况 - **标准合规性**: SCSVS v2 框架验证和 EthTrust 安全级别评估 - **智能报告**: 包含可操作建议和风险评分的综合漏洞报告 ### 安全标准 - **SWC Registry**: 35+ 种智能合约弱点模式及 CWE 映射 (Solidity) - **VSR (Vyper Security Registry)**: 15 种 Vyper 特定漏洞模式及官方文档 - **CSR (Cairo Security Registry)**: 20 种 Cairo/StarkNet 安全模式及 OpenZeppelin 参考 - **SCSVS v2**: 50+ 项安全验证标准控制 - **EthTrust**: 5 级安全分类系统 - **特定语言模式**: 针对 Solidity、Vyper 和 Cairo 的专用漏洞检测 ### 主要功能 - ✅ 多语言支持 (Solidity, Vyper, Cairo) - ✅ 自动语言检测 - ✅ 使用 Monaco Editor 进行实时代码分析 - ✅ 带有行号的综合漏洞检测 - ✅ AI 驱动的解释和建议 (Groq + Llama 3.3) - ✅ 带有图表和分析功能的交互式结果仪表板 - ✅ SCSVS v2 合规性检查 - ✅ EthTrust 安全级别评估 - ✅ 多种导出格式 (PDF, JSON, Text) - ✅ 所有支持语言的示例合约 - ✅ 合约命名以生成有序报告 - ✅ 带有流畅动画的浅色主题 UI - ✅ 字符和行计数器 - ✅ 适用于所有设备的响应式设计 ## 🚀 入门指南 ### 前置条件 - 已安装 Node.js 18+ - Groq API key(已配置) ### 安装说明 1. **安装依赖项** ``` npm install ``` 2. **环境设置** 在根目录中创建包含您的 Groq API key 的 `.env` 文件: ``` GROQ_API_KEY=your_groq_api_key_here GROQ_MODEL=llama-3.3-70b-versatile ``` 3. **运行开发服务器** ``` npm run dev ``` 4. **打开浏览器** 导航至 [http://localhost:3000](http://localhost:3000) ## 📁 项目结构 ``` src/ ├── app/ │ ├── api/analyze/route.ts # Main analysis API endpoint │ ├── analyzer/page.tsx # Analyzer page with tabs │ ├── page.tsx # Landing page with features │ ├── layout.tsx # Root layout │ └── globals.css # Global styles (light theme) ├── components/ │ ├── AnalysisResults.tsx # Results container with tabs │ ├── OverviewDashboard.tsx # Overview tab with metrics │ ├── VulnerabilitiesList.tsx # Vulnerabilities tab with details │ ├── SecurityStandards.tsx # Standards tab (SWC/SCSVS) │ ├── AnalyticsDashboard.tsx # Analytics tab with charts │ ├── CodeEditor.tsx # Monaco editor wrapper │ ├── SampleLoader.tsx # Sample contracts loader │ └── AnalysisProgress.tsx # Progress indicator ├── lib/ │ ├── swc-registry.ts # SWC weakness definitions (Solidity) │ ├── vyper-security-registry.ts # VSR definitions (Vyper) │ ├── cairo-security-registry.ts # CSR definitions (Cairo) │ ├── scsvs-v2.ts # SCSVS v2 controls │ ├── ethtrust.ts # EthTrust levels │ ├── groq-service.ts # Groq API integration │ ├── static-analyzer.ts # Multi-language analyzer router │ ├── vyper-analyzer.ts # Vyper analysis engine │ ├── cairo-analyzer.ts # Cairo analysis engine │ ├── language-detector.ts # Auto-detect contract language │ ├── vulnerability-patterns.ts # Solidity patterns │ ├── vyper-patterns.ts # Vyper patterns │ ├── cairo-patterns.ts # Cairo patterns │ ├── sample-contracts.ts # Example contracts (all languages) │ ├── pdf-generator.ts # PDF report generation │ ├── doc-generator.ts # Text report generation │ └── utils.ts # Utility functions └── types/ └── index.ts # TypeScript definitions ``` ## 🔧 技术栈 ### 前端 - **框架**: Next.js 14 with App Router - **语言**: TypeScript - **样式**: Tailwind CSS (浅色主题) - **代码编辑器**: Monaco Editor (VS Code 的编辑器) - **图表**: Recharts 用于分析可视化 - **动画**: Framer Motion & GSAP - **图标**: Lucide React - **PDF 生成**: jsPDF - **状态**: React Hooks ### 后端 - **运行时**: Next.js API Routes - **AI**: Groq API (Llama 3.3 70B Versatile) - **解析器**: @solidity-parser/parser (v0.18.0) - **分析**: 自定义双层分析引擎 ## 📊 安全标准 ### SWC (Smart Contract Weakness) 注册表 35+ 种 Solidity 弱点模式,包括: - SWC-107: 重入 - SWC-105: 无保护的 Ether 提取 - SWC-106: 无保护的 SELFDESTRUCT - SWC-101: 整数溢出/下溢 - SWC-115: 通过 tx.origin 授权 - 以及 30+ 种其他模式... ### VSR (Vyper Security Registry) 15 种 Vyper 特定漏洞模式: - VSR-001: Vyper 合约中的重入 - VSR-002: 未检查的外部调用 - VSR-003: 整数溢出和算术问题 - VSR-004: tx.origin 身份验证 - VSR-005: 缺少访问控制装饰器 - VSR-006: 零地址验证 - VSR-007: 时间戳依赖 - VSR-008: 危险的 assert 使用 - VSR-009: 通过 raw_call 进行的不安全 delegatecall - VSR-010: 无保护的 selfdestruct - VSR-011: 未初始化的存储变量 - VSR-012: 状态竞争条件 - VSR-013: 缺少类型注解 - VSR-014: 缺少事件发射 - VSR-015: 过时的编译器版本 - **参考**: 官方 Vyper 文档 (docs.vyperlang.org) - **CWE 映射**: 行业标准弱点枚举 ### CSR (Cairo Security Registry) 20 种 Cairo/StarkNet 特定安全模式: - CSR-001: Cairo 合约中的重入 - CSR-002: 未检查的外部调用 - CSR-003: felt252 溢出漏洞 - CSR-004: 缺少访问控制 - CSR-005: 零地址检查 - CSR-006: 时间戳操纵 - CSR-007: 存储冲突风险 - CSR-008: 未使用的返回值 - CSR-009: 危险的 library_call 使用 - CSR-010: 未验证的输入参数 - CSR-011: 构造函数验证问题 - CSR-012: 数组边界检查 - CSR-013: 未检查的算术运算 - CSR-014: 缺少事件发射 - CSR-015: Cairo 版本兼容性 - CSR-016: 存储指针操纵 - CSR-017: 不正确的类型转换 - CSR-018: Gas 优化问题 - CSR-019: 跨合约调用漏洞 - CSR-020: 代理模式安全 - **参考**: StarkNet 文档和 OpenZeppelin Cairo 合约 - **CWE 映射**: 全面的弱点分类 ### SCSVS v2 框架 50+ 项跨类别的安全控制: - 架构与设计 - 访问控制 - 算术运算 - 输入验证 - Gas 优化 - 外部调用 - 业务逻辑 - 加密 - 以及更多... ### EthTrust 安全级别 - **级别 1**: 严重 - 不安全 (严重漏洞) - **级别 2**: 高风险 (高严重性问题) - **级别 3**: 中风险 (仅中等问题 - **级别 4**: 低风险 (低严重性问题) - **级别 5**: 安全 (未发现严重问题) ## 📋 使用方法 ### Step 1: 输入合约 - **粘贴代码**: 直接将您的 Solidity、Vyper 或 Cairo 代码粘贴到编辑器中 - **上传文件**: 从您的计算机上传 `.sol`、`.vy` 或 `.cairo` 文件 - **加载示例**: 使用所有支持语言中预加载的合约进行测试 - **命名您的合约**: 添加自定义名称以生成有序报告 - **自动检测**: 从代码或文件扩展名自动检测语言 ## 🎯 如何使用 ### 第 1 步:上传您的合约 - **粘贴代码**: 直接将您的 Solidity 代码粘贴到编辑器中 - **上传文件**: 从您的计算机上传 `.sol` 文件 - **加载示例**: 使用预加载的易受攻击合约进行测试 6 个预加载的测试示例: **Solidity:** 1. **易受攻击的银行**: 经典重入漏洞 (SWC-107) 2. **无保护合约**: 缺少访问控制 (SWC-105) **Vyper:** 3. **易受攻击的 Vyper 钱包**: 未检查的 send 和访问控制问题 4. **安全的 Vyper Token**: 使用适当装饰器的最佳实践 **Cairo:** 5. **不安全的 Cairo 保险库**: 重入和缺少验证 6. **安全的 Cairo 合约**: 适当的模式和安全检查 - **概述**: 安全评分、风险级别、EthTrust 级别、关键指标 - **漏洞**: 带有严重性、行号、代码片段的详细列表 - **安全标准**: SWC Registry 和 SCSVS v2 合规性 - **分析**: 图表、风险分布、建议 ### 第 3 步:下载报告 点击下载按钮以多种格式导出: - **PDF 报告**: 包含图表的专业格式文档 - **JSON 数据**: 用于集成的结构化数据 - **文本文件**: 易于共享的纯文本 ## 📦 报告内容 ### 漏洞详情 - 检测到的漏洞的完整列表 - 严重级别 - 安全分类映射: - Solidity 的 SWC ID - Vyper 的 VSR ID(含 docs.vyperlang.org 参考) - Cairo 的 CSR ID(含 StarkNet/OpenZeppelin 参考) - 所有语言的 CWE 映射 - 代码片段 - SWC 分类映射 - AI 增强的描述和解释 ### 安全指标 - 整体安全评分 (0-100) - EthTrust 安全级别 (1-5) - 风险分布分析 - 漏洞类别细分 ### 合规性检查 - SCSVS v2 合规性验证 - 通过和失败的安全控制 - 标准覆盖率百分比 - 详细控制评估 ### 建议 - 可操作的修复建议 - 代码改进建议 - 最佳实践指南 - 预防策略 ## 🔍 示例合约 4 个预加载的测试示例: 1. **易受攻击的银行**: 经典重入漏洞 (SWC-107) 2. **无保护合约**: 缺少访问控制 (SWC-105) 3. **整数溢出**: 算术漏洞 (SWC-101) 4. **安全 Token**: 最佳实践实现 (教育用途) ## 🌐 API 端点 ### POST /api/analyze 分析智能合约代码并返回综合安全报告。 **请求体:** ``` { "contractCode": "string", "fileName": "string (optional)" } ``` **响应:** ``` { "analysisId": "uuid", "timestamp": "ISO-8601", "fileName": "string", "contractName": "string", "securityScore": 75, "riskLevel": "Medium", "ethTrustLevel": 3, "vulnerabilities": [ { "id": "string", "title": "string", "description": "string", "severity": "Critical|High|Medium|Low", "category": "string", "swcId": "SWC-XXX", "line": 42, "codeSnippet": "string", "recommendation": "string", "aiAnalysis": "string (for top 3 critical/high)" } ], "statistics": { "totalVulnerabilities": 10, "critical": 2, "high": 3, "medium": 4, "low": 1, "linesOfCode": 150 }, "scsvCompliance": { "score": 75, "passed": 38, "failed": 12, "controls": [...] }, "recommendations": [ "Fix critical reentrancy in withdraw function", "Add access control modifiers", "..." ]Multi-Registry Support**: - SWC Registry (35+ Solidity patterns) - VSR (15 Vyper patterns with official docs) - CSR (20 Cairo/StarkNet patterns) - **Fast Execution**: Instant results - **Known Attack Vectors**: Reentrancy, access control, arithmetic issues, etc. - **Language-Specific**: Uses appropriate registry based on detected language ## 📈 Analysis 功能 ### Static Analysis - **Pattern-Based Detection**: Scans for known vulnerability patterns - **SWC Registry**: 35+ weakness types detected - **Fast Execution**: Instant results - **Known Attack Vectors**: Reentrancy, access control, arithmetic issues, etc. ### Dynamic Analysis (AI-Powered) - **Deep Semantic Understanding**: Analyzes business logic and context - **Complex State Transitions**: Identifies edge cases - **AI-Enhanced Descriptions**: Top 3 critical/high vulnerabilities get detailed AI analysis - **Contextual Recommendations**: Tailored fix suggestions ### 合规与标准 - **SCSVS v2 Validation**: 50+ security control checks - **EthTrust Classification**: 5-level security rating - **Industry Standards**: Built on recognized frameworks ### Reporting & Export - **PDF Reports**: Professional formatted documents with visualizations - **JSON Export**: Structured data for CI/CD integration - **Text Reports**: Plain text for documentation - **Named Files**: Exports use your contract name ## 📊 Metrics 计算 - **Security Score**: 0-100 based on vulnerability severity and count - **Risk Level**: Critical/High/Medium/Low/Secure - **SCSVS Compliance**: Percentage of passed controls - **EthTrust Level**: 1-5 security classification (1=Critical, 5=Secure) - **Vulnerability Distribution**: Count by severity and category - **Lines of Code**: Code complexity metrics ## 🛠️ Development ### Build for Production ```bash npm run build ``` ### 启动生产服务器 ``` npm start ``` ### 代码检查 ``` npm run lint ``` ## 🔐 安全说明 - API key 存储在 `.env.local` 中(未提交到 git) - 所有分析在服务器端运行以确保安全 - 不永久存储任何合约代码 - 结果按需生成 - AI 分析使用 Groq 和 Llama 3.3 70B 模型 - 仅前 3 个严重/高严重性漏洞获得 AI 增强 ## 🎨 UI/UX 功能 - **浅色主题**: 干净、专业的白色背景 - **响应式设计**: 适用于桌面、平板和移动设备 - **流畅动画**: Framer Motion 和 GSAP 提供流畅的交互 - **Monaco Editor**: VS Code 质量的代码编辑体验 - **交互式图表**: Recharts 用于数据可视化 - **选项卡导航**: 4 个部分中的有序结果 - **实时反馈**: 字符计数器和行号 - **严重性颜色编码**: 漏洞级别的视觉区分 ## 🌐 落地页部分 1. **主要区域**: 带有动画视觉效果的主要价值主张 2. **问题陈述**: 智能合约安全的重要性 3. **功能**: 4 卡片展示核心能力 4. **如何使用**: 3 步流程指南 5. **安全标准**: SWC、SCSVS v2、EthTrust 信息 6. **报告内容**: 下载报告中包含的内容 7. **页脚**: 链接和资源 s - 为 VSR (Vyper Security Registry) 或 CSR (Cairo Security Registry) 做出贡献 - 改进 AI 分析提示 - 增强 UI/UX 组件 - 用任何支持的语言添加更多示例合约 - 改进报告生成 - 扩展文档 - 添加对新智能合约语言的支持 欢迎贡献!请随时: - Ax] 多语言支持 (Solidity, Vyper, Cairo) - [x] Vyper Security Registry (VSR),包含 15 种模式 - [x] Cairo Security Registry (CSR),包含 20 种模式 - [x] 自动语言检测 - [ ] GitHub 仓库集成 - [ ] 分析模式选择器 (仅静态, 仅动态, 两者) - [ ] 所有漏洞的完整 AI 分析 - [ ] 历史分析跟踪 - [ ] 比较报告 - [ ] 自定义规则配置 - [ ] Gas 优化建议 - [ ] 形式化验证集成## 🚧 路线图 和全面的安全注册表:\*\* - **SWC Registry** 用于 Solidity - **VSR (Vyper Security Registry)** 用于 Vyper - **CSR (Cairo Security Registry)** 用于 Cairo/StarkNet - **SCSVS v2** 和 **EthTrust** 标准 - [ ] GitHub 仓库集成 - [ ] 多语言支持 (Vyper, Rust, Move) - [ ] 分析模式选择器 (仅静态, 仅动态, 两者) - [ ] 所有漏洞的完整 AI 分析 - [ ] 历史分析跟踪 - [ ] 比较报告 - [ ] 自定义规则配置 ## 📧 支持 如有问题或疑问,请打开 GitHub issue。 **使用 ❤️ 基于 Next.js、Groq AI、SWC Registry、SCSVS v2 和 EthTrust 标准构建**
标签:AI安全审计, Cairo, EthTrust, Llama 3.3, Monaco Editor, SCSVS, Solidity, StarkNet, SWC Registry, Sysdig, Vyper, Web3安全, 云安全态势管理, 云安全监控, 代码审计工具, 以太坊, 前端应用, 区块链安全, 在线工具, 智能合约审计, 自动化攻击, 静态分析