如何使用大型语言模型(LLMs)自动检测BOLA漏洞
字数 2063 2025-08-20 18:18:16

使用大型语言模型(LLMs)自动检测BOLA漏洞教学文档

1. BOLA漏洞概述

对象级授权损坏(BOLA)是现代API和Web应用程序中广泛存在且可能非常严重的漏洞。当API应用程序的后端无法验证用户是否具有访问、修改或删除对象的正确权限时,就会发生BOLA。

1.1 BOLA示例

在一个医疗应用中,患者可以使用以下API访问医生就诊记录:

api.clinic.site/get_history?visit_id=XXXX

如果服务器未能正确验证权限逻辑,恶意患者可能通过操纵visit_id参数访问其他患者的数据。

1.2 BOLA检测的挑战

  1. 应用程序逻辑复杂性:现代应用通常具有复杂的授权机制
  2. 输入参数多样性:需要识别引用敏感数据的参数
  3. 有状态特性:API调用结果可能依赖于其他API的执行
  4. 缺乏漏洞指标:BOLA是逻辑错误,没有已知模式可识别
  5. 上下文相关输入:需要精确定位敏感参数并提供有效值

2. BOLABuster方法概述

BOLABuster是一种利用LLM的推理能力来自动检测BOLA漏洞的方法,仅需要目标API的OpenAPI 3规范作为输入。

2.1 方法流程

  1. 识别潜在易受攻击的端点(PVE)
  2. 发现端点依赖关系
  3. 生成执行路径和测试计划
  4. 创建测试脚本
  5. 执行计划并分析结果

3. 详细实施步骤

3.1 识别潜在易受攻击的端点(PVE)

目标:识别可能易受BOLA攻击的API端点

步骤

  1. 筛选经过身份验证的端点
  2. 识别具有唯一标识数据对象的参数(如username、email、teamId等)
  3. 分析端点功能和参数,确定哪些引用或返回敏感数据

LLM任务

  • 分析API规范
  • 识别敏感数据相关端点
  • 标记潜在易受攻击端点

3.2 发现端点依赖关系

目标:分析应用程序逻辑以发现API端点间的依赖关系

概念

  • 生产者:输出其他端点所需参数的端点
  • 消费者:摄入其他端点输出参数的端点

LLM任务

  • 分析每个端点的功能和参数
  • 确定端点间的生产-消费关系
  • 构建依赖关系图

3.3 生成执行路径和测试计划

目标:为每个PVE构建依赖关系树和执行路径

步骤

  1. 以PVE为根节点构建依赖树
  2. 从叶节点到根的路径代表一条执行路径
  3. 为每条执行路径创建测试计划

LLM任务

  • 构建依赖关系树
  • 识别所有可能的执行路径
  • 生成结构化测试计划

3.4 创建测试脚本

目标:将执行路径转换为可执行的bash脚本

脚本内容

  1. 用户登录获取认证令牌
  2. 执行API调用序列
  3. 涉及至少两个认证用户
  4. 一个用户尝试访问另一个用户的数据

测试示例

  1. 用户Alice登录并创建文章和评论
  2. 将文章和评论ID传递给用户Bob
  3. Bob尝试删除Alice的评论
  4. 若操作成功则存在BOLA

LLM任务

  • 将执行路径转换为脚本代码
  • 确保脚本逻辑正确
  • 处理认证和令牌管理

3.5 执行计划并分析

目标:执行测试并分析结果

执行策略

  1. 自动化用户注册、登录和令牌刷新
  2. 按特定顺序运行测试用例以减少依赖
  3. 确保执行路径内除PVE外的所有API调用成功
  4. 将包含更新/删除操作的脚本安排在序列末尾

分析过程

  1. 记录测试日志和输出
  2. LLM分析结果判断是否存在漏洞
  3. 人工验证可疑结果
  4. 通过反馈提高LLM准确性

4. 实际应用案例

BOLABuster已成功发现多个开源项目的BOLA漏洞:

  1. Grafana (CVE-2024-1313)
  2. Harbor (CVE-2024-22278)
  3. Easy!Appointments (CVE-2023-3285至CVE-2023-3290和CVE-2023-38047至CVE-2023-38055)

5. 技术优势与局限

5.1 优势

  1. 自动化:将手动任务自动化
  2. 可扩展:方法可扩展到其他类型漏洞检测
  3. 高效:大规模检测能力
  4. 智能推理:利用LLM理解复杂应用逻辑

5.2 局限与挑战

  1. 人工验证需求:仍需人工验证结果
  2. API规范依赖:依赖完整准确的API规范
  3. LLM限制:受限于LLM的理解和推理能力
  4. 误报率:可能存在一定误报需要人工筛选

6. 安全影响与未来方向

6.1 安全影响

  1. 防御应用:增强安全团队检测能力
  2. 攻击风险:可能被攻击者用于发现零日漏洞
  3. AI对抗:需要发展更先进的防御性AI

6.2 未来方向

  1. 扩展到更多漏洞类型检测
  2. 提高自动化程度减少人工干预
  3. 优化LLM提示和训练以提高准确性
  4. 开发预防BOLA的开发框架

