DeepClap: 一种基于残差对齐网络的漏洞跨模态搜索方法

杜江 ,  魏强 ,  王奕森 ,  白星雨

信息工程大学学报 ›› 2025, Vol. 26 ›› Issue (04) : 478 -484.

PDF (1576KB)
信息工程大学学报 ›› 2025, Vol. 26 ›› Issue (04) : 478 -484. DOI: 10.3969/j.issn.1671-0673.2025.04.015
网络空间安全

DeepClap: 一种基于残差对齐网络的漏洞跨模态搜索方法

作者信息 +

DeepClap: A Cross-Modal Vulnerability Retrieval Method Based on Residual Alignment Network

Author information +
文章历史 +
PDF (1613K)

摘要

针对跨架构二进制代码表示学习中编译器优化、架构差异及代码混淆导致的性能瓶颈问题,以及二进制漏洞数据稀缺对检测模型发展的限制,提出DeepClap框架。该框架通过本地部署量化DeepSeek模型生成代码解释,设计轻量级残差对齐网络降低训练成本并提高表示质量,构建基于自然语言桥梁的漏洞跨模态检测方法,将目标二进制代码关联至源代码漏洞数据集缓解数据稀缺。实验结果表明:在二进制代码相似性分析任务中,该框架使基础模型的受试者工作特征曲线下面积(AUC)最高提升14.8个百分点;在零样本评估中,基础模型准确率最高提升7.1个百分点;在跨模态漏洞搜索任务中达到平均倒数排名(MRR)0.76与召回率@1(Recall@1)0.73。研究表明,该方法有效改善了跨架构条件下的代码表示质量与漏洞检测能力,在数据稀缺和零样本场景中具有显著优势。

Abstract

To address performance bottlenecks in cross-architecture binary code representation learning caused by compiler optimizations, architectural variations, and code obfuscation, while mitigating data scarcity constraints in binary vulnerability detection, the DeepClap framework is proposed. Key innovations include the following aspects. A quantized DeepSeek model for code explanation generation. A lightweight residual alignment network to reduce training costs with enhanced representation fidelity. A natural language processing (NLP) -bridged vulnerability detection method linking target binary code is constructed to source code vulnerability datasets. Experimental results demonstrate the improvement of 14.8% in the baseline model's area under the receiver operating characteristic curve (AUC) for binary code similarity analysis. Zero-shot evaluation shows 7.1 percentage point accuracy enhancement, while cross-modal vulnerability retrieval achieves mean reciprocal rank (MRR) of 0.76 and recall@1 of 0.73. The framework is verified to significantly improve cross-architecture code representation quality and vulnerability detection capability, exhibiting particular effectiveness in data-scarce and zero-shot scenarios.

Graphical abstract

关键词

二进制分析 / 残差对齐 / 跨模态学习 / 漏洞检测 / 大语言模型

Key words

binary analysis / residual alignment / cross-modal learning / vulnerability detection / large language models

引用本文

引用格式 ▾
杜江,魏强,王奕森,白星雨. DeepClap: 一种基于残差对齐网络的漏洞跨模态搜索方法[J]. 信息工程大学学报, 2025, 26(04): 478-484 DOI:10.3969/j.issn.1671-0673.2025.04.015

登录浏览全文

4963

注册一个新账户 忘记密码

0 引言

二进制代码分析在软件安全和恶意软件识别等领域应用广泛。软件复杂性和安全威胁的加剧使得高效分析愈发关键。二进制代码表示学习将机器代码转化为高维语义向量,支撑函数检测、代码相似性分析等任务[1]。然而,编译器优化、代码混淆及架构差异导致传统方法在跨编译器和少样本场景下性能受限[2]。研究证实,相同功能的代码经不同编译器优化后,汇编差异可达30%以上。

CLAP[3]是大语言模型(Large Language Model, LLM)在二进制代码相似性分析中的突破性应用,通过语义解释增强代码表示,显著提升了跨任务迁移能力。该方法无需任务特定训练即可媲美基线全监督方法[4]。当前DeepSeek[5]等新一代开源LLM降低了技术门槛,使得高质量代码解释的生成变得更加高效,为改进CLAP提供了新的机遇。

