腾讯沙龙:自动化渗透测试
25.4.26 参加腾讯成都线下沙龙听师傅讲后,结合自己的思路和理解做个总结(有考虑不周的,欢迎指正)
其中用视觉模型识别网站内容的部分还是挺受启发的
宏观上的思路思考
- 大模型自动化渗透测试方向:综合最近面试和听讲座,一些师傅的观点,目前比较核心的几个研究方向
- 1 绿盟研究员:让大模型调用已有工具,综合利用(不要让大模型做现有工具会做的事情)
- 具体而言:让大模型成为工具的使用者(代替人的任务)
- 2 洺熙:寻找大模型可以完成的有价值的事情
- 具体而言:
- 目前大模型虽然强大,但尚有很多任务难以完成
- 因此想到一个好的落地场景的 idea,先去做(可能做出来现在大模型的能力是一坨屎的状态)
- 但是随着大模型的飞速能力迭代,当它能力到达要求后,我们就可以快速落地某个场景
- 具体而言:
- 3 某联想面试官:想让大模型做现在很多人无法完成的事情(具体而言:高级 0day 的挖掘)
- 1 绿盟研究员:让大模型调用已有工具,综合利用(不要让大模型做现有工具会做的事情)
- 我自己的意见:其实上面的三个方面并不是矛盾的,可以相融,甚至是包含关系
- 1:大模型应用落地:在安全侧有很多可以做的思路(很认同洺熙的说法,好的 idea 先做出一坨屎)
- 更多是”道”上的理解
- 2:自动化渗透测试:大模型提效(已能做的事情)、大模型完成高难度任务(0day 挖掘)
- 大模型联动工具:
- 感知者 agent:去感知整个资产的相关信息,并进行聚合
- 架构师 agent:通过聚合的资产信息,进行相关利用链路的规划
- 执行者 agent:根据不同的漏洞渗透任务,用不同类型的 agent 去完成相关的渗透任务
- (这其中需要涉及大量大模型自优化的工作——根据反馈信息动态调整)
- 产出者 agent:最终需要对利用信息整理、产出成为报告
- (其实如果是一个完整的产品/工具,需要考虑的细节点还是挺多的)
- 大模型挖掘 0day
- 1fuzzer 工具:种子收集、种子选择算法、 变异(杂交、变异)、选择(进化)…
- 2动态决策:强化学习(这里的瓶颈我个人觉得在于实验环境的搭建、奖励指标设计、针对性训练数据)
- 大模型联动工具:
- 1:大模型应用落地:在安全侧有很多可以做的思路(很认同洺熙的说法,好的 idea 先做出一坨屎)
传统自动化渗透瓶颈
- 传统思路:
- 1 根据识别渗透资产的指纹信息
- 爬虫:目标 url、页面结构、资源分布
- 2 根据指纹,执行相关 poc
- poc 引擎
- 3 根据 poc 执行的相应包,用规则引擎分析执行结果,输出
- 1 根据识别渗透资产的指纹信息
- 问题与制约:
- 1:缺乏宏观能力:缺乏对于整个资产结构的完整理解(根据整个资产信息,进行深入的联动利用)
- eg:从一个点的利用打到另一个点,进行漏洞组合拳利用
- 2:无法定制化渗透:缺乏对于特定场景的渗透(对于特定场景,做针对性的渗透)
- eg:登录页面——有验证码(做验证码爆破)
- eg:登录页面——有注册、找回(做相关的逻辑绕过)
- 3:没有挖掘 0day 的能力:缺乏根据响应,动态改包尝试的能力——(fuzz 能力较弱)
- eg:一般是直接用 poc 打,然后返回响应信息。缺乏根据响应信息进行多轮尝试 fuzz 的能力
- 1:缺乏宏观能力:缺乏对于整个资产结构的完整理解(根据整个资产信息,进行深入的联动利用)
LLM 测试的问题
- LLM 对基础漏洞的检出能力:
- 问题:由于需要 1 信息采集、2poc 生成、3 网站交互、4 响应包分析(然后又从 2 开始迭代)
- 结果:一个简单的功能测试需要很长时间——漏洞产出效率太低
- 结论:自动化渗透测试领域——LLM 价值在于使用已有工具(像渗透测试工程师一样)
- 我的观点:
- LLM 进行信息聚合和推理的能力,毫无疑问很适合完成这一工作,但并不是唯一
- 利用 LLM 的创造性,进行 fuzz 测试,智能响应,在 0day 挖掘也大有可为
- (但毫无疑问更难)
- 我的观点:
思路 WorkFlow+工具调用
agent 和 workflow 各有优劣,但他们是可以兼容的关系,取长补短(这个我很认同)
场景举例(具体场景):
自动化框架
- 前端:保证渗透测试过程的可视化回溯
- 前端实时响应:agent 活动、工具调用、浏览器画面等
- 网页爬虫 Agent:模拟人——页面理解+页面点击
- 具体完成:基于视觉模型识别页面元素、点击按钮、填写并提交表单、跳转页面
- 优势:缓解传统爬虫无法理解业务逻辑、扫描覆盖率低等
- 渗透测试 Agent:将传统渗透各类场景的实践经验——作为专家经验,固化为 WorkFlow
- 具体完整:根据场景指纹、页面指纹等多种信息——调用对应的
POC Agent
- 具体完整:根据场景指纹、页面指纹等多种信息——调用对应的
Poc Agent 案例
短信轰炸案例
框架
- 主要实现:可以理解为一个 LLM 的 burpsuite
- 感知:通过爬虫 agent 感知页面元素
- 渗透测试:将感知信息传给测试 agent,他会动态调用各种工具进行测试
- 具体实现:如下