掌桥专利:专业的专利平台
掌桥专利
首页

一种基于深度强化学习的智能化渗透测试方法与系统

文献发布时间:2024-04-18 19:58:30


一种基于深度强化学习的智能化渗透测试方法与系统

技术领域

本发明属于渗透测试技术领域,尤其涉及一种基于深度强化学习的智能化渗透测试方法与系统。

背景技术

强化学习是解决序贯决策问题的通用框架,以马尔科夫决策过程(MDP)模型为数学基础,可以在与环境不断交互中以试错的方式学习最优策略。

深度强化学习是深度学习与强化学习的结合,保留了深度学习对高维特征数据的感知能力和强化学习的决策能力,可以用于解决现实环境下的复杂决策问题。

当前,深度强化学习在自动驾驶、机器人控制、股票交易以及视频游戏领域均有较好的应用。

渗透测试是一种授权的主动的网络安全评估手段,区别于传统的入侵检测、防火墙技术等防御方式,渗透测试旨在从攻击者视角发现目标网络系统的潜在漏洞,可以较为全面的评估潜在威胁。

现有的智能化渗透测试平台旨在训练智能体在特定网络环境中发现最优的渗透测试路径,以AutoPentest为代表的智能化渗透测试系统结合了攻击图和深度强化学习算法,其训练过程依赖目标网络环境的先验知识,且构建攻击图过程复杂,难以在现实网络环境下应用。

DeepExploit是一款开源的基于深度强化学习的渗透测试系统,底层使用Metasploit进行工具调用,使用强化学习技术来提升渗透测试效率,但是其状态空间的定义存在缺陷,训练的模型难以应用到其他目标。

发明内容

本发明针对现有技术中的不足,提出一种基于深度强化学习的智能化渗透测试方案。

本发明第一方面提出一种基于深度强化学习的智能化渗透测试方法方法,所述方法包括:步骤S1、获取目标主机的状态向量,并将所述状态向量输入至深度强化学习决策器,所述深度强化学习决策器根据动作执行策略确定针对所述目标主机的可执行动作;步骤S2、采用与经确定的可执行动作对应的工具载荷,对所述目标主机执行所述经确定的可执行动作,以获取执行所述经确定的可执行动作后所述目标主机的反馈结果和奖励信号;步骤S3、将所述反馈结果输入至降噪自编码器TADAE以更新所述目标主机的状态向量,并将所述奖励信号输入至所述深度强化学习决策器以更新所述动作执行策略。

其中,所述可执行动作包括:第一动作,用于确定所述目标主机的开放端口信息;第二动作,用于测试所述目标主机存在的漏洞并获取所述目标主机的第一权限;以及第三动作,用于在已获取所述第一权限的情况下进一步获取所述目标主机的第二权限;其中,所述第二权限高于所述第一权限。

根据本发明第一方面的方法,所述方法还包括:步骤S0、基于ICMP协议和ARP协议对目标网络中的各个主机进行存活性探测,并以宽度优先搜索的方式从通过所述存活性探测的若干主机中选择出所述目标主机。

其中,所述步骤S0具体包括:获取所述目标网络的地址,基于ICMP协议和ARP协议向所述目标网络的地址发送存活性探测报文,并接收所述存活性探测的响应报文,以确定通过所述存活性探测的若干主机;将通过所述存活性探测的若干主机加入待测试目标主机队列,以宽度优先搜索的方式从所述待测试目标主机队列中选择一个目标IP;初始化所述目标IP对应的主机的状态向量,判断所述目标IP对应的主机已执行动作的次数是否超过阈值,若否,则将所述目标IP对应的主机作为所述目标主机。

根据本发明第一方面的方法,在所述步骤S1中:获取的所述目标主机的状态向量为一维向量,包括所述目标主机的访问控制状态、开放端口列表、运行服务列表、操作系统信息、页面指纹信息和历史执行动作;所述动作执行策略采用离散动作空间下的强化学习算法,由所述深度强化学习决策器的神经网络确定动作空间中每个可执行动作相对于所述目标主机的状态向量的选择概率,将具有最大选择概率的可执行动作作为所述目标主机的可执行动作。

