论文标题

ERIC:一个高效且实用的软件混淆框架

ERIC: An Efficient and Practical Software Obfuscation Framework

论文作者

Bolat, Alperen, Çelik, Seyyid Hikmet, Olgun, Ataberk, Ergin, Oğuz, Ottavi, Marco

论文摘要

现代云计算系统将软件可执行文件通过网络分配,以保持软件源通常在安全性群集中编译,该软件源是秘密的。我们开发了ERIC,这是一个新的,高效且一般的软件混淆框架。 ERIC仅通过对人眼可用的软件可执行文件进行加密版本来保护软件免受(i)静态分析,无论该软件如何分发,并且(ii)动态分析,通过保证只能通过单个身份验证设备正确解密和执行的加密可执行文件。 ERIC包括关键的硬件和软件组件,以提供有效的软件混淆支持:(i)硬件解密引擎(HDE)可以在目标设备中有效地解密加密硬件,(ii)编译器可以在只有一个唯一的设备标识的情况下无缝加密软件。硬件和软件组件都是与ISA无关的,使Eric General成为一般。 ERIC的关键思想是使用物理无统治功能(PUF),唯一的设备标识符作为加密软件可执行文件中的秘密密钥。无法在目标设备中访问PUF的恶意派对无法对加密的二进制执行静态或动态分析。我们在FPGA上开发了Eric的原型,以端到端评估它。我们的原型使用硬件解密引擎(HDE)扩展了RISC-V火箭芯片,以最大程度地减少软件解密的开销。我们扩展基于自定义LLVM的编译器,以启用RISC-V可执行文件的部分/完整加密。与火箭芯片基线相比,HDE造成了较小的FPGA资源开销,它需要多2.63%的LUT和3.83%的触发器。基于LLVM的软件加密将编译时间增加15.22%,可执行文件的大小增加了1.59%。 ERIC已公开可用,可以从https://github.com/kasirgalabs/eric下载

Modern cloud computing systems distribute software executables over a network to keep the software sources, which are typically compiled in a security-critical cluster, secret. We develop ERIC, a new, efficient, and general software obfuscation framework. ERIC protects software against (i) static analysis, by making only an encrypted version of software executables available to the human eye, no matter how the software is distributed, and (ii) dynamic analysis, by guaranteeing that an encrypted executable can only be correctly decrypted and executed by a single authenticated device. ERIC comprises key hardware and software components to provide efficient software obfuscation support: (i) a hardware decryption engine (HDE) enables efficient decryption of encrypted hardware in the target device, (ii) the compiler can seamlessly encrypt software executables given only a unique device identifier. Both the hardware and software components are ISA-independent, making ERIC general. The key idea of ERIC is to use physical unclonable functions (PUFs), unique device identifiers, as secret keys in encrypting software executables. Malicious parties that cannot access the PUF in the target device cannot perform static or dynamic analyses on the encrypted binary. We develop ERIC's prototype on an FPGA to evaluate it end-to-end. Our prototype extends RISC-V Rocket Chip with the hardware decryption engine (HDE) to minimize the overheads of software decryption. We augment the custom LLVM-based compiler to enable partial/full encryption of RISC-V executables. The HDE incurs minor FPGA resource overheads, it requires 2.63% more LUTs and 3.83% more flip-flops compared to the Rocket Chip baseline. LLVM-based software encryption increases compile time by 15.22% and the executable size by 1.59%. ERIC is publicly available and can be downloaded from https://github.com/kasirgalabs/ERIC

扫码加入交流群

加入微信交流群

微信交流群二维码

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