论文标题

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

FuncFooler: A Practical Black-box Attack Against Learning-based Binary Code Similarity Detection Methods

论文作者

Jia, Lichen, Tang, Bowen, Wu, Chenggang, Wang, Zhe, Jiang, Zihan, Lai, Yuanming, Kang, Yan, Liu, Ning, Zhang, Jingfeng

论文摘要

二进制代码相似性检测(BCSD)方法测量了两个二进制可执行代码的相似性。最近,基于学习的BCSD方法取得了巨大的成功,在检测准确性和效率方面表现优于传统的BCSD。但是,现有的研究在基于学习的BCSD方法的对抗性脆弱性上相当稀疏,这会导致与安全相关的应用程序危害。为了评估对抗性鲁棒性,本文设计了一种高效且黑色的对抗代码生成算法,即FuncFooler。 FuncFooler限制了对抗代码1)使程序的控制流图(CFG)和2)保持不变,以保持相同的语义含义。具体而言,funcfooler连续1)确定恶意代码中的脆弱候选者,2)从良性代码中选择并插入对抗性指令,以及3)纠正对抗性代码的语义副作用以满足约束。从经验上讲,我们的FuncFooler可以成功地攻击包括Safe,ASM2VEC和JTRAN在内的三种基于学习的BCSD模型,它们质疑是否需要基于学习的BCSD。

The binary code similarity detection (BCSD) method measures the similarity of two binary executable codes. Recently, the learning-based BCSD methods have achieved great success, outperforming traditional BCSD in detection accuracy and efficiency. However, the existing studies are rather sparse on the adversarial vulnerability of the learning-based BCSD methods, which cause hazards in security-related applications. To evaluate the adversarial robustness, this paper designs an efficient and black-box adversarial code generation algorithm, namely, FuncFooler. FuncFooler constrains the adversarial codes 1) to keep unchanged the program's control flow graph (CFG), and 2) to preserve the same semantic meaning. Specifically, FuncFooler consecutively 1) determines vulnerable candidates in the malicious code, 2) chooses and inserts the adversarial instructions from the benign code, and 3) corrects the semantic side effect of the adversarial code to meet the constraints. Empirically, our FuncFooler can successfully attack the three learning-based BCSD models, including SAFE, Asm2Vec, and jTrans, which calls into question whether the learning-based BCSD is desirable.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源