Sanskritiiiiiiiii/IDPC-Sentinel

GitHub: Sanskritiiiiiiiii/IDPC-Sentinel

一个模块化、支持 AI 检测与区块链账本热插拔的入侵检测与防御平台,提供实时流量监控、自动 IP 封锁和防篡改审计日志。

Stars: 0 | Forks: 0

# IDPS Sentinel — AI 驱动的、启用区块链的入侵检测与防御系统 ## 1. 项目概述 IDPS Sentinel 是一个下一代网络防御平台,它将实时流量监控、自动化入侵防御和不可篡改的安全日志记录统一到一个单一的运营 pipeline 中。该系统持续观察主机级别的网络遥测数据,检测异常的流量状况(例如数据包泛洪),并自动执行缓解措施——同时将每一次检测和响应操作记录到防篡改的审计账本中。 该架构经过明确设计,以适应项目技术蓝图中定义的两项高级功能:**AI 检测与行为分析层**(Random Forest / 深度神经网络分类)以及**区块链日志与安全账本**(Hyperledger Fabric)。两者目前都已架构为可通过稳定、模块化的接口进行集成,允许核心引擎独立运行和验证,而不受这些生产组件何时最终确定的影响。 ## 2. 当前实现状态 | 层级 | 状态 | |---|---| | **实时流量监控** | ✅ 完全可用 — 实时数据包速率、带宽和连接指标直接来源于主机系统计数器 (`psutil`)。 | | **自动化入侵防御** | ✅ 完全可用 — 基于阈值的泛洪检测会自动触发 IP 封锁 / 空路由,并实现端到端的实时状态跟踪。 | | **本地审计账本** | ✅ 完全可用 — 每个检测和缓解事件都记录在一个只追加的、哈希链式的账本(SHA-256 链接区块)中,可独立查询并实时流式传输到仪表板。 | | **AI 检测与行为分析** | 🧩 模块化接口就绪 — 实现为稳定的存根 (`ai_engine_mock.py`),公开了生产环境的 Random Forest / 深度神经网络模型将要使用的精确函数签名。目前已接入实时检测流程,因此可以对整个 pipeline 进行端到端验证。 | | **区块链日志 (Hyperledger Fabric)** | 🧩 模块化接口就绪 — 实现为稳定的存根 (`blockchain_logger_mock.py`),将每个检测事件镜像到最终的 Fabric 账本接口,并与功能完备的本地哈希链并行工作。 | **简而言之:** 核心防御 Pipeline — 流量监控、自动化封锁和本地审计日志记录 — 目前已完全可用并经过生产测试。AI 和分布式账本层尚未得到其最终生产组件的支持,但系统已完全连线准备好接纳它们,无需对任何周边逻辑进行修改。 ## 3. 架构理念 IDPS Sentinel 遵循**解耦的、接口优先的设计**。我们没有将 AI 和区块链层直接构建到检测/响应 pipeline 中,而是将每个模块都置于一个狭窄、稳定的函数契约背后: ``` predict_attack(packet_data: dict) -> bool # AI Detection Layer record_attack_event(attack_data: dict) -> None # Blockchain Logging Layer ``` 核心引擎(流量监控、警报、IP 封锁、本地账本)仅依赖于这些函数签名——从不依赖于它们背后的内部实现。这意味着: - **核心引擎目前可独立测试和部署**,无需等待训练好的模型或实时的 Fabric 网络。 - **生产组件可以通过单行 import 更改进行热插拔。** 将 `ai_engine_mock` 替换为真实的 `ai_engine` 模块(由训练好的 Random Forest / 深度神经网络支持),或将 `blockchain_logger_mock` 替换为真实的 `blockchain_logger` 模块(由 Hyperledger Fabric SDK 支持),不需要在 `main.py` 的任何其他地方进行更改。 - **风险被隔离。** 模型重训、Fabric 网络迁移或链码升级不会破坏流量监控或防御逻辑,因为这些系统从不依赖于模型或账本的内部实现。 这是一个深思熟虑的工程选择,而不是占位符捷径:即插即用的边界就是架构本身。 ## 4. 主要功能 - **实时数据包监控** — 实时的 `packets_per_sec` 和 `bandwidth_mbps` 来源于实际的主机网卡计数器,而非合成数据。 - **自动化 IPS 响应** — 实时泛洪检测会自动触发 IP 封锁 / 空路由,无需人工干预。 - **不可篡改的本地审计账本** — SHA-256 哈希链式、只追加的事件日志,涵盖每一次检测、封锁和缓解操作。 - **实时流式遥测** — 一个高弹性的 WebSocket pipeline (`/ws/v1/telemetry`) 每 0.5 秒将完整的系统状态推送到已连接的仪表板,并带有自动的客户端重连机制。 - **模块化 AI 检测接口** — 稳定的 `predict_attack()` 契约,准备好接收生产环境训练的分类器。 - **模块化区块链日志接口** — 稳定的 `record_attack_event()` 契约,准备好接收生产环境的 Hyperledger Fabric 集成。 - **真实的系统级遥测** — 活动连接数和核心节点负载来源于实时的系统状态(`psutil.net_connections()`、`psutil.cpu_percent()`),而不是模拟的占位符。 ## 5. 技术栈 | 类别 | 技术 | |---|---| | 后端框架 | Python 3, FastAPI, Uvicorn | | 实时传输 | WebSockets (原生 FastAPI/Starlette) | | 系统遥测 | `psutil` | | 安全账本(当前) | 内存中的 SHA-256 哈希链账本 | | 安全账本(架构设计支持) | Hyperledger Fabric (智能合约: `recordAttackEvent()`, `storeSecurityLog()`, `verifyController()`, `auditSecurityEvents()`) | | AI/ML 检测(架构设计支持) | Random Forest / Isolation Forest / 深度神经网络 / LSTM (scikit-learn, TensorFlow 或 PyTorch) | | 前端 | React (仪表板 UI,实时 WebSocket 客户端) | | 部署目标 | Ubuntu (VirtualBox 虚拟机 / 裸金属),Docker-ready | ## 6. 安装与使用 ### 前置条件 - Ubuntu 20.04+(或任何具有 `/proc` 访问权限以供 `psutil` 使用的 Linux 环境) - Python 3.10+ - `pip` ### 设置 ``` # 克隆或导航至项目目录 cd ~/idpc_ai/backend # 创建并激活 virtual environment python3 -m venv venv source venv/bin/activate # 安装依赖 pip install fastapi uvicorn psutil ``` ### 运行后端 ``` uvicorn main:app --host 0.0.0.0 --port 8000 --reload ``` 服务器暴露的接口: | Endpoint | 描述 | |---|---| | `GET /api/v1/dashboard/metrics` | 当前指标、节点遥测和资产防护状态 | | `GET /api/v1/threat/alerts` | 当前警报列表 | | `GET /api/v1/blockchain/ledger` | 当前的本地审计账本(哈希链区块) | | `GET /api/v1/health` | 基础健康检查 | | `WS /ws/v1/telemetry` | 完整系统状态的实时流式数据推送(0.5秒间隔) | ### 验证系统 ``` # 确认 backend 已上线 curl -s http://127.0.0.1:8000/api/v1/health # 实时观察 metrics 更新 watch -n 1 curl -s http://127.0.0.1:8000/api/v1/dashboard/metrics ``` ### 运行前端 在前端项目目录下: ``` npm install npm start ``` 仪表板将自动连接到 `ws://127.0.0.1:8000/ws/v1/telemetry`,并开始渲染实时遥测数据、警报和审计账本条目。 ### 替换为生产环境的 AI / 区块链模块 当生产组件准备就绪时: 1. 实现 `ai_engine.py`,暴露 `predict_attack(packet_data: dict) -> bool`。 2. 实现 `blockchain_logger.py`,暴露 `record_attack_event(attack_data: dict) -> None`。 3. 在 `main.py` 中,更新这两行 import: from ai_engine import predict_attack from blockchain_logger import record_attack_event `main.py` 中无需其他更改。
标签:AI异常检测, Hyperledger Fabric, Python, 入侵检测与防御, 凭据扫描, 区块链审计, 无后门, 网络安全, 自定义脚本, 请求拦截, 逆向工具, 配置错误, 隐私保护