halladj/simulation-scripts

GitHub: halladj/simulation-scripts

基于 NS-3 的网络仿真框架,通过移动 IoT agent 穿越密度梯度场并触发上下文相关的多类型 DDoS 攻击,生成用于智慧城市 IoT 入侵检测研究的带标注基准数据集。

Stars: 0 | Forks: 0

# DynIoT-DDoS — NS-3 仿真框架 生成 **[DynIoT-DDoS 数据集](https://doi.org/10.5281/zenodo.21627584)**:一个针对智慧城市 IoT 的移动性感知、 多攻击 DDoS 基准测试。单个移动 IoT agent 会穿越一个包含 61 个固定节点的密度梯度场,同时路径上的恶意节点会发起 **上下文触发**的攻击,仅当 agent 处于其无线电范围内时才会触发攻击,因此 对抗性流量会与合法的、由移动引起的流量激增同时发生。 - **数据集:** https://doi.org/10.5281/zenodo.21627584 · https://github.com/halladj/DynIoT-DDoS - **攻击:** UDP flood、TCP flood、ICMP flood、MAC 层信道干扰 - **输出:** 每秒时序 CSV + 每流 CSV,均已标记 ## 环境要求 | 组件 | 版本 | 备注 | |---|---|---| | NS-3 | **3.43** | 包含 Python 绑定 | | cppyy | **3.1.2** | **请锁定此版本** — 详见下文 | | Python | 3.10+ | | | PyYAML | 任意 | 用于读取 `nodes.yaml` | ``` # 在 NS-3 virtualenv 中 pip install 'cppyy==3.1.2' pyyaml cd /path/to/ns-allinone-3.43/ns-3.43 ./ns3 configure --enable-python-bindings && ./ns3 build ``` ## 安装说明 克隆此代码仓库,然后将 `Makefile` 指向你的 NS-3 安装路径: ``` NS3_DIR := /path/to/ns-allinone-3.43/ns-3.43 OUTPUT_DIR := /path/to/output ``` `SCENARIO` 是相对于 `Makefile` 进行解析的,因此无需修改其他路径。 ## 复现已发布的数据集 ``` make validate ATTACK_TYPES="udp_flood tcp_flood icmp_flood jamming" JOBS=18 ``` 将 `JOBS` 设置为大约(核心数 − 2)。在 20-vCPU 的主机上大约需要 ~2.5 小时。 **预期输出:** `184 succeeded, 116 failed, 300 total` → `combined_timeseries_features.csv` (11,084 行) 和 `combined_flow_features.csv` (795,683 行)。 ### 其他目标 | 目标 | 用途 | |---|---| | `make sim` | 使用默认参数运行单个场景 | | `make topo` | 重新生成 `nodes.yaml`(菱形拓扑) | | `make concat` | 合并现有的各场景 CSV | | `make batch-parallel` | **较旧的**单攻击 603 场景网格 — 并非已发布的数据集 | | `make help` | 显示所有目标和变量 | ## 目录结构 ``` discovery_collab_simulation.py entry point run_scenarios.py batch runner (grid sweep, parallel, --resume) generate_topology.py builds nodes.yaml lib/ core/ config, constants, node loader nodes/ node containers, malicious tracking network/ 802.11n ad hoc stack, range propagation mobility/ constant-position + waypoint models protocols/ UDP discovery, TCP collaboration attacks/ udp_flood, tcp_flood, icmp_flood, jamming (+ registry) features/ FlowMonitor sampling → CSV ``` ## 仿真概述 在菱形场地(W = 100 m, H = 76 m)中分布着 61 个固定节点,共有 13 列,列间距为 8 m,每列节点数呈峰值分布 `{1,1,3,5,7,7,9,9,7,5,3,3,1}`。一个移动 agent 的速度为 1 m/s,通信范围为 20 m, 采用 IEEE 802.11n ad hoc (IBSS) 模式,以及硬截止范围传播模型。两阶段流量:UDP 广播 邻居发现,随后是持续的 TCP 协作。攻击时间窗口是通过 计算 agent 移动轨迹与各攻击者范围之间的圆与线交点来确定的。 网格参数:起始偏移量 `d ∈ {0, 20, 40}` m · 移动角度 `α` 以 15° 为步长 · 攻击者数量 `n ∈ {1, 3, 5}` · 路径间距 `s ∈ {8, 24}` m。 ## 引用 ``` @dataset{halladj2026dyniotddos, author = {Halladj, Hamza and Sa\"{i}douni, Djamel Eddine and Maati, Bouchera and D\'{i}az, Gregorio}, title = {{DynIoT-DDoS}: a mobility-aware, multi-attack {DDoS} detection dataset for {Smart City IoT}}, year = {2026}, publisher = {Zenodo}, doi = {10.5281/zenodo.21627584} } ``` ## 许可证 MIT。
标签:DDoS检测, NS-3, 恶意代码分类, 数据集生成, 智慧城市, 物联网, 网络仿真, 逆向工具