gokulanand11/sentinalai

GitHub: gokulanand11/sentinalai

Sentinel AI 是一个基于 FastAPI 与 React 的全栈安全日志分析平台,结合规则引擎与 OpenAI 兼容的大模型能力,实现威胁检测、AI 辅助研判和事件响应报告的一体化。

Stars: 0 | Forks: 0

# Sentinel AI - 网络安全日志分析与事件响应平台 这是一个由 AI 驱动的全栈平台,用于网络安全日志分析、威胁检测和事件响应。 ## AI Lab (前端) `frontend/src/pages/AILabPage.tsx` 提供了一个 AI 聊天 UI,它可以选择性地使用选定的上下文日志,从 `GET /logs/list` 获取可用的日志,并将聊天请求发送到 `POST /ai/chat`。 ## 技术栈 - **后端**:FastAPI (Python) - **前端**:React + TypeScript + Vite + Tailwind CSS - **数据库**:MongoDB (Motor async driver) - **身份验证**:基于 JWT 的角色访问控制 - **AI**:兼容 OpenAI 的 API 集成 - **部署**:Docker + Docker Compose ## 项目结构 ``` . ├── backend/ │ ├── app/ │ │ ├── main.py # FastAPI entrypoint │ │ ├── config.py # Settings / DB connection │ │ ├── models/ │ │ │ └── schemas.py # Pydantic models │ │ ├── routes/ │ │ │ ├── auth.py # /auth/login, /auth/register │ │ │ ├── logs.py # /logs/upload, list, search │ │ │ ├── incidents.py # /incidents/list, stats, details │ │ │ ├── ai.py # /ai/analyze, /ai/chat, /ai/threats/{id} │ │ │ └── reports.py # /reports/generate, export │ │ ├── services/ │ │ │ ├── ai_service.py # OpenAI-compatible AI service │ │ │ └── threat_detector.py # Rule-based threat detection │ │ └── utils/ │ │ ├── jwt.py # JWT create/verify helpers │ │ └── password.py # bcrypt hashing helpers │ ├── seed.py # Seed data script │ ├── requirements.txt │ └── Dockerfile ├── frontend/ # React + Vite + TypeScript + Tailwind (Phase 2) ├── docker-compose.yml └── README.md ``` ## 快速开始 ### 前置条件 - Python 3.11+ - MongoDB 7+ - Node.js 18+ (用于前端) - Docker & Docker Compose (用于容器化部署) ### 选项 A:Docker Compose (推荐) ``` # 启动所有服务 docker-compose up -d # 填充种子数据 docker exec -it sentinel_backend python seed.py # API 可通过 http://localhost:8000 访问 # 前端地址为 http://localhost:5173 # MongoDB 地址为 mongodb://localhost:27017 ``` ### 选项 B:手动设置 ``` # 1. 启动 MongoDB mongod # 2. 安装后端依赖 cd backend python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt # 3. 配置环境 cp .env.example .env # 使用你的配置编辑 .env (MONGO_URL, OPENAI_API_KEY 等) # 4. 填充数据(可选) python seed.py # 5. 启动后端 uvicorn app.main:app --reload --port 8000 ``` ### 默认用户 | 邮箱 | 密码 | 角色 | |---|---|---| | admin@sentinel.ai | Admin@123 | admin | | analyst@sentinel.ai | Admin@123 | security_analyst | ## API 端点 ### 身份验证 - `POST /auth/register` - 注册新用户 - `POST /auth/login` - 登录 (返回 JWT) - `GET /auth/me?email=` - 获取当前用户信息 ### 日志 - `POST /logs/upload` - 上传日志文件 (.log, .txt, .csv, .json) - `GET /logs/list` - 列出已上传的日志 (分页) - `GET /logs/search?q=` - 搜索日志 - `GET /logs/{log_id}` - 获取特定日志 - `DELETE /logs/{log_id}` - 删除日志 ### 事件 - `GET /incidents/list` - 列出事件 (可按严重程度过滤) - `GET /incidents/{incident_id}` - 获取事件详情 - `PATCH /incidents/{incident_id}/status?status=` - 更新状态 - `GET /incidents/stats` - 获取事件统计信息 ### AI - `POST /ai/analyze` - 分析原始日志内容 - `POST /ai/analyze/{log_id}` - 分析特定日志 - `POST /ai/chat` - 与 AI 聊天讨论安全数据 - `GET /ai/threats/{log_id}` - 获取日志的威胁检测结果 ### 报告 - `POST /reports/generate` - 生成事件报告 - `GET /reports/{incident_id}` - 获取事件报告 - `GET /reports/export/{incident_id}?format=` - 导出报告 ### 仪表板 - `GET /api/stats/dashboard` - 仪表板统计信息 ## 威胁检测能力 - 多次登录失败检测 (暴力破解) - 暴力破解攻击模式识别 - 可疑 IP 活动监控 - 未经授权的访问尝试检测 - 权限提升指标检测 - 异常登录行为标记 ## 环境变量 | 变量 | 描述 | 默认值 | |---|---|---| | `MONGO_URL` | MongoDB 连接字符串 | `mongodb://localhost:27017` | | `MONGO_DB` | 数据库名称 | `sentinel_ai` | | `SECRET_KEY` | JWT 签名密钥 | *(生产环境中必填)* | | `ALGORITHM` | JWT 算法 | `HS256` | | `ACCESS_TOKEN_EXPIRE_MINUTES` | Token 过期时间 | `30` | | `OPENAI_API_KEY` | OpenAI API key | *(可选 - 无则回退至离线模式)* | | `OPENAI_BASE_URL` | OpenAI base URL | `https://api.openai.com/v1` | ## 许可证 MIT # sentinalai
标签:AMSI绕过, AV绕过, FastAPI, MongoDB, Petitpotam, React, Syscalls, 人工智能, 威胁检测, 库, 应急响应, 版权保护, 用户模式Hook绕过, 网络安全, 请求拦截, 逆向工具, 隐私保护