ABSENTIA 提出用 LLM agent 系统检测 Web 应用访问控制漏洞,并在 BAC-Bench 上召回 19 个案例
ABSENTIA: Detecting Broken Access Control Vulnerabilities in Web Applications
ABSENTIA 用 LLM agent 对 Web 应用后端做路由级访问控制检测,并在 BAC-Bench 召回 19 个案例。论文把访问控制问题描述为授权关系,即谁可以对什么对象执行操作,而不是数据如何流动;由于每个应用自己定义这种关系,预先写好的规则难以跨应用迁移,因此 ABSENTIA 让 agent 从代码中推断应用应满足的属性,并在属性未被强制时报告对应路由。
BAC-Bench 的设计是这篇论文里容易被忽略的细节。它包含 30 个 broken access control advisories,覆盖 25 个仓库、3 种语言和 9 个框架,且每个案例都发布于 2025 或之后,经人工审计员验证,并配对修复 commit。所谓 paired credit 要求检测器标记易受攻击版本,而不是修复后的版本,这使评估更接近真实审计中定位问题版本的要求。
从结果看,事实是 ABSENTIA 在 BAC-Bench 上召回 19 个,paired credit 下 17 个,LLM verifier 确认 51% 的发现;CodeQL 和 Semgrep 召回 0,同一模型上的 unstructured agent 召回 3。在 OWASP Benchmark 的 injection categories 中,ABSENTIA 在 Python 上领先专用分析器,在 Java 上仅落后 CodeQL 和 IRIS。推断是,对访问控制这类关系型漏洞,结构化覆盖和路由级检查比自由搜索更有价值,但 51% 的确认率说明自动发现仍需人工复核。猜测是,若扩展到更多框架、更大代码库或不同授权模型,召回和误报率可能变化,但材料未提供这些证据。
ABSENTIA 把通用 LLM agent 变成路由级访问控制审计器,并用 BAC-Bench 给出召回基线,可校正对 AI 安全自动审计工具实际有效性的判断。
来源:arXiv cs.CR · arxiv.org