中文

一种用于指令集架构识别的自然语言处理方法

密码学与安全 2022-04-15 v1 机器学习

摘要

软件的二进制分析是网络取证应用(如程序漏洞评估和恶意软件检测)中的关键步骤。这涉及解释软件执行的指令,并常需要将软件的二进制文件数据转换为汇编语言。转换过程需要关于二进制文件目标指令集架构(ISA)的信息。然而,由于编译错误、部分下载或文件元数据的对抗性破坏,ISA 信息可能未包含在二进制文件中。机器学习(ML)是一种有前景的方法,可用于利用二进制文件目标代码段中的二进制数据识别目标 ISA。本文中,我们提出一种二进制代码特征提取模型,以提高基于 ML 的 ISA 识别方法的准确率和可扩展性。我们的特征提取模型可在缺乏关于 ISA 的领域知识时使用。具体而言,我们改编自然语言处理(NLP)中的模型以 i) 识别二进制代码中常见的连续字节模式,ii) 估计每个字节模式对二进制文件的重要性,以及 iii) 估计每个字节模式在区分 ISA 间的关联度。我们引入编码二进制的字符级特征以识别各 ISA 固有的细粒度位模式。我们使用包含来自 12 种不同 ISA 的二进制文件的数据集来评估我们的方法。实证评估表明,在基于 ML 的 ISA 识别中使用我们的字节级特征比基于字节直方图和字节模式签名的最先进特征准确率高出 8%。我们观察到,字符级特征可将特征集大小减少至多 16 倍,同时将准确率维持在 97% 以上。

关键词

引用

@article{arxiv.2204.06624,
  title  = {A Natural Language Processing Approach for Instruction Set Architecture Identification},
  author = {Dinuka Sahabandu and Sukarno Mertoguno and Radha Poovendran},
  journal= {arXiv preprint arXiv:2204.06624},
  year   = {2022}
}

备注

13 pages, 9 figures, submitted to IEEE TIFS