尽管CLAP等方法取得了显著进展,二进制代码表示学习仍面临以下关键挑战:一是模型可迁移性不足,零样本场景下多数方法的准确率平均下降超30%;二是计算资源消耗与效率问题突出;三是二进制漏洞数据集严重稀缺,企业常以秘密方式修补漏洞而不公开公共漏洞和暴露(Common Vulnerabilities and Exposures, CVE)编号[6],导致高质量数据集匮乏。

针对跨架构二进制代码表示学习中存在的性能瓶颈及二进制漏洞数据集稀缺问题,本文提出DeepClap框架,通过部署32 B Q4量化DeepSeek模型生成高质量代码解释,引入轻量级残差对齐网络实现二进制与源语言的高效低耦合对齐,并创新性地将二进制代码与源码漏洞数据集进行跨模态相似性分析。该框架提出参数高效的残差对齐网络以降低训练成本、提高表示质量;实现漏洞跨模态检测以缓解数据稀缺;利用量化大模型替代复杂数据集生成流程,从而提高系统效率。

1 相关工作

1.1 二进制代码表示学习

1.1.1 原始字节建模方法

多项研究如MalConv[7]、DeepVSA[8]和αDiff[9]采用卷积神经网络(Convolutional Neural Network,CNN)和长短期记忆网络(Long Short-Term Memory,LSTM)等模型直接处理二进制字节序列。这些方法专注于捕获数据依赖关系和提取底层特征,但未深入理解指令级语义或控制流结构。

原始字节建模方法直接处理原始数据,避免了反汇编等预处理步骤,提高了处理效率。其局限性体现在深层语义理解缺失,且对编译器优化、代码混淆及架构差异的适应性较弱。

1.1.2 基于图结构的建模方法

汇编代码的基本块与控制流特性促使研究采用图模型表征控制流图(Control Flow Graph, CFG)。Gemini[1]率先利用图神经网络(Graph Neural Network, GNN)直接从CFG中导出函数嵌入,通过图结构捕获函数间的语义相似性。GMN[10]创新性地提出了基于注意力机制提升图匹配精度。控制流图模型虽能直观反映不同编译器和优化级别下的代码结构差异,但在处理高度优化或混淆的二进制代码时,结构的显著改变会导致模型性能下降。

1.1.3 基于指令序列的建模方法

基于序列的建模方法将汇编代码建模为指令序列,利用语言模型技术生成代码表征。典型方法如Asm2Vec[11]和SAFE[2]将指令类比自然语言词汇,而Trex[12]引入Transformer[13]改进时序建模,jTrans[4]通过改良控制流表征强化上下文感知。这类模型擅长捕捉语义细节,但常忽略控制流图的全局表征。

1.2 LLM与代码理解

1.2.1 LLM在代码理解中的能力

近年来,以基于转换器的生成式预训练模型(Generative Pre-trained Transformers, GPT)为代表的LLM展现出了卓越的源代码理解能力。然而,这些模型在处理汇编代码时表现出明显的局限性。这一现象主要归因于两方面:一是捕获汇编代码中控制流信息的困难;二是预训练语料库中汇编代码的稀缺性。随着DeepSeek[5]等新一代代码特化大模型的出现,这一局限性有所改善,但与源代码理解相比仍有显著差距。

1.2.2 自然语言监督的代码表示学习

CLAP首次采用自然语言监督方法,通过语义解释桥接不同编译版本的二进制代码,增强其语义理解与跨任务迁移能力。该方法引入影子模型(小型代理模型)模拟大语言模型以降低计算成本,但随着大模型本地化部署技术进步,影子模型设计的必要性已显著降低。

1.2.3 模型量化与本地部署技术

随着大型语言模型技术的进步,模型量化成为降低部署门槛的关键技术。量化是指将模型权重从高精度转换为低精度的过程,显著减少模型大小和推理资源需求。模型量化技术通过权重精度压缩(如FP32至INT8)实现轻量化部署,其中Q4量化可将模型体积缩减至原1/8。

2 DeepClap的具体实现

