使用DeepSeek-R1在固件漏洞挖掘领域的新实践

一、前 言

在数字化时代,固件是硬件设备的核心软件组件,直接控制着硬件的运行状态和功能,其安全性至关重要。一旦固件存在安全漏洞,黑客即可利用来攻击设备的运行或者控制设备发起其它网络攻击,典型有Mirai病毒利用设备固件漏洞发起大规模的分布式拒绝服务。因此,挖掘固件漏洞对于提升固件的安全具有重要意义。然而,固件漏洞的挖掘存在多个现实的挑战,比如:

(1)固件中的文件类型较多,典型有Bash文件、JavaScript文件、PHP文件、JSP文件、Lua文件、配置文件、可执行文件、动态库文件、内核模块文件等。每类文件的漏洞表达在形式各不同,需要不同的专业知识。

(2)固件中的指令架构多样化,典型有MIPS、PPC、ARM、X86等。每种架构的指令集和调用约定也不同,需要不同的反汇编知识。

(3)固件中的漏洞类型复杂,栈溢出、堆溢出、整数溢出、命令注入、代码执行、反序列化、SSRF等,需要不同的漏洞专业知识。

(4)固件中的文件数量多且无公开文档说明,依赖人工逐一梳理和识别,需要大量人力的重度参与。

随着训练数据规模的不断扩大,AI大模型对软件代码的理解能力愈来愈强,在软件漏洞的挖掘方面也爆发出显著的优势:

(1)大模型有大量编程语言的知识,能对使用不同编程语言开发的软件进行分析。

(2)大模型有大量指令架构的知识,能分析不同架构的汇编指令。

(3)大模型有海量历史漏洞的知识,包括根因信息和补丁信息,能深度分析漏洞。

(4)大模型有海量的跨界知识,能快速进行交叉式的关联分析。

考虑到上述优势,启明星辰ADLab研究员很早便开始了利用AI大模型进行固件漏洞研究的实践。在DeepSeek-R1模型开源后,ADLab第一时间在固件漏洞挖掘上进行了深入实践,发现了R1的巨大优势(即模型推理大幅提升了漏洞判定的精准性),提出了模型协同架构来优化基于R1的固件漏洞挖掘方法。

二、模型推理的价值

在固件漏洞挖掘的实践中,我们发现:推理性大模型的漏洞推理能力对于智能化挖掘十分重要,普通大模型会产生较多误报,导致大量资源消耗在误报漏洞的分析和确认上。

以如下某厂商摄像头固件的函数为例:

其中,18799行存在一个危险函数system调用。该函数的参数源于动态构造的字符串且与参数有关,符合命令注入的典型模式。在实践中,我们发现非推理大模型都认定该函数存在命令注入漏洞,仅有DeepSeek-R1认定该函数不存在命令注入。为了分析原因,我们对各大模型的判定进行了复现。

(1)K模型,漏洞判定如下:

显然,给出的攻击内容在逻辑上是矛盾的。因为v5为16时,a2后续位置的恶意内容是不会以字符串形式被格式化到v7字符串中的。该模型未注意到逻辑矛盾,导致了误报。

(2)H模型,漏洞判定如下:

模型没有对snprintf的格式化过程做推理,直接认定了v6可用于恶意的命令注入,从而导致了后续的误报。

(3)G模型,漏洞判定如下:

在分析v7时,模型没有分析v6的格式可行性,直接依据v6在理论上可能包含shell字符就推断存在漏洞,从而导致了误报。

(4)Q模型,漏洞判定如下:

在分析v5时,模型已确认v5的值类型为整数,但后续却没有使用这个类型信息,也没有推理snprintf的格式信息,从而导致了误报。

(5)D模型,漏洞判定如下:

模型仅仅分析字符串是否为动态构造、是否受外部参数影响,从而不可避免就产生了误报。

(6)DeepSeek-V3(671B),漏洞判定如下:

模型完全没有对v6的格式化进行推理,直接给出了不可能产生的v6数据样例,从而产生了误报。

