基于Actor-Critic框架的渗透测试路径技术研究

2022-10-30 03:03陆燕杨秋芬
科技资讯 2022年21期
关键词:分层算法测试

陆燕 杨秋芬

(湖南开放大学 湖南长沙 410004)

渗透测试是一种主要依靠人工操作的网络安全测试和评估方法,自动渗透测试可以通过对目标网络和主机的自动分析来检测目标网络和主机的潜在漏洞,并调用攻击负载来检查漏洞,消除隐患,提高系统安全性。

分层强化训练是一种将复杂的强化训练问题分解为一些易于求解的子问题,并通过相应地求解这些子问题最终解决初始强化学问题的方法。这项工作将分层强化学习与透明度测试相结合,将透明度测试过程建模为半弧的决策模型,训练代理在模拟网络环境中发现透明度测试的路径,并提出了一种基于Actor-Critic 框架改进的自动分层记忆AHM-DQN 算法(Automatic Hierarchical Memory Deep Q Networks,AHM-DQN)。采用AHM-DQN 算法自动寻找渗透测试路径,解决了渗透测试主要依靠人工进行的问题,节省了时间和人力的成本,具有一定的研究和实际意义。

1 分层强化学习和渗透测试国内外研究现状

1.1 分层强化学习的国内外研究现状分析

分层强化训练算法是强化训练的一个重要分支,在强化训练面临复杂任务和多维灾难时非常有效。然而,如果一个Agent 的范围很复杂,它就无法取得好的效果,这就是为什么强化训练的发展再次遇到瓶颈的原因。国内外许多研究人员提出了多种层次强化学习算法,主要从两个方面进行描述:第一,层次强化学习的经典算法主要包括基于选项Option 的分层强化学习、基于MAXQ 值函数分解的分层强分化学习;第二,最新的分层强化学习算法主要包括无监督层方法、子策略分层方法、自动分层方法和多层结构分层方法。

1.1.1 经典分层强化学习算法

SUTTON R S 等人[1]提出,SMDP 原则上是一种固定选项MDP。选项是时间序列的一个有意义的决策过程,也可以理解为在一定时间段内发生的行动。BACON P L 等人[2]将此选项与Actor-Critic 相结合,并提出了Option-Critic 框架;PARR R 等人[3]提出了一种分层MDP策略,称为HAMs分层抽象机,它通过限制应用的策略类别来简化复杂的MDP;DIETTERICH T G[4]提出了一种新的分层强化学习方法,该方法将目标MDP 分解为更小的MDP 值函数组合。虽然这3 种方法相对独立,但它们是相同的观点,为SMDP提供了理论基础。经典分层强化学习算法汇总如表1所示。

表1 经典分层强化学习算法汇总

1.1.2 最新分层强化学习算法

ANDREAS J 等人[5]提出了基于策略草图的多任务深度强化框架的建立,并建立了将每个子任务与模块化子策略相结合的模型。子策略培训采用AC方法,通过约束子策略的参数,最大限度地发挥整体任务特定策略的优势;RAFATI J 等人[6]提出了一种新的无模型子目标检测的分层增强方法,使用额外的无监督学习来创建符合Agent 最近轨迹的适当子目标。Levy 提出了一个三级递阶强化学习框架,即层次角色批评HAC。在这个层次结构框架中,在常见的多层层次上克服了Agent的稳定性问题,同时它也是第一个成功学习三层层次结构与任务的连续状态和操作空间并行的框架;OpenAI 实验室的Frans 提出了端到端算法MLSH,该算法实现了自动分层结构,无需太多手动配置即可与环境通信,并且能够快速学习未知任务的子策略。最新的分层强化算法如表2所示。

表2 最新分层强化学习算法汇总

表3 算法参数设置

在总结了经典和最新的分层强化学习算法的优缺点后,不难发现,当不同的算法面临大规模复杂环境和低成本问题时,Agent 面临学习效率、算法稳定性和收敛速度等问题。目前,分层强化学习的主要算法通常采用两层结构,一层为顶层结构,另一层为底层结构。例如:KULKARNI T D等人[7]提出了一种h-DQN算法。

1.2 国内外自动渗透测试的现状分析

渗透测试通过对目标网络环境的智能分析,将找到攻击路径和测试手段,渗透计划执行目标网络漏洞测试。目前,自动突破测试路径检测的研究主要集中在以下两个方面。

