ZR12345/chua-network-attack-detection
GitHub: ZR12345/chua-network-attack-detection
针对同步多智能体网络的仿真框架,在蔡氏电路耦合网络基础上实现拓扑切换攻击的实时检测与基于优先级的节点保护。
Stars: 0 | Forks: 0
# 同步网络中的弹性攻击检测与基于优先级的保护机制
这是一个用于研究针对同步多智能体网络信息物理攻击的仿真框架,该框架构建在一个由耦合的 **Chua's circuit** 节点组成的网络之上。本项目在一个基础同步模型的基础上进行了两项原创性扩展:**实时攻击检测模块** 和 **基于优先级的节点保护方案**,并使用标准的检测性能指标(ROC 曲线、AUC、混淆矩阵)进行了评估。
## 概述
分布式信息物理系统 —— 传感器网络、电网、多机器人系统 —— 依赖于节点之间以及与共享目标轨迹保持同步。当攻击者破坏通信拓扑(切断或更改节点之间的链路)时,同步性能会下降,系统可能变得不可靠或不安全。
本项目模拟了一个 8 节点网络,其中每个节点遵循 **Chua's circuit** 动态特性(一种著名的混沌非线性系统),并通过共享的网络拓扑与其相邻节点耦合。在基线同步/观测器设计的基础上,本实现增加了以下内容:
- **创新点 1 — 攻击检测:** 一个基于残差的统计检测器,用于监控节点之间的时间和空间不一致性,并实时标记攻击,而无需事先知道攻击将在何时何地发生。
- **创新点 2 — 基于优先级的保护:** 根据网络中心性(介数、度或 PageRank)计算节点重要性,并重新分配控制力度,以便在网络受到攻击时,高优先级节点能够更快地同步并更快地恢复。
## 工作原理
1. **网络拓扑** —— 一个 8 节点图定义了节点之间的正常连接性,并具有对应的图拉普拉斯矩阵。
2. **攻击拓扑** —— 四种攻击场景模拟了严重程度逐渐增加的链路故障,从单个连接断开到大规模损坏。
3. **Chua's circuit 动态特性** —— 每个节点的局部(未耦合)行为遵循 Chua's circuit 方程,其目标轨迹通过求解孤立系统生成。
4. **同步网络仿真** —— 所有 8 个节点在随机生成的攻击序列下一起进行仿真,该序列随时间在正常拓扑和攻击拓扑之间切换。每个节点还运行一个本地观测器,根据有限的测量值估计其自身状态。
5. **攻击检测(创新点 1)** —— 在每个时间步长,检测器根据状态的时间变化和相邻节点之间的空间分歧计算出一个残差信号,并将其与阈值进行比较,以决定是否正在发生攻击。
6. **基于优先级的保护(创新点 2)** —— 节点优先级权重(源自图中心性)缩放每个节点的控制增益,从而使结构上重要的节点获得更多的控制力度并更快地稳定下来。
7. **性能评估** —— 通过 ROC 曲线和 AUC 分数评估检测性能,混淆矩阵报告了针对真实攻击间隔的准确率、精确率、召回率和 F1 分数。
有关此流程的视觉摘要,请参见 [`results/pipeline_diagram.png`](results/pipeline_diagram.png)。
## 仓库结构
```
.
├── CyberSec_2.ipynb # Main notebook: full simulation, detection, and evaluation
├── requirements.txt # Python dependencies
├── README.md # This file
└── results/
├── README.md # Index of generated figures
├── pipeline_diagram.png
├── 01_network_topology.png
├── 02_attack_scenarios.png
├── 03_priority_weights.png
├── 04_target_trajectory.png
├── 05_sync_performance.png
├── 06_roc_curve.png
└── 07_confusion_matrix.png
```
## 快速开始
### 前置条件
- Python 3.9+
- Jupyter Notebook、JupyterLab 或安装了 Jupyter 扩展的 VS Code
### 安装说明
克隆仓库并安装依赖项:
```
git clone https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git
cd YOUR_REPO_NAME
pip install -r requirements.txt
```
### 运行仿真
打开并自上而下运行 notebook:
```
jupyter notebook CyberSec_2.ipynb
```
按顺序运行所有单元格将执行以下操作:
1. 构建网络和攻击拓扑
2. 生成目标轨迹
3. 在随机化攻击序列下运行完整的同步仿真
4. 计算检测和优先级保护结果
5. 生成 ROC 曲线和混淆矩阵
6. 将所有结果图表保存到 `results/` 文件夹中(最后一个单元格)
## 关键结果
notebook 在其运行结束时会报告以下内容(由于随机化的攻击序列和初始条件中的噪声,每次运行的确切值可能会略有不同):
| 指标 | 描述 |
|---|---|
| 检测率 | 被正确标记的真实攻击百分比 |
| 误报率 | 正常运行期间的假阳性百分比 |
| 平均检测延迟 | 攻击发生与被检测到之间的时间 |
| ROC AUC | 检测器的 ROC 曲线下面积 |
| 准确率 / 精确率 / 召回率 / F1 | 源自混淆矩阵的标准分类指标 |
| 平均收敛时间 | 节点与目标轨迹同步所需的时间 |
有关最新运行的具体数值,请参见 `results/06_roc_curve.png` 和 `results/07_confusion_matrix.png`;关于高优先级节点在攻击期间如何比低优先级节点恢复得更快,请参见 `results/05_sync_performance.png`。
## 方法论说明
- **基础模型:** 一个由 Chua's circuit 组成的 8 节点网络,通过共享拓扑进行耦合,每个节点带有一个本地 Luenberger 类型观测器,该观测器根据部分测量值估计其状态。
- **攻击模型:** 拓扑切换攻击 —— 对手在随机生成的时间间隔内切断或重新连接节点之间的链路,如攻击序列生成器中所定义。
- **检测器设计:** 一种残差信号,结合了每个节点估计状态的时间变化率及其与相邻节点的空间分歧,并通过经验调优的值进行阈值判定。
- **优先级权重:** 基于中心性的权重(归一化到 [0.3, 1.0] 范围以避免完全取消任何节点的优先级)在正常运行期间缩放每个节点的控制增益。
## 局限性
- 攻击场景和检测阈值是针对这种特定的 8 节点拓扑和参数集进行调优的;对于其他网络规模或动态特性,结果会有所不同。
- 此处使用的观测器增益矩阵是预先计算好的(不是通过 LMI 求解器实时推导的),仅供演示使用。
- 这是一项仿真研究,而不是已部署或经过硬件验证的系统。
## 许可证
如果您打算让其他人重用此仓库,请添加您选择的许可证(例如 MIT 许可证)。
## 致谢
本项目建立在基于 Chua's circuit 网络动态特性的基础同步模型之上,并扩展了原创的攻击检测和基于优先级的保护贡献。
标签:meg, NoSQL, PFX证书, 信息安全, 信息物理系统, 分布式网络, 图论, 攻击检测, 混沌系统, 特权检测, 网络靶场, 逆向工具