Multi-View Few-Shot Malware Classification With Support-Query Prototypes
中文标题:基于支持集—查询集原型的多视图小样本恶意软件分类
发表期刊:TDSC ( Volume: 23, Issue: 2, March-April 2026)
原文作者:Shuhong Chen; Hanjun Li; Sheng Wen; Guojun Wang; Tianqing Zhu; Yang Xiang
研究机构:广州大学,澳大利亚斯威本科技大学
领域:网络安全、恶意软件家族分类、小样本学习(Few-Shot Learning)
一、摘要
人工智能(AI)技术已被广泛应用于恶意软件检测,并显著提升了对网络攻击的防御能力。现有基于深度学习的方法依赖大规模数据进行训练,且通常只能识别预定义类别,因此难以快速应对新型恶意软件攻击。
基于小样本学习的恶意软件分类方法在利用有限数据识别未知恶意软件方面取得了一定进展。然而,现有方法通常只关注单一恶意特征,例如单一的恶意软件图像或 API 调用序列,忽视了恶意软件所具有的多维特性,因此难以获得较高的分类性能。
为应对上述挑战,我们提出了一种用于恶意软件分类的多视图小样本学习方法。具体而言,我们提出了一种多视图恶意特征工程方案,将领域知识与专家经验相结合,从多个角度对恶意软件进行分析。此外,我们提出了一种基于多视图恶意特征的支持集—查询集原型生成方法,用于生成更高质量的恶意软件原型,从而增强对新型恶意软件家族分布的表征能力。
大量实验结果表明,所提出的方法优于现有最先进方法。即使每个家族仅有两个样本,分类准确率仍超过 90%。同时,我们的方法展现出更优的跨数据集识别能力,充分说明了其在不同数据分布下的鲁棒性和泛化能力。
二、引言
在现实场景中,防御恶意软件攻击的难点之一在于其多变性。攻击者使用加密、代码混淆、多态编码、反调试等多种技术[6]逃避分析与检测。另一个重要挑战是训练数据匮乏 ,这严重制约了实用分类模型的构建。新发现的恶意软件家族通常难以快速获得足够的训练数据;同时,样本的采集与标注需要细致的人工检查与专家分析,成本高、耗时长,在许多资源受限的场景下尤其难以实现。因此,在标注数据有限的条件下构建针对新型未知恶意软件的高效检测框架已成为一项迫切需求。
由于现代恶意软件迭代速度快、传播隐蔽 [15,16],基于规则的匹配方法难以有效应对尚未入库的未知恶意软件攻击。尽管基于机器学习与深度学习的分类方法显著提升了特征提取的自动化程度与模型泛化能力,但这类方法仍存在以下局限:第一,在缺乏大规模高质量标注数据时难以训练出有效的分类模型;第二,现有方法只能识别训练集中已有的类别,而新的恶意软件家族不断出现,短期内难以收集足量数据对新流行变种进行有效训练[17]。
为应对这些挑战,近年来研究者开始将基于元学习的小样本学习(FSL)方法应用于恶意软件分类 [18–20]。这种结合充分利用了元学习获取通用知识的能力与小样本学习在少量标注样本下快速学习的优势[21]。尽管这类方法在有限数据下提升了训练效率并增强了对未知恶意软件的分类效果,但往往未能充分挖掘样本的特征潜力,需要通过多维度分析构建更全面的特征提取策略。第二个关键挑战在于如何将特征模式有效学习并迁移到新样本,这需要更准确地刻画恶意软件家族的分布规律。
除上述问题外,现实网络环境的复杂性同样不容忽视。实际场景中的恶意软件很少呈现单一形态,攻击者常通过混淆、多态、加密、反调试等多样化手段逃避检测。这些手段会显著削弱仅依赖单一视图恶意特征的检测方法效果。例如,仅依靠静态图像或操作码序列的方法在攻击者修改文件结构或注入误导性代码片段后极易失效。为此,本文框架重点采用多视图特征工程,从文件元数据、二进制代码、PE 结构、反汇编指令等多个角度全面捕捉恶意行为。
为解决上述挑战,本文提出一种基于多视图恶意特征与支持 - 查询原型网络的小样本恶意软件分类方法。我们从文件元数据、二进制代码、汇编指令、PE 结构等多个维度对恶意软件进行分析并提取特征,为后续分类任务提供全面的信息支撑。同时,本文将查询集信息融入原型生成过程,以更精准地刻画恶意软件家族分布。该方法基于元学习的小样本学习范式,能够在资源受限设备上实现高效学习与推理。在 LargePE 与 VirusShare 数据集上的实验结果表明,该方法优于现有最优的小样本恶意软件分类方法。
本文具体贡献如下:
- 提出一种基于多视图恶意特征与支持 - 查询原型网络的高效小样本恶意软件分类框架,通过多维特征挖掘充分利用样本信息,并借助元知识快速学习少量未知恶意软件样本,实现模型快速适配与未知恶意软件有效分类。
- 提出面向小样本恶意软件分类的多视图恶意特征工程方案,结合领域知识与专家经验从多角度分析恶意软件,提取包括文件元数据、二进制代码、PE 格式、汇编指令在内的多维特征;同时引入 RankGauss 变换算法,将恶意特征分布转换为高斯分布并降低异常值影响。
- 提出一种融合支持集与查询集信息的支持 - 查询原型生成方法,缓解由数据有限带来的过拟合问题,并更精确地描述恶意软件家族分布。
- 大量实验表明,所提方法性能优于现有主流方法,并具备出色的跨数据集泛化能力。
三、相关工作
1. 小样本学习
元学习受到人类问题解决能力的启发,通常被称为“学会学习”,在小样本学习中得到了广泛应用 [38]。小样本学习(Few-Shot Learning, FSL)旨在使模型能够仅利用少量标注数据,就对新任务具备泛化能力。FSL 的核心挑战在于如何有效利用先验知识,以缓解过拟合并提升泛化能力。根据先验知识的利用方式,现有 FSL 策略通常可分为两类:基于优化的方法和基于度量的方法。
基于优化的方法通过在多种训练任务中学习一个通用初始化,使优化器能够快速适应新任务,从而只需少量梯度更新就能在新任务上取得较好性能。典型代表是模型无关元学习(Model-Agnostic Meta-Learning, MAML)[39],它学习一种能够快速适应的通用初始化,但代价是计算成本较高。后续变体如 FOMAML [40] 通过近似梯度来降低复杂度;Mix-MAML [41] 则引入数据增强和偏差缓解策略,以提升任务泛化能力。MetaDiff [42] 将梯度下降重新解释为扩散模型中的条件去噪过程,显著降低了内存负担,并避免了二阶导数的需求。尽管 MetaDiff 在小样本学习中表现较强,但其对扩散动态过程的依赖可能会降低可解释性,并使其在非平稳任务分布下更难调参。
基于度量的方法通过将相似样本映射到相近位置,学习一个有效的度量空间 [43]。这种方法可以理解为学习一个用于比较任务或数据点相似性的函数。典型的基于度量的方法如 ProtoNet [44],它将相似样本映射到高效度量空间中的相近位置,并利用原型进行分类。近期进展包括 Matching Feature Sets(MFS)[45],该方法使用自注意力机制进行多尺度特征提取,突破了传统单一特征向量表示方式。DeepEMD [46] 将小样本图像分类形式化为最优匹配问题,并引入 Earth Mover’s Distance 来匹配稠密图像表示。ProtoLP [47] 将查询样本与原型之间的关系表示为图,并把小样本学习任务形式化为图学习问题。
由于基于度量的方法能够直观地建模类内关系和类间关系,并且具有更好的可解释性,因此在 FSL 中越来越受欢迎。传统恶意软件分类器通常基于大规模数据训练,难以应对不断出现的新型恶意软件家族。小样本学习,尤其是基于度量的方法,为解决这一挑战提供了新的思路。
2. 小样本恶意软件分类
在近期的小样本恶意软件分类研究中,基于图像的表示和二进制代码特征被广泛采用。Tang 等人 [48] 提出了 ConvProtoNet,该方法通过卷积嵌入提取恶意软件图像特征,并使用卷积归纳模块生成原型。Chai 等人 [19] 提出了 DPNSA,该方法利用动态卷积和双样本激活函数来降低特征噪声。Wang 等人 [20] 提出了 Adaptive Graph ProtoNet,利用图神经网络和注意力机制生成定制化原型。Chen 等人 [18] 提出了 DMMal,通过多通道图像编码和锐度感知最小化提升泛化能力。Guo 等人 [49] 通过熵图和对比学习增强鲁棒性,而 MalFSCIL [50] 通过元学习解决类别增量检测问题,但其仍然对基类分布和支持集大小较为敏感。尽管基于图像的方法能够为分类提供直观的视觉模式,但它们往往会掩盖结构语义,并丢失关键的代码级信息,从而限制其捕获恶意软件行为复杂性的能力。
相比之下,也有一些方法强调序列特征和 opcode 级特征。Alfarsi 等人 [51] 将静态 opcode 分析、双向 LSTM、Word2Vec 嵌入和基于度量的分类方法结合起来,以提升低样本场景下的推理能力。然而,该方法仅在基于 x64 的 opcode 序列上进行评估,限制了其在更广泛的非 x64 IoT 架构中的泛化能力。Li 等人 [52] 在这一方向上进一步扩展,通过跨模态注意力机制和加权原型融合,同时结合恶意软件图像和 opcode 序列。
在动态分析方面,Wang 等人 [53] 提出了 SIMPLE。该方法使用 N-gram 和 TF-IDF 算法处理 API 调用序列,并通过聚类为每个类别生成多个原型,以表示该类别的样本分布,最终通过将查询样本匹配到最近原型来完成分类。Chen 等人 [54] 利用 PE-GAN、XOR-GAN 和 TriNet-GAN 在日志、二进制文件和流量等多个维度生成合成安全样本,以缓解数据不平衡并提升检测效果。然而,GAN 训练过程中的不稳定性,例如模式崩溃或样本多样性不足,会给表示未知威胁或规避型威胁带来挑战。
尽管 Zhou 等人和 Li 等人已经探索了用于小样本恶意软件分类的多特征融合方法,但二者在捕获恶意行为复杂性方面仍存在局限。Li 等人的跨模态策略利用了图像和 opcode 特征,但其计算开销较大,并且缺乏领域特定先验知识的融合,因此限制了其建模恶意软件多维特征的能力。Zhou 等人 [55] 提出了 FAMCF,用于小样本 Android 恶意软件家族分类。该方法基于权限、API 调用和 opcode 等静态特征进行度量学习,并结合基于聚类的原型优化。然而,其查询驱动的原型生成依赖预定义的聚类数量以及底层聚类算法的效果,这限制了它适应多样化或不断演化恶意软件行为的灵活性。这些局限表明,有必要设计一种更加自适应的原型生成策略,将领域特定知识与语义优化相结合,从而为鲁棒的小样本恶意软件分类提供更具表达能力和上下文感知能力的表示。
四、方法
论文提出了一种 Multi-View Few-Shot Malware Classification with Support-Query Prototypes 方法。首先,论文从文件元数据、二进制代码、PE 结构和汇编 opcode 四个视角提取恶意软件特征,并使用 RankGauss 归一化降低异常值和尺度差异影响;然后分别使用 FFN、BiGRU 和 1D-CNN 对不同类型特征进行编码,并通过 early fusion 得到统一的多视图表示;最后,论文提出 support-query prototype 机制,将 support set 和 query set 信息共同用于类别原型生成,通过熵感知融合得到更准确的原型,从而提升小样本条件下未知恶意软件家族的分类效果。