1.2.1 层强化学习是自动化渗透测试路径检测的主要研究领域

王海红等人[8]总结了当前自动化渗透测试攻击路径检测的研究现状,提出了一种基于网络信息增益的攻击路径规划算法,该算法将渗透测试形式化为马尔可夫决策过程,利用网络信息进行奖励,并指导Agent选择最佳响应动作。LI T 等人[9]提出了一种基于QLearning 的最优攻击路径生成方法,该方法受Agent 需要事先获取网络拓扑的限制。为了适用于大规模的网络场景,将分层强化学习应用到智能体的训练中,目标和措施的选择可以分层,以提高训练的有效性。基于强化学习的方法是基于马尔可夫决策模型的。这项研究只在简单网络场景的实验中得到了验证,算法的速度和可扩展性还有很长的路要走。

1.2.2 处理稀疏值奖励问题的处理可以促进自动化渗透测试路径发现的实际应用与落地

在自动化渗透测试路径发现任务中,稀疏奖励问题是分层强化学习的核心问题,解决稀疏奖励问题有利于提升样本使用效率和优化策略水平。杨惟轶等人[10]介绍了稀疏奖励问题的5种解决方案,包括经验回放机制、奖励设计与学习、多目标学习、探索与利用和辅助任务。杨瑞等人[11]发现,使用外部引导信息的算法平均性能优于无外部引导信息的算法,但后者对数据的依赖性较小。

2 算法设计

AHM-DQN 算法是对h-DQN 算法进行改进和优化,按照分层强化学习的思想将更复杂的任务分解,自动将大问题分解为更简单的子任务,并首先得到子任务的求解策略,得到求解总体任务的优化策略,提高Agent 训练的效率;融入记忆因子,解决奖励值稀疏问题,加快了算法收敛速度;根据Q 函数的最优值,找到渗透测试的最优路径。

其研究内容包括网络安全、渗透测试、分层强化学习等学科,具有一定的理论和应用价值,具体研究内容如下。

2.1 任务会自动分层,以提高Agent的训练效率

当前的分层强化学习中,分层划分和任务配置通常在相对复杂的环境中手动进行,这使算法面临不稳定性和附加超参数等挑战。例如:h-DQN算法采用手动预置的双层网络结构,如图1 所示。Controller 层级设置了一个可以通过预定义的外部奖励实现的小目标,Controller 层级根据预定义的内部奖励进行action。随着环境规模的扩大,Meta Controller 层级创建了无数子目标,h-DQN 算法的效率降低。换句话说,只有当所有状态都是离散的、有限的和已知时,该算法才适用。因此,在自动分层的基础上,按照半马尔科夫决策过程进行自动分层,通过Agent 与网络环境的交互,根据任务目标和措施的选择,减少劳动力,使Agent 具有更好的自主学习能力,提高Agent训练的效率。

图1 h-DQN分层结构图

2.2 融入记忆因子,增强解决稀疏奖励问题的能力

在稀疏奖励环境中,Agent很难学习获得奖励所要的动作,因此在计算奖励值时,融入遗忘系数λ和折扣因子γ模型定义为公式(1),表示初始训练状态下的记忆因子为0;如果相应的行为系数为1,在其他情况下,当在某种状态下做出的决定的影响随着时间的推移继续减弱时,记忆会以指数形式逐渐分解为零。记忆因子可以帮助Agent 有效地记忆和学习,提高Agent 的学习效率。

在h-DQN算法中,Controller层级负责接收子任务和Meta Controller 层级的当前状态,然后选择可能操作,其目的是最大化人工预设的内部奖励之和,如公式2所示,通过计算Q函数的值来连续逼近最佳值。

Meta Controller 层级负责获取当前状态,然后从Meta Controller 层级执行的任何子任务中选择子任务。其目的是最大限度地增加实际的外部奖励之和。在迭代过程中,通过计算Q 函数值,不断逼近最优值,如公式(3)。

虽然h-DQN算法是一种较好的无监督学习方法,但当奖励值稀疏时,存在着收敛速度较慢的问题,当融入记忆因子时,每次达到最优Q函数值时,存储相应的状态信息,并为存储的信息提供一个记忆因子。最后,选择奖励值较大的那条链路作为较优链路,路径代价与奖励值成反比,算法能够调整学习程度,更好地平衡当前和未来收益,使算法能够更快地收敛,进一步缩短计算时间。

