mustafagasimzada/Bidirectional-IoT-Gateway
GitHub: mustafagasimzada/Bidirectional-IoT-Gateway
在 Raspberry Pi 4 上以透明网桥方式部署的双向边缘 IoT 网络入侵检测系统,通过 Random Forest、规则引擎与大负载防护器的联合管道实时检测入站 DDoS 攻击和出站僵尸网络行为,并经 nftables 在内核级别执行 O(1) 阻断。
Stars: 0 | Forks: 1
# 双向边缘物联网安全网关
**在 Raspberry Pi 4 上同时实现入站 DDoS 防护与出站僵尸网络检测**
Mustafa Gasimzada, Mulkum Badalov — 中东技术大学,安卡拉,土耳其
*ICIT '26,中国上海*
## 摘要
物联网设备的激增引入了严重的漏洞,这些漏洞被 Mirai 和 Gafgyt 等僵尸网络所利用。现有的检测方法要么针对针对物联网设备的入站攻击,要么针对受感染设备的出站僵尸网络行为——但不能在同一资源受限的边缘节点上同时处理两者。本仓库实现了一个部署在 Raspberry Pi 4 上的双向边缘网络入侵检测系统 (NIDS),作为一个透明的二层/三层网桥,实时检查入站和出站流量,并在内核级别 (nftables) 执行缓解措施。
该系统将每个方向的 Random Forest 分类器与一个轻量级的确定性规则引擎和一个大负载防护器(论文中的公式 1–4 / 算法 1)配对,从而使各个组件能够相互补偿彼此特有的失效模式:分类器最大化召回率,规则为随机源泛洪添加确定性覆盖,而防护器则限制高码率合法视频流量的误报成本。
## 三阶段评估
1. **阶段 1 — N-BaIoT 离线基线**:99.996% 准确率(Decision Tree,5 个特征,分层 5 折交叉验证)— `experiments/` 阶段 1 脚本,`results/leave_one_device_out_*.csv`,`results/camera_*` 文件。
2. **阶段 2 — CICIoT2023 扩展评估**:在 105 个物联网设备上通过抗泄漏的基于文件的划分进行测试,Random Forest 的 F1 = 0.9920(实验 A/B/C)— `experiments/01-05_*.py`。
3. **阶段 3 — 双向实时部署**:在物理 Raspberry Pi 4 硬件上收集的专用数据集。七特征 Random Forest 结合规则引擎和大负载防护器,可检测所有注入的入站泛洪类型(100% TPR / 0% FPR)以及 94–100% 的模拟出站僵尸网络流量,误报率仅为 0–0.5%,同时检测器的平均 CPU 消耗低于 9% — `data/live/`,`src/`,`experiments/ablation.py`,`experiments/feature_importance.py`。
出站结果是一项明确的、受控的可行性研究,使用的是自行生成的攻击流量 (hping3/Scapy) 而非真实的恶意软件(有关结构效度的讨论,请参见论文的第 8.1 节 / 第 10 节)。
## 仓库结构
```
bidirectional-iot-gateway/
├── data/
│ ├── live/ # Purpose-built bidirectional dataset (inbound/outbound, normal/attack)
│ └── public/ # Scripts to download public reference datasets (N-BaIoT, CICIoT2023)
├── src/
│ ├── features/ # Real-time 7-feature extraction, 1s sliding window (Eq. 1)
│ ├── detection/ # Rule engine (Fig. 2), large-payload guard (Eq. 3), combined pipeline (Eq. 4 / Algorithm 1)
│ ├── models/ # Random Forest training (n_estimators=100, max_depth=10)
│ └── enforcement/ # nftables (O(1) kernel blocking) and bridge setup scripts
├── attack_generation/ # hping3 flood profiles and Scapy scan/shaped-flow generators
├── experiments/ # Scripts reproducing the paper's tables (N-BaIoT, CICIoT2023, ablation, feature importance)
├── figures/ # Figure generation scripts (architecture, feature-reduction, ablation, importance)
├── results/ # Raw experiment outputs (csv/json) underlying the paper's tables
└── models/ # Trained Random Forest model artifacts (.joblib)
```
## 关键设计点(摘自论文)
- **七个流级别特征**,一秒滑动窗口:`packet_count_1s`、`byte_count_1s`、`avg_packet_size_1s`、`avg_interarrival_1s`、`packet_rate_1s`、特定方向的唯一 IP 计数(入站为 `unique_src_ips_1s` / 出站为 `unique_dst_ips_1s`),以及 `syn_ratio_1s`。请参见 [`data/live/DATA_DICTIONARY.md`](data/live/DATA_DICTIONARY.md) 以及论文中的表 2 / 公式 1。
- **组合决策** `D(x) = (RF(x) ∨ R(x)) ∧ ¬G(x)`:将 Random Forest 的判定与确定性规则谓词进行并集运算,随后被大负载防护器否决,这在结构上是可靠的(观察到的每个攻击窗口都满足 `avg_packet_size_1s ≤ 60 B`,因此防护器只能消除误报,绝不会掩盖真实的泛洪)。请参见 `src/detection/pipeline.py` 以及公式 4 / 算法 1。
- **O(1) 内核执行**:通过带有超时条目的 nftables 命名集,对入站源 IP 进行阻止,并动态隔离受感染的出站设备,从而实现与黑名单大小无关的常量时间执行。请参见 `src/enforcement/nftables_setup.sh` 和表 3。
- **特定方向的模型**:入站检测最依赖于 `syn_ratio_1s`;出站检测最依赖于 `avg_packet_size_1s` —— 这种经验证的不对称性(表 10–11,第 8.5–8.6 节)证明了为每个方向分别训练 Random Forest,而不是使用单个共享分类器是合理的。
## 安装
```
git clone https://github.com//bidirectional-iot-gateway.git
cd bidirectional-iot-gateway
pip install -r requirements.txt
```
## 数据
有关完整的特征 schema(表 2),请参见 [`data/live/DATA_DICTIONARY.md`](data/live/DATA_DICTIONARY.md)。论文中报告的实时数据集包含跨五个设备配置文件的 25,000 条正常 / 15,000 条攻击入站记录(表 6–7),以及跨三个正常配置文件和四种攻击类型的 15,000 条正常 / 20,000 条攻击出站记录(表 8)。目前在 `data/live/` 中发布的 CSV 文件(`inbound.csv`:13,000 条正常 / 6,000 条攻击;`outbound.csv`:6,000 条正常 / 8,000 条攻击)反映了目前发布的抓取批次,并将逐步扩展至报告的完整数量;有关标签语义和来源(`source_file` 列),请参见数据字典。
基于配置文件的训练/测试划分——确保留出的评估永远不会在模型训练过的设备/攻击配置文件上对其进行评分——位于 `data/live/splits/` 目录下(可使用 `data/live/splits/generate_splits.py` 重新生成)。
公开参考数据集(N-BaIoT、CICIoT2023)可通过 `data/public/download_datasets.sh` 获取。
有关编号实验脚本与论文阶段/表格之间的映射,请参见 [`experiments/README.md`](experiments/README.md)。
## 引用
如果您使用了此代码或数据集,请按照 [`CITATION.cff`](CITATION.cff) 中的说明引用本论文。
## 许可证
- 代码:[MIT 许可证](LICENSE)
- 数据集:[CC BY 4.0](DATA_LICENSE)
标签:Apex, Raspberry Pi, 内存执行, 异常流量检测, 机器学习, 物联网安全, 网络安全, 边缘计算, 逆向工具, 配置错误, 隐私保护