1. 多视图恶意特征提取

论文没有只使用单一特征,而是从四个角度分析 PE 恶意软件:
| 视角 | 提取内容 | 作用 |
|---|---|---|
| 文件元数据 | 文件大小、压缩大小、导入导出表、是否加壳、时间戳等 | 捕获文件层面的宏观信息 |
| 二进制代码 | Byte histogram、Hex histogram | 捕获字节级统计分布 |
| PE 结构 | PE section、import table、权限、熵值等 | 捕获 PE 文件结构和语义信息 |
| 汇编代码 | opcode sequence | 捕获程序执行逻辑和潜在行为模式 |
目的是避免单一特征视角信息不足,更全面地描述恶意软件的结构、统计和语义特征。
2. RankGauss 特征变换
对于文件元数据、二进制特征和 PE 结构特征,论文使用 RankGauss transformation 进行归一化处理。
它先对特征值排序,再把排序结果映射到近似高斯分布空间。
作用是:
- 减少异常值影响;
- 统一不同特征的尺度;
- 提升神经网络训练稳定性;
- 增强小样本场景下的泛化能力。
3. 多视图特征向量化

不同类型的特征用不同网络处理,而不是强行统一成一种输入形式:
| 特征类型 | 使用模型 | 原因 |
|---|---|---|
| 文件类特征 | FFN / MLP | 文件元数据没有明显时序关系 |
| PE 结构特征 | BiGRU | PE section 和 import table 具有一定结构/上下文关系 |
| opcode 序列 | Embedding + 1D-CNN | opcode 类似自然语言序列,可捕获局部语义模式 |
最后,论文采用 early fusion,把不同视图得到的特征向量拼接成统一的多视图恶意软件表示。
4. Support-Query Prototype 生成

