0xJonaseb11/kyros.auditor
GitHub: 0xJonaseb11/kyros.auditor
一个基于多 agent pipeline 的 Solidity 智能合约自主安全审计平台,集成多种静态和动态分析工具,生成可复现的审计报告。
Stars: 1 | Forks: 0
# Kyros Auditor
自主智能合约安全平台。它接收 Solidity 合约,在工具证据上运行由专门 agent 组成的确定性 pipeline,并生成可复现的审计报告。工具优先于 LLM 受到信任;发现的问题必须有证据支持。
## 包含内容
- 9 个 agent 的审计 pipeline,每次运行均会持久化 `agent_outputs`
- 静态和动态分析(Slither、Mythril、Solhint、Foundry、Echidna)
- 架构映射和形式化 invariant 检查
- 安全验证、严重性评级标准、攻击模拟、补丁建议
- 通过 Celery 进行异步审计,通过计划任务 cron 进行监控调度
- Supabase PostgreSQL,可选的 JWT auth 和 RBAC
- Next.js 工作区 UI,支持聊天、发现和报告下载
- 带有标注语料库的准确性评估测试套件
- API 速率限制和请求体大小防护
- CI:lint、mypy、70 多项测试、评估基线
部署到 Render/Vercel 已在文档中说明,但需要您自己的云账号。
## 技术栈
| 层级 | 技术 |
|-------|------------|
| API | Python 3.13, FastAPI, SQLAlchemy, Alembic |
| 数据库 | Supabase PostgreSQL |
| 队列 | Redis, Celery |
| 前端 | Next.js 16, Supabase Auth |
| 分析 | Slither, Mythril, Solhint, Foundry, Echidna |
## 审计 pipeline
| # | Agent | 角色 |
|---|-------|------|
| 1 | 合约摄取 | 解析源码、Solidity 版本、依赖项 |
| 2 | 架构 | 特权角色、关键路径、信任假设 |
| 3 | 形式化验证 | 访问控制、资产保护、供应量 invariant |
| 4 | 静态分析 | Slither、Mythril、Solhint、Foundry 编译/测试、Echidna |
| 5 | 安全 | 跨工具验证、误报过滤 |
| 6 | 严重性 | 基于评级标准的分类 |
| 7 | 攻击模拟 | 利用路径、资金/治理/所有权风险 |
| 8 | 补丁 | 基于模板的修复建议 |
| 9 | 报告 | 执行摘要、发现、架构、验证 |
监控在已启用的项目上单独运行(哈希漂移 + Slither 重新扫描)。
设计原则和 agent 契约:[AGENTS.md](AGENTS.md)。
## 安全工具
| 工具 | 运行时机 | 备注 |
|------|--------------|-------|
| Foundry compile | 检测到 Foundry 项目 | 启用项目级别的 Slither |
| Forge test | 存在 `test/` 目录 | 失败的测试将作为证据 |
| Slither | 每次审计 | 主要的静态分析器 |
| Mythril | 每个 Solidity 文件 | 如果缺少 `myth` 则优雅跳过 |
| Solhint | 每个 Solidity 文件 | 样式规则由安全 agent 过滤 |
| Echidna | 存在 `echidna_`/`invariant_` 属性或 `crytic.toml` | 如果没有 fuzz 目标则跳过 |
Docker 镜像(`infrastructure/Dockerfile`)安装了 Slither、Solhint、Foundry、
Mythril 和 Echidna。请在构建后进行验证:
```
docker build -f infrastructure/Dockerfile -t kyros-api .
docker run --rm kyros-api python scripts/verify_analyzers.py
```
对于本地开发,请在宿主机上安装工具;如果缺少二进制文件,则仅依赖 agent 分析。
## 快速开始
```
uv sync --extra dev
cp .env.example .env
cp frontend/env.example frontend/.env.local
uv run alembic upgrade head
```
从 `frontend/` 启动 API + 前端:
```
npm install
npm run dev
```
后端:`http://localhost:8000`。前端:`http://localhost:3000`(代理 `/api/*`)。
Workers(任选其一):
```
# Docker
docker compose up -d redis worker
# 无 Docker 开发
CELERY_TASK_ALWAYS_EAGER=true # in .env, runs audits synchronously
```
数据库设置:[docs/supabase-setup.md](docs/supabase-setup.md)。
验证:
```
uv run python scripts/verify_supabase.py
curl http://localhost:8000/health/db
```
## 运行审计
```
curl -X POST http://localhost:8000/projects \
-H "Content-Type: application/json" -d '{"name": "my-protocol"}'
curl -X POST http://localhost:8000/projects/{project_id}/contracts/upload \
-F "file=@Contract.sol"
curl -X POST http://localhost:8000/projects/{project_id}/audits
curl http://localhost:8000/audits/{audit_run_id}
```
轮询直到 `status` 变为 `completed` 或 `failed`。启用 auth 后,请在每个请求中发送
`Authorization: Bearer `。
## 认证
在 `.env` 中设置 `AUTH_ENABLED=true` 和 `SUPABASE_JWT_SECRET`。前端:
在 `frontend/.env.local` 中设置 `NEXT_PUBLIC_AUTH_ENABLED=true`。
用户账号和角色:[docs/user-setup.md](docs/user-setup.md)。
## API
| 方法 | 路径 |
|--------|------|
| GET | `/health`, `/health/db`, `/announcements` |
| POST/GET | `/projects`, `/projects/{id}` |
| POST | `/projects/{id}/contracts/upload`, `/projects/{id}/contracts/upload-zip` |
| GET | `/projects/{id}/contracts`, `/projects/{id}/audits` |
| POST | `/projects/{id}/audits` |
| GET | `/audits/{id}` |
| GET/POST | `/audits/{id}/chat/messages`, `/audits/{id}/chat` |
| GET/POST | `/projects/{id}/monitoring`, `.../enable`, `.../disable`, `.../run` |
速率限制:`RATE_LIMIT_*` 环境变量。请求体上限:`MAX_REQUEST_BODY_BYTES`。`/health` 豁免。
## 前端
| 路径 | 用途 |
|------|---------|
| `/` | 落地页 |
| `/methodology` | Pipeline 概览 |
| `/login` | Supabase 登录 |
| `/dashboard` | 项目 |
| `/projects/{id}` | 上传、审计、监控 |
| `/audits/{id}` | 工作区、聊天、发现、报告 |
## 监控
```
docker compose up -d redis worker beat
# 或手动方式:
uv run python scripts/dispatch_monitoring.py
```
```
MONITORING_CRON_ENABLED=true
MONITORING_CRON_INTERVAL_MINUTES=60
```
## 准确性评估
```
uv run python scripts/run_eval.py
uv run python scripts/run_eval.py --output evaluation/reports/latest.json \
--enforce-baseline --min-detection-rate 1.0 --max-false-positive-rate 0.5
```
语料库:`evaluation/corpus/`(涵盖四类漏洞的 11 个标注案例
以及两个安全对照组)。运行架构、形式化验证和静态分析
agent。外部分析器可以提高分数;agent 基线在没有它们的情况下运行。
CI 会在每次推送时强制执行基线检查。
## 开发
```
uv run pytest -q -m "not supabase"
uv run ruff check .
uv run mypy api agents analyzers config database orchestrator schemas services workers evaluation
cd frontend && npm run lint && npm run build
```
## 仓库结构
```
agents/ pipeline agents (ingestion through report)
analyzers/ slither, mythril, solhint, foundry, echidna wrappers
orchestrator/ audit pipeline coordinator
api/ FastAPI routes and middleware
services/ projects, audits, contracts, monitoring
workers/ Celery tasks and beat schedule
evaluation/ accuracy harness and labeled corpus
frontend/ Next.js UI
database/ models and Alembic migrations
infrastructure/ Dockerfile
```
## 文档
- [docs/supabase-setup.md](docs/supabase-setup.md) - 数据库
- [docs/deployment.md](docs/deployment.md) - Render 和 Vercel
## 部署
蓝图:[render.yaml](render.yaml)。指南:[docs/deployment.md](docs/deployment.md)。
标签:AV绕过, FastAPI, LLM代理, 云安全监控, 区块链安全, 对称加密, 搜索引擎查询, 智能合约审计, 自动化审计, 请求拦截, 静态分析