根据本发明第一方面的方法,在所述步骤S2中,从Metasploit数据库选择与所述经确定的可执行动作对应的所述工具载荷,对所述目标主机执行所述经确定的可执行动作;具体包括:在执行所述第一动作时,利用Nmap和whatweb自动探测所述目标主机的开放端口、运行服务、操作系统和页面指纹;其中,执行所述第一动作后获取的反馈信息为:所述目标主机的开放端口信息,以及基于所述目标主机的开放端口信息进一步确定的所述目标主机的潜在漏洞;在执行所述第二动作时,从Metasploit数据库中搜索与所述第二动作对应的漏洞测试脚本并执行所述漏洞测试脚本;其中,执行所述第二动作后获取的反馈信息为:从漏洞测试结果中确定的所述目标主机存在的漏洞,以及确定存在漏洞后进一步获取的所述目标主机的第一权限;在执行所述第三动作时,从Metasploit数据库中搜索与所述第三动作对应的渗透测试脚本并执行所述渗透测试脚本;其中,执行所述第三动作后获取的反馈信息为:从渗透测试结果中确定的所述目标主机存在的渗透情况,以及进一步获取的所述目标主机的第二权限。

根据本发明第一方面的方法,在所述步骤S2中,所述奖励信号的计算方式为:对于执行所述第一动作的情况,所述奖励信号R1=-Cost(a),Cost(a)表示执行所述第一动作的代价;对于执行所述第二动作的情况,所述奖励信号R2=Value(h1)-Cost(b),Value(h1)表示获取所述第一权限后的正向价值,Cost(b)表示执行所述第二动作的代价;对于执行所述第三动作的情况,所述奖励信号R3=Value(h2)-Cost(c),Value(h2)表示获取所述第二权限后的正向价值,Cost(c)表示执行所述第三动作的代价;将奖励向量

根据本发明第一方面的方法,在所述步骤S3中,所述降噪自编码器TADAE包括编码器、池化层和解码器,所述反馈结果经所述降噪自编码器TADAE后得到固定长度的稠密向量,以更新所述目标主机的状态向量;其中,训练所述降噪自编码器TADAE过程中的目标函数为:

其中,D为训练语句的数据集,x为经过语句分词后的一个分词集合,

根据本发明第一方面的方法,在所述步骤S3中,采用近端策略优化算法PPO训练所述深度强化学习决策器,在更新所述动作执行策略时:所述近端策略优化算法PPO从所述经验回放池中采样所述奖励向量

所述近端策略优化算法PPO的actor网络的损失函数为:

其中,优势函数

所述近端策略优化算法PPO的critic网络的损失函数为:

其中,

本发明第二方面提出一种基于深度强化学习的智能化渗透测试系统。所述系统包括:第一处理单元,被配置为:获取目标主机的状态向量,并将所述状态向量输入至深度强化学习决策器,所述深度强化学习决策器根据动作执行策略确定针对所述目标主机的可执行动作;第二处理单元,被配置为:采用与经确定的可执行动作对应的工具载荷,对所述目标主机执行所述经确定的可执行动作,以获取执行所述经确定的可执行动作后所述目标主机的反馈结果和奖励信号;第三处理单元,被配置为:将所述反馈结果输入至降噪自编码器TADAE以更新所述目标主机的状态向量,并将所述奖励信号输入至所述深度强化学习决策器以更新所述动作执行策略。

其中,所述可执行动作包括:第一动作,用于确定所述目标主机的开放端口信息;第二动作,用于测试所述目标主机存在的漏洞并获取所述目标主机的第一权限;以及第三动作,用于在已获取所述第一权限的情况下进一步获取所述目标主机的第二权限;其中,所述第二权限高于所述第一权限。

根据本发明第二方面的系统,所述系统还包括预处理单元,被配置为:基于ICMP协议和ARP协议对目标网络中的各个主机进行存活性探测,并以宽度优先搜索的方式从通过所述存活性探测的若干主机中选择出所述目标主机。

其中,所述预处理单元具体被配置为:获取所述目标网络的地址,基于ICMP协议和ARP协议向所述目标网络的地址发送存活性探测报文,并接收所述存活性探测的响应报文,以确定通过所述存活性探测的若干主机;将通过所述存活性探测的若干主机加入待测试目标主机队列,以宽度优先搜索的方式从所述待测试目标主机队列中选择一个目标IP;初始化所述目标IP对应的主机的状态向量,判断所述目标IP对应的主机已执行动作的次数是否超过阈值,若否,则将所述目标IP对应的主机作为所述目标主机。

