中文

o-glasses:利用一维 CNN 从二进制中可视化 x86 代码

密码学与安全 2018-06-15 v1

摘要

定向攻击中使用的恶意文档文件通常包含一个称为 shellcode 的小程序。由于这些文档文件利用特定漏洞,往往难以为其准备可用于动态分析的可运行环境。在这些情况下,有必要识别每个文档文件中 shellcode 的位置以对其进行分析。如果漏洞利用代码使用 JavaScript 和 Flash 等可执行脚本,定位 shellcode 并不算困难。另一方面,当 shellcode 不包含任何 JavaScript 或 Flash 而仅由原生 x86 代码组成时,有时几乎不可能定位它。二进制片段分类常被用于可视化感兴趣区域的位置,并且即使 shellcode 大部分被混淆(例如其混淆主体的解码器),它也必然至少包含一小段 x86 原生代码。在本文中,我们提出一种新方法 o-glasses,通过 specially 设计的一维卷积神经网络(1d-CNN)识别 x86 原生代码来可视化 shellcode。片段大小需要小至整个 shellcode 中 x86 原生代码的最小尺寸。我们的结果表明,16 条指令序列(平均约 48 字节)足以用于代码片段可视化。我们的方法 o-glasses(1d-CNN)优于其他方法,因为它以惊人的高 F-measure 率(约 99.95%)识别 x86 原生代码。

关键词

引用

@article{arxiv.1806.05328,
  title  = {o-glasses: Visualizing x86 Code from Binary Using a 1d-CNN},
  author = {Yuhei Otsubo and Akira Otsuka and Mamoru Mimura and Takeshi Sakaki and Atsuhiro Goto},
  journal= {arXiv preprint arXiv:1806.05328},
  year   = {2018}
}

备注

21 pages, 15 figures