7. 参考文献

  1. Grafana安全公告: https://grafana.com/security/security-advisories/cve-2024-1313/
  2. NVD漏洞详情: https://nvd.nist.gov/vuln/detail/CVE-2024-22278
  3. CVE数据库: https://cve.mitre.org/
  4. Palo Alto Networks研究报告: https://unit42.paloaltonetworks.com/automated-bola-detection-and-ai/
使用大型语言模型(LLMs)自动检测BOLA漏洞教学文档 1. BOLA漏洞概述 对象级授权损坏(BOLA) 是现代API和Web应用程序中广泛存在且可能非常严重的漏洞。当API应用程序的后端无法验证用户是否具有访问、修改或删除对象的正确权限时,就会发生BOLA。 1.1 BOLA示例 在一个医疗应用中,患者可以使用以下API访问医生就诊记录: 如果服务器未能正确验证权限逻辑,恶意患者可能通过操纵 visit_id 参数访问其他患者的数据。 1.2 BOLA检测的挑战 应用程序逻辑复杂性 :现代应用通常具有复杂的授权机制 输入参数多样性 :需要识别引用敏感数据的参数 有状态特性 :API调用结果可能依赖于其他API的执行 缺乏漏洞指标 :BOLA是逻辑错误,没有已知模式可识别 上下文相关输入 :需要精确定位敏感参数并提供有效值 2. BOLABuster方法概述 BOLABuster是一种利用LLM的推理能力来自动检测BOLA漏洞的方法,仅需要目标API的OpenAPI 3规范作为输入。 2.1 方法流程 识别潜在易受攻击的端点(PVE) 发现端点依赖关系 生成执行路径和测试计划 创建测试脚本 执行计划并分析结果 3. 详细实施步骤 3.1 识别潜在易受攻击的端点(PVE) 目标 :识别可能易受BOLA攻击的API端点 步骤 : 筛选经过身份验证的端点 识别具有唯一标识数据对象的参数(如username、email、teamId等) 分析端点功能和参数,确定哪些引用或返回敏感数据 LLM任务 : 分析API规范 识别敏感数据相关端点 标记潜在易受攻击端点 3.2 发现端点依赖关系 目标 :分析应用程序逻辑以发现API端点间的依赖关系 概念 : 生产者 :输出其他端点所需参数的端点 消费者 :摄入其他端点输出参数的端点 LLM任务 : 分析每个端点的功能和参数 确定端点间的生产-消费关系 构建依赖关系图 3.3 生成执行路径和测试计划 目标 :为每个PVE构建依赖关系树和执行路径 步骤 : 以PVE为根节点构建依赖树 从叶节点到根的路径代表一条执行路径 为每条执行路径创建测试计划 LLM任务 : 构建依赖关系树 识别所有可能的执行路径 生成结构化测试计划 3.4 创建测试脚本 目标 :将执行路径转换为可执行的bash脚本 脚本内容 : 用户登录获取认证令牌 执行API调用序列 涉及至少两个认证用户 一个用户尝试访问另一个用户的数据 测试示例 : 用户Alice登录并创建文章和评论 将文章和评论ID传递给用户Bob Bob尝试删除Alice的评论 若操作成功则存在BOLA LLM任务 : 将执行路径转换为脚本代码 确保脚本逻辑正确 处理认证和令牌管理 3.5 执行计划并分析 目标 :执行测试并分析结果 执行策略 : 自动化用户注册、登录和令牌刷新 按特定顺序运行测试用例以减少依赖 确保执行路径内除PVE外的所有API调用成功 将包含更新/删除操作的脚本安排在序列末尾 分析过程 : 记录测试日志和输出 LLM分析结果判断是否存在漏洞 人工验证可疑结果 通过反馈提高LLM准确性 4. 实际应用案例 BOLABuster已成功发现多个开源项目的BOLA漏洞: Grafana (CVE-2024-1313) Harbor (CVE-2024-22278) Easy !Appointments (CVE-2023-3285至CVE-2023-3290和CVE-2023-38047至CVE-2023-38055) 5. 技术优势与局限 5.1 优势 自动化 :将手动任务自动化 可扩展 :方法可扩展到其他类型漏洞检测 高效 :大规模检测能力 智能推理 :利用LLM理解复杂应用逻辑 5.2 局限与挑战 人工验证需求 :仍需人工验证结果 API规范依赖 :依赖完整准确的API规范 LLM限制 :受限于LLM的理解和推理能力 误报率 :可能存在一定误报需要人工筛选 6. 安全影响与未来方向 6.1 安全影响 防御应用 :增强安全团队检测能力 攻击风险 :可能被攻击者用于发现零日漏洞 AI对抗 :需要发展更先进的防御性AI 6.2 未来方向 扩展到更多漏洞类型检测 提高自动化程度减少人工干预 优化LLM提示和训练以提高准确性 开发预防BOLA的开发框架 7. 参考文献 Grafana安全公告: https://grafana.com/security/security-advisories/cve-2024-1313/ NVD漏洞详情: https://nvd.nist.gov/vuln/detail/CVE-2024-22278 CVE数据库: https://cve.mitre.org/ Palo Alto Networks研究报告: https://unit42.paloaltonetworks.com/automated-bola-detection-and-ai/