腾讯沙龙:自动化渗透测试

25.4.26 参加腾讯成都线下沙龙听师傅讲后,结合自己的思路和理解做个总结(有考虑不周的,欢迎指正)

其中用视觉模型识别网站内容的部分还是挺受启发的

宏观上的思路思考

  • 大模型自动化渗透测试方向:综合最近面试和听讲座,一些师傅的观点,目前比较核心的几个研究方向
    • 1 绿盟研究员:让大模型调用已有工具,综合利用(不要让大模型做现有工具会做的事情)
      • 具体而言:让大模型成为工具的使用者(代替人的任务)
    • 2 洺熙:寻找大模型可以完成的有价值的事情
      • 具体而言:
        • 目前大模型虽然强大,但尚有很多任务难以完成
        • 因此想到一个好的落地场景的 idea,先去做(可能做出来现在大模型的能力是一坨屎的状态)
        • 但是随着大模型的飞速能力迭代,当它能力到达要求后,我们就可以快速落地某个场景
    • 3 某联想面试官:想让大模型做现在很多人无法完成的事情(具体而言:高级 0day 的挖掘)
  • 我自己的意见:其实上面的三个方面并不是矛盾的,可以相融,甚至是包含关系
    • 1:大模型应用落地:在安全侧有很多可以做的思路(很认同洺熙的说法,好的 idea 先做出一坨屎)
      • 更多是”道”上的理解
    • 2:自动化渗透测试:大模型提效(已能做的事情)、大模型完成高难度任务(0day 挖掘)
      • 大模型联动工具:
        • 感知者 agent:去感知整个资产的相关信息,并进行聚合
        • 架构师 agent:通过聚合的资产信息,进行相关利用链路的规划
        • 执行者 agent:根据不同的漏洞渗透任务,用不同类型的 agent 去完成相关的渗透任务
          • (这其中需要涉及大量大模型自优化的工作——根据反馈信息动态调整)
        • 产出者 agent:最终需要对利用信息整理、产出成为报告
        • (其实如果是一个完整的产品/工具,需要考虑的细节点还是挺多的)
      • 大模型挖掘 0day
        • 1fuzzer 工具:种子收集、种子选择算法、 变异(杂交、变异)、选择(进化)…
        • 2动态决策:强化学习(这里的瓶颈我个人觉得在于实验环境的搭建、奖励指标设计、针对性训练数据)

传统自动化渗透瓶颈

  • 传统思路:
    • 1 根据识别渗透资产的指纹信息
      • 爬虫:目标 url、页面结构、资源分布
    • 2 根据指纹,执行相关 poc
      • poc 引擎
    • 3 根据 poc 执行的相应包,用规则引擎分析执行结果,输出
  • 问题与制约:
    • 1:缺乏宏观能力:缺乏对于整个资产结构的完整理解(根据整个资产信息,进行深入的联动利用)
      • eg:从一个点的利用打到另一个点,进行漏洞组合拳利用
    • 2:无法定制化渗透:缺乏对于特定场景的渗透(对于特定场景,做针对性的渗透)
      • eg:登录页面——有验证码(做验证码爆破)
      • eg:登录页面——有注册、找回(做相关的逻辑绕过)
    • 3:没有挖掘 0day 的能力:缺乏根据响应,动态改包尝试的能力——(fuzz 能力较弱)
      • eg:一般是直接用 poc 打,然后返回响应信息。缺乏根据响应信息进行多轮尝试 fuzz 的能力

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,他会动态调用各种工具进行测试
  • 具体实现:如下