DeepClap框架针对二进制代码表示学习的核心挑战—可迁移性受限、高计算消耗与漏洞数据稀缺,提出模块化架构。该框架通过残差对齐网络实现二进制代码与自然语言的高效语义对齐,并整合大语言模型的解释生成能力,构建漏洞跨模态检测解决方案。

2.1 整体架构与工作流程

图1所示,DeepClap框架包含4个核心阶段:数据对齐准备、数据集构建、模型训练和漏洞查询。其模块化设计支持组件独立升级(如替换更优的基础模型jTrans/Safe),无需重新训练系统。

2.2 数据对齐准备阶段

数据对齐准备阶段的核心目标是建立二进制函数与源代码函数之间的准确映射关系。

2.2.1 数据来源

DeepClap选用BinKit数据集作为主要数据来源。该数据集专为二进制代码相似性分析设计,包含243 128个二进制文件和36 256 322个函数,覆盖51个真实世界的GNU软件包,通过1 352种不同的编译配置生成。这些配置涵盖8种CPU架构、9种编译器版本以及多种优化级别。同时,本研究选取和Binkit中二进制软件包对应的软件项目源代码作为源代码数据。

2.2.2 调试信息提取

在数据对齐准备阶段,本研究采用属性记录调试器(Debugging With Attributed Record Formats, DWARF)工具从含调试信息的二进制文件中提取函数信息。DWARF是一种广泛使用的二进制分析工具,能够从二进制文件的调试信息中精确提取二进制代码与源代码之间的映射关系。具体提取流程如下。

1)函数提取:从含DWARF调试信息的二进制文件中提取函数名称、地址范围和源代码位置信息。

2)源代码映射:根据DWARF提供的位置信息,定位相应源代码文件并提取对应函数定义。

3)验证与过滤:验证映射关系准确性,过滤不完整或存在歧义的映射记录。

2.3 数据集构建阶段

数据集构建阶段的主要任务是生成二进制函数的向量表示和对应源代码函数的自然语言解释向量,为后续对齐学习提供高质量数据。

2.3.1 大语言模型部署

本研究在本地部署了32 B参数版本的DeepSeek模型,并应用Q4量化技术以优化资源使用。为实现高效推理,采用vLLM框架优化推理效率。

2.3.2 源代码函数解释生成

对于每个源代码函数,通过定制化提示词引导DeepSeek模型生成高质量的自然语言解释。为减少随机性影响并提高解释质量,对每个源代码函数生成3次解释。

2.3.3 向量表示生成

数据集构建采用多模态向量转换方法:运用预训练基础模型将二进制函数转为高维向量;将源代码解释通过预训练语言模型向量化,对函数3次解释的向量实施平均池化;组织结构化训练数据集。相较CLAP方法,该方案无需影子模型训练和向量化模型微调,显著提升流程效率。

2.4 模型训练阶段

模型训练阶段的核心是残差对齐网络的训练,通过这一创新网络结构调整二进制函数向量表示,使其与源代码解释向量在语义空间中精确对齐。

2.4.1 残差对齐网络设计

图2所示。

残差对齐网络是本研究提出的核心创新组件,其设计灵感来源于残差学习理念。网络结构如下。

1)输入层:接收二进制函数的向量表示,作为整个网络的输入。

2)残差层:由多个残差块构成。每个残差块包含全连接网络和残差连接两个主要部分。全连接网络负责学习向量表示的调整量,即残差映射Fx )。该全连接网络包含3层权重层,每层权重层后接ReLU激活函数。残差连接将原始输入 x 与全连接网络的输出Fx )相加,形成残差块的输出 y

对于输入向量 x,残差块的输出 y 可表示为

y=ReLUW·ReLUW·ReLUW·x+x

式中:W1W2W3分别表示3个权重全连接网络;ReLU表示激活函数;x表示整个残差对齐网络的输入,也就是向量化的二进制函数;W1的维度为W1Rm×768,由于W1需要对前置的基础模型输出做适配,所以m的尺寸由基础模型的输出决定;W2R768×768W3R768×768,这样的设计保证了对上一模块的兼容,也让输出适配了对源代码自然语言解释做平均池化时的维度。

该网络通过残差学习实现3大优势:1)梯度优化:残差连接维持雅可比矩阵单位项,保障梯度稳定;2)收敛加速:专注学习输入输出差异,降低映射复杂度;3)过拟合抑制:残差连接的正则化效应提升模型泛化能力。

