中文

FuncFooler:一种针对基于学习的二进制代码相似性检测方法的实用黑盒攻击

密码学与安全 2022-08-31 v1 人工智能 机器学习

摘要

二进制代码相似性检测(BCSD)方法用于度量两段二进制可执行代码之间的相似性。近年来,基于学习的 BCSD 方法取得了巨大成功,在检测准确率和效率上均优于传统 BCSD。然而,关于基于学习的 BCSD 方法的对抗脆弱性的现有研究相当匮乏,这在安全相关应用中会造成危害。为评估对抗鲁棒性,本文设计了一种高效黑盒对抗代码生成算法,即 FuncFooler。FuncFooler 约束对抗代码 1)保持程序的控制流图(CFG)不变,且 2)保留相同的语义含义。具体而言,FuncFooler 依次执行:1)确定恶意代码中的脆弱候选位置,2)从良性代码中选择并插入对抗指令,以及 3)修正对抗代码的语义副作用以满足约束。经验上,我们的 FuncFooler 能够成功攻击三种基于学习的 BCSD 模型,包括 SAFE、Asm2Vec 和 jTrans,这引发了对基于学习的 BCSD 是否可取的质疑。

关键词

引用

@article{arxiv.2208.14191,
  title  = {FuncFooler: A Practical Black-box Attack Against Learning-based Binary Code Similarity Detection Methods},
  author = {Lichen Jia and Bowen Tang and Chenggang Wu and Zhe Wang and Zihan Jiang and Yuanming Lai and Yan Kang and Ning Liu and Jingfeng Zhang},
  journal= {arXiv preprint arXiv:2208.14191},
  year   = {2022}
}

备注

9 pages, 4 figures