Anishreddy-gith/sentinelmesh

GitHub: Anishreddy-gith/sentinelmesh

SentinelMesh 是一个结合图神经网络与联邦学习的网络威胁情报平台,用于检测 APT 横向移动等复杂网络威胁。

Stars: 0 | Forks: 0

# SentinelMesh **具备联邦异常检测能力的网络威胁情报平台** [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/61b4e602a4141230.svg)](https://github.com/Anishreddy-gith/sentinelmesh/actions) [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.11-blue)](https://python.org) [![Node](https://img.shields.io/badge/node-20-green)](https://nodejs.org) [![Docker](https://img.shields.io/badge/docker-compose-ready-blue)](infra/docker-compose.yml) SentinelMesh 通过将网络遥测数据转化为主机通信图,使用图神经网络对这些图进行评分,结合 MITRE ATT&CK 上下文丰富检测结果,并为分析师提供实时调查视图,从而检测 APT 横向移动。 ## 架构 ``` flowchart LR Sensors[Zeek + Suricata] --> Raw[(Kafka raw_logs)] Raw --> Normaliser[Python Normaliser] Normaliser --> Events[(Kafka processed_events)] Events --> GraphBuilder[NetworkX Graph Builder] GraphBuilder --> Neo4j[(Neo4j Attack Graph)] GraphBuilder --> Snapshots[(Kafka graph_snapshots)] Snapshots --> GNN[FastAPI GNN Inference
GAT + GraphSAGE] GNN --> Detections[(Kafka detections)] Detections --> MITRE[MITRE ATT&CK Mapper] MITRE --> Briefs[BART/T5 Analyst Briefs] Briefs --> BriefTopic[(Kafka analyst_briefs)] Detections --> API[Node.js Express API] BriefTopic --> API Neo4j --> API API --> Dashboard[React SOC Dashboard
Sigma.js + D3.js] ``` 如需了解更深入的图表和服务职责,请参阅 [docs/architecture.md](docs/architecture.md)。 ## 核心功能 - **GNN 异常检测:** 使用 PyTorch Geometric 的 Graph Attention Network 主模型和 GraphSAGE 基线模型。 - **基于图的横向移动分析:** 将 NetworkX 图窗口持久化到 Neo4j,并使用 Cypher 查询新边和攻击路径。 - **联邦学习:** 包含用于 FedAvg、FedProx 以及未来 Krum 聚合的 Flower 服务器/客户端脚手架。 - **差分隐私:** 采用 Opacus DP-SGD,结合 Renyi DP 核算与可配置的 epsilon 预算。 - **分析师简报生成:** 基于 FastAPI 的 BART/T5 风格摘要服务,并带有模板兜底机制。 - **MITRE ATT&CK 上下文丰富:** 技术映射与仪表盘热力图基础架构。 - **SOC 仪表盘:** 采用 React 18、Vite、Tailwind CSS、Sigma.js 图可视化、D3.js 热力图、TanStack Query 和 Axios。 - **安全的后端基础:** 包含 JWT、express-jwt 中间件、Casbin RBAC 钩子、Helmet、CORS、速率限制、Redis、MongoDB、Neo4j、KafkaJS 和 WebSocket 依赖的 Express API。 - **本地基础设施:** 用于 Kafka、Zookeeper、MongoDB、Neo4j、Redis、后端、前端、数据摄取、图构建、ML 推理和 FL 服务器的 Docker Compose 技术栈。 - **CI 与安全扫描:** 用于前端代码检查、后端测试、Python 测试、Snyk 和 Trivy 的 GitHub Actions。 ## 技术栈 | 领域 | 技术 | |------|--------------| | 前端 | React 18, Vite 5, React Router, Tailwind CSS, TanStack Query, Axios, Sigma.js, Graphology, D3.js, Vitest, ESLint | | 后端 API | Node.js 20, Express 4, JSON Web Tokens, express-jwt, Casbin, bcryptjs, Mongoose, Neo4j Driver, KafkaJS, Redis, ws, Helmet, CORS, express-rate-limit, Jest, Supertest | | 数据摄取 | Python 3.11, kafka-python, python-dotenv, Zeek `conn.log`, Suricata `eve.json`, pytest | | 图服务 | Python 3.11, NetworkX, Neo4j Python Driver, Cypher, Kafka, pytest | | ML 和 AI | PyTorch 2.3, PyTorch Geometric, GATConv, SAGEConv, scikit-learn, FastAPI, Uvicorn, HuggingFace Transformers, Datasets, Flower, Opacus, rouge-score | | 数据存储 | Neo4j 5, MongoDB 7, Redis 7 | | 流处理 | Apache Kafka, Confluent Zookeeper | | 基础设施 | Docker, Docker Compose, pnpm workspaces, GitHub Actions | | 安全 | JWT 访问令牌,基于 Casbin 的 RBAC 设计,速率限制,Helmet,哈希链审计日志 schema,Snyk,Trivy | | 研究目标 | UNSW-NB15, CIC-IDS2018, LANL Unified Host and Network Dataset,联邦 GNN 检测,差分隐私,对抗鲁棒性 | ## 仓库结构 ``` backend/ Node.js API, auth middleware, routes, Mongo schemas, Kafka and Neo4j service adapters frontend/ React SOC dashboard, pages, hooks, API client, visualization component stubs ingestion/ Zeek and Suricata Kafka producers, normalizer consumer, parser tests graph/ NetworkX graph builder, Neo4j writer, Cypher detection queries, tests ml/ GNN models, inference service, federated learning, privacy accounting, NLP briefs, MITRE mapper infra/ Docker Compose stack, Kafka topic script, Neo4j init Cypher docs/ Architecture, API reference, Kafka topic reference research/ Threat model and draft paper ``` ## 服务端口 | 服务 | 端口 | |---------|------| | 前端 | 3000 | | 后端 API | 3001 | | GNN 推理 | 8000 | | 简报生成 | 8001 | | FL Server | 8080 | | Kafka | 9092 | | Zookeeper | 2181 | | Neo4j Browser | 7474 | | Neo4j Bolt | 7687 | | MongoDB | 27017 | | Redis | 6379 | ## 快速开始 ``` git clone https://github.com/Anishreddy-gith/sentinelmesh.git cd sentinelmesh cp .env.example .env # 编辑 .env 并设置 JWT_SECRET 以及任何本地密码。 cd infra docker compose up -d bash kafka/topics.sh ``` 前端: http://localhost:3000 后端 API: http://localhost:3001/health GNN 推理: http://localhost:8000/health 简报生成: http://localhost:8001/health Neo4j Browser: http://localhost:7474 ## 开发阶段 | 阶段 | 周数 | 目标 | 关键交付物 | |-------|-------|------|-----------------| | 1 | 1-4 | 开发环境与基础设施搭建 | Kafka, Neo4j, MongoDB 在 Docker 中运行 | | 2 | 5-7 | Zeek/Suricata 数据摄取 pipeline | 10,000 条事件实现端到端流转 | | 3 | 7-10 | 图构建与 Neo4j 集成 | 在 Neo4j 中生成 15 分钟的快照 | | 4 | 9-14 | GNN 训练与推理服务 | GAT AUC > 0.85,GNNExplainer 正常工作 | | 5 | 13-16 | MITRE 映射与仪表盘告警信息流 | 每次检测均使用 ATT&CK ID 进行丰富 | | 6 | 15-20 | 结合 DP-SGD 的联邦学习 | 3 客户端 FL 模拟,追踪 epsilon | | 7 | 18-22 | 分析师简报生成 | 每次检测均在 2 秒内生成简报 | | 8 | 20-24 | 仪表盘优化,Kubernetes,安全加固 | 完整演示,CI 通过,ZAP 扫描无漏洞 | ## 研究扩展 - 用于持续威胁检测的时序 GNN (Temporal GNN)。 - GAT 针对图扰动的对抗鲁棒性。 - 与 SOC 分析师共同开展 GNNExplainer 用户研究。 - 跨组织配置文件的跨域联邦学习。 - 基于 LLM 的事件推理(集成 Llama 和 Mistral 系列)。 ## 团队 | 成员 | 角色 | 负责内容 | |--------|------|-----------| | 成员 1 | 前端与可视化 | React 仪表盘,Sigma.js 图,ATT&CK 热力图 | | 成员 2 | 后端与数据摄取 | Node.js API,Kafka pipeline,MongoDB,Neo4j,认证授权 | | 成员 3 | ML 与研究 | GNN,联邦学习,分析师简报,MITRE 分类器 | ## 许可证 MIT
标签:GNU通用公共许可证, Metaprompt, MITM代理, Node.js, PE 加载器, Python, 图神经网络, 威胁情报, 开发者工具, 搜索引擎查询, 无后门, 模拟器, 横向移动检测, 特权检测, 网络安全, 联邦学习, 请求拦截, 软件成分分析, 逆向工具, 隐私保护