【AI自动化渗透】大模型支持的自动化渗透测试,看蚂蚁和浙大的

参考文章:

https://mp.weixin.qq.com/s/WTaO54zRxtNMHaiI1tfdGw

最近,美国西北大学,浙江大学,蚂蚁集团的一些专家学者联手发表了一篇论文,介绍了一个PentestAgent的方案,实现了渗透测试自动化。

01 技术方案

图的字体有点小,每块后边都会拆开看。

PentestAgent由四大组件组成:侦察代理、搜索代理、规划代理、执行代理,这些代理相互协作,完成渗透测试的三个主要阶段。大体过程如下

1.情报收集: 侦察代理在收到用户指定目标的输入后,通过收集有关目标主机的环境信息来启动渗透测试过程。侦察代理生成并执行侦察命令,旨在从目标主机收集全面的环境数据。 然后,侦察代理分析执行结果并汇编目标环境摘要,该摘要存储在指定的环境信息数据库中。图中①②

2.漏洞分析: 接下来,搜索代理和规划代理协同进行漏洞分析。 搜索代理查询环境信息数据库以检索目标主机上公开的服务和应用程序列表。 在这些服务和应用程序的指导下,搜索代理搜索潜在的攻击面和程序,并将它们保存在单独的数据库中。 规划代理首先利用 RAG 技术找到潜在攻击面列表。 随后,规划代理使用这些已识别的攻击面来确定适合目标环境的漏洞利用。③④⑤⑥

3.漏洞利用: 最后,执行代理尝试在目标主机上执行这些攻击计划。 执行代理与环境信息数据库通信以获取执行漏洞利用所需的信息。它还通过修改代码或执行其他命令来调试任何执行错误,以收集更多信息。 所有执行历史记录都存储在数据库中,可用于生成全面的渗透测试报告。⑦⑧⑨

这个结构化和自动化的框架旨在简化渗透测试流程,提高效率并减少所需的手动工作量。

02 各代理说明

侦察代理

侦察代理将指定目标作为输入,并与其交互以收集详细信息,最终生成环境信息摘要作为输出。如下图所示,当向侦察代理提供目标时,该过程开始。代理以自迭代循环运行,生成侦察命令以从目标收集信息,并分析这些命令的结果,直到尽最大努力。侦察循环结束后,代理会总结其发现并将其存储在数据库中。

嗯,这个就跟PentestGPT几乎是一样的,唯一的区别是手动变成了自动,这个就是多点代码量,没什么难度。

搜索代理

搜索代理将目标服务和应用程序作为输入,并将相关攻击知识存储到数据库中作为输出。如下图所示,搜索代理对相关信息进行两轮分层在线搜索。在第一轮中,它搜索并分析结果以提取与目标相关的潜在攻击面。在后续轮中,它使用已识别的潜在攻击面作为指导,搜索和分析过程级攻击知识。潜在攻击面和过程级攻击知识存储在两个单独的数据库中以供将来使用。

这个是利用了一些RAG的技术。

执行代理

执行代理将漏洞利用详细信息作为输入,并尝试自动对目标执行漏洞利用,最终生成漏洞利用摘要作为输出。执行代理遵循规划代理建议的顺序。如图 6所示,每次漏洞利用执行可分为两个阶段:准备阶段和漏洞利用阶段

03 测试效果

选择 VulHub 作为基准数据集,制了一个包含 67 个渗透测试目标的基准测试,涵盖 32 个 CWE(常见弱点枚举)类别,有 50 个目标具有易利用难度,11 个目标具有中等可利用难度,6 个目标具有高可利用难度。

渗透测试成功率为

GPT-4 模型在完成自动化渗透测试任务方面表现出 74.2% 的总体成功率,优于 GPT-3.5 模型,后者的成功率为 60.6%。两种模型的成功率均持续超过 60%,这证明了PentestAgent在建立自动化渗透测试管道方面的有效性。

04 与PentestGPT的比较

我们对PentestAgent和PentestGPT的有效性和效率进行了比较。与PentestAgent不同,PentestGPT需要在整个渗透测试过程中进行人工参与,以提供反馈和决策。因此,我们使用案例研究来比较它们的性能。为了进行公平的评估,我们随机选择了五个漏洞,其中两个归类为简单,两个归类为中等,一个归类为困难。我们招募了一名渗透测试经验有限的本科生,担任PentestGPT所需的人工组件。学生遵循PentestGPT的指导,而无需应用外部知识进行决策或完成任务。

在这种测试条件下,PentestGPT无法完全利用这 5 个漏洞中的任何一个。相比之下,PentestAgent在五种情况中的三种中成功完成了利用。为了进一步比较,我们检查了PentestGPT在各个渗透测试阶段的性能。PentestGPT仅在五种情况中的一种中能够识别目标应用程序,而PentestAgent在五种情况中的四种中正确识别了目标应用程序。在信息收集阶段,PentestGPT平均花费 826.25 秒,需要测试人员和系统进行 7.4 轮交互。相比之下,PentestAgent平均在 400 秒内完成信息收集,无需人机交互。在给定正确的目标应用程序信息的情况下,PentestGPT仅成功引导利用一个漏洞。另一方面,一旦识别出目标应用程序,PentestAgent就会自动利用包括困难情况在内的四个漏洞。

这些结果表明,PentestAgent在有效性和效率方面都明显优于PentestGPT,可以自主完成渗透测试任务,而无需人工协助。

05 总结

本文参考了PentestGPT的思想,在之上实现了更好的自动化,从结果上看,效果非常理想。可惜的是,该项目未开源。

在查找中,看到另一个开源软件,可以用来参考。

https://github.com/osgil-defense/TARS

论文地址:

https://arxiv.org/html/2411.05185v1

参考阅读

PentestGPT,用大模型辅助渗透测试,已开源

相关推荐
Zero_Era19 分钟前
LKT4304新一代算法移植加密芯片,守护物联网设备和云服务安全
物联网·安全
网安-轩逸1 小时前
网络安全设备主要有什么
网络·安全·web安全
公众号:ITIL之家2 小时前
CI/CD与自动化运维的结合:加速交付与稳定运维
运维·ci/cd·自动化
网安-轩逸3 小时前
信息网络安全考试gjdw
网络·安全
金智维科技官方3 小时前
财务自动化管理系统有哪些?
大数据·人工智能·自动化
唐山柳林3 小时前
灌区闸门自动化控制系统-精准渠道量测水-灌区现代化建设
大数据·运维·科技·物联网·自动化
网络安全King3 小时前
三化六防是什么
网络·安全·web安全
zhangfeng11333 小时前
Selenium 进行网页自动化操作的一个示例,绕过一些网站的自动化检测。python编程
javascript·selenium·自动化
王子良.3 小时前
使用 Python 实现自动化办公(邮件、Excel)
python·自动化·excel