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

server/2025/1/13 19:24:21/

参考文章:

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,用大模型辅助渗透测试,已开源


http://www.ppmy.cn/server/158071.html

相关文章

贪心算法汇总

1.贪心算法 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 如何能看出局部最优是否能推出整体最优 靠自己手动模拟,如果模拟可行,就可以试一试贪心策略,如果不可行,可能需要动态规划。 如何验证可不可以…

JS爬虫实战演练

在这个小红书私信通里面进行一个js的爬虫 文字发送 async function sendChatMessage(content) {const url https://pro.xiaohongshu.com/api/edith/ads/pro/chat/chatline/msg;const params new URLSearchParams({porch_user_id: 677e116404ee000000000001});const messageD…

基于华为Maas(大模型即服务)和开源的Agent三方框架构建AI聊天助手实践

引言 随着人工智能技术的快速发展,AI聊天助手已经成为企业与用户之间沟通的重要桥梁。为了构建一个高效、智能且易于扩展的AI聊天助手,我们可以利用华为云提供的Maas(Model-as-a-Service,大模型即服务)平台,结合开源的Agent三方框架来实现。本文将详细介绍这一实践过程,…

如何在谷歌浏览器中使用安全沙箱

谷歌浏览器的沙箱机制是一种重要的安全功能,可以有效隔离浏览会话中的每个标签页和插件,以防止恶意软件攻击用户系统。本文将详细介绍如何在谷歌浏览器中启用和使用沙箱功能。 一、什么是谷歌浏览器沙箱? 谷歌浏览器的沙箱是一种安全机制&am…

【STM32+QT项目】基于STM32与QT的智慧粮仓环境监测与管理系统设计(完整工程资料源码)

视频演示: 基于STM32与QT的智慧粮仓环境监测与管理系统设计 目录: 目录 视频演示: 目录: 前言:

HTML学习笔记记录---速预CSS(1) 选择器类型

选择器 选择器内可以写无数条属性 每行属性都得以英文分号结尾 选择器{ 属性1:属性值1; 属性2:属性值2; } 例: p{color:blue; 颜色font-size:16px; 字号大小(像素) } 样式…

JS点击对应复选框,对应内容区域隐藏

如果页面上的内容是正常显示的&#xff0c;则复选框默认勾选 点击复选框之后对应的区域就会隐藏 <div class"setting"><img src"./img/setting.png" alt""><div class"setBox"><label for"idBox" styl…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(五)

文章目录 一、学生管理模块功能实现1、添加学生功能实现1.1 页面设计1.2 前端功能实现1.3 后端功能实现1.4 效果展示2、学生管理功能实现2.1 页面设计2.2 前端功能实现2.3 后端功能实现2.3.1 后端查询接口实现2.3.2 后端编辑接口实现2.3.3 后端删除接口实现2.4 效果展示二、代码…