面向攻击者能力演变的基于强化学习与行为树的自适应网络防御
大家读完觉得有帮助记得关注和点赞!!!
摘要——使用强化学习(RL)训练的自主网络防御代理正越来越多地被用于防御企业计算机网络。然而,随着攻击者能力演变并催生新的攻击策略,现有方法可能变得脆弱。在本工作中,我们研究将CAGE挑战场景2(CC2)——一个基准企业网络防御场景——中学习到的防御者策略适应到扩展网络场景的问题,该扩展场景具有由新攻击者动作表示的新攻击者能力。利用新动作的有效攻击策略最初是未知的,因此必须先学习攻击者策略,然后才能进行防御者适应。为应对这一挑战,我们开发了带行为树的对抗强化学习(ARLBT),它使用奖励行为树(RBT)定义基于进展的奖励函数,并将攻击者策略条件化于RBT执行。所提出的RBT将新攻击者动作纳入结构化攻击策略,同时利用并行执行在多个网络节点上同时生成奖励。我们在具有不同新攻击者动作集的网络场景中,针对两个基线防御者策略评估ARLBT学习攻击者策略的效果,并与多个攻击者基线进行比较。结果表明,与使用原始CC2奖励函数的ARL相比,ARLBT提高了攻击者成功率,并且将策略条件化于RBT执行可以提高样本效率。我们进一步表明,防御者策略可以针对学习到的攻击者进行适应,从而提高对利用新攻击者动作的攻击的鲁棒性。
关键词:网络安全 · 神经符号AI · 强化学习 · 行为树
1 引言
使用强化学习(RL)训练的计算机网络自主网络防御代理通过持续监控网络并实时响应攻击,减少了网络操作员的人工工作。近期工作已证明,RL代理可以为复杂的企业级网络环境学习有效的防御者策略[8,15]。然而,网络环境本质上是非平稳的。网络拓扑、攻击者策略或攻击者能力的变化可能引入防御者训练条件与其部署期间必须防御的威胁之间的不匹配[12]。随着攻击者能力演变并催生新的破坏、规避和横向移动策略,针对固定攻击者能力训练的防御者策略的有效性可能会下降。
先前工作已探索使防御者策略适应变化的攻击者行为和网络结构。现有方法考虑了响应变化的固定攻击者策略在防御者策略之间切换[16,18]、跨不同网络拓扑的泛化[8,15],以及通过对抗强化学习(ARL)联合训练攻击者和防御者,其中攻击者和防御者策略相互对抗训练以改进各自策略[9,11]。然而,这些特定方法假设攻击者能力保持固定。在实践中,攻击者能力可能演变并催生防御者训练期间未表示的新攻击策略。因此,现有方法既未解决如何学习能够利用新能力的攻击者,也未解决如何随后针对由此产生的攻击者行为调整防御者策略。
在本工作中,我们考虑将防御者策略从原始网络场景适应到具有由新攻击者动作表示的新攻击者能力的扩展网络场景的问题。具体而言,我们研究CAGE挑战场景2[7](CC2),其中防御者策略最初针对在企业网络环境中使用原始攻击者动作集操作的固定攻击者进行训练。攻击者的目标是攻陷并持续影响操作服务器,而防御者的目标是减轻攻击者的进展并最小化服务质量中断。我们用新的攻击者动作扩展该场景,这些动作支持额外的破坏和规避能力,例如拒绝服务攻击和隐蔽利用。因此,利用新动作的有效攻击者策略必须首先被学习,然后才能进行防御者策略适应。
为新攻击者动作学习攻击者策略带来若干挑战。随着攻击者动作集的扩展,有效攻击策略可能需要在长时间范围内经过多个协调阶段推进。例如,拒绝服务可用于在向攻击者目标推进之前制造转移。这些长时程依赖产生延迟和稀疏的奖励信号,降低样本效率,突显了攻击者训练中奖励塑形的重要性[1,10,21]。然而,CC2的奖励函数关于攻击者进展提供有限反馈。先前工作已探索使用有限状态机作为基于进展的奖励函数(奖励机器),并将攻击者策略条件化于攻击者进展[10],而更近期的工作引入了奖励行为树作为组合机器人任务的基于进展的奖励函数[17]。
为应对这些挑战,我们开发了带行为树的对抗强化学习(ARLBT),用于为新攻击者动作学习攻击者策略,并随后适应防御者策略。我们使用奖励行为树(RBT)定义基于进展的奖励函数,并将攻击者策略条件化于攻击进展。RBT将新攻击者动作集成到结构化攻击进展中,同时并行执行支持跨多个网络节点同时生成奖励。学习到的攻击者策略针对防御者策略训练,并随后用于在扩展网络场景中适应防御者策略。
本工作的技术是:
一种通过将RL策略条件化于不相交的RBT行为集,从而将策略条件化于RBT执行的方法。
一个用于扩展网络场景中攻击者训练的奖励行为树(RBT),它纳入新攻击者动作并使用并行执行。
带行为树的对抗强化学习(ARLBT),一种使用RBT条件化策略和RBT来学习新攻击者动作的攻击者策略,并随后在扩展网络场景中适应防御者策略的对抗RL算法。
在具有不同新攻击者动作集的网络场景中进行的、带代码¹的评估,其中ARLBT攻击者策略针对两个基线防御者策略训练和评估,并与多个攻击者基线比较。结果表明,与使用原始CC2奖励函数的ARL相比,ARLBT提高了攻击者成功率,并且将策略条件化于RBT可以提高样本效率。我们还表明,防御者策略可以针对学习到的攻击者进行适应,显著提高防御者奖励并降低攻击者成功率,同时保持对原始固定攻击者的鲁棒性。
2 相关工作
RL已越来越多地应用于自主计算机网络防御。然而,在网络防御中部署RL代理引入了若干重大挑战。McFadden等人(2026)的近期综述强调了若干陷阱,包括训练与部署环境之间的不匹配,以及由攻击者策略或网络拓扑变化引起的非平稳性[12]。
先前工作已探索使防御者代理适应变化的攻击者策略和网络条件。Potteiger等人(2024)和Samaddar等人(2025)使用带学习行为的行为树,在CC2中响应攻击者行为变化动态切换防御策略[16,18]。Wolk等人(2022)进一步表明,即使对网络进行微小修改,例如节点顺序或边连接的变化,也可能显著降低防御者策略性能[22]。为提高泛化能力,Molina-Markham等人(2025)在FARLAND[14]——一个用于训练防御者的RL仿真和仿真环境——中使用课程学习,跨越来越困难的固定攻击者策略和网络规模训练防御者策略[15]。King等人(2026)使用归纳图神经网络方法泛化到更大的网络拓扑,同时保持防御者策略性能[8]。尽管这些工作考虑了网络拓扑演变,但它们未涉及适应新攻击者动作或学习攻击者策略。
先前工作已探索用于联合学习攻击者和防御者策略的对抗RL。Hicks等人(2026)认为,针对固定攻击者策略训练可能产生脆弱的防御者策略,并建议共同演化攻击者和防御者以提高鲁棒性[5]。Kunz等人(2022)扩展了CyberBattleSim[13]——一个用于攻击者训练的RL训练环境——以支持联合防御者和攻击者策略学习[9]。他们证明学习到的防御者策略可以适应并显著减少攻击者进展。类似地,Makarem等人(2026)在攻击图环境中使用Q学习和DQN联合训练防御者和攻击者代理[11]。在这些工作中,可用攻击者动作集保持固定,当攻击者在引入新动作时演变策略时,这可能限制适用性。
奖励塑形仍然是网络安全RL中高效训练防御者和攻击者的主要挑战。Bates等人(2023)表明,CC2中奖励幅度、符号和好奇心驱动奖励可以影响样本效率[1]。对于攻击者训练,奖励机器已被用于通过有限状态机作为奖励逻辑来建模子任务进展[21]。Li等人(2024)将奖励机器应用于CyberBattleSim中引导攻击者策略,并将策略条件化于奖励机器状态以提高样本效率[10]。然而,奖励机器缺乏行为树自然支持的模块化和并行执行[6,17]。Potteiger等人(2026)的近期工作引入了用于组合机器人任务的基于BT的奖励函数[17]。他们的BT使用LLM和BT模板自动生成以进行奖励塑形,并展示了在对抗条件下有效引导机器人代理。然而,他们的公式未利用BT并行执行或将策略条件化于BT执行。
3 面向攻击者能力演变的自适应网络防御
我们形式化学习利用新攻击者能力的攻击者策略以进行后续防御者适应的问题。我们首先描述原始网络场景(CC2),然后引入在扩展网络场景中表示这些能力的新攻击者动作。在扩展网络场景中,新动作的有效攻击者策略最初未知,必须在防御者策略通过对抗训练适应之前学习。
3.1 原始网络场景:CAGE挑战场景2
CC2建模一个由主机和服务器组成的企业网络,具有两个代理:防御者和攻击者。
图 1:所提出的攻击者策略学习与防御者策略自适应方法概览
基线防御者策略在原始网络场景中训练,然后迁移至具有新攻击行为的扩展网络场景中。攻击者策略通过 ARLBT(基于奖励的自举训练)对抗基线防御者进行学习,其中 RBT(奖励引导树)提供基于攻击进程的奖励,并使攻击者策略以攻击进程为条件。随后,所学得的攻击者策略被用于在扩展网络场景中对防御者策略进行自适应优化。每个阶段正在优化的智能体由(*)标注。
网络拓扑网络由三个子网组成:一个具有五个非关键主机的用户子网,一个具有三个支持用户子网中服务的服务器和一个防御者主机的企业子网,以及一个具有一个操作服务器和三个操作主机的操作子网。操作服务器运行网络的关键服务。
代理目标与动作防御者的目标是防止关键服务受到影响并最小化服务质量中断。防御者可以在任何主机或服务器上执行动作以减轻攻击者。防御者动作是监控网络连接和恶意进程(Monitor)、分析主机或服务器相关文件的信息(Analyze)、在主机或服务器上部署七种诱饵服务之一,若攻击者尝试利用则触发警报(DeployDecoy)、移除任何恶意进程或文件(Remove),以及将主机恢复到已知安全状态(Restore)。
攻击者的目标是影响操作服务器上的关键服务。攻击者从某个用户主机开始。攻击者动作是发现子网上的主机和服务器(DiscoverRemoteSystems)、发现主机或服务器上的易受攻击网络服务(DiscoverNetworkServices)、利用某个易受攻击网络服务(ExploitRemoteService)建立低权限会话,Monitor检测率为95%,然后执行权限提升以建立高权限会话(PrivilegeEscalate)。如果在操作服务器上成功执行权限提升,攻击者可以影响关键服务(Impact)实现其目标。
已知攻击者策略CC2的防御者策略设计用于减轻两个固定攻击者策略:BLine和Meander。BLine策略遵循贪婪路径,选择最直接导致影响操作服务器的动作。Meander策略在推进到下一个子网之前,利用并提升子网内所有主机和服务器的权限,最终针对操作服务器。
3.2 具有新攻击者动作的扩展网络场景
新攻击者动作我们引入两个额外攻击者动作:DenialofService(DoS),持续淹没主机或服务器上的网络服务;以及StealthExploitRemoteService,具有较低的10%检测率。这些动作用于破坏服务、误导防御者和规避检测。
发现新动作的攻击者策略与CC2包含用于设计防御者策略的已知攻击者策略不同,扩展网络场景引入了有效策略未知的攻击者动作。这些新动作支持现有防御者策略不鲁棒的新攻击策略。
3.3 在CybORG中建模网络场景
网络场景使用CybORG仿真,这是一个设计用于使用RL训练防御者和攻击者策略的仿真环境[3,20]。
环境形式化我们将环境建模为具有两个代理的部分可观察马尔可夫博弈(POMG):防御者和攻击者。n = 2个代理的POMG由元组M = ⟨S, {Ai}ⁿᵢ₌₁, {Oi}ⁿᵢ₌₁, T, O, {ri}ⁿᵢ₌₁⟩表示。S是状态空间,Ai是代理i的动作空间,Oi是代理i的观察空间。我们将防御者和攻击者的联合动作记为a := (a1,a2)。T(st+1 | st,at)是在时间步t从当前状态st采取联合动作at时到下一状态st+1的转移函数。我们将防御者和攻击者的联合观察记为o := (o1,o2)。O(o | s)将状态s转换为联合观察o。直到时间步t的状态-动作历史定义为ht_s = (s1,a1,...,st),代理i的观察-动作历史定义为ht_i = (o1_i,a1_i,...,ot_i)。最后,ri表示代理i的奖励函数。在完全可观察设置中,奖励定义为ri(ht_s)。在部分可观察设置中,奖励定义为ri(ht_i)。因为这些奖励函数依赖于历史而不仅是当前状态和动作,它们是非马尔可夫的。这种形式化使奖励函数能够捕捉仅使用当前信息无法表示的时间依赖关系。
状态与观察空间网络场景的状态建模为具有节点集V和边集E = {(u,v) | u,v ∈ V}的属性图。节点表示主机、服务器、子网路由器、进程和文件,边表示所有权。属性图中的每个节点具有特征f : V → Rd,所有节点特征记为X。节点特征表示系统信息(即操作系统、用户或服务器等)、文件和进程信息(即名称、类型、签名等),以及来自外部进程的网络连接。
防御者和攻击者观察空间O1和O2提供真实状态s ∈ S的部分视图。代理i在时间步t的观察定义为ot_i = (Vt_i, Et_i, Xt_i),其中Vt_i ⊆ V,Et_i ⊆ E,Xt_i表示可观察节点特征。防御者观察ot_1 ∈ O1包含网络上所有主机、服务器和子网节点的系统信息,以及通过Monitor和Analyze动作发现的进程、文件和网络连接。初始攻击者观察o0_2 ∈ O2包含攻击者初始化所在主机节点的系统信息、文件和进程。攻击者然后必须通过其动作扩展其可观察集Vt_2、Et_2和Xt_2。例如,DiscoverRemoteSystems动作将新发现的主机和服务器节点添加到攻击者观察中。
动作空间防御者和攻击者可以采取网络范围动作或针对主机或服务器的动作(参见第3.1节)。防御者动作空间A1包含额外的Sleep动作。Monitor动作与每个选定的防御者动作并行执行。攻击者动作空间A2包含DiscoverRemoteSystems和两个额外动作:Sleep和ProgressAttack。ProgressAttack根据当前攻陷级别推进对主机或服务器的攻击:
DiscoverNetworkServices → ExploitRemoteService → PrivilegeEscalate → Impact。
奖励函数完全可观察防御者奖励函数r1(ht_s)在攻击者利用并保持对主机和服务器的访问时,以及攻击者成功在操作服务器上执行Impact时输出惩罚。此外,防御者因执行Restore而受到惩罚,因为该动作中断良性用户的服务质量。部分可观察攻击者奖励函数r2(ht_2)输出防御者惩罚,但不包括与Restore动作相关的惩罚。
3.4 为新动作扩展攻击者动作空间
随着新攻击者动作的引入,原始POMG M0转变为具有扩展攻击者动作空间A1_2的POMG M1,其中A1_2 = A0_2 ∪ A+_2。A+_2表示新动作集。
A+_2包含两个新动作:EnableDoS和DisableDoS。EnableDoS(DisableDoS)动作在主机或服务器上启用(禁用)DoS动作。当在主机或服务器上启用DoS时,该主机或服务器的DiscoverRemoteSystems和ProgressAttack动作被禁用以建模网络带宽饱和。在ProgressAttack中,ExploitRemoteService升级为使用StealthExploitRemoteService以降低检测。
3.5 学习攻击者策略以调整防御者策略
我们考虑一个基线防御者策略π1(· | o1,θ1),参数为θ1,在M0中针对BLine和Meander攻击者策略最大化防御者奖励。目标是将π1转移到M1,使转移后的防御者策略对最优攻击者策略π_2保持鲁棒。然而,由于π_2先验未知,必须首先学习。
攻击者策略π2(· | o2,θ2)的参数θ2可以通过对抗RL优化。然而,学习有效攻击者策略带来若干挑战。CybORG中的攻击者奖励函数主要建模主机或服务器上的攻陷以及对操作服务器的影响。随着攻击者动作空间扩展,有效攻击策略可能需要在长时间范围内经过多个阶段推进。这些长时程依赖产生延迟奖励信号,降低样本效率并增加发现有效攻击者策略的难度。
此外,原始攻击者奖励函数关于执行期间攻击者进展提供有限可解释性。在网络场景中,攻击者行为自然经过侦察、权限提升、横向移动和影响等阶段推进。如果没有与这些阶段对齐的基于进展的奖励信号,学习到的攻击者策略缺乏关于向攻击者目标推进的明确指导,使高效发现有效长时程攻击策略更加困难。因此,为新攻击者动作学习攻击者策略需要基于进展的奖励函数,既提高学习效率又提供攻击者向目标推进的可解释表示。
4 使用带行为树的对抗RL学习攻击者策略
我们使用带行为树(BT)的对抗RL解决在M1中为新攻击者动作学习攻击者策略的问题。我们的方法使用奖励行为树(RBT)定义基于进展的奖励函数,并将攻击者策略条件化于对应于攻击进展不同阶段的不相交RBT行为集。BT的模块化使新攻击者动作能够被纳入结构化的攻击进展阶段,而并行执行使基于进展的奖励能够在多个网络节点上同时生成。学习到的攻击者策略随后用于在扩展网络场景中适应基线防御者策略。
图2:该图显示了具有行为集C1、C2、C3和C4的攻击者RBT,以及以节点vi ∈ V2为条件的逻辑表达式ρi。图中的ρi意味着∃vi ∈ V2 | ρi为真。表格显示了攻击者RBT的节点命题。
| 节点命题(ρ) | 描述 |
|---|---|
| a | 是用户主机 |
| b | 是企业服务器 |
| c | 是操作服务器 |
| d | 被利用 |
| e | 权限提升 |
| f | 处于DoS下 |
| g | 执行了Impact |
4.1 行为树
行为树(BT)是由组织在树中的行为组成的层次符号结构[2]。BT擅长将复杂目标分解为子任务序列以监控进展。行为可以执行,返回三种状态之一:Running、Success或Failure。这些状态决定执行如何通过树传播以及接下来执行哪些行为。行为有两种类型:内部控制行为和叶执行行为。控制行为(例如序列(→)、回退(?)和并行(⇒))通过决定接下来执行哪个子行为并根据子返回状态返回状态来协调其子行为。叶行为分为条件(□)和动作(■)行为,分别语义上表示正在检查的条件和正在执行的动作。
具有行为B的BT τ具有内部控制行为Binternal和叶执行行为Bleaf。在时间步t,BT控制流执行叶行为序列εt = (b1,...,be),更新其状态并将状态反向传播到内部行为。
4.2 行为树作为奖励函数
奖励行为树(RBT)在先前工作[17]中被引入,作为使用行为树(BT)定义基于进展的奖励函数的方法。RBT使用奖励机器表示叶行为,允许代理进展表示为行为之间的转移,同时产生与通过BT的进展对齐的奖励信号。在本工作中,我们扩展RBT的使用,将RL策略条件化于RBT执行,并开发一个用于攻击者训练的RBT,它使用并行执行在多个网络节点上生成基于进展的奖励。
奖励机器(RM)是输入抽象环境描述并输出奖励函数的有限状态机[21]。简单RM将此输出限制为常数标量奖励。给定命题集P,简单RM由元组⟨U,u0,δu,δr⟩定义,其中U是有限机器状态集,u0 ∈ U是初始状态,δu : U × 2^P → U是状态转移函数,δr : U × 2^P → R是状态奖励函数。
命题使用标记函数ℓi : Oi × Ai → 2^P评估,该函数在时间步t输入观察ot_i和前一个动作at−1_i,输出真命题集σt ∈ 2^P。给定时间步t的标签历史λt = ⟨σ0,...,σt⟩ ∈ (2^P)+,RM转移到状态ut = δu(ut−1,σt)并使用δr(ut−1,σt)输出奖励。
为将RM执行与BT语义对齐,RBT中的RM共享状态集U = {Running, Failure, Success},直接对应于BT返回状态。条件和动作行为的初始状态分别为Failure和Running。这种对应关系允许RM直接作为BT叶行为运行,其中当前RM状态作为行为状态返回。
给定共享命题集P和标记函数ℓ,RBT τR为每个叶行为b ∈ Bleaf维护当前RM状态。在时间步t + 1,执行的叶RM εt+1根据以下转移状态:
ut+1(b) = δb_u(ut(b),σt+1) 若 b ∈ εt+1;否则 ut(b)。 (1)
RBT奖励定义为执行的叶RM产生的奖励之和:
RτR(λt+1) = Σ_{b∈εt+1} δb_r(ut(b), σt+1)。 (2)
RBT奖励依赖于从代理i的观察-动作历史ht_i导出的标签历史λt。因此,RBT作为部分可观察奖励函数ri(ht_i)运行。
4.3 将RL策略条件化于奖励行为树
RBT τR的执行进展可用于条件化代理i的策略πi(· | oi,θi)。设C = {C1,...,Cm} ⊆ 2^B是m个不相交行为集的集合。每个行为集Cj可对应于RBT内的单个叶行为或子树。RBT条件化策略πi(· | oi,Cj,θi)对于行为集Cj ∈ C提供关于RBT当前执行进展的基于进展的上下文。为选择行为集,设φτR : (2^P)+ → C是将标签历史λ ∈ (2^P)+映射到行为集Cj ∈ C的选择函数。在时间步t,RBT执行叶行为序列εt,所选行为集根据最终执行的叶行为be ∈ εt确定,使得φτR(λt) = Ct = Cj ∈ C,其中be ∈ Cj。
4.4 设计攻击者奖励行为树
我们设计一个RBT τ2_R,考虑使用M1中新攻击者动作影响操作服务器的进展。RBT分为两个主要阶段:攻击者使用DoS动作淹没网络,然后使用StealthExploitRemoteService动作通过网络传播以影响操作服务器。RBT由网络节点数上界N和阈值k参数化,k表示必须启用DoS的最少节点数。命题集P包含图2中每个已知节点vi ∈ V2的节点级命题。随着更多节点被发现,P的大小与V2成比例增加。
图2所示的RBT由m = 4个行为集C = {C1,C2,C3,C4}组成。C1是根(序列)下的子树,跟踪是否在至少k个节点上启用了DoS。该子树鼓励攻击者选择动作淹没网络,从而分散防御者注意力。它实现为具有N个子节点的并行行为,每个子节点监控一个节点,并在该节点上执行EnableDoS时输出奖励。并行行为返回Running直到至少k个子节点返回Success,此时返回Success。根(序列)下的第二个子树包含C2、C3、C4,跟踪向攻击者目标的进展。C2使用具有三个叶行为(一个条件和两个动作)的回退-序列结构跟踪从用户子网到企业子网的传播。具体而言,代理必须首先发现企业子网中的服务器,同时在用户子网中保持特权立足点,然后执行StealthExploitRemoteService利用企业服务器。第二个动作执行直到企业服务器被利用。C3镜像此结构,但跟踪从企业子网到操作服务器的传播。C4跟踪在操作服务器上持续执行Impact动作。每个叶行为与以命题ρ为条件的RM相关联,主要奖励r1用于不同RM状态之间的转移,奖励r2用于保持在Success状态。
4.5 带行为树的对抗RL
我们设计一个对抗RL算法,使用RBT(图2)在M1中针对预训练防御者策略π1(· | o1,θ1)优化RBT条件化攻击者策略π2(· | o2,Cj,θ2)的参数θ2。
算法1总结带行为树的对抗RL(ARLBT)。对于每个训练迭代,使用当前防御者和攻击者策略在POMG环境M中收集轨迹。在每个时间步,行为集选择函数φτR将当前标签历史映射到用于条件化攻击者策略的行为集。防御者和攻击者动作在M中联合执行,之后更新状态-动作和标签历史并计算奖励。防御者奖励从完全可观察奖励函数r1(ht_s)获得,而攻击者奖励使用RBT奖励函数RτR(λt)计算。所得转移存储在两个代理的重放缓冲区中。轨迹收集后,使用近端策略优化(PPO)[19]更新代理i。
攻击者参数θ2首先在M1中通过将代理i设为攻击者进行优化。随后,基线防御者参数θ1可以通过将代理i设为防御者,在M1中针对学习到的攻击者策略进行优化。在防御者训练期间,BLine和Meander攻击者策略可以额外与RBT条件化攻击者策略一起采样,以保持对先前观察到的攻击者行为的鲁棒性。
算法1:带行为树的对抗强化学习(ARLBT)
输入:防御者参数θ1,攻击者参数θ2,POMG M,攻击者RBT τR,标记函数ℓ2,代理i,训练迭代I,回合E,时间步T
输出:更新后的θ1,θ2
1forj = 1,...,Ido
2 初始化重放缓冲区D1 ← {},D2 ← {};
3fore = 1,...,Edo
4 重置环境M;
5 观察s0,o0_1,o0_2;
6 初始化历史h0_s ← (s0),λ0 ← ();
7fort = 0,...,T−1do
8 Ct ← φτR(λt);
9 at_1 ∼ π1(· | ot_1,θ1),at_2 ∼ π2(· | ot_2,Ct,θ2);
10 在M中执行at = (at_1,at_2);
11 观察st+1,ot+1_1,ot+1_2;
12 更新历史ht+1_s ← (ht_s,at,st+1),λt+1 ← (λt,ℓ2(ot+1_2,at_2));
13 计算奖励rt+1_1 ← r1(ht+1_s),rt+1_2 ← RτR(λt+1);
14 将转移存储到D1,D2;
15if代理i == 防御者then
16 使用PPO和D1更新θ1;
17else if代理i == 攻击者then
18 使用PPO和D2更新θ2;
19returnθ1,θ2;
5 评估
我们评估ARLBT学习新攻击者动作的攻击者策略和适应防御者策略的效果。我们将使用ARLBT学习的攻击者策略与两个防御者策略在包含不同新攻击者动作集的四个网络场景中与三个攻击者基线进行比较。我们还评估防御者策略是否可以针对使用ARLBT学习到的攻击者进行适应。所有实验在配备AMD Ryzen Threadripper PRO 5995WX 64核处理器(128硬件线程)和500 GB内存的Ubuntu 22.04工作站上进行。
5.1 实验设置
网络场景新攻击者动作的四个消融网络场景是:Orig原始网络场景(CC2);+DoS以DoS作为添加动作的扩展网络场景;+Stealth以StealthExploitRemoteService作为添加动作的扩展网络场景;+DoS,Stealth添加两个动作。
防御者策略我们考虑CC2中两个高性能基线防御者。CardiffUni是一个在BLine和Meander上训练单独策略并在测试时使用启发式选择它们的代理[4]。他们使用这种方法训练的策略是CC2竞赛的获胜者。KEEP是来自[8]的最先进代理,使用具有全局注意力层的图神经网络来泛化到不同网络拓扑。
攻击者策略BLine和Meander是CC2中的固定策略。ARL(CC2)是使用第3.3节中CC2攻击者奖励函数通过对抗RL学习的策略。ARLBT(仅奖励)是通过不使用RBT条件化的ARLBT消融学习的策略。ARLBT(完整)是通过ARLBT学习的RBT条件化策略。
成功指标成功指标包括每个回合的攻击者成功率和累积防御者奖励。攻击者成功率是回合中Impact在操作服务器上成功执行的时间步比例。该指标提供攻击者实现目标的效率和频率的洞察。
模型架构攻击者策略使用具有图神经网络和全局注意力层的actor-critic架构。观察使用两个图卷积网络(GCN)层处理。最初为KEEP代理开发的全局注意力层交织在GCN层之间,产生表示网络状态的全局上下文向量。该全局向量与GCN层产生的节点嵌入拼接。
对于critic架构,全局上下文向量和节点嵌入输入到输出标量值估计的全连接层。对于actor架构,全局上下文向量和节点嵌入输入到输出所有节点动作logits的全连接层,假设节点数已知上界。对应于未发现节点的输出在actor和critic架构中都被掩码,将攻击者策略决策限制在来自V2中已知节点的观察。所有层为64维。
表1:不同攻击者策略在不同网络场景中针对基线防御者评估的攻击者成功率,每个1000回合。行内最佳平均攻击者成功率加粗。
| 防御者 | 场景 | BLine | Meander | ARL(CC2) | ARLBT(仅奖励) | ARLBT(完整) |
|---|---|---|---|---|---|---|
| CardiffUni | Orig | 0.03 | 0.07 | 0.72 | 0.72 | 0.72 |
| +DoS | 0 | 0.24 | 0.73 | 0.67 | 0.73 | |
| +Stealth | 0 | 0.65 | 0.66 | 0 | 0.66 | |
| +DoS,Stealth | 0.04 | 0.58 | 0.61 | 0.43 | 0.61 | |
| KEEP | Orig | 0 | 0.14 | 0.73 | 0 | 0.73 |
| +DoS | 0 | 0.15 | 0.60 | 0.43 | 0.60 | |
| +Stealth | 0 | 0 | 0 | 0 | 0 | |
| +DoS,Stealth | 0 | 0.42 | 0.71 | 0.63 | 0.71 |
训练超参数对于攻击者RBT,N = 13和k = 3,要求+DoS和+DoS,Stealth网络场景中约23%的主机和服务器启用DoS。Orig和+Stealth的k = 0。训练迭代I = 500,回合E = 25,时间步T = 100。攻击者actor和critic的学习率分别为3e−4和1e−3。
5.2 新动作的攻击者成功率
图3:在扩展网络场景中针对基线防御者评估的攻击者策略训练曲线。
我们针对不同网络场景中的基线防御者训练攻击者策略四次训练运行,并选择平均攻击者成功率最高的策略。
测试性能我们评估攻击者策略是否能最大化攻击者成功率。表1中的结果表明,在具有新动作的网络场景中,ARLBT(完整)和ARLBT(仅奖励)与固定策略BLine和Meander以及学习到的ARL(CC2)策略相比显著提高了攻击者成功率。类似地,与固定攻击者策略相比,所有学习到的攻击者策略都显著降低了防御者奖励。尽管ARL(CC2)降低了防御者奖励,但其缺乏向攻击者目标的明确进展导致攻击者成功率低于ARLBT策略。因此,基于进展的奖励函数(例如RBT)用于学习攻击者更有效地实现攻击者目标。
训练性能我们基于+DoS,Stealth网络场景中训练期间的攻击者成功率评估样本效率。图3显示,训练ARLBT(完整)平均比ARLBT(仅奖励)提高样本效率。平均而言,最终攻击者成功率对KEEP提高14.5%,对CardiffUni相当。因此,将攻击者策略条件化于RBT可以比仅将RBT用作奖励函数提高样本效率。
5.3 使防御者适应学习到的攻击者
我们评估KEEP是否可以通过在训练期间从ARLBT(完整)、BLine和Meander攻击者策略采样,跨网络场景使用ARLBT优化。CardiffUni被排除,因为其基于启发式的策略选择机制在没有重大修改的情况下与ARLBT不兼容。表2中的结果表明,KEEP可以适应具有新动作的网络场景,显著提高防御者奖励并将针对ARLBT(完整)的攻击者成功率降低到接近零。此外,对BLine和Meander仅观察到平均防御者奖励的边际下降,表明适应后的防御者策略在适应学习到的攻击者的同时保持对原始攻击者策略的鲁棒性。
表2:基线防御者和适应后KEEP防御者策略在不同网络场景中针对攻击者策略的防御者奖励(攻击者成功率),每个1000回合。
| 场景 | 基线 ARLBT(完整) | 基线 BLine | 基线 Meander | 适应后 ARLBT(完整) | 适应后 BLine | 适应后 Meander |
|---|---|---|---|---|---|---|
| Orig | −42.1 (0) | −14.9 (0) | −16.8 (0) | −35.9 (0) | −21.3 (0) | −17.8 (0) |
| +DoS | −392.4 (0.43) | −14.9 (0) | −16.8 (0) | −21.1 (0) | −19.1 (0) | −21.5 (0) |
| +Stealth | −757.5 (0.71) | −14.9 (0) | −16.8 (0) | −55.2 (0.08) | −24.9 (0) | −21.7 (0) |
| +DoS,Stealth | −894.1 (0.63) | −14.9 (0) | −16.8 (0) | −39.7 (0) | −21.2 (0) | −18.8 (0) |
6 结论
在本工作中,我们研究使网络防御代理适应由扩展网络场景中新攻击者动作表示的演变攻击者能力。我们引入了带行为树的对抗强化学习(ARLBT),它使用奖励行为树(RBT)定义基于进展的奖励函数并将攻击者策略条件化于攻击进展。结果表明,ARLBT可以提高样本效率,并学习到比使用CAGE挑战场景2奖励函数训练的攻击者策略取得更大成功的攻击者策略。我们进一步证明防御者策略可以针对学习到的攻击者进行适应,提高防御者奖励并降低攻击者成功率,同时保持对原始攻击者策略的鲁棒性。ARLBT的一个限制是依赖手动设计的RBT,这需要领域专业知识来定义结构化攻击进展,尽管行为树的模块化使其扩展和修改成为可能。未来工作包括自动化网络防御的RBT生成,并将ARLBT扩展到具有演变攻击者能力的持续学习设置。