Ache-Fuzz:一种针对分布式深度学习框架中漏洞发现的、具有约束意识的模糊测试技术

《Journal of Systems and Software》:Ache-Fuzz: Constraint-Aware Fuzzing for Vulnerability Discovery in Distributed Deep Learning Frameworks

【字体: 时间:2026年02月11日 来源:Journal of Systems and Software 4.1

编辑推荐:

  确保深度学习库的可靠性需要有效测试框架,但现有方法存在覆盖不足和效果有限的问题。本文提出Ache-Fuzz,通过提取API文档中的约束模式构建合法输入空间,结合分层变异策略动态优化测试用例,在TensorFlow三个版本中发现38个新漏洞(15个获CVE认证)。

  
赵张|罗森林|刘丽媛|潘立民
北京工业大学信息系统与安全及对策实验中心,北京,100081,中华人民共和国

摘要

确保深度学习(DL)库的可靠性和安全性对于现代AI系统及大规模智能计算基础设施的稳健性至关重要。然而,API语义的复杂性和参数约束的多样性使得生成全面有效的测试用例变得具有挑战性。本文提出了Ache-Fuzz,这是一种基于模糊测试的自动化测试框架,旨在增强TensorFlow等DL库中的漏洞发现能力。Ache-Fuzz将基于约束的测试生成与分层变异策略相结合,以构建多样且有效的API输入。它从官方API文档中提取参数约束模式来模拟结构和属性依赖关系,而分层变异机制则系统地增强了边界条件覆盖范围,并促进了API功能的更广泛探索。在三个版本的TensorFlow上的实验评估表明,Ache-Fuzz实现了超过25%的API覆盖率,并识别出38个先前未知的漏洞,其中15个已被分配了CVE标识符。这些结果表明,Ache-Fuzz为提高大规模AI软件系统的稳健性和安全性提供了一种可扩展且有效的方法。

引言

随着深度学习(DL)迅速应用于图像分类(Chen等人,2022年;Touvron等人,2023年;Li等人,2023b年;Yuan等人,2020年)、视频推荐(Wang等人,2023年;Almeida等人,2022年;Tao等人,2023年;Wu等人,2023年)以及自动驾驶(Deng等人,2021年;Cui等人,2022年;Chib和Singh等人,2024年;Badjie等人,2025年)等不同领域,确保DL库的安全性和可靠性已成为一个关键问题(Hatcher和Yu,2018年)。TensorFlow、Theano和CNTK等知名库作为基础软件基础设施,通过标准化的应用程序编程接口(API)抽象了模型设计、训练和部署的复杂性。虽然这些API显著加速了AI应用程序的开发,但它们也扩大了潜在的攻击面。与传统软件系统类似,DL库不可避免地存在潜在漏洞(Islam等人,2019年),对手可以利用这些漏洞发起拒绝服务(DoS)攻击、系统崩溃或在安全关键环境中导致性能下降。现实世界中的事件,例如特斯拉和Uber的自动驾驶系统出现异常行为并导致安全故障,突显了此类漏洞的实际影响。随着DL库越来越多地支撑大规模AI驱动系统和关键基础设施,稳健和系统的漏洞发现对于确保其弹性和可信度至关重要。
为了揭示这些隐藏的缺陷,DL库测试已成为提高系统级安全性和稳健性的基本技术(Go等人,2024年)。当前的方法大致可以分为模型级测试(Zhang等人,2025年)和API级测试(Ji等人,2025年)。模型级测试通常会对预训练的DL模型进行变异,并比较多个后端的输出以检测不一致性。尽管这种方法可以揭示由底层库错误引起的差异,但它存在两个关键限制:(1)区分真实错误和良性不一致性(例如,浮点精度错误)需要精心设计的评估指标;(2)API覆盖范围通常较窄且依赖于模型。例如,像CRADLE(Pham等人,2019年)和LEMON(Islam等人,2019年)这样的知名框架分别仅测试了TensorFlow的35个和59个API。相比之下,API级测试专注于为单个API功能生成多样且针对性的测试输入,从而实现更广泛的覆盖范围和更直接的崩溃及异常行为识别。此外,API级测试不依赖于大型数据集或复杂的协调逻辑,降低了精度损失的风险并简化了执行流程。这些优势使得API级测试成为在DL库中进行可扩展且有效漏洞检测的有希望的方向。
然而,现有的API级DL库测试仍存在一些限制:
  • 漏洞发现的全面性有限。从少量公开API代码示例中衍生的测试用例通常只覆盖DL库中的一部分API功能,导致功能覆盖范围受限。API输入参数的复杂性是这一挑战的重要原因,可以从两个角度进行分析:(1)结构约束:许多API输入参数需要特定的数据结构,如列表、元组或张量,如官方API文档中所定义的。不符合预期结构的输入在初步有效性检查时会被拒绝。因此,这些无效输入无法测试API函数的核心逻辑。(2)属性约束:即使提供了正确的数据结构,还必须满足关于参数属性(如数据类型dtype)和形状的额外要求。例如,dtype定义了数据的预期类型,如int32float64string,而形状指定了数据结构的维度。例如,4×5矩阵表示一个二维张量,第一维有4个元素,第二维有5个元素。违反这些属性约束的测试输入同样会被有效性检查拒绝,从而无法测试API实现的更深层次的功能。
  • 测试用例的有效性不足。现有的变异策略往往忽略了重要的参数属性和边界值,导致触发漏洞的效果降低。例如,FreeFuzz(Wei等人,2022年)基于开源代码片段为目标API构建有效的输入空间,确定输入张量所需的类型和形状,然后通过参数变异生成测试用例。然而,由于提取的参数空间范围有限以及预定义变异规则的刚性,发现的漏洞数量仍然很少。根据模糊测试理论,能够在整个输入空间中触发漏洞的有效测试输入分布稀疏。大多数随机生成的输入不会导致程序失败,只有少数可能会引发异常或崩溃。因此,一个关键挑战是提高测试输入的多样性和有效性,以增加发现有意义漏洞的概率,同时减少无效样本的生成。
