neharajput07/SentinelMesh
GitHub: neharajput07/SentinelMesh
SentinelMesh 是一个基于 Spring Boot 与 React 构建的全栈 IoT 安全监控平台,通过自研 AI 引擎对设备行为进行实时信任评分、异常检测和威胁预测,帮助安全团队在数据泄露发生前做出响应。
Stars: 0 | Forks: 0
# 🛡️ SentinelMesh



## 📌 什么是 SentinelMesh?
SentinelMesh 是一个全栈 IoT 安全平台,旨在解决一个实际问题——**大多数 IoT 网络对设备行为完全缺乏可见性**。当设备遭到破坏时,往往为时已晚才有人察觉。
SentinelMesh 改变了这一现状。它实时监控每个连接的设备,使用基于信任的机制对其行为进行评分,并利用定制的 AI 引擎在威胁**演变成数据泄露之前**进行预测。
## 🔥 为什么选择 SentinelMesh?
IoT 设备无处不在——智能家居、医院、工业——但大多数网络对这些设备的实际行为**毫无可见性**。单个遭到破坏的设备可能会导致整个网络瘫痪,而等到检测到时,损害已经造成。
SentinelMesh 就是为了弥补这一差距而构建的——提供实时行为监控、基于 AI 的威胁预测和即时告警,使安全团队能够在违规发生**之前**采取行动,而不是事后补救。
## ⚡ 核心功能
- **SentinelMesh AI 引擎** — 一个定制的威胁情报引擎,能够检测异常、计算风险评分、预测泄露时间,并生成人类可读的威胁报告
- **JWT 认证** — 基于 Spring Security 和 BCrypt 密码加密的无状态 token 认证
- **实时设备监控** — 实时追踪所有 IoT 设备,每 5 秒自动更新一次状态
- **威胁告警** — 当设备信任评分降至阈值以下时自动生成告警
- **AI 安全聊天机器人** — 提供自然语言接口,用于查询网络状态、获取设备风险分析和安全建议
- **活动日志** — 记录每个设备操作的完整审计轨迹,并附带时间戳
- **分析仪表板** — 通过信任评分条和风险分布直观展示设备健康状态
- **联系消息系统** — 用户可以联系管理员,消息保存在数据库中,并可在管理面板中查看
- **通知铃铛** — 带有脉冲动画的实时通知铃铛,显示可疑设备的数量
## 🛠️ 技术栈
| 层级 | 技术 | 用途 |
|-------|-----------|---------|
| 前端 | React + Vite | UI 和用户交互 |
| 后端 | Spring Boot | REST API 和业务逻辑 |
| 数据库 | MySQL | 数据持久化 |
| 安全 | JWT + Spring Security | 认证和授权 |
| 加密 | BCrypt | 密码哈希 |
| AI 引擎 | 定制 Java 规则引擎 | 威胁检测和预测 |
| HTTP Client | Axios | 前后端通信 |
| 样式 | CSS3 | 动画和响应式设计 |
## 📁 项目结构
```
SentinelMesh/
│
├── Frontend/
│ └── src/
│ ├── pages/
│ │ ├── Login.jsx
│ │ ├── Dashboard.jsx
│ │ ├── Devices.jsx
│ │ ├── Alerts.jsx
│ │ ├── Analytics.jsx
│ │ ├── Logs.jsx
│ │ ├── Messages.jsx
│ │ ├── Settings.jsx
│ │ ├── AiAnalysis.jsx
│ │ └── AiChat.jsx
│ ├── components/
│ │ ├── Sidebar.jsx
│ │ └── ProtectedRoute.jsx
│ └── services/
│ └── axiosInstance.js
│
└── Backend/
└── src/main/java/auto/
├── controller/
├── entity/
├── repository/
├── dto/
├── security/
│ ├── JwtUtil.java
│ ├── JwtFilter.java
│ └── SecurityConfig.java
└── ai/
├── ThreatAnalysisEngine.java
└── ChatbotEngine.java
```
## 🤖 SentinelMesh AI 引擎
该 AI 引擎并非第三方集成——它是专门为 IoT 安全**定制的威胁情报系统**。
**工作原理:**
设备数据(信任评分、状态、名称)
↓
风险评分计算(0-100%)
↓
异常模式检测
↓
泄露时间预测
↓
人类可读的威胁报告
↓
自然语言聊天机器人回复
**风险等级:**
| 评分 | 等级 | 操作 |
|-------|-------|--------|
| 0-20 | 🔴 严重 | 立即隔离 |
| 20-40 | 🟠 高危 | 限制访问 |
| 40-70 | 🟡 中危 | 密切监控 |
| 70-100 | 🟢 低危 | 无需操作 |
## 🔐 安全实现
- 登录时生成 **JWT token**,有效期 24 小时
- 使用 **BCrypt** 和 salt 进行密码哈希处理——永不存储明文密码
- **Spring Security** 保护所有 API endpoint
- React 中的 **受保护路由** 会将未认证的用户重定向到登录页面
- **Axios Interceptor** 自动将 JWT token 附加到每个 API 请求中
- token 过期或返回 403 状态码时 **自动注销**
## 🚀 设置说明
### 前置条件
- Java 21
- Node.js
- MySQL
- Maven
### 后端设置
```
cd Backend
./mvnw spring-boot:run
```
### 前端设置
```
cd Frontend
npm install
npm run dev
```
### 数据库设置
```
CREATE DATABASE sentinelmesh;
```
## 📡 API Endpoint
| 方法 | Endpoint | 描述 | 认证 |
|--------|----------|-------------|------|
| POST | /signup | 注册新用户 | 公开 |
| POST | /login | 登录并获取 JWT | 公开 |
| GET | /device | 获取所有设备 | 🔒 JWT |
| POST | /device | 添加新设备 | 🔒 JWT |
| PUT | /device/{id} | 更新设备 | 🔒 JWT |
| DELETE | /device/{id} | 删除设备 | 🔒 JWT |
| GET | /logs | 获取活动日志 | 🔒 JWT |
| GET | /ai/analyze | AI 分析所有设备 | 🔒 JWT |
| POST | /ai/chat | AI 聊天机器人查询 | 🔒 JWT |
| POST | /contact | 发送联系消息 | 公开 |
| GET | /contact | 获取所有消息 | 🔒 JWT |
## 📊 设备信任评分系统
| 信任评分 | 状态 | 风险等级 |
|-------------|--------|------------|
| 70 - 100 | 安全 | 🟢 低风险 |
| 40 - 70 | 监控 | 🟡 中风险 |
| 20 - 40 | 可疑 | 🟠 高风险 |
| 0 - 20 | 严重 | 🔴 即将发生数据泄露 |
当设备信任评分降至 50 以下时,SentinelMesh 会自动执行以下操作:
1. 将设备标记为 **可疑**
2. 生成 **威胁告警**
3. 创建 **活动日志** 条目
4. 触发 **通知铃铛**
5. 对该设备运行 **AI 分析**
## 👩💻 开发者
**Neha Rajput**
B.Tech CSE | 专攻物联网、网络安全(含区块链技术)
🔗 GitHub: [@neharajput07](https://github.com/neharajput07)
## 📄 许可证
本项目作为 B.Tech 课程作业的一部分,专为教育目的而开发。
标签:AMSI绕过, JS文件枚举, JWT认证, 威胁检测, 物联网安全, 自定义脚本