分享自:

FirmAgent:利用模糊测试辅助LLM代理发现物联网固件漏洞

期刊:network and distributed system security (ndss) symposiumDOI:10.14722/ndss.2026.231943

一、研究概况

本研究由蒋岸(Jiangan Ji)和章超(Chao Zhang)等研究人员完成,主要研究机构包括信息工程大学(Information Engineering University)、清华大学网络科学与网络空间研究院(Institute for Network Sciences and Cyberspace, Tsinghua University)以及清华大学计算机系(JCSS, Tsinghua University)等。该研究以题为“FirmAgent: Leveraging Fuzzing to Assist LLM Agents with IoT Firmware Vulnerability Discovery”的论文形式,发表于网络与分布式系统安全研讨会(Network and Distributed System Security Symposium,简称NDSS)2026年会议上。NDSS是网络安全领域的顶级国际会议之一,这表明该研究在学术界获得了高度认可。

二、学术背景与目标

本研究的科学领域属于物联网安全,具体聚焦于IoT设备固件(Firmware)的漏洞检测技术。随着物联网设备的快速普及,其安全漏洞问题日益严峻。固件是运行在这些设备上的核心软件,通常资源受限且缺乏强大的安全机制,成为攻击的主要目标。

当前主流的漏洞检测技术主要有两类,但都存在显著不足: 1. 静态分析:通过直接分析程序代码(无需运行)来发现漏洞,覆盖范围广,但普遍存在高误报率,并且无法自动生成漏洞验证所需的“概念验证”(Proof-of-Concept,简称POC)样本。大型语言模型(Large Language Models,简称LLMs)的引入虽然提升了分析精度,但依然受限于难以准确识别用户输入的起点(即“污点源”)。 2. 动态分析(特别是模糊测试,Fuzzing):通过自动化生成并执行大量随机或变异的输入来触发程序崩溃,从而发现可被利用的漏洞,并能生成POC。但其主要问题是高漏报率,尤其是在IoT固件中,大量的条件分支依赖于特定的硬件状态或输入值,导致模糊测试难以覆盖深层代码路径。

本研究基于一个关键观察:模糊测试能够准确地识别固件中实际接收外部输入的代码点(即真实的污点源),而静态分析则擅长对从这些点开始的程序路径进行深入的数据流跟踪。传统的混合方案(如混合模糊测试,Hybrid Fuzzing)试图在模糊测试过程中实时调用符号执行或LLM来突破复杂约束,但这会带来巨大的性能开销,并且容易受到IoT环境中频繁崩溃的干扰。

为此,本研究提出并实现了FirmAgent,这是首个提出并实现“利用模糊测试辅助LLM代理进行漏洞发现”的混合解决方案。其核心目标是结合动态分析和静态分析的互补优势,利用模糊测试的动态信息为LLM的静态推理提供精准的引导,从而在保持高检测率的同时,大幅降低误报和漏报,并自动化生成有效的POC,最终实现对IoT固件漏洞高效、精准的自动化发现与验证。

三、详细工作流程

FirmAgent的架构分为两个主要阶段,其工作流程如图所示:

