[论文解读] jTrans: Jump-Aware Transformer for Binary Code Similarity
jTrans 是一种基于 Transformer 的新型模型,通过引入一种跳转感知架构,将控制流信息整合到二进制代码表示中,从而实现更精确的二进制代码相似性检测。该模型在新发布的 BinaryCorp 数据集上取得了 62.5% 的 F1 分数,较之前最先进(SOTA)方法高出 30.5%,并在实际漏洞检测任务中实现了 2 倍于现有 SOTA 方法的召回率。
Binary code similarity detection (BCSD) has important applications in various fields such as vulnerability detection, software component analysis, and reverse engineering. Recent studies have shown that deep neural networks (DNNs) can comprehend instructions or control-flow graphs (CFG) of binary code and support BCSD. In this study, we propose a novel Transformer-based approach, namely jTrans, to learn representations of binary code. It is the first solution that embeds control flow information of binary code into Transformer-based language models, by using a novel jump-aware representation of the analyzed binaries and a newly-designed pre-training task. Additionally, we release to the community a newly-created large dataset of binaries, BinaryCorp, which is the most diverse to date. Evaluation results show that jTrans outperforms state-of-the-art (SOTA) approaches on this more challenging dataset by 30.5% (i.e., from 32.0% to 62.5%). In a real-world task of known vulnerability searching, jTrans achieves a recall that is 2X higher than existing SOTA baselines.
研究动机与目标
- 解决现有基于自然语言处理(NLP)的模型在捕捉二进制代码中控制流语义方面的局限性。
- 克服当前二进制代码相似性解决方案中对图神经网络(GNNs)和人工设计特征的依赖。
- 在编译器优化和代码转换下,提升二进制代码相似性检测的鲁棒性和准确性。
- 通过发布目前最大且最多样化的二进制数据集 BinaryCorp,为未来研究提供可扩展的高质量基准。
- 通过统一的模型架构,实现对大规模池中两个二进制函数的直接比较,捕捉其相互关系。
提出的方法
- 提出一种跳转感知表示方法,显式建模二进制函数中的控制流跳转(如条件/无条件分支)。
- 设计一种新型自注意力机制,通过引入跳转感知的位置编码来修改注意力计算,从而保留控制流跳转的语义影响。
- 采用强调控制流结构的预训练任务,增强模型学习有意义二进制代码表示的能力。
- 用纯 Transformer 架构替代基于 GNN 的控制流图(CFG)处理方式,提升训练效率和可扩展性。
- 利用学习到的表示,通过向量空间中的余弦相似度计算二进制函数之间的相似性。
- 应用奇异值分解(SVD)分解与理论分析,证明注意力权重对跳转连接的 token 呈正向偏倚,从而验证设计的合理性。
实验结果
研究问题
- RQ1基于 Transformer 的模型是否能在不依赖 GNN 的情况下,有效学习二进制代码中的控制流语义?
- RQ2与标准 NLP 模型相比,引入跳转感知表示在多大程度上提升了二进制代码相似性检测的准确性?
- RQ3所提出的预训练任务在多大程度上增强了模型在多样化二进制代码上的泛化能力?
- RQ4在包含数千个候选二进制函数的大规模相似性搜索场景中,jTrans 的表现如何?
- RQ5在实际漏洞检测任务中,jTrans 是否能超越现有的 SOTA 方法?
主要发现
- jTrans 在 BinaryCorp 数据集上取得 62.5% 的 F1 分数,相比之前 SOTA 方法(32.0%)提升了 30.5%。
- 在一项实际已知漏洞搜索任务中,jTrans 的召回率是现有 SOTA 基线方法的 2 倍。
- 当候选函数池规模扩大至 10,000 个时,该模型仍保持高性能,而先前方法的准确率下降至 20% 以下。
- 理论分析证实,注意力权重对跳转连接的 token 呈正向偏倚,验证了设计的合理性。
- 新发布的 BinaryCorp 数据集是迄今为止最大且最多样化的二进制集合,支持稳健的基准测试。
- jTrans 在性能上优于仅依赖序列指令建模或基于 CFG 的 GNN 模型,证明了集成控制流语义的重要性。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。