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安全, 云安全态势管理, 云安全监控, 代码审计工具, 以太坊, 前端应用, 区块链安全, 在线工具, 智能合约审计, 自动化攻击, 静态分析