Skip to content

CyberSim:网络安全攻防仿真平台

应用测试规模,模型参数大小,测试环境

1. 测试环境详

类别子项参数/版本
操作系统系统名称Huawei Cloud EulerOS 2.0
硬件配置CPU 架构ARM (鲲鹏 Kunpeng)
CPU 核心数320 核
NPU 类型昇腾 (Ascend) NPU
NPU 数量/显存8 卡,每卡 64GB
AI 框架Python 版本3.10
PyTorch 版本2.2.0
torch-npu 版本2.2.0
CANN 工具包版本8.0.rc1
驱动与工具NPU 驱动版本24.1.rc3.3

2. 测试规模

单节点 8 卡 机器

3. 模型参数

对于 15 万节点网络,网络总参数量约为 193.65M 参数

4. 平台介绍

网络空间博弈平台是一个抽象的、高度灵活的基于图形的网络安全仿真平台,具备良好可解释性、可扩展性和可迁移性。平台从大规模网络空间博弈引擎、算法库、学习引擎和模型库四个方面实现网络空间博弈对抗和态势推演模拟,具备:

  • 超过 15 万+节点网络环境的仿真能力
  • 支持数十种拓扑结构的网络仿真模拟
  • 形成规划类求解方法、单智能体学习算法、启发式学习算法共计十余种算法的算法库;

创新性:

  1. 网络空间博弈平台支持的网络网络规模有多大
    • 平台目前支持 15 万+ 节点网络的仿真模拟,远远高于目前 微软的 CyberBattleSim 和 澳大利亚国防部的CyBorg 等平台
  2. 网络空间博弈平台易用性如何
    • 仿真平台参考了强化学习最流行的 OpenAI Gym 环境接口设计,灵活高效,支持灵活的环境和游戏规则配置,平台支持在高度可定制的配置中防御任意网络拓扑结构。
  3. 网络空间博弈平台模拟的真实性如何
    • 网络空间博弈平台是一组抽象的、高度灵活的基于图形的网络安全模拟环境,能够模拟一系列网络安全场景。平台专注于提供快速模拟,以支持对抗概率红方智能体的防御性自主智能体的开发。并提供了可视化功能,具备良好可解释性。

5. 演示流程

下面演示一个 100 节点网络的红蓝双方博弈仿真过程

  1. 选择一个网络拓扑结构
  2. 选择一个仿真配置文件
  3. 配置训练和评估参数,这里使用 PPO 算法,进行 2000 步模拟。
  4. 开启训练
  5. 需要等待 10 秒钟,可以看到下面左侧栏已经有日志输出,中间栏是强化学习算法的评估指标,右侧栏是对网络博弈过程的仿真模拟

在游戏过程中,攻击者和防御者轮流操作网络中的节点。攻击者通过入口点 E 进入网络环境,并根据预定义的攻击规则定期发起攻击。判断节点是否被占领的标准基于攻击行为属性中的攻击等级值与正常节点的脆弱性值之间的差异。如果差异为正,则节点可能被占领;否则,被认为是不太可能的。当攻击者执行攻击步骤时,

图 1:YT 在 25 节点网络 Gnet 上的示例输出。BlueAgent 正在保护一个高价值目标节点(紫色节点)。RedAgent 控制了网络的大部分,由黄色节点表示,包括已知和未知的受感染情况(由黄色节点的边的颜色表示),而 BlueAgent 并不知情。系统中有三个入口节点,其中两个已经被 RedAgent 利用(用‘E’标记)。BlueAgent 正在从高价值目标节点相邻的节点中移除 RedAgent。RedAgent 正在攻击网络左下角的一个节点。

解释图中模拟过程:

构成网络环境的无向图中,灰色连接线代表可行路径,红色连接线代表攻击者的攻击路径,绿色节点代表环境中的正常节点,不同的绿色深浅代表节点的不同脆弱性值,黄色节点代表被攻击的节点,蓝色节点代表防御者节点,红色节点代表正在被攻击者攻击的节点,紫色节点代表高价值目标,E 代表入口节点,蓝色圆圈代表防御者已知的脆弱性,红色圆圈代表防御者未知的脆弱性。

  • 右图是 18 个节点网络的仿真模拟,图中红色节点表示正在被网络攻击的节点,蓝色节点为防御节点,红色连接线代表攻击者的攻击路径,绿色节点代表环境中的正常节点,E 代表入口节点。
  • 在仿真环境中,攻击者和防御者轮流操作网络中的节点。攻击者通过入口点 E 进入网络环境,并根据预定义的攻击规则定期发起攻击。
  • 防御者根据强化学习策略从一系列动作空间中选择防御动作,并与当前环境互动。防御者的智能体从与环境的互动中获得状态奖励和动作奖励,这些奖励用于为调整策略的强化学习算法提供反馈。

6. 部署流程

6.1 启动服务

shell
#!/bin/bash
bash /root/work_dir/CyberAttackSimulator2/docker/docker_run.sh
# 进入指定容器
docker exec -it d6cfcb905115 /bin/bash

cd /root/work_dir/CyberAttackSimulator2
python manage.py runserver 0.0.0.0:8020

6.2 SSH 端口转发

注意:以下为内部部署信息,实际使用时请联系管理员获取最新凭据。

Maintained by Robin