这是论文方法的核心创新。传统 ProtoNet 通常只用 support set 的平均特征作为类别原型,但在小样本场景下,这种原型容易受噪声和离群样本影响。
论文提出 support-query prototype,同时利用 support set 和 query set 信息生成类别原型,分为四步:
Stage 1:生成 Support Prototype
先对每个类别的 support 样本求平均,得到基础原型。
然后根据每个 support 样本与基础原型的相似度重新加权,使更可靠的样本权重更高,从而生成更稳定的 support prototype。
Stage 2:生成 Query Prototype
support set 和 query set 之间可能存在分布偏移,所以先对 query 特征进行对齐。
然后根据 query 样本与 support prototype 的相似度,对 query 样本进行软分配,生成 query prototype。
Stage 3:熵感知融合
论文根据预测熵来决定更相信 support prototype 还是 query prototype:
- 如果 query 预测置信度高,就更多使用 query prototype;
- 如果 query 预测不确定,就更多依赖 support prototype。
最终得到融合后的 support-query prototype。
Stage 4:分类
对每个 query 样本,计算它与所有 support-query prototypes 的相似度,再通过 softmax 输出类别概率,最后使用交叉熵进行端到端训练。
5. Episode-based Meta-learning 训练
论文采用小样本学习常用的 N-way K-shot episode 训练方式。
每个 episode 相当于一个小分类任务:从 N 个恶意软件家族中,每类只给 K 个 support 样本,模型需要对 query 样本进行分类。
这种训练方式不是学习一个固定分类器,而是学习一种能够快速适应新恶意软件家族的通用分类机制。
五、实验评估
1. 数据集
论文使用两个主要 PE 恶意软件数据集:
| 数据集 | 类别数 | 划分方式 |
|---|---|---|
| LargePE | 208 类 | 100 类训练,58 类验证,50 类测试 |
| VirusShare | 113 类 | 73 类训练,20 类验证,20 类测试 |
实验采用标准 N-way K-shot 设置,包括:
- 5-way 5-shot
- 5-way 10-shot
- 10-way 5-shot
- 10-way 10-shot
训练时每个 epoch 随机采样 100 个 episode,训练 30 个 epoch,初始学习率为 0.001。测试时随机采样 1000 个 episode,并报告平均准确率和 95% 置信区间。
2. 对比方法
论文将本文方法与多类 baseline 进行比较,包括:
| 类型 | 方法 |
|---|---|
| 静态特征方法 | EMBER、PE Header Information |
| 通用 few-shot 方法 | ProtoNet、BDCSPN、FEAT |
| 恶意软件 few-shot 方法 | ConvProtoNet、SIMPLE、DPNSA、AGProto、Li et al. |
这些方法覆盖了恶意软件图像、API 调用序列、opcode 序列、静态 PE 特征、多原型建模等不同技术路线。
3. 主实验结果
本文方法在 LargePE 和 VirusShare 两个数据集上都取得最优结果。

