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绕过, 网络安全, 请求拦截, 逆向工具, 隐私保护