(7)DeepSeek-R1(671B),漏洞判定如下:

可见,该模型进行了详细的逐步骤推理,精准的识别出参数a1和a2即使被控制也无法注入命令到v6和v5,并根据此信息继续推理出v7的构造也是安全的,最终判定不存在命令注入漏洞。

在实际的漏洞挖掘中,具有典型漏洞特征但最终路径不可达的情况是普遍存在的,智能化挖掘需要推理出这些虚假的漏洞,以减少人工排除误报的资源投入。

为了进一步探索模型推理和模型尺寸对漏洞挖掘的影响,我们对其它尺寸的DeepSeek-R1也进行了漏洞挖掘的复现。

(1)DeepSeek-R1(1.5B),漏洞判定如下:

推理过程完全没有注意到sprintf和system的问题,一个可能的原因是1.5B的基础模型在漏洞知识方面过于匮乏。

(2)DeepSeek-R1(7B),漏洞判定如下:

推理过程关注到了格式化字符串问题,但没有对格式进行推理,导致产生了误报。

(3)DeepSeek-R1(14B),漏洞判定如下:

推理过程关注到了格式问题,但前后的推理逻辑存在矛盾,模型未能发现这个矛盾,导致产生了误报。

(4)DeepSeek-R1(32B),漏洞判定如下:

推理过程有格式分析,但仍然没有注意到前后的格式推断存在矛盾,导致产生了漏洞误报。

(5)DeepSeek-R1(70B),漏洞判定如下:

模型在推理的大部分阶段都认为代码是安全的,但在总结的时候忘记了前面的结论,导致了最后的误报。

经过实践我们发现,针对其它类型的漏洞,同样也只有DeepSeek-R1(671B)的准确性是最好的,其它尺寸都存在较高的误报。因此,我们最终选择了DeepSeek-R1(671B)作为漏洞推理的模型(下文用DS-R1代替DeepSeek-R1)。

三、模型协同的架构

在固件漏洞挖掘过程中,会频繁使用各种工具,包括反汇编工具、可执行文件工具、字符串工具、搜索工具等。在实践中,频繁的工具调用和切换会消耗研究人员的宝贵精力。大模型能够有效的理解人类语言,因此可以利用大模型来自动捕获研究人员的工具意图,从而实现自动化的工具调用和输出捕获。

但是,我们的实践发现:DS-R1模型自身不支持工具调用(即标准function call),而DeepSeek-V3(下文简称DS-V3)的工具调用非常不稳定(经常返回空或者循环调用)。受MoE架构模式的启发,我们设计了多模型的协同架构,即让DS-R1和其它大模型一起协同工作,从而同时具备工具调用和深度推理,架构如下所示:

在这个架构中,一方面固件漏洞挖掘代理(FirmVulAgent)对接了两个模型:DS-R1是推理模型,用于漏洞逻辑的推理;K-Model 是其它支持工具调用的普通模型。漏洞挖掘人员(VulHunter)的指令被FirmVulAgent捕获后,如果是工具调用则会直接传递给K-Model进行工具的意图分析(确定目标工具的名字和参数),然后完成工具的调用。

另一方面,需要让模型DS-R1感知执行的工具调用,否则DS-R1会因为不知道工具调用导致后续不能进行漏洞推理。为了解决这个问题,我们采用了上下文注入的方法。具体来讲:先把K-Model的工具调用上下文消息(即CTX-K)复制一份,然后删除DS-R1不支持的assis-tool消息,最后插入到DS-R1的上下文消息(即CTX-DS)。通过实践,我们发现上下文注入的DS-R1如同实际调用了目标工具,可以直接对工具结果进行推理分析。

在实践中我们还发现,采用如下所示的标准方式调用K-Model并不适合于漏洞挖掘,典型缺陷是工具调用结果失真。

经过实际分析,我们找出了原因。具体来讲:在漏洞挖掘中,工具调用结果(即Response)的内容通常都较长(比如函数代码块、文件字符串信息、文件列表信息、文件导入表信息等),在这些较长数据再次送回模型后,模型的应答数据(即Response2)通常会发生改变,比如内容截断、内容被摘要化、甚至是插入了不存在的内容。