相比 EMBER+BDCSPN,本文方法在 LargePE 的 5-way 5-shot 和 5-way 10-shot 上分别提升 3.11% 和 2.94%。相比基于恶意软件图像的 DPNSA,本文方法在 LargePE 上提升更明显,最高在 10-way 5-shot 场景下提升 9.00%。在 VirusShare 上,本文方法也比 SIMPLE 分别提升 3.66% 和 2.43%。
4. 混淆矩阵分析
论文通过混淆矩阵分析不同恶意软件家族的分类情况。结果显示,大多数家族分类效果接近完美,说明模型能有效捕获静态恶意特征。

但也存在部分类别混淆,例如:
- LargePE 中
Trojan-Downloader.Win32.VB和Trojan-Downloader.Win32.Zanoza容易混淆; - VirusShare 中
Vittalia、Xoror、Mikey容易混淆。
原因是这些家族可能存在相似下载行为、代码复用或传播机制相近。因此论文也指出,未来可以进一步加入更细粒度的行为特征来增强相似家族的区分能力。
6. 跨数据集泛化实验
论文还做了跨数据集实验,即在一个数据集上训练,在另一个数据集上测试。

虽然跨数据集时性能有所下降,但整体仍保持较高准确率,说明模型不是只记住某个数据集特征,而是学到了一定通用恶意软件表示。
7. 消融实验
7.1 多视图特征有效性

