New data processing pipelines and novel network architectures increasingly drive the success of deep learning. In consequence, the industry considers top-performing architectures as intellectual property and devotes considerable computational resources to discovering such architectures through neural architecture search (NAS). This provides an incentive for adversaries to steal these novel architectures; when used in the cloud, to provide Machine Learning as a Service, the adversaries also have an opportunity to reconstruct the architectures by exploiting a range of hardware side channels. However, it is challenging to reconstruct novel architectures and pipelines without knowing the computational graph (e.g., the layers, branches or skip connections), the architectural parameters (e.g., the number of filters in a convolutional layer) or the specific pre-processing steps (e.g. embeddings). In this paper, we design an algorithm that reconstructs the key components of a novel deep learning system by exploiting a small amount of information leakage from a cache side-channel attack, Flush+Reload. We use Flush+Reload to infer the trace of computations and the timing for each computation. Our algorithm then generates candidate computational graphs from the trace and eliminates incompatible candidates through a parameter estimation process. We implement our algorithm in PyTorch and Tensorflow. We demonstrate experimentally that we can reconstruct MalConv, a novel data pre-processing pipeline for malware detection, and ProxylessNAS- CPU, a novel network architecture for the ImageNet classification optimized to run on CPUs, without knowing the architecture family. In both cases, we achieve 0% error. These results suggest hardware side channels are a practical attack vector against MLaaS, and more efforts should be devoted to understanding their impact on the security of deep learning systems.
翻译:新数据处理管道和新网络架构日益推动深层学习的成功。 因此,该行业将顶级表现的架构视为知识产权,并投入大量计算资源,通过神经结构搜索(NAS)发现这些架构。这为对手提供了盗取这些新结构的动力;当用于云层时,为机器学习提供服务,对手也有机会利用一系列硬件侧端渠道来重建这些架构。然而,在不理解计算图表(例如层、分支或跳过连接)、建筑参数(例如,熔化层的过滤器数量)或具体的预处理步骤(例如嵌入系统)的情况下,重建新的架构和管道具有挑战性。在本文中,我们设计了一种算法,通过利用少量的缓存侧端网络袭击(Flash+Reload)的信息渗漏来重建新的深层学习系统。在计算图表(例如层、树枝或跳过连接)、建筑参数(例如,熔化层层的过滤器数量)和计算过程(例如)或特定的预处理步骤(例如,嵌化系统)中,我们设计了一个不相容的计算流程,我们用C的计算流程中可以显示一个不相容的流程。