neharajput07/SentinelMesh

GitHub: neharajput07/SentinelMesh

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

Stars: 0 | Forks: 0

# 🛡️ SentinelMesh ![GitHub repo size](https://img.shields.io/github/repo-size/neharajput07/SentinelMesh) ![GitHub last commit](https://img.shields.io/github/last-commit/neharajput07/SentinelMesh) ![GitHub stars](https://img.shields.io/github/stars/neharajput07/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认证, 威胁检测, 物联网安全, 自定义脚本