AutoPentest-DRL-使用深度强化学习的自动渗透测试

AutoPentest-DRL是基于深度强化学习(DRL)技术的自动渗透测试框架。该框架为给定的网络确定最合适的攻击路径,并且可以用于通过渗透测试工具(例如Metasploit)在该网络上执行模拟攻击。AutoPentest-DRL由日本石川县日本高级科学技术研究院(JAIST)的网络范围组织和设计(CROND)NEC授予的主席开发。

AutoPentest-DRL的概述如下所示。该框架可以使用网络扫描工具(例如Nmap)来查找目标网络中的漏洞。否则,将使用用户输入。MulVAL攻击图生成器用于确定潜在的攻击树,然后以简化的形式将其馈送到DQN决策引擎中。可以将作为输出产生的攻击路径输入到渗透测试工具(例如Metasploit)中,以对实际目标网络进行攻击,或者将其与逻辑网络一起使用,例如用于教育目的。另外,拓扑生成算法用于生成用于训练DQN的多个网络拓扑。

接下来,我们提供有关如何设置和使用AutoPentest-DRL的简要信息。有关详细信息,请参阅我们也提供的《用户指南》。

先决条件

为了使用AutoPentest-DRL,需要一些外部工具,如下所示:

MulVAL:AutoPentest-DRL使用的攻击图生成器,以生成给定网络的可能攻击路径。有关安装说明,请参见MulVAL页面。MulVAL应该安装在repos/mulvalAutoPentest-DRL文件夹的目录 中。您还需要/etc/profile按照此处的说明配置文件 。

Nmap:AutoPentest-DRL用于确定给定实际网络中的漏洞的网络扫描程序。nmap下面给出了在Ubuntu上安装所需的命令:

sudo apt-get install nmap

Metasploit:AutoPentest-DRL使用的渗透测试工具,在实际目标网络上实际执行DQN引擎提出的攻击。要安装Metasploit,您可以使用Metasploit网站上提供的安装程序。另外,我们使用 pymetasploit3RPC API与Metasploit进行通信,并且需要Penetration_tools/pymetasploit3按照其作者的 说明将该工具安装在目录中 。

设置

AutoPentest-DRL主要是在Ubuntu 18.04 LTS操作系统上开发的;其他操作系统可能可以工作,但尚未经过测试。为了设置AutoPentest-DRL,请使用 发布 页面下载最新版本,并将源代码存档解压缩到您要使用它的主机上的所选目录(例如,主目录)中。

AutoPentest-DRL是用Python实现的,它需要多个程序包才能运行。requirements.txt发行版中包含的文件可用于通过以下命令安装必需的软件包,这些命令应从AutoPentest-DRL/ 目录中运行:

$ sudo -H pip install -r requirements.txt

最后一步是安装数据库,其中包含有关真实主机和漏洞的信息。为此,请database.tgz从发行页面下载命名的资产文件,然后将其解压缩到Database/目录中。

快速开始


使用AutoPentest-DRL的最简单方法是在逻辑攻击模式下启动它,该 模式将确定给定逻辑网络的最佳攻击路径。有关此操作模式以及其他操作模式,实际攻击模式和训练模式的更多信息,请参阅 《用户指南》。

为了在示例网络拓扑上使用逻辑攻击模式,请从终端窗口运行以下命令:

$ python3 ./AutoPentest-DRL.py logical_attack

该文件中描述了此攻击模式下使用的逻辑网络拓扑MulVal_P/logical_attack.P,其中包括有关服务器,服务器连接及其漏洞的详细信息。可以按照MulVAL文档中描述的语法修改此文件。

在逻辑攻击模式下,不进行实际攻击,仅提供最佳攻击路径作为输出。通过参考文件中MulVAL生成的攻击图的可视化,mulval_results/AttackGraph.pdf您可以详细研究攻击步骤。下图提供了此类输出的示例。

参考

有关AutoPentest-DRL的研究背景,请参阅以下文章:

Z. Hu,R. Beuran,Y. Tan,“使用深度强化学习的自动渗透测试”,IEEE欧洲安全和隐私研讨会,研讨会(EuroS&PW 2020),网络范围应用和技术研讨会(CACOE’20),热那亚,意大利,2020年9月7日,第2-10页。
有关此项目的贡献者列表,请参阅发行版中包含的文件CONTRIBUTORS。

下载AutoPentest-DRL

你可能感兴趣的:(研究,渗透测试,网络安全,安全漏洞)