根据本发明第二方面的系统,获取的所述目标主机的状态向量为一维向量,包括所述目标主机的访问控制状态、开放端口列表、运行服务列表、操作系统信息、页面指纹信息和历史执行动作;所述动作执行策略采用离散动作空间下的强化学习算法,由所述深度强化学习决策器的神经网络确定动作空间中每个可执行动作相对于所述目标主机的状态向量的选择概率,将具有最大选择概率的可执行动作作为所述目标主机的可执行动作。

根据本发明第二方面的系统,所述第二处理单元具体被配置为:从Metasploit数据库选择与所述经确定的可执行动作对应的所述工具载荷,对所述目标主机执行所述经确定的可执行动作;具体包括:在执行所述第一动作时,利用Nmap和whatweb自动探测所述目标主机的开放端口、运行服务、操作系统和页面指纹;其中,执行所述第一动作后获取的反馈信息为:所述目标主机的开放端口信息,以及基于所述目标主机的开放端口信息进一步确定的所述目标主机的潜在漏洞;在执行所述第二动作时,从Metasploit数据库中搜索与所述第二动作对应的漏洞测试脚本并执行所述漏洞测试脚本;其中,执行所述第二动作后获取的反馈信息为:从漏洞测试结果中确定的所述目标主机存在的漏洞,以及确定存在漏洞后进一步获取的所述目标主机的第一权限;在执行所述第三动作时,从Metasploit数据库中搜索与所述第三动作对应的渗透测试脚本并执行所述渗透测试脚本;其中,执行所述第三动作后获取的反馈信息为:从渗透测试结果中确定的所述目标主机存在的渗透情况,以及进一步获取的所述目标主机的第二权限。

根据本发明第二方面的系统,所述第二处理单元具体被配置为,所述奖励信号的计算方式为:对于执行所述第一动作的情况,所述奖励信号R1=-Cost(a),Cost(a)表示执行所述第一动作的代价;对于执行所述第二动作的情况,所述奖励信号R2=Value(h1)-Cost(b),Value(h1)表示获取所述第一权限后的正向价值,Cost(b)表示执行所述第二动作的代价;对于执行所述第三动作的情况,所述奖励信号R3=Value(h2)-Cost(c),Value(h2)表示获取所述第二权限后的正向价值,Cost(c)表示执行所述第三动作的代价;将奖励向量

根据本发明第二方面的系统,所述第三处理单元具体被配置为,所述降噪自编码器TADAE包括编码器、池化层和解码器,所述反馈结果经所述降噪自编码器TADAE后得到固定长度的稠密向量,以更新所述目标主机的状态向量;其中,训练所述降噪自编码器TADAE过程中的目标函数为:

其中,D为训练语句的数据集,x为经过语句分词后的一个分词集合,

根据本发明第二方面的系统,所述第二处理单元具体被配置为,采用近端策略优化算法PPO训练所述深度强化学习决策器,在更新所述动作执行策略时:所述近端策略优化算法PPO从所述经验回放池中采样所述奖励向量

所述近端策略优化算法PPO的actor网络的损失函数为:

其中,优势函数

所述近端策略优化算法PPO的critic网络的损失函数为:

其中,

本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面所述的一种基于深度强化学习的智能化渗透测试方法中的步骤。

本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面所述的一种基于深度强化学习的智能化渗透测试方法中的步骤。

综上,本发明提出的技术方案基于文本嵌入技术进行状态空间表征,基于深度强化学习进行渗透测试动作决策,基于Metasploit数据库进行载荷自动调用,可在多样化的靶机环境下实现学习训练,智能体可在迭代训练过程中实现决策能力进化。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例的基于深度强化学习的智能化渗透测试的架构组成图。

图2为根据本发明实施例的基于深度强化学习的智能化渗透测试的方法流程图。

图3为根据本发明实施例的降噪自编码器TADAE的结构图。

