sinCodes11/vectorguard

GitHub: sinCodes11/vectorguard

基于 RAG 和向量搜索的自托管威胁情报平台,支持从多源自动摄取 CVE 数据并通过自然语言进行语义查询。

Stars: 0 | Forks: 0

# VectorGuard — 基于 RAG 的威胁情报平台

Python RAG FastAPI License

自托管的威胁情报知识库,可摄取 CVE 数据库和安全公告,并通过自然语言查询将其公开。询问“过去 90 天内 Apache 的严重漏洞”,即可获得排名且带有上下文的结果,而非原始 JSON。 ## 功能 - **实时摄取** — 自动从 NVD、CISA、US-CERT、Microsoft、Apple、Red Hat 摄取数据 - **基于 RAG 的搜索** — 支持语义排名的自然语言查询 - **向量嵌入** — 通过 sentence-transformers + ChromaDB 进行相似度搜索 - **CVE 数据库** — 包含 CVSS 分数、受影响版本和分析 - **REST API** — 支持使用 JWT/API key 认证的完全编程访问 - **Web 界面** — 响应式搜索 UI (Next.js) - **自托管** — 完整的 Docker 部署 ## 架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Frontend │ │ API │ │ Ingestion │ │ (Next.js) │◄──►│ (FastAPI) │◄──►│ (Celery) │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ ┌────────┴────────┐ │ │ ┌──────▼─────┐ ┌──────▼─────┐ │ PostgreSQL │ │ Redis │ └────────────┘ └────────────┘ │ ┌────────▼────────┐ │ ChromaDB │ │ (Vector Store) │ └─────────────────┘ ``` ## 快速开始 ### 前置条件 - Docker 和 Docker Compose - 4GB RAM,10GB+ 磁盘空间 ``` git clone cd vectorguard chmod +x scripts/setup.sh ./scripts/setup.sh ``` - 前端:http://localhost:3000 - API:http://localhost:8000 - API 文档:http://localhost:8000/docs ### 手动设置 ``` cp .env.example .env docker-compose up -d docker-compose exec backend python -c "from src.database.connection import init_db; init_db()" ``` ## 使用说明 ### Web 界面 类似以下的自然语言查询: - `Apache 中的严重漏洞` - `影响 Linux 内核的近期 CVE` - `Microsoft 本月的安全公告` 应用针对严重程度、日期范围和内容类型的过滤器。 ### API ``` # 搜索 threat intelligence curl -X POST http://localhost:8000/api/search \ -H "Content-Type: application/json" \ -d '{"query": "critical vulnerabilities", "limit": 10}' # 最近的 CVE curl http://localhost:8000/api/cves/recent?limit=20 # 触发 ingestion curl -X POST http://localhost:8000/api/ingestion/trigger/cve ``` ## 配置 ``` DATABASE_URL=postgresql+psycopg2://vectorguard:changeme@localhost:5432/vectorguard REDIS_URL=redis://localhost:6379 SECRET_KEY=your-secret-key-here-change-in-production EMBEDDING_MODEL=sentence-transformers/all-MiniLM-L6-v2 CHROMA_PERSIST_DIRECTORY=./chroma_data ``` ## 数据源 | 来源 | 内容 | |--------|---------| | NVD | CVE 数据库 | | CISA | 安全公告 | | US-CERT | 当前网络活动 | | Microsoft MSRC | 安全公告 | | Apple Security | 安全更新 | | Red Hat | 安全公告 | ## API 参考 | Endpoint | 描述 | |----------|-------------| | `POST /api/search` | 语义搜索 | | `GET /api/search/suggestions` | 查询建议 | | `GET /api/cves/{cve_id}` | CVE 详情 | | `GET /api/cves/recent` | 近期 CVE | | `GET /api/cves/severity/{severity}` | 按严重程度划分的 CVE | | `GET /api/advisories` | 安全公告 | | `POST /api/ingestion/trigger/{type}` | 手动摄取 | | `GET /health` | 系统健康状态 | ## 开发 ``` # Backend cd backend python -m venv venv && source venv/bin/activate pip install -r requirements.txt uvicorn src.api.app:app --reload # Frontend cd frontend npm install && npm run dev # Tests cd backend && pytest cd frontend && npm test # Linting black . && ruff check . && mypy . ``` ## 安全 - JWT + API key 认证 - 基于角色的访问控制 - 在生产环境中需要使用 HTTPS - 速率限制和 CORS 配置 - 对所有 endpoint 进行输入验证 ## 许可证 MIT — 详情请参阅 LICENSE。 ## 作者 **Daniel Gregg Jr** - 作品集:[daniel-eportfolio.web.app](https://daniel-eportfolio.web.app) - LinkedIn:[linkedin.com/in/daniel-sin-1881ske89](https://linkedin.com/in/daniel-sin-1881ske89)
标签:AV绕过, FastAPI, GPT, RAG, 向量数据库, 威胁情报, 开发者工具, 搜索引擎查询, 测试用例, 漏洞管理, 请求拦截, 逆向工具