NIG-AP:自动化渗透测试的新方法

NIG-AP:自动化渗透测试的新方法

一、摘要

本文提出了一种NIG-AP信息增益算法用来自动化发现攻击路径。算法将渗透测试形式化为马尔可夫决策过程,并使用网络信息获得奖励,这将会指导代理选择最佳动作,从入侵者的角度发现隐藏的攻击路径。实验结果表明算法的训练时间和有效性都有所改善。

在以往的研究中,如果想要对渗透测试实现自动化的路径规划,先验知识是必要的,基于PDDL的方法需要完整的网络结构和配置信息,基于POMDP的方式需要部分的信息。实现真实环境的渗透测试,有两个挑战:在特定场景,如何驱动代理自动和智能地选择最优攻击动作。为了应对这些挑战,我们提出了一个基于网络信息增益的NIG-AP算法。

在NIG-AP算法中,我们不需要网络结构、软件配置信息和领域知识的先验知识来发现攻击路径,算法可以智能地检索基本的渗透信息。

二、背景知识介绍

渗透测试的基本流程:

  1. 收集信息——端口、服务、操作系统版本、和漏洞信息,通过扫描工具,如:Nmap和X-Scan
  2. 漏洞利用——基于获得的信息,选择相应的攻击动作
  3. 权限提升——特权提升可以放大行动空间,增大攻击者的后续选择
  4. 痕迹消除——删除日志文件等

强化学习框架图:

image-20220824174110703

图a为强化学习,图b为深度强化学习

三、算法实现

渗透测试是一项系统工程,入侵者采取行动最大化目标网络的信息熵通过两个部分:主机信息和网络信息熵。

主机信息熵:(1)操作系统\(P_{os}\) (2)应用程序\(P_{app}\) (3)端口信息\(P_{port}\) (4)保护机制信息\(P_{pro}\) ,因此主机的详细信息可以通过向量\([P_{os},P_{app},P_{port},P_{pro}]\)表示。除OS外的另外三个向量可以存在多个元素,因为应用、端口、保护机制是可以有多个的。

对于一个主机的信息熵向量来说,一般可以代表受害主机的暴露状态,计算方式如下:

image-20220825093043874

从公式我们可以看出,信息熵高在一开始入侵者对目标主机是一无所知的,信息熵下降当攻击者知道原来越多受害主机通过扫描和信息利用行为,因为进行操作后的信息熵不大于进行操作前的。

image-20220825093712779

\(H(P_{before})\)是网络信息熵在行动之前,\(H(P_{after})\)是网络信息熵在行动之后。分为三种情况计算信息增益:

  1. 受害主机的不确定性降低,但还未被控制,如操作系统探测和端口扫描,所以行动的信息增益是两个概率分布之间的差异
  2. 受害者电脑在动作之后被控制,如漏洞利用,在这种情况下,信息增益为行动之前的信息熵
  3. 动作没有影响受害主机的状态,因此操作之后的动作的概率分布是相同的,信息增益为0

强化学习中的奖励由两部分表示:\(r = r_{gain} + r_{cost}\) ,\(r_{gain}\)表示信息增益,\(r_{cost}\)表示动作成本。设置动作成本的意义在限制动作的数量,以避免无限循环,另一个是指导代理尽可能好的找到攻击路径,计算是基于CVSS评分的。

image-20220825095355908

网络信息熵的主要问题是主机之间的连接,通常采用扫描操作来检测主机之间的连接,因此只要代理没有采取有用的动作,我们都会扫描操作,当代理可以穿透可用计算机时,总信息增益将增加。

四、实验评估

将提出的算法与POMDP和前向搜索规划器进行比较,目标是识别有效的攻击路径。

测试场景:

image-20220825101348794

动作空间:

动作是从metasploit中检索的,其中主要包括两种类型的动作,信息收集和脆弱性利用。首先使用接口登录metasploit,然后阅读整个数据库并提取信息,基于检索到的信息来构建统一资源定位器(url)和CPE信息,将这些数据存储到数据库中。

实验结果分为两个部分:第一部分将POMDP与趋同的NIG-AP进行了比较,第二个将POMDP与前向搜索规划器和NIG-AP进行了比较。 NIG-AP用于具有各种优化算法的实验中,包括Q学习优化算法(NIG-AP(Q)),相对值迭代优化算法(NIG-AP(RVI)),值迭代算法(NIG-AP(VI)),策略迭代算法(NIG-AP(PI)),修改的策略迭代算法(NIG-AP(PIM))和值迭代(NIG-AP(VIGS))算法。

为了比较计划的有效性,有效性指标被定义为\(e=N_{correct}/N_{state}\) ,\(N_{state}\)是主机状态数量,\(N_{correct}\)是考虑输出策略文件中显示的特定状态的正确操作数量 。

五、总结

总体来说,本文提供了一种新的思考,利用信息熵来对主机的不确定性进行描述,这对比POMDP和FF等已有的研究来说,性能有所改善,更重要的一点在于,我们不需要主机和网络的先验知识。此外,本文还考虑了漏洞的时间信息,将更加新的漏洞赋予更高的奖励值。

目前考虑使用迁移学习来生成攻击方案。因为有各种各样的网络场景,所以我们不能迭代每种情况来训练我们的代理商。解决此问题的一种可能方法是在实施知识转移时采用迁移学习,以将我们的代理应用于未知网络方案。由于在各种情况下,渗透测试知识相似,因此迁移学习向我们展示了培训较少情况示例的代理商的方法,并保持有效。

文章信息

原文: NIG-AP: a new method for automated penetration testing

源码: 无

申明:版权归原文作者及出版单位所有,如有侵权请联系删除

posted @ 2022-08-25 10:47  哆啦哆啦呦  阅读(422)  评论(0编辑  收藏  举报