2.4.2 三元组损失函数

为训练残差对齐网络,采用三元组损失函数作为优化目标。损失函数使锚点样本(二进制函数向量)与正例样本(对应源代码解释向量)在特征空间中接近,同时与负例样本(不相关源代码解释向量)远离。三元组损失函数的数学表达式可表示为

Ltriplet=i=1Nmax0, dfai, fpi-dfai, fni+α

式中:ai表示锚点样本,即经过残差对齐网络映射的二进制函数向量;pi表示正例样本,即对应源代码解释向量;ni表示负例样本,即不相关源代码解释向量;d表示特征空间中的距离度量;α表示边界参数,用于控制正负样本之间的最小距离。在DeepCLAP框架中,使用余弦距离作为特征空间中的距离度量,即

dx, y=1-x·yx·y

2.4.3 训练策略

为提高训练效率和模型性能,采用以下策略。

1)批次内负例采样:每个训练批次中,将批次内其他样本的源代码解释向量作为负例。

2)学习率调度:采用余弦退火学习率策略,初期使用较大学习率快速收敛,后期使用小学习率精细调整。

3)早停机制:持续监控验证集性能,当性能不再提升时停止训练,避免过拟合。

这些训练策略能够高效训练残差对齐网络,在最小化参数量和计算资源消耗的情况下实现最佳性能。

2.5 漏洞查询阶段

二进制漏洞检测长期面临数据稀缺问题,高质量的二进制漏洞数据集数量较少。相比之下,源代码级漏洞数据集体量较为丰富。本文提出的跨模态相似性分析方法,搭建了二进制代码与源代码漏洞数据之间的桥梁,有效解决了数据鸿沟问题。

漏洞跨模态检测的基本过程如下。

1)漏洞向量库构建:将源代码漏洞库中的函数通过代码解释生成和向量化,获得源代码漏洞函数向量表示。

2)查询函数向量化:将二进制函数通过基础模型和残差对齐网络,转换为对齐后的二进制函数向量表示。

3)漏洞搜索:计算二进制函数向量与源代码漏洞向量间的余弦相似度,根据相似度排序识别潜在漏洞函数。

3 实验评估

本章将对DeepClap进行全面的测试和评估。所有实验均在Deepseek本地部署的相同硬件环境中进行,旨在回答以下3个问题。

问题1:在二进制代码相似性比对实验中,DeepClap是否有效提升了模型性能?

问题2:在零样本条件下,DeepClap是否有效提升了模型性能?

问题3:在漏洞跨模态搜索任务中,DeepClap是否有效提升了模型性能?

3.1 实验设置

3.1.1 硬件与软件环境

本研究在以下环境中完成了实验评估。对于计算资源,使用配备Intel Xeon Gold 5320处理器(26核52线程)、128 GB内存和NVIDIA L40 GPU(48 GB GDDR6显存)的服务器。

软件环境方面,采用Ubuntu Server 20.04 LTS作为操作系统,PyTorch 2.0作为深度学习框架,CUDA 12.4提供GPU加速。二进制分析工作流依赖IDA Pro 7.6及自定义DWARF信息提取工具。

3.1.2 数据集构建与分析

本研究使用3个相互补充的数据集。

1)BinKit衍生训练集:通过DWARF调试信息处理,筛选出源代码行数大于等于3且CFG基本块数量大于等于4的58 000个函数样本。基于这些函数样本,构造了由查询二进制函数表示、函数自然语言解释正例和负例组成的三元组数据,共计20万条。该数据集按8:1:1比例划分为训练集、验证集和测试集。

2)BinaryCorp零样本评估集:涵盖10个未训练项目(如ImageMagick等),构建10万测试对(正负样本各50%),评估跨架构、编译器及优化模型的泛化能力。

3)OpenSSL漏洞检测数据集:提取22个CVE漏洞函数(含Heartbleed等关键版本),组合9 978个x86-O2优化二进制函数构建检测集(选用O2优化兼顾性能与兼容性),配套漏洞解释向量库实现跨模态匹配。

3.1.3 基线模型与实验配置