图4为根据本发明实施例的一种电子设备的结构图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明第一方面提出一种基于深度强化学习的智能化渗透测试方法方法。所述方法包括:步骤S1、获取目标主机的状态向量,并将所述状态向量输入至深度强化学习决策器,所述深度强化学习决策器根据动作执行策略确定针对所述目标主机的可执行动作;步骤S2、采用与经确定的可执行动作对应的工具载荷,对所述目标主机执行所述经确定的可执行动作,以获取执行所述经确定的可执行动作后所述目标主机的反馈结果和奖励信号;步骤S3、将所述反馈结果输入至降噪自编码器TADAE以更新所述目标主机的状态向量,并将所述奖励信号输入至所述深度强化学习决策器以更新所述动作执行策略。

其中,所述可执行动作包括:第一动作,用于确定所述目标主机的开放端口信息;第二动作,用于测试所述目标主机存在的漏洞并获取所述目标主机的第一权限;以及第三动作,用于在已获取所述第一权限的情况下进一步获取所述目标主机的第二权限;其中,所述第二权限高于所述第一权限。

根据本发明第一方面的方法,所述方法还包括:步骤S0、基于ICMP协议和ARP协议对目标网络中的各个主机进行存活性探测,并以宽度优先搜索的方式从通过所述存活性探测的若干主机中选择出所述目标主机。

其中,所述步骤S0具体包括:获取所述目标网络的地址,基于ICMP协议和ARP协议向所述目标网络的地址发送存活性探测报文,并接收所述存活性探测的响应报文,以确定通过所述存活性探测的若干主机;将通过所述存活性探测的若干主机加入待测试目标主机队列,以宽度优先搜索的方式从所述待测试目标主机队列中选择一个目标IP;初始化所述目标IP对应的主机的状态向量,判断所述目标IP对应的主机已执行动作的次数是否超过阈值,若否,则将所述目标IP对应的主机作为所述目标主机。

根据本发明第一方面的方法,在所述步骤S1中:获取的所述目标主机的状态向量为一维向量,包括所述目标主机的访问控制状态、开放端口列表、运行服务列表、操作系统信息、页面指纹信息和历史执行动作;所述动作执行策略采用离散动作空间下的强化学习算法,由所述深度强化学习决策器的神经网络确定动作空间中每个可执行动作相对于所述目标主机的状态向量的选择概率,将具有最大选择概率的可执行动作作为所述目标主机的可执行动作。

根据本发明第一方面的方法,在所述步骤S2中,从Metasploit数据库选择与所述经确定的可执行动作对应的所述工具载荷,对所述目标主机执行所述经确定的可执行动作;具体包括:在执行所述第一动作时,利用Nmap和whatweb自动探测所述目标主机的开放端口、运行服务、操作系统和页面指纹;其中,执行所述第一动作后获取的反馈信息为:所述目标主机的开放端口信息,以及基于所述目标主机的开放端口信息进一步确定的所述目标主机的潜在漏洞;在执行所述第二动作时,从Metasploit数据库中搜索与所述第二动作对应的漏洞测试脚本并执行所述漏洞测试脚本;其中,执行所述第二动作后获取的反馈信息为:从漏洞测试结果中确定的所述目标主机存在的漏洞,以及确定存在漏洞后进一步获取的所述目标主机的第一权限;在执行所述第三动作时,从Metasploit数据库中搜索与所述第三动作对应的渗透测试脚本并执行所述渗透测试脚本;其中,执行所述第三动作后获取的反馈信息为:从渗透测试结果中确定的所述目标主机存在的渗透情况,以及进一步获取的所述目标主机的第二权限。

根据本发明第一方面的方法,在所述步骤S2中,所述奖励信号的计算方式为:对于执行所述第一动作的情况,所述奖励信号R1=-Cost(a),Cost(a)表示执行所述第一动作的代价;对于执行所述第二动作的情况,所述奖励信号R2=Value(h1)-Cost(b),Value(h1)表示获取所述第一权限后的正向价值,Cost(b)表示执行所述第二动作的代价;对于执行所述第三动作的情况,所述奖励信号R3=Value(h2)-Cost(c),Value(h2)表示获取所述第二权限后的正向价值,Cost(c)表示执行所述第三动作的代价;将奖励向量

根据本发明第一方面的方法,在所述步骤S3中,所述降噪自编码器TADAE包括编码器、池化层和解码器,所述反馈结果经所述降噪自编码器TADAE后得到固定长度的稠密向量,以更新所述目标主机的状态向量;其中,训练所述降噪自编码器TADAE过程中的目标函数为:

其中,D为训练语句的数据集,x为经过语句分词后的一个分词集合,

根据本发明第一方面的方法,在所述步骤S3中,采用近端策略优化算法PPO训练所述深度强化学习决策器,在更新所述动作执行策略时:所述近端策略优化算法PPO从所述经验回放池中采样所述奖励向量

所述近端策略优化算法PPO的actor网络的损失函数为:

其中,优势函数

所述近端策略优化算法PPO的critic网络的损失函数为:

其中,

在一些实施例中,如图1所示,包括目标选择器、状态信息编码器、深度强化学习决策器以及动作库。其中,目标选择器根据目标网络环境的探测结果选择待测试目标。决策器接收目标环境的状态向量,从动作库中选择并输出对目标的可执行动作,输出的动作在待测试目标上执行,获得动作执行的反馈结果和奖励信号,反馈结果用于输入编码器更新状态向量,奖励信号输入决策器进行策略优化。

在一些实施例中,如图2所示,运行流程包括:步骤101:目标网络存活性探测,初始化待测试目标队列;步骤102:判断队列是否为空;步骤103:目标选择器选择目标主机,初始化状态空间;步骤104:判断是否达到最大交互次数;步骤105:基于深度强化学习算法决策下一步动作;步骤106:基于Metasploit数据库选择工具载荷执行动作;步骤107:获得动作执行结果反馈和奖励信号;步骤108:更新目标主机状态空间;步骤109:判断是否获取目标主机权限;步骤110:深度强化学习决策器进行策略更新;步骤111:内网节点发现与代理搭建,更新待测试目标队列。

步骤101:目标网络存活性探测,初始化待测试目标队列。

在一些实施例中,系统在初始状态,初始化待测试目标主机队列,根据输入的目标网络地址,基于ICMP协议以及ARP协议进行网络存活主机探测,将探测到的存活主机IP地址存入待测试目标队列。

步骤102:判断队列是否为空。

在一些实施例中,判断当前的待测试目标队列是否为空,若为空则系统结束运行,否则进入步骤103。

步骤103:目标选择器选择目标主机,初始化状态空间。

在一些实施例中,目标选择器根据当前待测试目标队列,基于宽度优先搜索的方式,选择一个目标IP,同时在队列中删除该目标。初始化该目标的状态空间,状态空间包括目标主机的访问控制状态、开放的端口列表、运行的服务列表、操作系统信息、Web指纹信息、对该目标执行过的动作列表等。状态空间初始化为数值为0且固定长度的一维向量,对该目标执行过的动作列表初始化为空。

步骤104:判断是否达到最大交互次数。

在一些实施例中,根据设定的阈值,判断当前对该目标执行的动作次数是否达到最大次数。若已达到最大次数,则进入步骤102,否则进入步骤105。

步骤105:基于深度强化学习算法决策下一步动作。

在一些实施例中,目标主机的状态空间经编码后的状态向量输入深度强化学习决策器输出下一步的可执行动作。系统采用离散动作空间下的强化学习算法进行决策,神经网络输出动作空间中各动作对应的选择概率,选择概率最大的动作输出。

步骤106:基于Metasploit数据库选择工具载荷执行动作。

在一些实施例中,该步骤根据决策器输出的可执行动作选择相应的工具载荷执行,系统的动作空间包括信息扫描类、漏洞测试类以及权限维持类。针对信息扫描类,系统调用Nmap和whatweb等工具自动探测目标主机的开放端口、运行服务、操作系统和web指纹。针对漏洞测试和权限维持类,系统根据决策器决策的结果,从Metasploit数据库中搜索对应的漏洞测试脚本或后渗透测试脚本并执行,以获取目标主机的控制权限为目标。系统构建了载荷参数配置数据库,调用msfrpcd接口采用流程编排的方式自动化的设置参数和执行。

步骤107:获得动作执行结果反馈和奖励信号。

在一些实施例中,动作执行结束会获得反馈结果,反馈结果以文本的形式存在,例如执行端口扫描动作会获得目标开放的端口信息,执行漏洞测试动作会获得是否测试成功以及获得的控制会话序号等。同时,系统根据执行结果计算奖励信号,奖励信号是对当前动作选择结果好坏程度的衡量,是目标主机价值和采取动作代价之间的平衡,采用公式

步骤108:更新目标主机状态空间。

