网络攻防不再写死代码:换一套建模语言,攻防智能体在同一仿真里训练
核心概要
KTH 团队发布 MAL Simulator,把网络攻防仿真建立在 Meta Attack Language 建模语言之上,更换目标域时不必改动仿真器源码。在基于 CRATE 靶场中 ADS-24 网络构建的 30 个场景上,训练出的强化学习攻击智能体在 15 个未见测试场景上的回报为 −301±10.3,优于广度优先、深度优先和随机搜索;在 1% 误报与漏报条件下,带噪声训练的防御智能体平均回报为 −60355±945,优于启发式防御的 −61653±914。但面对强化学习攻击者时,所有防御智能体的回报都明显下降。
深度剖析
网络攻防仿真器现在可以围绕一套攻击建模语言搭建,目标系统的资产类型、攻击步骤和防御步骤由语言描述,而不是写进仿真器代码。 此前的攻防仿真器允许用户增删场景中的实体,但不提供添加新实体类型或属性的方法,改动核心攻击路径逻辑也不是简单任务。 仿真器以 Meta Attack Language 生成攻击图,同一套核心转移逻辑在更换语言后仍可复用,因此防御型强化学习智能体架构可迁移到计算机网络、云环境和运营技术系统。
仿真器把攻击图上的攻击步骤与防御步骤当作状态变量,构成一个部分可观测的马尔可夫决策过程,攻防双方共享状态但拥有各自的观测、动作和目标。 此前 MAL 攻击图主要用于静态风险分析,这里改为离散事件驱动的仿真与博弈。 场景可以配置时间到攻陷分布、误报与漏报、可观测性与可执行性,以及攻击与防御步骤的数值代价,从而定义新的决策过程。
两个案例研究分别训练攻击智能体和防御智能体,并与手工设计的基线比较。 此前的对比基线包括广度优先、深度优先、随机搜索攻击者,以及不做任何动作和见到告警即启用防御的启发式防御者。 攻击智能体在 15 个未见测试场景上每场景跑 10 回合,回报 −301±10.3,而广度优先为 −717±12.8、随机为 −736±12.6、深度优先为 −797±15.4;防御测试在完整 ADS-24 模型上每个攻击者变体跑 100 回合。
启示与展望
演示范围限于仿真器内部:目标系统是 CRATE 靶场中实现的 ADS-24 网络,30 个场景由 Osquery 采集的主机清单数据生成,智能体只在仿真器中评估,未在仿真网络之外测试。
作者说明未评估仿真模型的预测能力,也未系统比较仿真器输出与靶场输出;误报率在所有攻击步骤和主机上均匀分布的假设并不准确,用户区资产的误报更频繁。面对强化学习攻击者时防御智能体回报显著下降,作者将其归因于该攻击者偏好经过可观测步骤更少、总时间到攻陷更短的软件漏洞路径。