为评估DeepClap性能,选取了4个主流基线模型:图神经网络(Gemimi)能捕捉结构特征但依赖人工特征;指令嵌入(SAFE)关注语义关系但对优化代码敏感;Transformer架构(jTrans)通过跳转感知机制编码控制流信息;无残差架构(DeepClap-F)用于消融实验验证残差有效性。

3.1.4 评估指标设置

针对不同实验场景的评估需求,采用3组指标体系。

BinKit数据集相似性比对实验,采用受试者工作特征(Receiver Operating Characteristic,ROC)曲线与ROC 曲线下面积(Area Under the ROC Curve,AUC)值作为核心指标。ROC曲线通过绘制真阳性率(True Positive Rate, TPR)与假阳性率(False Positive Rate, FPR)的关系,反映模型在不同决策阈值下的二分类性能。AUC计算公式为

AAUC=01TTPRFFPR-1xdx

该指标避免单一阈值偏差,与Gemini、SAFE等基线方法保持评估一致性。

BinaryCorp零样本评估采用分类任务中常用的四元组指标,即准确率、精确率、召回率和F1分数。

OpenSSL漏洞搜索采用信息检索领域标准指标平均倒数排名(Mean Reciprocal Rank, MRR)和前1位召回率(Recall@1)。其中MRR的计算公式为

RMRR = 1Q i=1Q1rrank_i

Recall@1的计算公式为

RRecall@1=u=1NItop1uguu=1Ngu

3.2 二进制代码相似性比对实验(问题1)

实验在BinKit数据集上评估DeepClap对基础模型的增强效果,选取Gemini、SAFE和jTrans这3类技术路线的模型,并构建DeepClap-F+jTrans消融基线。所有模型采用原始论文参数配置,使用3.1.2节BinKit训练集的跨架构、编译器和优化级别样本,调整函数向量与源码语义对齐。

评估采用ROC曲线和AUC指标,以全面反映模型在不同决策阈值下的分类性能。实验结果如图3所示。

图3展示了各模型的ROC曲线,表1展示了在DeepClap框架的增强下各个基础模型的性能提升情况。由图3可见,DeepClap框架显著提升了所有基础模型的性能。

表1所示,DeepClap显著提升了各模型的AUC值:Gemini提升6.2个百分点,SAFE实现最大增益14.8个百分点,jTrans仍获4.3个百分点提升。消融实验显示DeepClap-F+jTrans的AUC较完整框架下降3.4个百分点,证实残差对齐网络的关键作用。ROC曲线(图3)与数值结果表明,该框架通过有效知识调整增强了模型的可迁移性和鲁棒性。

3.3 零样本评估实验(问题2)

本研究在BinaryCorp数据集(包含10个未训练开源项目,涵盖x86、ARM、MIPS架构及多编译优化)开展零样本评估。采用Gemini、SAFE、jTrans及其DeepClap组合,通过准确率F1分数等指标测试跨项目泛化能力。

实验采用3.2节中Gemini、SAFE、jTrans这3种基础模型及其与DeepClap的组合,保留DeepClap-F+jTrans作为消融实验基线。评估指标包含准确率、精确率、召回率和F1分数,用以全面衡量模型在零样本条件下的分类性能。

表2所示,DeepClap持续提升各模型性能:从绝对值来看,Gemini准确率提升5.3个百分点,F1分数增长5.3个百分点;SAFE获得最大改善,准确率提升7.1个百分点,F1分数显著提高7.5个百分点;jTrans完整框架下F1分数达到77.6%,较基础模型提升5.5个百分点。消融实验证实残差网络的重要性,DeepClap-F+jTrans准确率较完整模型下降3.5个百分点,F1分数差距达4.1个百分点。实验结果表明,当基础模型零样本性能平均下降20~30个百分点时,框架仍能保持5~8个百分点的稳定提升。

3.4 漏洞跨模态搜索实验(问题3)

为验证DeepClap在真实安全场景中的跨模态匹配能力,设计了OpenSSL漏洞搜索实验。