在一些实施例中,系统根据动作执行结果的反馈信息更新当前的状态向量。系统采用一种基于Transformer结构的降噪自编码器TSDAE训练状态空间的嵌入(embedding)模型,将动作反馈的原始文本信息输入TSDAE输出固定长度的稠密向量,该方法可以在向量空间中反映文本的语义信息,使得强化学习决策器可以根据相似的状态信息输出相似的动作,提高决策模型对不同目标的泛化能力。系统收集了互联网开源的网络安全语料库,数据来自NVD数据库、Metasploit数据库以及各类安全论坛,以句子的形式输入TSDAE,采用无监督学习的方式训练嵌入模型。TSDAE结构如图3所示,接受添加噪音的文本并将其编码为固定长度的句向量,通过解码器将句向量重建为原始输入,其训练过程中的目标函数定义为:

其中,D为训练语句的数据集,x为经过语句分词后的一个分词集合,

步骤109:判断是否获取目标主机权限。

在一些实施例中,根据动作的执行结果判断是否获取目标主机权限,若已获得权限,则进入步骤111,否则进入步骤110。

步骤110:深度强化学习决策器进行策略更新。

在一些实施例中,系统采用近端策略优化算法(PPO)训练决策器,PPO是基于演员评论家框架(actor-critic)的深度强化学习算法,actor网络根据当前策略输出一个动作,critic网络根据当前状态和输出的动作评价策略的好坏。在策略更新阶段,算法从经验回放池中采样一批次的

其中,

其中,

步骤111:内网节点发现与代理搭建,更新待测试目标队列。

在一些实施例中,在获取目标主机权限后,系统在受控主机上执行内网节点发现,采用arp扫描以及本地信息读取的方式扫描发现与该主机相连接的内网存活节点,并搭建代理链路进行流量转发,同时将新发现的内网存活节点加入待测试目标队列。

综上,上述方法训练了一个基于TSDAE的文本嵌入模型,可将环境状态信息以文本形式直接编码为状态向量输入深度强化学习决策器,本申请通过目标选择器选择测试目标,基于PPO算法的深度强化学习决策器针对选定的测试目标进行学习训练,直至采取特定的动作组合获取目标主机权限。本申请训练的嵌入模型可以表征状态信息之间的语义信息,使得决策器可以根据相似的输入决策相似的动作,可实现多场景下的策略迁移以及在真实网络场景下的训练,有效解决了模拟环境下学习和训练的模型难以应用到真实网络场景的问题。

本发明第二方面提出一种基于深度强化学习的智能化渗透测试系统。所述系统包括:第一处理单元,被配置为:获取目标主机的状态向量,并将所述状态向量输入至深度强化学习决策器,所述深度强化学习决策器根据动作执行策略确定针对所述目标主机的可执行动作;第二处理单元,被配置为:采用与经确定的可执行动作对应的工具载荷,对所述目标主机执行所述经确定的可执行动作,以获取执行所述经确定的可执行动作后所述目标主机的反馈结果和奖励信号;第三处理单元,被配置为:将所述反馈结果输入至降噪自编码器TADAE以更新所述目标主机的状态向量,并将所述奖励信号输入至所述深度强化学习决策器以更新所述动作执行策略。

其中,所述可执行动作包括:第一动作,用于确定所述目标主机的开放端口信息;第二动作,用于测试所述目标主机存在的漏洞并获取所述目标主机的第一权限;以及第三动作,用于在已获取所述第一权限的情况下进一步获取所述目标主机的第二权限;其中,所述第二权限高于所述第一权限。

根据本发明第二方面的系统,所述系统还包括预处理单元,被配置为:基于ICMP协议和ARP协议对目标网络中的各个主机进行存活性探测,并以宽度优先搜索的方式从通过所述存活性探测的若干主机中选择出所述目标主机。

其中,所述预处理单元具体被配置为:获取所述目标网络的地址,基于ICMP协议和ARP协议向所述目标网络的地址发送存活性探测报文,并接收所述存活性探测的响应报文,以确定通过所述存活性探测的若干主机;将通过所述存活性探测的若干主机加入待测试目标主机队列,以宽度优先搜索的方式从所述待测试目标主机队列中选择一个目标IP;初始化所述目标IP对应的主机的状态向量,判断所述目标IP对应的主机已执行动作的次数是否超过阈值,若否,则将所述目标IP对应的主机作为所述目标主机。

