Learning to Look Benign: Targeted Evasion of Malware Detectors via API Import Injection
作者: Juozas Dautartas, Olga Kurasova, Juozapas Rokas Čypas, Viktor Medvedev
分类: cs.CR, cs.LG
发布日期: 2026-05-18
💡 一句话要点
提出基于API导入注入的恶意软件定向逃逸方法,欺骗机器学习检测器。
🎯 匹配领域: 支柱一:机器人控制 (Robot Control)
关键词: 恶意软件逃逸 对抗攻击 API导入注入 条件变分自编码器 知识蒸馏
📋 核心要点
- 现有基于机器学习的恶意软件检测器易受对抗攻击,攻击者可以通过操纵静态特征来逃避检测。
- 提出一种基于条件变分自编码器(CVAE)的框架,通过添加特定良性软件的API导入,实现恶意软件的定向逃逸。
- 实验表明,该方法能有效降低恶意软件召回率,并使恶意软件被错误分类为目标良性类别,且在真实PE文件中有效。
📝 摘要(中文)
基于机器学习的恶意软件检测器广泛应用于反病毒和终端检测系统,但它们对静态特征的依赖使其容易受到对抗性操纵。本文研究了通过添加少量特定良性软件类别特有的Win32 API导入,在不移除任何现有导入或重新训练检测器的情况下,是否可以将恶意软件样本有意地错误分类为特定的良性软件类别,而不仅仅是“非恶意软件”。我们提出了一个以条件变分自编码器(CVAE)为中心的框架,其解码器是严格可加的。它可以引入新的API调用,但永远不会删除现有的API调用,从而在设计上保留恶意软件的功能。对于每个恶意软件样本,该框架自动识别与其最相似的良性类别,并将其用作逃逸目标。知识蒸馏的可微代理能够针对不可微的集成检测器进行基于梯度的训练。在从3,799个Windows可执行文件中提取的六类二进制Win32 API导入向量(五个良性类别,一个恶意软件类别)数据集上的实验表明,针对实现87.5%恶意软件召回率的检测器,仅添加20个API导入即可将召回率降低到30%。在k=20时,在逃避检测的样本中,99%被分类为预期的目标类别。在每个测试的注入大小(k = 5到50)下,CVAE的性能都优于基于频率的基线和随机选择。在提交给VirusTotal的真实PE文件上的验证证实,该攻击可以转移到商业静态检测引擎,平均减少54.5%的标记引擎。这些发现暴露了基于API的恶意软件分类器中的一个具体漏洞,并证明了通过最小的、功能保留的修改来实现定向逃逸到选定的良性类别是可行的。
🔬 方法详解
问题定义:论文旨在解决恶意软件检测器容易受到对抗攻击的问题,特别是通过操纵API导入来实现逃逸。现有方法要么是通用的逃逸方法,无法指定逃逸的目标类别,要么会破坏恶意软件的功能。因此,痛点在于如何实现定向逃逸,即将恶意软件伪装成特定的良性软件,同时保持其原有功能。
核心思路:论文的核心思路是通过添加特定良性软件类别的API导入,使恶意软件的特征与该类别更加接近,从而欺骗检测器。为了保证恶意软件的功能,只允许添加API导入,不允许删除已有的导入。此外,通过条件变分自编码器(CVAE)来学习不同良性类别的API导入模式,并根据恶意软件的特征选择最相似的良性类别作为逃逸目标。
技术框架:整体框架包含以下几个主要步骤:1) 确定恶意软件样本最相似的良性类别;2) 使用条件变分自编码器(CVAE)生成针对该良性类别的API导入序列;3) 将生成的API导入添加到恶意软件样本中;4) 使用知识蒸馏的可微代理对修改后的恶意软件样本进行训练,以对抗非可微的集成检测器。
关键创新:最重要的技术创新点在于使用条件变分自编码器(CVAE)来生成具有特定良性类别特征的API导入序列,并将其添加到恶意软件中,从而实现定向逃逸。与现有方法相比,该方法能够指定逃逸的目标类别,并且通过只添加API导入的方式,保证了恶意软件的功能。
关键设计:CVAE的解码器被设计为严格可加的,即只能添加新的API调用,而不能删除现有的API调用。损失函数包括重构损失和KL散度,用于训练CVAE生成高质量的API导入序列。此外,使用知识蒸馏的可微代理来近似非可微的集成检测器,以便进行基于梯度的对抗训练。API导入的数量(k)是一个关键参数,控制着攻击的强度和恶意软件的功能保留程度。
🖼️ 关键图片
📊 实验亮点
实验结果表明,针对一个恶意软件召回率为87.5%的检测器,仅添加20个API导入即可将召回率降低到30%。在成功逃逸的样本中,99%被分类为预期的目标良性类别。CVAE方法在所有测试的注入大小(k=5到50)下,均优于基于频率的基线方法和随机选择方法。在VirusTotal上的验证表明,该攻击可以有效降低商业静态检测引擎的检出率,平均减少54.5%的标记引擎。
🎯 应用场景
该研究成果可应用于恶意软件对抗防御领域,帮助安全研究人员更好地理解和评估恶意软件检测器的脆弱性。此外,该方法可以用于开发更鲁棒的恶意软件检测器,提高其对抗对抗攻击的能力。该研究也警示开发者,需要更加关注基于API调用的恶意软件检测方法的局限性,并探索更可靠的检测特征。
📄 摘要(原文)
Machine learning-based malware detectors are widely deployed in antivirus and endpoint detection systems, yet their reliance on static features makes them vulnerable to adversarial manipulation. This paper investigates whether a malware sample can be intentionally misclassified as a specific benign software category, not merely as "not malware", by adding a small number of Win32 API imports characteristic of that selected category, without removing any existing imports or retraining the detector. We propose a framework centered on a Conditional Variational Autoencoder (CVAE) whose decoder is strictly additive. It can introduce new API calls but never remove existing ones, preserving malware functionality by design. For each malware sample, the framework automatically identifies which benign category it most closely resembles and uses that as the evasion target. A knowledge-distilled differentiable proxy enables gradient-based training against the non-differentiable ensemble detector. Experiments on a six-class dataset of binary Win32 API import vectors extracted from 3,799 Windows executables (five benign categories, one malware class) show that, against a detector achieving 87.5% malware recall, adding just 20 API imports reduces recall to 30%. At k=20, among samples that evaded detection, 99% are classified as the intended target category. The CVAE outperforms both a frequency-based baseline and random selection at every tested injection size (k = 5 to 50). Validation on real PE files submitted to VirusTotal confirms that the attack transfers to commercial static detection engines, with an average 54.5% reduction in flagging engines. These findings expose a concrete vulnerability in API-based malware classifiers and demonstrate that targeted evasion into a chosen benign category is achievable with minimal, functionality-preserving modifications.