中文

BinGo:基于图表示学习识别二进制代码中的安全补丁

密码学与安全 2023-12-14 v1 软件工程

摘要

及时的软件更新对于应对日益增多的安全漏洞至关重要。然而,一些软件供应商可能会在不创建 CVE 条目甚至不在其变更日志中描述安全问题的情况下秘密修补其漏洞。因此,识别这些隐藏的安全补丁并防范潜在的 N-day 攻击至关重要。研究人员已经采用各种机器学习技术,利用软件更改的语法和语义特征以及提交信息来识别开源软件中的安全补丁。然而,所有这些解决方案都无法直接应用于二进制代码,因为不同的编译配置会导致其指令和程序流发生巨大变化。在本文中,我们提出了 BinGo,一种用于二进制代码的新型安全补丁检测系统。其主要思想是将二进制代码表示为代码属性图,以实现对程序流的全面理解,并在二进制代码的每个基本块上执行语言模型以捕捉指令语义。BinGo 包含四个阶段,即补丁数据预处理、图提取、嵌入生成和图表示学习。由于缺乏现有的二进制安全补丁数据集,我们通过编译 Linux 内核的补丁前和补丁后源代码构建了这样一个数据集。我们的实验结果表明,在识别两个相邻版本二进制代码之间的安全补丁时,BinGo 的准确率可达 80.77%。此外,BinGo 能有效减少由不同编译器和优化级别引起的假阳性和假阴性。

关键词

引用

@article{arxiv.2312.07921,
  title  = {BinGo: Identifying Security Patches in Binary Code with Graph Representation Learning},
  author = {Xu He and Shu Wang and Pengbin Feng and Xinda Wang and Shiyu Sun and Qi Li and Kun Sun},
  journal= {arXiv preprint arXiv:2312.07921},
  year   = {2023}
}

备注

accepted by ACM ASIA Conference on Computer and Communications Security (AsiaCCS), 2024