记一次自动化渗透测试的学习研究

在攻击树的基础上生成简化版的转移矩阵,随后基于深度强化学习来自动化给出渗透测试策略,未来可以根据该策略自动调用渗透测试工具来完成攻击。

Automated Penetration Testing Using Deep Reinforcement Learning

笔记作者:z3r0yu
论文作者:Z.Hu, R.Beuran, Y.Tan @ 日本-先端科学技術研究所 JAIST
项目链接:https://github.com/crond-jaist/AutoPentest-DRL
论文来源:2020 IEEE European Symposium on Security and Privacy Workshops

0x01 主要内容

在攻击树的基础上生成简化版的转移矩阵,随后基于深度强化学习来自动化给出渗透测试策略,未来可以根据该策略自动调用渗透测试工具来完成攻击。

PS: 深度强化学习(DRL,deep reinforcement learning)是深度学习与强化学习相结合的产物,它集成了深度学习在视觉等感知问题上强大的理解能力,以及强化学习的决策能力,实现了端到端学习。深度强化学习的出现使得强化学习技术真正走向实用,得以解决现实场景中的复杂问题。

主要方法:

  • 使用Shodan搜索引擎来收集相关的服务器数据,以建立一个现实的网络拓扑结构

  • 采用多主机多阶段漏洞分析(MulVAL)来生成该拓扑结构的攻击树

  • 使用传统的搜索算法(深度优先搜索)来发现该树中所有可能的攻击路径,并根据深度强化学习算法的需要建立一个矩阵表示

  • 采用深度强化学习网络(DQN)方法,以0.86的准确率从可能的候选者中发现最容易利用的攻击路径

个人思考: 为什么要进行自动化的渗透测试?

  1. 渗透测试的流程基本固定: 信息收集 -> 漏洞利用 -> 渗透系统

  2. 上述过程费力、费时、复杂的工作,需要大量的隐性知识,不容易被形式化,而且还容易出现人为错误

  3. 所以,自动化渗透测试一方面可以使攻击进行的更加快速,另一方面可以规范操作者的行为,减少在实际情况中犯错的出现

现有工作:

  1. Core IMPACT 商业工具,一种根据目标系统生成模型来进行攻击的框架,基于Metric-FF系统的变种来生成攻击方案。

PS:
(1) Metric-FF是一个领域无关智能规划系统。该系统是FF规划器(结合动作描述语言ADL)的扩展,增加了对数值状态变量(numerical state variables)的支持,更加准确的说是增加了对PDDL 2.1 第2层特性的子集的支持。Metric-FF使用C语言开发,它参加了2002年第3届国际智能规划竞赛IPC,具有非常有竞争力的性能表现。
(2) Blackbox是由Henry Kautz开发的一个可满足性智能规划系统,该系统首先将STRIPS型问题转化为布尔可满足性问题(Boolean satisfiability problems),然后使用各种先进的可满足性引擎(satisfiability engines)来求解问题。Blackbox的前端采用的是系统graphplan的修改版本。Blackbox非常具有灵活性,可以指定多种规划求解引擎来进行问题求解,所以Blackbox具有可以在非常大范围种类的规划问题上有效运行的能力。
(3) LPG (Local search for Planning Graphs)是一个基于局部搜索和规划图的规划器,它兼容PDDL2.1。该规划器既能处理规划产生(plan generation)问题,也能处理规划修改(plan adaptation)问题。LPG的搜索空间包含动作图(action graphs)、规划图中表示局部规划的特定子图。
引用:人机混合智能规划平台

PS: PDDL2.1是一种支持时态规划和度量规划的语言 。引用: [时态规划综述及研究现状](http://www.x ml-data.org/GDGYDXXB/html/1615527673997-884046199.htm)

  1. 1999年Schneier提出了一种对特定系统的安全威胁进行建模的方法,并以树状结构的形式表示对它的攻击,通过分析攻击树,来更好地了解每种攻击方法之间的关系。

  2. 2018年Yousefi应用强化学习(RL)来分析攻击树,它使用Q-learning来发现攻击路径,但它仍然存在行动空间和样本空间太小的问题。

  3. 2020年此文采用与强化学习相比,更适合分析攻击树的深度强化学习(DRL)方法,因为它结合了深度学习和强化学习,并采用了试错法来找出最优解。

0x02 背景知识

A. Shodan

互联网连接设备的在线搜索引擎,此研究Shodan来收集所需的信息,以建立真实的网络拓扑结构。之后使用这些网络拓扑信息将被用来作为下面介绍的MulVAL算法的输入。

B. 攻击树

1)攻击树模型: 表达攻击行为和攻击步骤之间的相互依存关系,具有实现攻击过程的正规化和文档化功能的模型。树的每个节点代表一个攻击行为或一个子目标,根节点代表攻击的最终目标。每个子节点代表一个攻击行为或一个子目标,在父节点被攻击之前应该完成。

攻击树的节点分为 “AND “节点和 “OR “节点。标签 “AND “意味着一个节点只有在所有子节点被攻击后才能被攻击。标签 “OR “表示,只要有一个子节点被攻击,父节点也可以被攻击。在图1中,展示了 “AND “和 “OR “这两种可能的节点类型的图形和文字表述。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kuWI4Vtp-1632838134261)(https://shs3.b.qian

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网安溦寀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值