根据本发明第二方面的系统,获取的所述目标主机的状态向量为一维向量,包括所述目标主机的访问控制状态、开放端口列表、运行服务列表、操作系统信息、页面指纹信息和历史执行动作;所述动作执行策略采用离散动作空间下的强化学习算法,由所述深度强化学习决策器的神经网络确定动作空间中每个可执行动作相对于所述目标主机的状态向量的选择概率,将具有最大选择概率的可执行动作作为所述目标主机的可执行动作。

根据本发明第二方面的系统,所述第二处理单元具体被配置为:从Metasploit数据库选择与所述经确定的可执行动作对应的所述工具载荷,对所述目标主机执行所述经确定的可执行动作;具体包括:在执行所述第一动作时,利用Nmap和whatweb自动探测所述目标主机的开放端口、运行服务、操作系统和页面指纹;其中,执行所述第一动作后获取的反馈信息为:所述目标主机的开放端口信息,以及基于所述目标主机的开放端口信息进一步确定的所述目标主机的潜在漏洞;在执行所述第二动作时,从Metasploit数据库中搜索与所述第二动作对应的漏洞测试脚本并执行所述漏洞测试脚本;其中,执行所述第二动作后获取的反馈信息为:从漏洞测试结果中确定的所述目标主机存在的漏洞,以及确定存在漏洞后进一步获取的所述目标主机的第一权限;在执行所述第三动作时,从Metasploit数据库中搜索与所述第三动作对应的渗透测试脚本并执行所述渗透测试脚本;其中,执行所述第三动作后获取的反馈信息为:从渗透测试结果中确定的所述目标主机存在的渗透情况,以及进一步获取的所述目标主机的第二权限。

根据本发明第二方面的系统,所述第二处理单元具体被配置为,所述奖励信号的计算方式为:对于执行所述第一动作的情况,所述奖励信号R1=-Cost(a),Cost(a)表示执行所述第一动作的代价;对于执行所述第二动作的情况,所述奖励信号R2=Value(h1)-Cost(b),Value(h1)表示获取所述第一权限后的正向价值,Cost(b)表示执行所述第二动作的代价;对于执行所述第三动作的情况,所述奖励信号R3=Value(h2)-Cost(c),Value(h2)表示获取所述第二权限后的正向价值,Cost(c)表示执行所述第三动作的代价;将奖励向量

根据本发明第二方面的系统,所述第三处理单元具体被配置为,所述降噪自编码器TADAE包括编码器、池化层和解码器,所述反馈结果经所述降噪自编码器TADAE后得到固定长度的稠密向量,以更新所述目标主机的状态向量;其中,训练所述降噪自编码器TADAE过程中的目标函数为:

其中,D为训练语句的数据集,x为经过语句分词后的一个分词集合,

根据本发明第二方面的系统,所述第二处理单元具体被配置为,采用近端策略优化算法PPO训练所述深度强化学习决策器,在更新所述动作执行策略时:所述近端策略优化算法PPO从所述经验回放池中采样所述奖励向量

所述近端策略优化算法PPO的actor网络的损失函数为:

其中,优势函数

所述近端策略优化算法PPO的critic网络的损失函数为:

其中,

本发明第三方面公开了一种电子设备。所述电子设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时,实现本公开第一方面所述的一种基于深度强化学习的智能化渗透测试方法中的步骤。

图4为根据本发明实施例的一种电子设备的结构图,如图4所示,电子设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、近场通信(NFC)或其他技术实现。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图4中示出的结构,仅仅是与本公开的技术方案相关的部分的结构图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

本发明第四方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面所述的一种基于深度强化学习的智能化渗透测试方法中的步骤。

综上,本发明提出的技术方案基于文本嵌入技术进行状态空间表征,基于深度强化学习进行渗透测试动作决策,基于Metasploit数据库进行载荷自动调用,可在多样化的靶机环境下实现学习训练,智能体可在迭代训练过程中实现决策能力进化。

请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 一种基于深度强化学习的足式机器人运动控制方法及系统
  • 一种基于深度强化学习的自动化渗透测试方法
  • 一种基于深度强化学习的机器学习模型黑盒公平性测试方法和系统
技术分类

06120116504334