SentinelAISecurity/sentinelai

GitHub: SentinelAISecurity/sentinelai

SentinelAI 是一个基于 AI 的开源 Web3 安全平台,提供智能合约自动化漏洞检测、持续链上监控和多格式审计报告生成。

Stars: 0 | Forks: 1

# 🔐 SentinelAI — 基于 AI 的 Web3 安全平台

Version License Python TypeScript Stellar Soroban

开源的基于 AI 的安全审计、漏洞检测和区块链监控平台。

Discord Twitter Stars

## 📖 目录 - [概述](#overview) - [功能](#features) - [技术栈](#tech-stack) - [快速开始](#getting-started) - [项目结构](#project-structure) - [插件系统](#plugin-system) - [API 参考](#api-reference) - [智能合约](#smart-contracts) - [文档](#documentation) - [贡献](#contributing) - [路线图](#roadmap) - [许可证](#license) - [安全](#security) ## 概述 SentinelAI 是一个**生产就绪的开源平台**,帮助开发者在其整个生命周期内保障智能合约的安全——从开发到部署后监控。 ### 为什么选择 SentinelAI? - 🤖 **基于 AI**:提供关于漏洞和修复建议的通俗易懂的解释 - 🔌 **插件系统**:无需修改核心代码即可添加新的安全扫描器 - 📊 **专业报告**:生成 Markdown、JSON 和 PDF 格式的审计报告 - 🔍 **持续监控**:跟踪已部署的合约,监控可疑活动 - ⛓️ **链上证明**:将审计记录不可变地存储在区块链上 - 🎨 **现代仪表盘**:深色主题、响应式 UI,支持实时更新 ## 功能 ### 🔍 智能合约分析 - 上传 Rust/Soroban 合约或直接粘贴源代码 - 分析 GitHub 仓库 - 通过地址扫描已部署的合约 - 集成 Slither 和 Mythril(即将推出) ### 🛡️ 漏洞检测(15+ 种类型) | 类别 | 严重程度 | |----------|----------| | 重入攻击 | 🔴 严重 | | 整数溢出 | 🔴 严重 | | 访问控制 | 🟠 高危 | | tx.origin 滥用 | 🟠 高危 | | Delegatecall 滥用 | 🟠 高危 | | 闪电贷风险 | 🟠 高危 | | Oracle 操纵 | 🟠 高危 | | DoS 攻击 | 🟡 中危 | | 时间戳依赖 | 🟡 中危 | | 不安全的随机性 | 🟡 中危 | | Selfdestruct | 🟡 中危 | | 可升级性风险 | 🔵 低危 | | 缺少事件 | 🔵 低危 | | Gas 优化 | 🟣 Gas | | 未检查的调用 | 🟠 高危 | ### 🤖 AI 引擎 - **不依赖于特定提供商**:OpenAI、Llama、Claude、Gemini(兼容任何 OpenAI 的 API) - **漏洞解释**:通俗易懂的描述及利用场景 - **修复建议**:包含最佳实践的安全代码示例 - **执行摘要**:专业的审计摘要 - **交互式聊天**:提出安全问题并获取专家解答 ### 📊 监控与警报 - 所有权转移检测 - 合约暂停/取消暂停监控 - 代理升级跟踪 - 代币铸造警报 - 大额提款检测 - 可疑交易激增 - 多渠道通知(Discord、Telegram、电子邮件、Slack、Webhook) ### 📝 报告生成 - Markdown(人类可读) - JSON(机器可读) - PDF(专业报告 - 即将推出) - 通过 Audit Registry 将审计证明存储在链上 - 在 IPFS/Filecoin 上进行去中心化存储 ## 技术栈 ### 前端 - **框架**:Next.js 15 和 React 18 - **语言**:TypeScript - **样式**:TailwindCSS + shadcn/ui - **动画**:Framer Motion - **区块链**:Stellar SDK + Freighter Wallet - **图表**:Recharts ### 后端 - **框架**:FastAPI (Python 3.12) - **数据库**:PostgreSQL + SQLAlchemy - **缓存**:Redis - **异步任务**:Celery - **AI**:兼容 OpenAI 的 API ### 区块链 - **合约**:Rust (Soroban SDK) - **框架**:Soroban CLI + Cargo - **库**:soroban-sdk ### DevOps - **容器**:Docker + Docker Compose - **CI/CD**:GitHub Actions - **单一代码库**:Turborepo + pnpm ## 快速开始 ### 前置条件 - **Node.js** >= 20.0.0 - **pnpm** >= 9.0.0 - **Python** >= 3.12 - **Docker**(可选,推荐) - **Foundry**(用于智能合约开发) ### 快速启动 (Docker) ``` # Clone the repository git clone https://github.com/sentinelai/sentinelai.git cd sentinelai # 启动所有服务 pnpm docker:dev # API 将在 http://localhost:8000 上可用 # Web app 将在 http://localhost:3000 上可用 # API 文档位于 http://localhost:8000/api/docs ``` ### 本地开发 ``` # 安装依赖 pnpm install # Build 所有 packages pnpm build # 启动开发服务器 pnpm dev # 在单独的终端中,启动 API cd apps/api pip install -r requirements.txt uvicorn main:app --reload --port 8000 ``` ### 智能合约开发 ``` cd packages/contracts # 安装依赖 forge install Stellar/stellar-contracts # Build contracts forge build # 运行测试 forge test -vvv # 运行 coverage forge coverage ``` ## 项目结构 ``` sentinelai/ ├── apps/ │ ├── web/ # Next.js 15 frontend │ │ ├── src/ │ │ │ ├── app/ # App Router pages │ │ │ └── components/ # React components │ │ ├── tailwind.config.js │ │ └── next.config.js │ ├── api/ # FastAPI backend │ │ ├── app/ │ │ │ ├── api/v1/ # API endpoints │ │ │ ├── core/ # Config, security, deps │ │ │ ├── models/ # SQLAlchemy models │ │ │ ├── repositories/ # Data access layer │ │ │ ├── schemas/ # Pydantic schemas │ │ │ └── services/ # Business logic │ │ ├── main.py │ │ └── requirements.txt │ └── docs/ # Documentation site (VitePress) │ ├── packages/ │ ├── shared/ # Shared types and utilities │ ├── ai-engine/ # AI analysis engine │ ├── scanners/ # Plugin framework │ ├── monitor/ # Contract monitoring │ ├── report-generator/ # Report generation │ ├── sdk/ # JavaScript/TypeScript SDK │ ├── ui/ # Shared UI components │ └── contracts/ # Soroban Rust smart contracts │ ├── plugins/ # Security scanner plugins │ ├── reentrancy/ # Reentrancy detection │ ├── access-control/ # Access control detection │ ├── oracle/ # Oracle manipulation detection │ └── custom/ # User-created plugins │ ├── docker/ # Docker configurations ├── .github/ # CI/CD + Issue templates ├── docs/ # Project documentation ├── turbo.json # Turborepo config ├── pnpm-workspace.yaml # Monorepo workspace └── README.md ``` ## 插件系统 插件系统是 SentinelAI 最强大的功能。每个安全分析器都是一个独立的插件。 ### 创建插件 ``` from typing import Dict, Any, List class MySecurityScanner: name = "My Scanner" severity = "HIGH" description = "Detects custom vulnerability patterns" def analyze(self, source_code: str) -> Dict[str, Any]: """Analyze source code and return findings.""" vulnerabilities = [] # Your detection logic return { "success": True, "vulnerabilities": vulnerabilities, "warnings": [], "metadata": {"version": "1.0.0"}, } def recommendations(self) -> List[str]: """Return remediation recommendations.""" return ["Fix all identified issues"] def create_plugin(): return MySecurityScanner() ``` ### 清单文件 ``` { "name": "my-scanner", "version": "1.0.0", "type": "scanner", "description": "My custom scanner", "author": "Your Name", "severity": "HIGH", "entryPoint": "scanner.py", "targets": ["Soroban"] } ``` 完整文档请参阅[插件开发指南](docs/plugin-development.md)。 ## API 参考 ### 身份验证 ``` # 请求 challenge curl -X POST http://localhost:8000/api/v1/auth/challenge \ -H "Content-Type: application/json" \ -d '{"address": "0x..."}' # 验证 signature curl -X POST http://localhost:8000/api/v1/auth/verify \ -H "Content-Type: application/json" \ -d '{"address": "0x...", "signature": "0x...", "nonce": "..."}' ``` ### 创建审计 ``` curl -X POST http://localhost:8000/api/v1/audits \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "contractId": "contract_001", "type": "file_upload", "sourceCode": "pragma Soroban ^0.8.0; ..." }' ``` ### 运行扫描 ``` curl -X POST http://localhost:8000/api/v1/audits/audit_001/run \ -H "Authorization: Bearer YOUR_TOKEN" ``` 完整的 API 文档可在 `http://localhost:8000/api/docs` 获取 ## 智能合约 ### AuditRegistry AuditRegistry 合约将审计证明存储在链上,以实现不可变的验证。 ``` function registerAudit( address contractAddress, bytes32 reportHash, uint8 securityScore ) external returns (bytes32 auditId) function verifyAudit(bytes32 auditId) external view returns (bool) function getAudit(bytes32 auditId) external view returns (...) ``` ## 文档 - [架构](ARCHITECTURE.md) — 系统设计和技术细节 - [贡献](CONTRIBUTING.md) — 如何贡献 - [插件开发](docs/plugin-development.md) — 构建自定义插件 - [API 参考](http://localhost:8000/api/docs) — 交互式 API 文档 - [路线图](ROADMAP.md) — 未来计划 - [安全](SECURITY.md) — 安全策略与报告 ## 路线图 请查看我们的[完整路线图](ROADMAP.md)以了解即将推出的功能: - 🚀 **v1.1**:Slither 和 Mythril 集成 - 🔔 **v1.2**:警报监控系统 - 🎨 **v2.0**:插件市场 - 🔗 **v2.1**:多链支持 ## 许可证 SentinelAI 采用 [Apache License 2.0](LICENSE) 授权。 ## 安全 有关安全漏洞,请参阅我们的[安全策略](SECURITY.md)。请勿针对安全漏洞发布公开 issue —— 请直接联系 security@sentinelai.dev。

由 SentinelAI 社区倾注 ❤️ 构建

GitHubDiscordTwitter文档

标签:Stellar, Web3安全, 人工智能, 区块链监控, 可视化界面, 搜索引擎查询, 智能合约审计, 测试用例, 用户模式Hook绕过, 自动化攻击, 请求拦截, 逆向工具