论文

漏洞发现的定向符号执行:KLEE 中的 LLM 引导方法

Directed Symbolic Execution for Vulnerability Discovery: An LLM-Guided Approach in KLEE

摘要

符号执行可以有效地发现安全违规行为,但会遭受路径爆炸的困扰。因此,像 KLEE 这样的引擎使用路径优先启发式来排序状态探索,通常会优化代码覆盖率。然而,路径优先级可能会陷入循环控制流区域,在探索到达这些循环区域之外的易受攻击的代码之前,重复分支会消耗探索预算。我们提出 KLEECopilot,一种基于 KLEE 的 大语言模型 (LLM) 引导的定向符号执行方法。 KLEECopilot 使用 LLM 来标记潜在易受​​攻击的代码并指导路径优先级。它还集成了循环退出优先级,以逃避潜在的不易受攻击的循环并朝着更深层次的漏洞发展。与Empc等基线相比,KLEECopilot的基本块覆盖率提高了42.24%,线路覆盖率提高了125.82%。它发现了 1,335 起总违规行为和 87 起独特违规行为,在总违规行为中比第二最佳基线高出 32.2%,在独特违规行为中比 Empc 高出 24.3%。尽管 KLEECopilot 对模型族敏感,但它对模型规模仅表现出边际敏感性,支持集成安全语义和循环退出优先级的功效。消融研究进一步表明,各个组件有助于提高有效性:涉及搜索器、内部组件、标记源和提示变体的替代配置仅产生 54--61 种独特的违规行为,而 KLEECopilot 保持有竞争力的代码覆盖率。