如何使用大型语言模型(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检测的挑战
- 应用程序逻辑复杂性:现代应用通常具有复杂的授权机制
- 输入参数多样性:需要识别引用敏感数据的参数
- 有状态特性: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/