G.O.S.S.I.P 阅读推荐 2023-02-23 DNN Executable Decompiler

admin 2023年2月26日17:51:34评论77 views字数 2353阅读7分50秒阅读模式

今天为大家推荐的论文是来自USENIX Security 2023的Decompiling x86 Deep Neural Network Executables,由香港科技大学王帅研究组完成并投稿。

G.O.S.S.I.P 阅读推荐 2023-02-23 DNN Executable  Decompiler

随着深度学习技术的爆发式发展,深度学习(DL)在现实场景中的应用需求不断增加。这种需求导致了深度学习模型被越来越广泛地应用于如物联网设备和移动设备等不同的场景。同时,深度学习的技术突破带来的还有日益增长的算力需求,考虑到包括GPU、CPU和FPGA在内不同硬件所涉及的特性(如存储管理和计算原语)的多样性,在包含嵌入式设备和物联网设备这类低算力设备的广泛硬件平台上部署深度学习模型成为了新的挑战。

为了解决这个问题,一个引人注目的趋势是使用深度学习编译器来管理和优化多平台上的深度学习模型部署。深度学习编译器采用DNN模型规范的统一化表示(例如,ONNX格式)作为输入,并为各种硬件后端生成相应的优化后的低级二进制代码(DNN可执行文件)。例如,由流行的深度学习编译器TVM生成的DNN可执行文件,其性能可与人工优化的机器学习库相媲美,并且可以针对不同的异构硬件后端选择不同的优化策略,最终编译DNN模型为二进制可执行代码。

G.O.S.S.I.P 阅读推荐 2023-02-23 DNN Executable  Decompiler

图1:深度学习编译流程图

然而深度学习二进制的编译技术同样也会引入新的安全隐患。具体而言,DNN可执行文件会在多大程度上泄露原模型的信息?深度学习编译器可以利用特定硬件的特性和抽象来优化DNN计算图。因此,生成的可执行文件展示出与作为输入的原模型的不同表示。然而,作者观察到同一DNN算子(operator)在可执行程序中的不同低级表示通常保持不变的高级语义,比如像ReLU和Sigmoid这样的DNN算子在数学上是严格定义的。如图2所示,这揭示了通过从每个DNN算子的低级表示中提取语义来可靠地恢复高级DNN模型表示的机会。

G.O.S.S.I.P 阅读推荐 2023-02-23 DNN Executable  Decompiler

图2:卷积算子计算过程以及对应的符号表达式形式的算子语义

从DNN可执行文件中提取DNN模型可以推动包括对抗样本(adversarial example)生成、训练数据推断、遗产模型的重用、迁移和加固在内许多后续的安全应用。然而现有的模型提取攻击,无论是基于侧信道的还是基于本地再训练的方法,都会假设特定的攻击环境或者只能提取部分低精度的DNN模型信息。因此,作者提出了第一个DNN可执行文件的反编译器, BTD (Bin to DNN)。如图3所示,给定一个从DNN模型编译而来的可执行文件,作者提出一个三步恢复DNN算子、神经网络拓扑结构(计算图)、DNN模型维度和参数信息的方法。BTD使用机器学习方法将深度学习编译器生成的汇编代码识别并分类为如卷积层、全连接层等DNN算子。之后使用二进制动态分析将DNN算子链接在一起,从而恢复神经网络的拓扑结构。为了进一步恢复DNN算子的维度和参数信息,作者使用基于轨迹的符号执行,从浮点数相关运算中总结并生成DNN算子语义的符号表达式。人类可读的符号表达式展示出在不同编译选项下相应DNN算子的语义是保持不变的。深度学习专家可以通过符号表达式来推断相关算子的更高层次信息,比如算子的维度以及算子参数的内存布局。同时为了完成自动化的反编译过程,作者定义了基于符号表达式的模式以自动恢复算子的维度和参数的内存布局。同时作者引入了污点分析以降低重量级符号执行的成本。

G.O.S.S.I.P 阅读推荐 2023-02-23 DNN Executable  Decompiler

图3:BTD流程图

BTD主要关注于x86平台DNN二进制的分析,但其核心技术是平台无关的。作者使用了表1中所列的三个生产级编译器的八个不同版本编译的DNN可执行文件来评估BTD。这三个编译器分别是由Amazon、Facebook和Microsoft支持的TVM、Glow和NNFusion。在评估过程中,这些编译器开启了完全的优化。评估使用了包括VGG16、Resnet18、Shufflenet、Efficientnet在内CV领域最为著名的图像识别模型。表2报告了所有模型及二进制文件的数据。我们的结果显示BTD能够支持ONNX Zoo中所有用来组成CV模型的DNN算子。同时BTD也是可扩展的,能够在60小时内从65个DNN可执行文件,包含近300万条汇编指令中恢复DNN模型。尤其的是,BTD可以小于0.1%的错误率从VGG模型中恢复超过1亿的参数。此外为了证明BTD输出结果的正确性,作者使用PyTorch重新构建了反编译所得的DNN模型。表3报告了重新构建的模型的重编译结果,实验显示几乎所有的模型都可以被编译成为与原模型行为相等(输出相同的标签以及可信度)的新的DNN可执行文件。作者进一步展示了将DNN可执行文件反编译为DNN模型可以增强包括对抗样本生成和模型知识窃取在内的白盒攻击。

G.O.S.S.I.P 阅读推荐 2023-02-23 DNN Executable  Decompiler
表1:研究中使用的DL编译器
G.O.S.S.I.P 阅读推荐 2023-02-23 DNN Executable  Decompiler
表2:研究中使用的DNN模型及其编译所得二进制的统计数据
G.O.S.S.I.P 阅读推荐 2023-02-23 DNN Executable  Decompiler

表3:反编译所得模型的重编译结果(100%表示与原模型行为一致)


更多BTD的技术细节可以参考已经公开的预印版论文:
https://arxiv.org/abs/2210.01075
同时BTD的代码也已开源 :https://github.com/monkbai/DNN-decompiler

经过USENIX Security AE过程,并被评估为 Available, Functional, Reproduced!


投稿作者介绍:

刘智博

香港科技大学的在读博士生,主要研究方向为逆向工程,计算机安全以及软件工程。相关研究工作发表在ISSTA, IEEE S&P, USENIX Security 等软件工程和安全领域顶会。

个人主页:https://monkbai.github.io


原文始发于微信公众号(安全研究GoSSIP):G.O.S.S.I.P 阅读推荐 2023-02-23 DNN Executable Decompiler

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月26日17:51:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   G.O.S.S.I.P 阅读推荐 2023-02-23 DNN Executable Decompilerhttp://cn-sec.com/archives/1575401.html

发表评论

匿名网友 填写信息