第一阶段:模糊测试驱动的信息收集 此阶段的目标是利用轻量级模糊测试,精准、高效地收集运行时信息,为后续的LLM分析提供坚实基础。具体流程如下: 1. 模糊测试前分析:在开始动态测试前,对目标固件二进制文件进行静态分析,提取三方面关键信息: * 服务处理器检测:识别Web服务中各种请求的处理函数。传统方法依赖前端-后端字符串匹配,容易遗漏未在用户界面暴露的处理器。FirmAgent采用了一种结合静态分析与LLM上下文感知的模式学习方法,能更全面地发现隐藏的请求处理逻辑。 * 关键词字典构建:系统地提取可能接收用户输入的参数关键词。方法是从初始的网络流量种子出发,通过逆向分析找到处理这些关键词的函数,并向后追踪数据流,提取所有可能作为参数传递的字符串常量、全局变量或动态构建的字符串,形成一个全面的关键词字典。 * 汇点(Sink)范围与距离计算:识别安全敏感的函数(如systemstrcpy等)作为漏洞汇点。对这些汇点进行反向可达性分析,确定其影响范围(即可能流向这些汇点的代码区域)。同时,利用图算法计算控制流图中每个基本块到最近汇点的“距离”。这个“距离”信息将用于后续指导模糊测试,使其向更靠近汇点的方向探索。

  1. 运行时监控与定向模糊测试
    • 基于上述静态知识,FirmAgent启动一个定向的、基于字典的模糊测试器。它使用提取出的服务处理器信息和关键词字典,系统地构造和变异HTTP请求。每个注入的恶意值都带有自定义的污点标签,便于追踪。
    • 在模拟执行(使用修改版的QEMU)过程中,系统进行轻量级的运行时监控
      • 污点源识别:仅监控在“汇点范围”内的内存写操作。当一个内存地址从未被污点变为被污点(即被用户输入数据写入)时,该指令地址被精确地记录为一个“候选污点源”。
      • 间接调用解析:记录运行时遇到的间接函数调用(如函数指针调用)的实际目标地址,以补充静态分析难以构建的完整调用图。
    • 距离引导的变异策略:模糊测试器会根据当前执行路径所覆盖基本块的“距离”得分来评估和选择种子进行下一步变异。更靠近汇点的路径得分更高,会被优先用于产生新的测试用例,从而引导模糊测试探索更可能包含漏洞的深层路径。

第二阶段:污点分析到POC生成的智能代理 此阶段利用第一阶段收集的精准信息(候选污点源、完整调用图、可达的测试用例),通过两个专门的LLM代理进行深入的漏洞分析和验证。 1. 污点传播代理: * 输入:基于候选污点源和完整调用图,构建出从每个源点到各个汇点的“潜在漏洞路径”。路径上的代码通过反编译工具(如IDA Pro)转换为近似源代码。 * LLM驱动的精准分析:将反编译后的函数代码、相关的源点和汇点信息,通过精心设计的提示词模板提交给LLM(研究中使用DeepSeek-R1)。LLM的任务是进行上下文感知的污点传播分析,判断污点数据是否能从源点流经该函数到达汇点,并考虑诸如消毒函数、别名分析、间接数据依赖等复杂语义。分析以函数为单位,在调用链上迭代进行。 * 提升精度:为了克服反编译代码不准确和LLM可能产生的误判,FirmAgent引入了两个关键步骤:(1) LLM驱动的反编译代码精炼,修正缺失参数或错误的控制流;(2) 基于小样本提示的告警验证模块,专门用于过滤因误解消毒逻辑或系统文件读取而产生的假阳性。 * 输出:经过验证的、高置信度的漏洞告警,包含确切的源点和汇点地址。

  1. POC生成代理
    • 当污点传播代理报告一个漏洞告警时,该代理被触发。
    • 输入:包含两部分信息:(1) 从污点分析过程中提取出的语义约束(如需要满足的条件分支、特定的输入格式要求);(2) 第一阶段模糊测试生成的、能够到达该漏洞源点的具体测试用例(HTTP请求)。
    • LLM驱动的POC合成:LLM分析反编译代码和提取的约束,推断出触发漏洞所需的具体参数值,然后将这些值“填充”或“替换”到模糊测试生成的原始请求模板中,生成一个完整、有效且可执行的POC
    • 输出:可以直接用于在真实设备或仿真环境中验证漏洞的POC输入。

四、主要结果