实验模拟了实际漏洞检测场景。通过OpenSSL漏洞搜索实验验证DeepClap的跨模态匹配能力,采用22个源代码漏洞的自然语言解释向量查询10 000个二进制函数混合集。评估了不同基础模型与DeepClap框架结合的性能。选择Gemini、SAFE、jTrans这3种基础模型与DeepClap框架结合,同时包含DeepClap-F+jTrans作为消融实验基线。

表3所示,DeepClap+jTrans表现最优,MRR达0.76且Recall@1达0.73。其性能相较DeepClap+Gemini提升显著,消融基线的MRR较完整框架下降0.07,证明残差对齐对跨模态迁移的重要性。

4 结束语

本文提出 DeepClap 框架,通过残差对齐网络实现二进制代码与源码语义的高效对齐,构建基于自然语言桥梁的漏洞跨模态检测方法,有效缓解跨架构表示学习性能不足与二进制漏洞数据稀缺问题。通过本地部署量化大模型优化代码解释生成流程,显著提升系统效率。实验表明,该框架有效增强了二进制代码相似性分析能力与零样本泛化性能,在跨模态漏洞搜索中实现了对源码漏洞数据的高效利用。

参考文献

[1]

XU X JLIU CFENG Qet al. Neural network-based graph embedding for cross-platform binary code similarity detection[C]∥Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security. New York,USA: ACM, 2017:363-376.

[2]

MASSARELLI LDI LUNA G APETRONI Fet al. SAFE: self-attentive function embeddings for binary similarity[M]∥Detection of intrusions and malware, and vulnerability assessment. Cham, Switzerland: Springer, 2019:309-329.

[3]

WANG HGAO Z YZHANG Cet al. CLAP: learning transferable binary code representations with natural language supervision[C]∥Proceedings of the 33rd ACM SI- GSOFT International Symposium on Software Testing and Analysis. New York,USA: ACM, 2024:503-515.

[4]

WANG HQU W JKATZ Get al. jTrans: jump-aware transformer for binary code similarity detection[C]∥Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis. New York,USA: ACM, 2022:1-13.

[5]

DEEPSEEK-AI, GUO D YYANG D Jet al. DeepSeek-R1: incentivizing reasoning capability in LLMs via reinforcement learning[DB/OL]. (2025-01-22)[2025-02-10].

[6]

LIU B CMENG G ZZOU Wet al. A large-scale empirical study on vulnerability distribution within projects and the lessons learned[C]∥Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering. New York,USA: ACM, 2020:1547-1559.

[7]

RAFF EBARKER JSYLVESTER Jet al. Malware detection by eating a whole EXE[C]∥Proceedings of the Workshops of the Thirty-Second AAAI Conference on Artificial Intelligence. Washington, USA: AAAI Press, 2018:268-276.

[8]

GUO W BMU D LXING X Yet al. DeepVSA: facilitating value-set analysis with deep learning for postmortem program analysis[C]∥Proceedings of the 28th USENIX Security Symposium. Berkeley, USA: USENIX Association, 2019:1787-1804.

[9]

LIU B CHUO WZHANG Cet al. αDiff: cross-version binary code similarity detection with DNN[C]∥Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering. New York,USA: ACM, 2018:667-678.

[10]

LI Y JGU C JDULLIEN Tet al. Graph matching networks for learning the similarity of graph structured objects[DB/OL].(2019-04-29)[2025-02-11].

[11]

DING S H HFUNG B C MCHARLAND P. Asm2Vec: boosting static representation robustness for binary clone search against code obfuscation and compiler optimization[C]∥Proceedings of the 2019 IEEE Symposium on Security and Privacy. Piscataway,USA: IEEE, 2019:472-489.

[12]

PEI K XXUAN ZYANG J Fet al. Trex: learning execution semantics from micro-traces for binary similarity[DB/OL].(2020-12-16)[2025-02-11].

[13]

VASWANI ASHAZEER NPARMAR Net al. Attention is all you need[C]∥Proceedings of the 31st International Conference on Neural Information Processing Systems. Red Hook, USA:Curran Associates Inc., 2017:6000-6010.

基金资助

国家重点研发计划(2020YFB2010900)

中原英才计划(224200510002)

AI Summary AI Mindmap
PDF (1576KB)

35

访问

0

被引

详细

导航
相关文章

AI思维导图

/