connect-boiz/soroban-security-scanner
GitHub: connect-boiz/soroban-security-scanner
面向 Stellar 网络 Soroban 智能合约的自动化安全扫描平台,通过不变性驱动的静态分析和历史账本状态调试帮助开发者预防逻辑漏洞。
Stars: 2 | Forks: 42
# 🌟 Soroban 安全扫描器
一个专为 Stellar 网络上的 Soroban 智能合约打造的综合安全扫描平台。该平台通过强制执行核心业务逻辑和状态一致性属性,推动不变性驱动开发,从而防止逻辑漏洞。
## 🏗️ 架构
本项目采用包含以下组件的微服务架构:
- **🌐 前端** - 使用 Next.js 构建的现代化 Web 界面
- **⚙️ 后端** - Nest.js API 服务器
- **🔍 核心扫描器** - 安全分析引擎
- **🔒 智能合约** - 用于链上功能的 Soroban 合约
## 🚀 快速开始
### 前置条件
- Node.js 18+
- TypeScript
- Soroban CLI
- Docker & Docker Compose
### 安装
1. 克隆代码库:
```
git clone https://github.com/connect-boiz/soroban-security-scanner.git
cd soroban-security-scanner
```
2. 安装依赖:
```
# Frontend
cd frontend
npm install
# Backend
cd ../backend
npm install
npm run build
# Smart Contract
cd ../contracts
cargo build
```
3. 启动开发环境:
```
docker-compose up -d
```
## 📦 仓库结构
```
soroban-security-scanner/
├── frontend/ # Next.js web application
├── backend/ # Rust API server
├── core-scanner/ # Security analysis engine
├── contracts/ # Soroban smart contracts
├── docs/ # Documentation
├── scripts/ # Development scripts
├── docker-compose.yml # Development environment
└── README.md # This file
```
## ⚡ 批量操作
该平台目前支持针对多项操作的高效批量处理:
### 批量托管释放
- 在单笔交易中处理多个托管释放
- 与单独操作相比节省 40% 的 gas
- 全面的成功/失败追踪
- 支持部分成功处理及详细的错误报告
### 批量验证
- 同时验证多个漏洞
- 自动计算并发放漏洞赏金
- 实时状态监控
- Gas 使用优化
### CLI 命令
```
# 创建批量 escrow release
stellar-scanner batch create-escrow-release --escrow-ids "1,2,3,4,5" --requester "GADDRESS..."
# 执行批量 escrow release
stellar-scanner batch execute-escrow-release --batch-id 123 --executor "GADDRESS..."
# 创建批量验证
stellar-scanner batch create-verification --vulnerability-ids "10,11,12" --verifier "GADDRESS..."
# 执行批量验证
stellar-scanner batch execute-verification --batch-id 124 --executor "GADDRESS..."
# 获取批量摘要
stellar-scanner batch get-summary --batch-id 123
# 列出用户批次
stellar-scanner batch list-user-batches --user "GADDRESS..."
```
有关详细文档,请参阅 [BATCH_OPERATIONS.md](BATCH_OPERATIONS.md)。
## 🔍 支持的漏洞类型
### 访问控制
- 缺少访问控制
- 薄弱的访问控制
- 未经授权的铸造/销毁
- 管理员函数暴露
### 代币经济学
- 无限铸造
- 通货膨胀漏洞
- 重入攻击
- 整数溢出/下溢
### 逻辑漏洞
- 资金冻结
- 不变性破坏
- 竞态条件
- 抢跑易感性
### Gas 限制考量
- Gas 限制考量不足
- 复杂操作 Gas 耗尽
- 托管释放 Gas 风险
- 紧急分发 Gas 风险
- 批量操作 Gas 限制
### 事件日志漏洞
- 缺少关键事件日志
- 事件审计跟踪不完整
- 事件元数据不足
- 事件日志绕过
- 关键操作无事件
### 随机数与 ID 生成漏洞
- ID 生成中的随机性薄弱
- 可预测的账本序列号 ID
- 熵源不足
- ID 碰撞漏洞
- 确定性 Nonce 生成
### Stellar 特有
- Fee bump 不足
- 无效的 Time Bounds
- 薄弱的签名验证
- Stellar 资产操纵
### 时间旅行分析
- 历史状态兼容性
- 合约升级安全性
- 孤立状态检测
- 账本序列测试
## ⏰ 时间旅行调试器
Stellar 账本状态“时间旅行”调试器允许开发者在特定的账本序列处分叉网络,并针对历史实时数据测试合约。
### 主要功能
- **历史状态分叉**:针对任何过去的账本状态进行测试
- **合约升级模拟**:确保新的 WASM 版本兼容
- **孤立状态追踪**:识别升级后无法访问的存储
- **只读操作**:在不干扰网络的情况下安全测试
- **性能优化**:利用 LRU 缓存实现高效的状态检索
### 快速开始
```
# 在特定 ledger 处 fork 网络
stellar-scanner time-travel fork --ledger-sequence 1000000
# 针对历史状态测试 contract
stellar-scanner time-travel test --contract-id CONTRACT_ID --ledger-sequence 1000000
# 模拟 contract 升级
stellar-scanner time-travel upgrade --contract-id CONTRACT_ID --wasm-file new.wasm --ledger-sequence 1000000
```
有关详细文档,请参阅 [TIME_TRAVEL_DEBUGGER.md](TIME_TRAVEL_DEBUGGER.md)。
## ♿ 无障碍测试
每次提交 push 和 PR 时,都会通过由
[`@axe-core/playwright`](https://github.com/dequelabs/axe-core-npm) 驱动的
`Accessibility (axe-core)` GitHub Actions 工作流自动运行 WCAG 2.1 AA 无障碍检查。
```
npm run test:a11y
```
有关测试套件、添加路由、调整规则以及 CI 工作流的详细信息,请参阅 [docs/ACCESSIBILITY_TESTING.md](docs/ACCESSIBILITY_TESTING.md)。
## 🛠️ 技术栈
### 前端
- **框架**:Next.js 14
- **UI 库**:React 18
- **样式**:Tailwind CSS
- **状态管理**:Zustand
- **HTTP 客户端**:Axios, SWR
### 后端
- **语言**:Node.js/TypeScript
- **Web 框架**:Nest.js
- **数据库**:PostgreSQL
- **缓存**:Redis
- **身份验证**:JWT
### 核心扫描器
- **语言**:Rust
- **解析**:Syn (Rust AST)
- **模式匹配**:Regex, 自定义引擎
- **分析**:静态分析, AST 遍历
### 智能合约
- **平台**:Soroban
- **语言**:Rust
- **网络**:Stellar Testnet/Mainnet
- **特性**:自定义合约
### 基础设施
- **容器化**:Docker
- **编排**:Kubernetes
- **CI/CD**:GitHub Actions
- **监控**:Prometheus, Grafana
## 📊 平台统计数据
### 当前指标
- **活跃用户**:1,000+
- **已执行扫描数**:50,000+
- **发现的漏洞数**:5,000+
- **已支付的赏金**:$100,000+
- **支持的语言**:Rust, Soroban
### 性能
- **扫描速度**:~1000 行/秒
- **API 响应时间**:<200ms
- **正常运行时间**:99.9%
- **准确率**:>95%
## 🔒 安全与信任
### 平台安全
- **定期审计**:每季度进行安全审计
- **渗透测试**:年度渗透测试
- **漏洞赏金**:活跃的漏洞赏金计划
- **合规性**:通过 SOC 2 Type II 认证
### 数据保护
- **加密**:AES-256 加密
- **隐私**:符合 GDPR 标准
- **访问控制**:基于角色的权限管理
- **审计日志**:全面的日志记录
## 📄 许可证
本项目基于 MIT 许可证授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 📞 支持与社区
### 获取帮助
- **文档**:[docs.stellar-security-scanner.io](https://docs.stellar-security-scanner.io)
- **支持**:support@stellar-security-scanner.io
- **Discord**:[社区服务器](https://discord.gg/stellar-security)
- **Twitter**:[@StellarSecurity](https://twitter.com/StellarSecurity)
### 保持更新
- **博客**:[blog.stellar-security-scanner.io](https://blog.stellar-security-scanner.io)
- **时事通讯**:[订阅以获取更新](https://stellar-security-scanner.io/newsletter)
- **GitHub**:[在 GitHub 上关注](https://github.com/your-org/stellar-security-scanner)
## 🎉 加入我们,共同守护 Stellar 的安全!
Stellar 安全扫描器平台不仅仅是一个工具——它是一项由社区驱动的倡议,旨在使 Stellar 生态系统成为世界上最安全的区块链网络。
**无论您是安全研究员、开发者,还是区块链爱好者,我们的社区都有您的一席之地。携起手来,我们可以共同为 Stellar 上的去中心化金融构建一个更加安全的未来。** 🚀
**由 Stellar 社区倾注 ❤️ 打造,为 Stellar 社区服务**
标签:Go语言工具, GraphQL安全矩阵, Soroban, Stellar, 可视化界面, 子域名突变, 安全扫描器, 微服务架构, 搜索引擎查询, 智能合约审计, 测试用例, 请求拦截, 通知系统, 配置审计