研究团队在来自Netgear、D-Link、Tenda、Trendnet等主流厂商的14个真实世界IoT固件样本上对FirmAgent进行了全面评估。

  1. 与现有技术的对比结果

    • FirmAgent共报告了200个告警,经确认其中182个为真实漏洞,检测精确率高达91%。这些漏洞包括45个命令注入漏洞和137个缓冲区溢出漏洞。
    • 在这182个漏洞中,有140个是此前未知的零日漏洞,其中17个已被分配了CVE编号
    • 与最先进的静态分析工具相比:Emtaint仅发现10个漏洞,精确率37%;HermesCan发现71个,精确率33%。FirmAgent的漏洞发现数量分别是它们的18.2倍和2.6倍,且精确率大幅提升。
    • 与最先进的动态分析工具相比:Greenhouse发现8个漏洞,精确率40%。FirmAgent的发现数量是其22.8倍。
    • 与混合分析工具相比:Hy-FirmFuzz发现13个漏洞,精确率100%,但发现数量远少于FirmAgent(14倍差距)。分析表明,FirmAgent发现的漏洞完全包含了其他所有工具发现的漏洞(如图6所示),证明了其检测能力的全面性。
  2. 关键组件有效性的量化验证

    • 污点源识别:实验证实,通过模糊测试动态识别的候选污点源100%是真实有效的输入点,彻底消除了静态分析中因误判源点而产生假阳性的根源。
    • 污点传播代理的优越性:将FirmAgent的LLM分析模块替换为Emtaint或HermesCan的传统分析引擎后,精确率分别骤降至44.1%和59.2%,假阳性率显著升高,证明了LLM在理解代码语义、处理别名和消毒逻辑方面的关键作用。
    • 定向模糊测试策略:移除距离引导策略后,系统少发现了6个漏洞,这些漏洞对应着位于更深层执行路径上的源点,证明了该策略对于提升代码覆盖率和发现深度漏洞的重要性。
    • 间接调用解析:禁用动态收集的间接调用信息后,系统少发现了13个漏洞,这些漏洞涉及通过间接调用传递的污点参数,证明了动态解析对于构建准确控制流图的必要性。
    • POC生成效果:在182个真实漏洞中,167个(91.8%)的POC可以直接生效,无需任何手动修改;另外15个只需极少量手动调整即可生效。这极大地减轻了安全研究人员手动验证漏洞的负担。

五、结论与价值

本研究提出并验证了FirmAgent这一创新的混合漏洞检测框架。其核心科学价值在于,它颠覆了传统“混合模糊测试”的范式,不再是在模糊测试循环中频繁、昂贵地调用符号执行或LLM,而是将模糊测试重新定位为一个“信息采集器”,为后续离线、批量的LLM深度静态分析提供精准的“路标”(真实污点源、完整调用图)和“地基”(可达的测试用例)。这种分工协作的模式,有效规避了动态分析中实时求解约束的性能瓶颈和崩溃干扰问题,同时充分发挥了LLM在代码语义理解和推理方面的强大能力。

其应用价值极为显著: * 对安全研究社区:提供了一个高效、精准、自动化的IoT固件漏洞挖掘工具,代码已开源。 * 对企业和制造商:展示了利用先进AI技术进行主动安全防御的可行路径,有助于在产品开发周期或安全审计中提前发现并修复高危漏洞。 * 对漏洞发现流程:将漏洞检测、验证和POC生成自动化地串联起来,将研究人员从海量误报和繁琐的手动验证中解放出来,大幅提升漏洞研究的效率和产出。

六、研究亮点

  1. 范式创新:首次提出“Fuzzing-as-Information-Collector for LLM”的混合架构,为结合动态与静态分析提供了新思路。
  2. 高精度与高检出率并存:通过动态方式保证污点源100%准确,从根本上降低假阳性;通过LLM的深度语义分析保证路径探索的完备性,降低假阴性;最终实现了91%的高精确率和大量零日漏洞的发现。
  3. 端到端自动化:从固件输入到漏洞告警及可执行POC输出,全过程自动化,极大提升了工具实用性。
  4. 组件设计的精巧性:包括距离引导的定向模糊测试、轻量级运行时污点监测、LLM驱动的反编译精炼与告警验证等,每个组件都针对IoT固件分析的难点进行了针对性优化。
  5. 扎实的实证评估:在真实世界、多样化的固件样本集上进行了全面测试,并与多种类型的先进工具进行了细致对比和消融实验,结果令人信服。

七、其他有价值内容

研究也坦诚地讨论了FirmAgent的局限性:首先,其能力依赖于底层固件重托管(Rehosting)框架的成功率,目前并非所有固件都能完美仿真。其次,尽管假阳性已大幅降低,但缓冲区溢出检测中仍存在少量因LLM未能准确推断缓冲区大小关系而产生的误报。作者指出,未来可通过结合检索增强生成或微调等策略来进一步提升LLM对内存语义的理解。这些讨论体现了研究的严谨性和对未来工作的展望。

上述解读依据用户上传的学术文献,如有不准确或可能侵权之处请联系本站站长:admin@fmread.com