x86 平台深度神经网络可执行文件的反编译
密码学与安全
2022-10-05 v2 机器学习
摘要
由于深度学习(DL)模型在异构硬件设备上的广泛使用,DL 编译器将 DL 模型编译为可执行文件以充分利用底层硬件原语。这种方法使得 DL 计算能够以低成本在各种计算平台上进行,包括 CPU、GPU 以及各种硬件加速器。我们提出 BTD(Bin to DNN),一种面向深度神经网络(DNN)可执行文件的反编译器。BTD 接收 DNN 可执行文件并输出完整的模型规格,包括 DNN 算子类型、网络拓扑、维度以及与输入模型(几乎)相同的参数。BTD 提供了一个实用框架,用于处理由不同 DL 编译器编译且在 x86 平台上启用了全部优化的 DNN 可执行文件。它采用基于学习的技术来推断 DNN 算子,利用动态分析揭示网络架构,并借助符号执行来辅助推断 DNN 算子的维度和参数。我们的评估表明,BTD 能够准确恢复具有数百万参数(例如 ResNet)的复杂 DNN 的完整规格。恢复出的 DNN 规格可被重新编译为与输入可执行文件行为一致的新 DNN 可执行文件。我们展示了 BTD 能够增强两类代表性攻击——对抗样本生成与知识窃取——以针对 DNN 可执行文件。我们还演示了使用 BTD 进行跨架构遗留代码复用,并设想 BTD 可用于其他关键下游任务,如 DNN 安全加固与补丁。
引用
@article{arxiv.2210.01075,
title = {Decompiling x86 Deep Neural Network Executables},
author = {Zhibo Liu and Yuanyuan Yuan and Shuai Wang and Xiaofei Xie and Lei Ma},
journal= {arXiv preprint arXiv:2210.01075},
year = {2022}
}
备注
The extended version of a paper to appear in the Proceedings of the 32nd USENIX Security Symposium, 2023, (USENIX Security '23), 25 pages