显然,这种方式会导致VulHunter得到失真的结果,从而影响后续的漏洞挖掘工作。比如:文件枚举结果中的关键文件如果被K-Model删除,后续自然就不会对这个关键文件进行挖掘,从而导致潜在的漏洞被遗漏。

我们提出了如下的调用方式:将Response直接返回给VulHunter,以确保VulHunter得到精确的Response;同时,为使K-Model自动感知Response,同步把Response注入到K-Model的上下文CTX-K中,从而实现后续K-Model能自动引用Response。

在实践中,我们还发现上述调用方式有一个额外的优势:降低计算费用,因为Response不用再送回K-Model进行一次必要性不大的计算。

四、模型协同的优势

基于多模型、上下文注入和工具调用新模式,我们探索了DeepSeek-R1和其它大模型的协同工作模式。在这种协同模式下,研究人员能快速执行固件漏洞挖掘的各种任务,包括文件检索、函数引用检索、漏洞推理等。

相比传统方法,这种协同方法具有多个优势:

  • 解放人力:漏洞研究人员无需反复切换各种工具,在统一的操作平面上即可完成漏洞挖掘的各个子操作,把更多精力从繁琐的重复性劳动中解放出来,从而专注于更高阶的工作(比如漏洞根因分析和漏洞利用分析),提升团队的漏洞研究产出。
  • 漏洞挖掘能力,降低人为因素影响:借助于大模型内嵌的海量漏洞知识,能充分地挖掘各种漏洞,避免了研究人员因个人偏好导致的漏洞攻击面和漏洞类型的遗漏,提升了固件漏洞挖掘的全面性。
  • 漏洞推理能力:利用DS-R1的推理能力,对潜在漏洞进行逻辑可满足性的推断,有效克服了普通大模型推断能力差的缺点,大幅降低漏洞误报,避免了研究人员在虚假漏洞分析和确认上的资源浪费。
  • 架构扩展能力:在工具方面,K-Model的工具集可以轻松扩展,从而支持更多更先进的研究工具,提升漏洞挖掘能力。在自动化方面,VulHunter可以被其它Agent替换,从而实现调用双模型进行自动化的漏洞挖掘。
  • 资源配置优化:支持研究人员将自身的挖掘特长和经验以提示词工程的方式嵌入到FirmVulAgent,固化更高效的挖掘实践,实现人和大模型的资源最优化配置。

受益于DS-R1的深度推理能力,模型协同能够发现更多的安全漏洞。如下是TPLink某固件挖掘实践,模型协同发现了2个新的漏洞,并且直接给出了可利用的POC。我们采用人工的代码审计确认了这两个漏洞:其中一个漏洞是由临时文件引起的命令注入,普通大模型忽略了这个问题;另外一个漏洞的输入路径比较复杂,普通大模型在数据依赖上推断失败导致忽略了这个问题。

五、结 语

大模型拥有海量的漏洞基础知识和历史漏洞经验,深入挖掘其能力可以有效提升漏洞挖掘的效率。启明星辰ADLab研究员在实践基于AI大模型的固件漏洞智能化挖掘中,发现了普通大模型和推理大模型的一些限制,并提出了对应的解决办法,设计了DeepSeek-R1和其它大模型协同的挖掘方法,使固件漏洞的挖掘结果更加高效精准、挖掘过程更加友好轻松。

声明:本文来自ADLab,稿件和图片版权均归原作者所有。所涉观点不代表东方安全立场,转载目的在于传递更多信息。如有侵权,请联系rhliu@skdlabs.com,我们将及时按原作者或权利人的意愿予以更正。

上一篇:Akamai 被全球最大科技公司之一选为战略云计算提供商,并达成多年期合作,云基础架构服务投入超 1 亿美元

下一篇:2028年中国ICT市场规模将超7,517亿美元,五年复合增长率6.5%