我们提出了一种基于模糊测试的DL库测试方法Ache-Fuzz,该方法结合了参数约束模式提取和分层变异策略。Ache-Fuzz构建了一个统一的约束模式来捕获所有相关的参数约束。该模式由七个关键参数属性组成。对于每个属性,提取代表性短语以匹配API文档中指定的约束规则。然后通过融合这些属性约束来生成初始测试输入,以满足每个API的预期输入空间。此外,Ache-Fuzz引入了一种分层变异机制,在该机制中,参数值在属性级别进行变异。每个属性都与一个独立的变异比率相关联,该比率根据最近测试执行的结果动态更新。
本工作的主要贡献总结如下:
  • 我们提出了一个高覆盖率的API级漏洞检测框架,用于DL库。该框架系统地生成满足复杂API输入约束的有效测试输入,从而能够在大量API功能中发现漏洞。
  • 我们引入了一种动态的分层变异机制,通过在属性级别变异参数值来增强测试用例的多样性。这种方法根据最近的测试性能自适应地调整变异比率,从而实现更广泛的输入多样性和在单个API中触发漏洞的可能性增加。
  • 我们在多个版本的TensorFlow上对Ache-Fuzz进行了全面评估。Ache-Fuzz成功发现了27个先前未知的漏洞,其中15个已被分配了官方CVE标识符。这些结果证明了所提出方法在揭示DL库中实际安全问题方面的有效性。
  • 本文的其余部分组织如下。第2节回顾相关工作。第3节介绍Ache-Fuzz方法。第4节在多个版本的TensorFlow上评估该方法。第5节将该方法扩展到PyTorch。第6节讨论了局限性和未来工作。第7节讨论了有效性的威胁,第8节总结了本文。

    相关研究

    相关工作

    在本节中,我们回顾了DL库漏洞发现方面的相关研究。根据技术特点,现有方法可以分为三类:基于模型的测试(Luo等人,2021年)、基于API的测试(Harzevili等人,无日期;Chen等人,2023年)以及基于大型语言模型(LLM)的测试(Lyu等人,2024年)。

    方法概述

    在本节中,我们首先介绍了DL库测试方法Ache-Fuzz的总体架构。然后,我们讨论了Ache-Fuzz方法中的几个重要主题。

    数据来源

    实验数据集包括三个版本的TensorFlow及其相应的API文档。详细信息如下:
    • TensorFlow版本: TensorFlow是最广泛采用的DL库之一。我们在隔离的Python环境中部署每个版本,以确保一致性并避免干扰。版本2.4.0也用于FreeFuzz(Wei等人,2022年;Wei等人,2022年),作为比较基准。版本2.8.0和2.9.0是更新的版本,用于

    扩展到PyTorch

    为了初步证明Ache-Fuzz在TensorFlow之外的通用性,我们在PyTorch上进行了一个小规模的案例研究,如图6所示。具体来说,我们在torch.nn.Conv2d API上实例化了Ache-Fuzz,其文档规定输入必须是一个形状为[N, C, H, W](批量大小、通道数、高度、宽度)的4-D张量。1遵循与TensorFlow相同的工作流程,我们首先提取了参数

    讨论

    Ache-Fuzz在发现由异常参数值引起的漏洞方面表现出强大的能力,特别是那些导致Check fail错误的漏洞,这是TensorFlow中最常见的漏洞类型之一。这些故障通常由违反内部假设的输入触发,例如零维张量、受限上下文中的负值或不兼容的形状。此外,Ache-Fuzz在识别Segfault类型的漏洞方面也非常有效

    有效性的威胁

    根据Feldt和Magazinius(Feldt和Magazinius,2010年)提出的有效性威胁分类,我们从构建有效性、内部有效性、结论有效性和外部有效性的角度讨论了我们研究的潜在威胁。
    构建有效性。构建有效性关注所使用的技术和测量是否准确捕捉了预期的研究构建。Ache-Fuzz依赖于结构化且定义良好的API文档

    结论

    本文提出了Ache-Fuzz,这是一个基于模糊测试的框架,旨在通过增加API覆盖率和测试用例的多样性来增强DL框架中未知漏洞的发现。Ache-Fuzz引入了一个基于七个关键参数属性的统一约束模式,每个属性对应于从API文档中提取的一类不同的约束规则。利用这些规则,该框架为每个API生成有效的初始测试用例。为了进一步改进模糊测试

    CRediT作者贡献声明

    赵张:撰写 – 审稿与编辑,撰写 – 原始草稿,概念化。罗森林:撰写 – 审稿与编辑,方法论,资金获取,概念化。刘丽媛:撰写 – 审稿与编辑,撰写 – 原始草稿,验证,方法论。潘立民:监督,调查。

    利益冲突声明

    作者声明与本文的研究、作者身份和/或出版物没有潜在的利益冲突。
    相关新闻
    生物通微信公众号
    微信
    新浪微博
    • 搜索
    • 国际
    • 国内
    • 人物
    • 产业
    • 热点
    • 科普

    知名企业招聘

    热点排行

      今日动态 | 人才市场 | 新技术专栏 | 中国科学人 | 云展台 | BioHot | 云讲堂直播 | 会展中心 | 特价专栏 | 技术快讯 | 免费试用

      版权所有 生物通

      Copyright© eBiotrade.com, All Rights Reserved

      联系信箱:

      粤ICP备09063491号