2.3 根据最优Q值,发现最优渗透测试路径

在大规模网络环境下,实验比较了h-DQN算法和本项目优化的分层强化学习算法的性能,再改变网络规模,比较算法在不同网络场景下的学习效率和收敛速度。这意味着,在渗透测试时选择漏洞的过程变成了选择分层强化学习的动作。该算法不需要利用攻击图生成状态-漏洞信息,而是通过分层强化训练,使Agent 通过多次使用、探索与奖励轮次形成完整的状态-漏洞,这样训练完成后,可以根据每个状态选择相应的最佳漏洞,并根据该算法获得最佳Q值,达到推荐最佳渗透路径的效果。

3 实验

该项目采用了pytorch算法框架,由于现实世界中Agent交互和训练的成本较高,模拟了大中型网络和局域网网络环境,并控制了所提出的深度强化算法的总体效率。

3.1 实验场景

该项目实验场景如图2所示,它由核心层、聚合层和接入层三层网络结构组成,即由核心层交换机、汇聚层交换机、接入层交换机设备组成。两个核心层交换机是汇聚层交换机上行链路设备,采用快速收敛路由协议来实现故障切换和负载均衡。如果链接意外,也可以从备份链接合并该链接。每个汇聚层交换机应放置在一层的设备间,上部应设置两个核心交换机,下部应设置接入层交换机。接入层交换机应放置在各层的管理空间内,要求最上面一行是汇聚交换机,最下面一行是每个接入层交换机。

图2 渗透测试路径模拟环境拓扑图

3.2 实验设置

该文设定Agent 在训练与事实过程中不断地掌握网络拓扑信息以及网络路由转发信息。为了对该文所提出的AHM-DQN 算法进行评价,选择h-DQN算法和MLSH算法对该文提出的算法学习效率和收敛速度进行了检验,可以有效降低导航策略的学习难度。同时,设置合适的算法参数。

3.3 实验结果

Agent可以快速学习未知任务的子策略,训练主策略以自动找到合适的子策略,克服手动设置限制,并允许他们独立学习。在添加记忆因子后,算法具有一定的记忆,关于某个状态的未来决策会影响当前。每次达到Q函数的最优值时,都会记录相应的状态信息,并为记录的信息提供一个记忆因子。最后,通过训练选择一个较优链路作为更好的环节,可以进一步缩短计算时间,加快稀疏值奖励问题的处理速度。

在图3中,我们可以看到使用不同方法的Agent在复杂的在线环境中学习渗透路径策略,例如:h-DQN算法和MLSH算法的训练曲线增长缓慢,表明Agent在复杂的网络环境中难以学习和接受渗透测试路径,但AHM-DQN算法的训练曲线在整个学习和训练阶段不断增加。在训练的初始时刻,由于行为选择模型没有学习到有效的行为选择策略,Agent积累的内部和外部奖励值没有助于找到最佳渗透测试策略。随着训练的进行,AHM-DQN 算法行为选择算法逐渐学习到一种有效的采样策略,因此该算法渗透测试的路径检测成功率在最高水平上非常稳定,明显优于其他方法。以上结果表明,该文提出的AHM-DQN 算法可以有效降低复杂网络环境下入侵检测策略学习的难度,让Agent更好地学习渗透测试路径发现策略。该算法在学习效率和收敛速度方面优于其他分层强化学习算法,解决了渗透测试主要依赖于人工的问题。

图3 任务的平均成功率

4 结论

AHM-DQN算法是将分层强化学习与自动化渗透测试相结合,优化和改进了h-DQN算法,提高Agent的训练效率,加快算法的收敛速度,适应动态网络环境的变化。(1)根据半马尔科夫决策过程,通过Agent与网络环境的交互,自动放置任务目标和动作的选择,以提高算法的效率;(2)融入记忆因子,帮助Agent有效记忆和学习,解决奖励值稀疏性问题,提升算法的准确定;(3)在较大的网络环境下测试算法的效率和收敛性,并找到最优渗透测试路径。该文尚未解决复杂的真实网络测试环境的问题,并将在将来对其进行探索和改进。

猜你喜欢
分层算法测试
基于分层教学下的高中数学“让学”策略
哪种算法简便
高中语文分层教学的有效性探索
高中分层走班教学模式探究
Travellng thg World Full—time for Rree
心理测试
算法框图的补全
算法初步知识盘点
心理小测试
测试