论文比较了单一特征和多特征组合的效果。结果表明:
- 单一特征中,Binary-based Feature 效果最好;
- 两类特征组合中,Binary + Assembly 效果最好;
- 所有特征融合,即 File + Binary + Assembly,效果最佳。
这说明多视图特征确实能提供互补信息,比单一恶意软件图像或单一 opcode 序列更能全面描述恶意软件。
7.2 Support-Query Prototype 有效性

论文比较了四种原型策略:
| 原型方式 | 特点 |
|---|---|
| Basic Prototype | 简单平均,容易受噪声影响 |
| Support Prototype | 只利用支持集,稳定但信息有限 |
| Query Prototype | 适应查询集,但容易过拟合 |
| Support-Query Prototype | 同时融合支持集和查询集,效果最好 |
实验结果表明,Support-Query Prototype 在不同数据集和不同 few-shot 设置下整体表现最好。t-SNE 可视化也显示,该原型能更好地贴近 query 样本分布,使类别边界更清晰。
7.3 RankGauss 归一化有效性

论文比较了多种特征归一化方法,包括:
- 无归一化;
- Z-score;
- Robust Scaling;
- Max-Abs Scaling;
- Quantile Transformation;
- RankGauss Transformation。
结果显示,RankGauss 在多数任务中取得最好或接近最好的结果。它能缓解异常值和不同特征尺度带来的影响,更适合小样本恶意软件分类。
8. N-way 和 K-shot 影响分析
论文进一步分析了类别数 N 和样本数 K 对性能的影响。


结论比较符合预期:
- 随着 way 数增加,分类类别更多,任务更难,准确率下降;
- 随着 shot 数增加,每类支持样本更多,原型更准确,准确率上升;
- 即使每类只有 2 个样本,模型仍能保持较高准确率,说明该方法适合新型恶意软件家族的快速识别。
9. 模型复杂度与效率
论文还评估了模型部署开销:

虽然本文方法由于使用多视图特征和多个网络结构,参数量比 ProtoNet、FEAT 等单视图方法更大,但仍小于 Li et al. 的多模态方法。同时,它的内存占用低于多个 baseline,说明该方法在性能和部署开销之间取得了较好平衡。
总结
实验评估表明,本文方法在 分类准确率、跨数据集泛化能力、特征消融、原型消融和模型效率 上都表现较好。多视图恶意特征能够提升恶意软件表示能力,support-query prototype 能够缓解少样本条件下原型不准确的问题,两者结合使模型在未知恶意软件家族分类任务中优于现有方法。
Motivation
现有深度学习恶意软件分类方法通常依赖大量标注数据,并且只能识别训练阶段预定义的恶意软件家族,因此难以及时应对快速出现的新型未知恶意软件。虽然小样本学习可以缓解样本不足问题,但现有方法大多依赖单一特征视角,例如恶意软件图像、API 调用序列或 opcode 序列,难以完整刻画恶意软件的多维特征。
Problem Statement
针对未知恶意软件家族小样本分类问题:在每类仅极少量标注样本下,实现准确、鲁棒的家族分类,同时解决单视图特征不全、原型偏差、特征异常三大缺陷。
Challenges
- 新型恶意软件样本少、标注成本高,传统深度学习模型难以训练
- 单视图特征易受混淆影响,表征不全面
- 小样本下传统原型噪声大、偏差高、不稳定
- 恶意软件特征分布倾斜、异常值多
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)