← 最新论文
🤖 machine learning

Fool Me If You Can: On the Robustness of Binary Code Similarity Detection Models against Semantics-preserving Transformations

本文提出了名为 asmFooler 的系统,通过构建包含 9,565 个变体的数据集,评估了六种二进制代码相似性检测模型在面对八种保持语义的二进制转换时的鲁棒性,揭示了预处理流程、模型架构及特征选择对鲁棒性的关键影响,并证实了精心设计的微小语义保持转换能有效误导模型决策。

原作者: Jiyong Uhm, Minseok Kim, Michalis Polychronakis, Hyungjoon Koo

发布于 2026-02-16
📖 1 分钟阅读☕ 轻松阅读

原作者: Jiyong Uhm, Minseok Kim, Michalis Polychronakis, Hyungjoon Koo

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文就像是在给二进制代码(电脑程序的“黑盒”)做了一次**“防骗能力大考”**。

想象一下,现在的网络安全界流行一种新技术:用**人工智能(AI)**来当“侦探”。这些 AI 侦探的任务是看两个没有源代码的电脑程序(二进制文件),判断它们是不是“亲兄弟”(代码相似)。如果两个程序长得像,AI 就认为它们可能来自同一个作者,或者一个是另一个的变种(比如恶意软件)。

但是,作者们发现了一个大问题:这些 AI 侦探太容易被“化妆术”骗到了!

1. 核心故事:AI 侦探 vs. 高明的“化妆师”

  • AI 侦探(BCSD 模型): 它们通过观察程序的“骨架”和“肌肉”(指令、控制流图)来认人。
  • 高明的化妆师(攻击者): 他们知道怎么给程序“整容”,让程序看起来完全变了样,但干活的逻辑(功能)一点都没变。这就好比一个人把头发染了、衣服换了、甚至把名字改了,但他还是同一个人,走路姿势和说话逻辑也没变。

作者们开发了一个叫 asmFooler 的系统,专门扮演这个“化妆师”,去测试 6 种最流行的 AI 侦探到底有多容易被骗。

2. 他们用了什么“化妆术”?(8 种变换)

作者们用了 8 种不同的手段来“整容”代码,主要分为两类:

  • 类 A:换个发型,但人还是那个人(代码多样化)

    • 比喻: 就像把一个人的左右手互换,或者把走路顺序从“先迈左脚”改成“先迈右脚”,但人还是那个人。
    • 具体操作: 比如把指令顺序打乱、把寄存器(临时存放数据的盒子)的名字换一换。
    • 结果: 有些 AI 侦探(比如 BinShot)看到顺序变了就懵了,以为这是两个完全不同的人;而有些 AI(比如 Gemini)因为看的是整体结构,所以没被骗。
  • 类 B:往身上贴假发和假胡子(代码混淆/垃圾代码)

    • 比喻: 在程序里插入一堆永远不执行的废话(比如“先推一下,再拉回来”),或者把代码的控制流程画成一个巨大的迷宫。
    • 具体操作: 插入“语义 NOP"(做了又撤销的操作)或“垃圾代码”。
    • 结果: 这就像给侦探眼前撒了一把沙子。很多 AI 侦探看到代码变长了、结构变复杂了,就以为这是新程序,从而漏掉了真正的坏人(假阴性)。

3. 最精彩的反转:不仅能“躲”,还能“反咬一口”

通常大家觉得,只要把程序改得面目全非,让 AI 认不出来(假阴性)就赢了。但作者们玩了一手更绝的:让 AI 把两个完全不相干的人认成亲兄弟(假阳性)。

  • 比喻: 想象两个完全陌生的人(一个是好人,一个是坏人)。攻击者给坏人脸上贴了特定的“贴纸”(精心设计的指令序列),结果 AI 侦探一看:“哇!这贴纸跟那个好人一模一样!他们肯定是亲兄弟!”于是把坏人放行了。
  • 惊人发现: 只需要贴很少的贴纸(平均只加了 14 个指令),就能让 AI 彻底认错人,成功率高达 100%!而且,这种“贴纸”对不同的 AI 侦探都有用(可迁移性),就像一种通用的“迷魂药”。

4. 为什么 AI 会被骗?(核心发现)

作者通过“透视眼”(可解释性 AI 技术,如 SHAP)发现,AI 被骗是因为:

  1. 太依赖“外表”: 有些 AI 太在意指令的顺序或具体的长什么样,一旦顺序乱了,它就瞎了。
  2. 太依赖“骨架”: 有些 AI 太在意控制流图(程序的流程图),一旦把流程图画成迷宫,它就晕了。
  3. 注意力被分散: 当攻击者插入特定的“迷魂指令”时,AI 的注意力被强行转移到了这些无关紧要的地方,忽略了真正重要的特征。

5. 总结与启示

这篇论文告诉我们:

  • 现在的 AI 安全模型很脆弱: 它们虽然很聪明,但很容易被懂行的人用“换皮不换骨”的手段骗过。
  • 没有银弹: 没有一种模型能防住所有攻击。有的模型防得住“换顺序”,却防不住“加迷宫”;有的模型防得住“加废话”,却防不住“改名字”。
  • 未来的路: 要造出更坚固的 AI 侦探,不能只盯着代码的“样子”,得学会看代码的“灵魂”(深层语义),并且要像训练特种兵一样,专门用这些“化妆术”去训练 AI,让它们见多识广,不再轻易上当。

一句话总结:
这篇论文就像给 AI 安全界敲了一记警钟:“别太自信!现在的 AI 侦探很容易被高明的‘代码化妆师’骗得团团转,甚至还能被反手利用,把坏人认成好人。”

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →