A Systematic Study of Code Obfuscation Against LLM-based Vulnerability Detection
作者: Xiao Li, Yue Li, Hao Wu, Yue Zhang, Yechao Zhang, Fengyuan Xu, Sheng Zhong
分类: cs.CR, cs.LG
发布日期: 2025-12-18
💡 一句话要点
系统性研究代码混淆对基于LLM的漏洞检测的影响,揭示其有效性和局限性。
🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)
关键词: 代码混淆 漏洞检测 大型语言模型 软件安全 对抗攻击
📋 核心要点
- 现有代码混淆技术种类繁多,缺乏统一的评估框架,难以系统性地评估其对基于LLM的漏洞检测的影响。
- 论文对代码混淆技术进行分类和系统化,并在统一框架下评估其对多种LLM漏洞检测能力的影响。
- 实验结果揭示了代码混淆对LLM漏洞检测的复杂影响,并分析了影响因素,为提升LLM鲁棒性提供了方向。
📝 摘要(中文)
随着大型语言模型(LLMs)越来越多地应用于代码漏洞检测,其在各种漏洞类型上的可靠性和鲁棒性日益受到关注。代码混淆作为一种绕过审计工具的通用策略,长期以来被使用。虽然已经有很多关于混淆方法和工具的研究,但它们在支持的技术、粒度和编程语言方面存在差异,这使得系统性地评估它们对基于LLM的漏洞检测的影响变得困难。为了解决这个问题,我们对混淆技术进行了结构化的系统化研究,并在统一的框架下评估它们。具体来说,我们将现有的混淆方法分为三大类(布局、数据流和控制流),涵盖11个子类别和19个具体技术。我们使用一致的LLM驱动方法在四种编程语言(Solidity、C、C++和Python)中实现了这些技术,并评估了它们对跨越四个模型家族(DeepSeek、OpenAI、Qwen和LLaMA)的15个LLM以及两个编码代理(GitHub Copilot和Codex)的影响。我们的研究结果揭示了代码混淆对基于LLM的漏洞检测的积极和消极影响,突出了混淆导致性能提升或下降的条件。我们进一步分析了这些结果与漏洞特征、代码属性和模型属性的关系。最后,我们概述了几个开放性问题,并提出了未来方向,以增强LLM在实际漏洞检测中的鲁棒性。
🔬 方法详解
问题定义:论文旨在解决代码混淆对基于LLM的漏洞检测效果的影响评估问题。现有代码混淆技术繁多,缺乏统一的分类和评估标准,难以量化其对不同LLM漏洞检测能力的干扰程度。现有方法难以系统性地分析混淆技术、漏洞类型和LLM模型之间的相互作用,阻碍了LLM在安全领域的可靠应用。
核心思路:论文的核心思路是对现有代码混淆技术进行系统分类,并在统一的实验框架下,评估不同混淆技术对多种LLM漏洞检测性能的影响。通过控制变量,分析混淆技术、漏洞类型和LLM模型属性对检测结果的影响,从而揭示混淆的有效性和局限性。
技术框架:论文构建了一个统一的评估框架,包含以下主要模块:1) 代码混淆模块:实现19种代码混淆技术,涵盖布局、数据流和控制流三个大类。2) 漏洞数据集:包含多种编程语言(Solidity, C, C++, Python)的漏洞代码。3) LLM漏洞检测模块:使用15个LLM模型和2个编码代理进行漏洞检测。4) 评估指标:采用准确率、召回率等指标评估LLM的检测性能。
关键创新:论文最重要的创新点在于对代码混淆技术进行了系统性的分类和实现,并构建了一个统一的评估框架,能够量化不同混淆技术对多种LLM漏洞检测能力的影响。此外,论文还深入分析了混淆技术、漏洞类型和LLM模型属性之间的相互作用,为提升LLM在安全领域的鲁棒性提供了新的视角。
关键设计:论文的关键设计包括:1) 混淆技术的选择:选择了具有代表性的19种混淆技术,覆盖了代码的布局、数据流和控制流三个方面。2) 漏洞数据集的构建:构建了包含多种编程语言和漏洞类型的代码数据集,保证了评估的全面性。3) LLM模型的选择:选择了来自不同模型家族的15个LLM模型和2个编码代理,保证了评估的广泛性。4) 评估指标的设计:采用了准确率、召回率等指标,全面评估LLM的检测性能。
🖼️ 关键图片
📊 实验亮点
实验结果表明,代码混淆对LLM漏洞检测的影响是复杂的,既有积极影响也有消极影响。例如,某些混淆技术可以提高LLM的检测准确率,而另一些混淆技术则会导致检测性能下降。研究发现,混淆技术的效果受到漏洞类型、代码属性和LLM模型属性的影响。例如,对于某些类型的漏洞,LLM更容易受到混淆的影响。
🎯 应用场景
该研究成果可应用于提升软件安全和漏洞挖掘领域。通过了解代码混淆对LLM漏洞检测的影响,可以指导开发者设计更鲁棒的LLM模型,提高漏洞检测的准确性和可靠性。此外,该研究还可以帮助安全研究人员更好地理解和应对代码混淆带来的安全挑战,开发更有效的反混淆技术。
📄 摘要(原文)
As large language models (LLMs) are increasingly adopted for code vulnerability detection, their reliability and robustness across diverse vulnerability types have become a pressing concern. In traditional adversarial settings, code obfuscation has long been used as a general strategy to bypass auditing tools, preserving exploitability without tampering with the tools themselves. Numerous efforts have explored obfuscation methods and tools, yet their capabilities differ in terms of supported techniques, granularity, and programming languages, making it difficult to systematically assess their impact on LLM-based vulnerability detection. To address this gap, we provide a structured systematization of obfuscation techniques and evaluate them under a unified framework. Specifically, we categorize existing obfuscation methods into three major classes (layout, data flow, and control flow) covering 11 subcategories and 19 concrete techniques. We implement these techniques across four programming languages (Solidity, C, C++, and Python) using a consistent LLM-driven approach, and evaluate their effects on 15 LLMs spanning four model families (DeepSeek, OpenAI, Qwen, and LLaMA), as well as on two coding agents (GitHub Copilot and Codex). Our findings reveal both positive and negative impacts of code obfuscation on LLM-based vulnerability detection, highlighting conditions under which obfuscation leads to performance improvements or degradations. We further analyze these outcomes with respect to vulnerability characteristics, code properties, and model attributes. Finally, we outline several open problems and propose future directions to enhance the robustness of LLMs for real-world vulnerability detection.