李 朋, 侯 銳*
(1.中國科學院 信息工程研究所/信息安全國家重點實驗室, 北京 100093; 2. 中國科學院大學 網絡空間安全學院, 北京 100049)
互聯網給人們帶來了便利和效率提升的同時,也帶來了信息泄露的安全風險。人工智能(Artificial Intelligence, AI)同樣如此。在萬物互聯的信息時代,隨著各個行業在進行“智能+”的改造升級,認識和防范人工智能的安全漏洞日趨嚴峻。尤其在諸如金融支付、自動駕駛和軍事決策等安全敏感的領域,一旦發生安全事件,后果不堪設想。
近年來,以神經網絡(Neural Network)為代表的深度學習技術已經成為人工智能的研究熱點。深度學習技術在目標檢測、語義分割、自動駕駛、智能語音及智能控制等眾多領域發揮了關鍵作用[1-5]。深度學習發展迅速,從最初的感知機概念[6]到全連接神經網絡,再到后來的卷積神經網絡(Convolutional Neural Network, CNN)[7]、遞歸神經網絡(Recurrent Neural Network, RNN)[8]、殘差網絡(Residual Network)[9]、圖神經網絡(Graph Neural Network, GNN)[10]以及最近的基于自注意力的Transformer[11]等,深度學習已經發展到具有幾十層、上百層和具有多個分支以及各種復雜訓練推理算法的深度神經網絡(Deep Neural Network, DNN)[12-15]。
深度學習(Deep Learning)作為人工智能最重要的組成部分,無論在學術界還是工業應用領域,其安全性至關重要。一般來講,深度學習計算系統可劃分為應用層(神經網絡模型本身及其訓練推理算法部分)、工具鏈層(編譯器、算子)及硬件層(異構計算系統、加速器芯片和云計算平臺)3個層次,如圖1所示。相應地,深度學習的安全問題也主要圍繞模型算法層的安全、工具鏈的安全和硬件計算平臺的安全3個方面,通常工具鏈的安全嚴格依賴于模型本身的量化編碼和計算過程,可以將其劃分到應用層。
從應用層到硬件層,深度學習系統安全問題很多。以往的安全研究人員更多地關注模型自身的魯棒性以及其訓練、推理過程中算法層面的安全,而對其硬件計算平臺——深度學習加速器的安全關注較少。尤其在后摩爾定律時代,伴隨著諸如Transformer等許多新型復雜神經網絡結構的提出,針對特定網絡結構或模型算法而定制的專用異構加速器和神經網絡芯片(Network Processing Unit, NPU)應運而生[16],深度學習加速器的安全問題更加凸顯。另一方面,以往硬件研究人員主要聚焦于深度學習加速器在特定應用場景下的推理速度、量化后模型識別的精度,以及系統硬件資源開銷和功耗等問題[17-19],往往忽略深度學習加速器系統特有的安全問題。
基于此背景,本文以計算機視覺為應用場景,對深度學習硬件計算平臺——深度學習加速器系統的安全問題進行了系統綜述,介紹了深度學習加速器領域國內外研究現狀,深度學習加速器系統的關鍵攻擊及防御技術,以幫助研究人員快速、全面地認識深度學習硬件計算系統層面的安全問題,從而為構建人工智能軟硬件協同防御體系作出貢獻。
深度學習基于人工神經網絡,一般來講,深度學習模型由3層或3層以上的神經網絡組成,每層神經網絡包含若干個“神經單元”(感知機),這些“神經單元”模擬人類的神經元,樹突獲得上一層的輸入信息,軸突向下一層傳遞信息,層層連接,形成巨大的神經網絡系統,如圖2所示。
神經網絡通過訓練(Training)來模擬人類的學習行為,訓練后的模型可用來進行推理(Inference)、識別和決策。從數學角度來講,神經網絡訓練過程的本質是以損失函數導數自變量的變化量為學習率,經過多次迭代找到損失函數極小值的漸進試探過程,是求解和優化模型本身權重(weight, w)和偏置(bias, b)等待定系數的過程。深度學習是一種具有優越的特征提取能力的學習方法,神經網絡系統從大量原始數據中自動發現并提取其高層次抽象的內在特征,利用提取特征信息后的固化權重模型進行對未知數據的推理和判斷。
深度學習的起源最早可追溯到1943年,McCulloch等[6]根據生物神經元的結構和工作原理首次提出神經網絡的數學模型,利用計算機構建神經網絡模擬生物大腦的行為,神經網絡的大門由此開啟,該論文至今已被引用2萬余次。1989年,LeCun等[7]首次提出利用卷積神經網絡來識別手寫郵政編碼,卷積神經網絡由此誕生。卷積神經網絡的提出,在深度學習的發展歷史中具有里程碑意義,至今應用廣泛。2012年,Krizhevsky等[17]提出的AlexNet首次采用ReLU激活函數,從根本上解決了梯度消失問題,在ImageNet圖像大賽中獲得碾壓性優勢[17]。2016年3月,由谷歌(Google)旗下DeepMind公司開發的AlphaGo(基于深度學習)與圍棋世界冠軍、職業九段棋手李世石進行圍棋人機大戰,以4比1的總比分獲勝,圍棋界公認阿爾法圍棋的棋力已經超過人類職業圍棋頂尖水平。2017年, Google等團隊提出基于自注意力機制的Transformer[11],該方法被廣泛應用于語音處理和后來的計算機視覺領域(ViT),被認為是深度學習繼卷積神經網絡之后的又一里程碑事件。He等[9]為解決深度神經網絡(Deep Neural Network, DNN)隱藏層過多時的退化問題提出的殘差網絡ResNet,到2021年12月已被引用超過10萬次。
近10年來,神經網絡發展迅猛,除CNN外,研究人員提出了許多具有優越性能的新型網絡,如遞歸神經網絡RNN(Recurrent Neural Network)[8]、生成式對抗網絡GAN(Generative Adversarial Networks)[18]、圖神經網絡GNN(Graph Neural Networks)[10]和Transformer[11]等。此外,諸如聯邦學習(Federated Learning)[20]、時間空間注意力、通道注意力和自注意力等新的深度學習模式和調控機制也不斷涌現并得到應用。從應用領域角度來講,深度學習涵蓋了計算機視覺的圖像處理、目標檢測、語義分割和目標追蹤,深度學習的應用領域還包括自然語言處理(Natural Language Processing, NLP)、文本處理和文本翻譯等,并由此催生了其在人臉支付、自動駕駛、智能醫療、智慧泊車和機器人等具體生活領域的應用。
隨著基于Python的開源深度學習框架Keras、Caffe、Pytorch和TensorFlow等的不斷出現,大大降低了神經網絡的開發門檻,研究人員只需要在相應環境中調用相關函數模塊并配置接口張量維度參數,便可像搭建積木一樣構建出屬于自己的神經網絡。
后摩爾定律時代,隨著半導體能帶理論在低于7 nm時逐漸失效,造成了單位面積上具有穩定電性能的晶體管數量趨于飽和,硅基半導體計算機硬件技術發展受限。
2019年,計算機架構資深學者、圖靈獎獲得者David Patterson和John Hennessy在ACM 雜志上發表文章《計算機架構的新黃金時代》中曾提出:當摩爾定律失效之后,一種更加以硬件為中心的軟硬件協同設計思路——針對特定問題和領域的特殊硬件架構(Domain Specific Architecture, DSA) 將會展現實力,DSA 的例子包括最常見的圖形處理器(Graphics Processing Unit, GPU)、用于深度學習的神經網絡處理器(Network Processing Unit, NPU),以及軟件定義處理器(Software Defined Processor, SDP)等。DSA是一種特定領域的可編程處理器,它仍然是圖靈完備的,但針對特定類別的應用進行了定制[21]。在硬件領域,DSA通常被稱為加速器,因為與在通用CPU上執行整個應用程序相比,DSA可以拆分和加速應用程序的部分或全部。此外,這種加速器具備更好的性能,因為它們更貼近特定領域的計算順序和訪存模式。在特定領域的應用中,DSA 加速器的硬件開銷更少,速度更快,能耗更低,開發周期更短。
在深度學習的計算過程中,無論在訓練階段(Training)還是推理階段(Inference),深度學習模型都有著巨大的計算量需求。隨著不同領域數據集的不斷涌現和神經網絡的不斷發展,更為復雜的網絡模型結構也將會被提出,這種算力需求將變得更為迫切,它對硬件計算能力提出了特殊需求。因此,面向特定領域和特殊神經網絡模型或算法而定制的深度學習加速器應運而生,加速器的產生為深度學習的發展帶來了新的機遇和活力。
深度學習加速器是軟硬件協同設計的產物,是面向軟件算法而定制的硬件結構。深度學習包含訓練階段和推理階段,GPU常用做訓練階段的加速器,而一般所說的加速器,大多指面向模型推理階段而定制的運行時加速器。在加速器中,由于數字電子電路更擅長處理定點運算和移位運算,而一般訓練好的模型權重主要是較長精度的浮點數,需要經過量化(Quantization)處理,將長精度浮點數變為短精度浮點數或定點數,這樣可以大大減小推理過程的計算量,從而獲得性能上的提升[22-23]。實驗證明,這種量化對模型推理和識別的精度影響微小[24-26]。例如Google團隊對ResNet-50網絡的float point-32型權重文件進行了8-bit量化,推理速度提升3倍的同時推理精度的損失只有不到1%[22]。訓練好的神經網絡模型,經過權重量化,再將各層經算子拆分,最后映射到加速器上進行實時的推理和預測,該流程如圖3所示。
1.3.1 加速器設計思路
由于深度學習對硬件平臺的計算能力有較高需求,計算機硬件技術的進步是神經網絡高速發展的強大動力,從最初的通用處理器CPU,到后來適合大吞吐量的高性能圖形處理器,再到專用集成電路(Application Specific Integrated Circuit, ASIC),以及面向特定計算順序和訪存模式而定制的現場可編程門陣列 (Field Programmable Gate Array, FPGA)、CGRA (Coarse-Grained Reconfigurable Array),深度學習硬件計算平臺經歷了一系列的發展。圖4列出了CPU、GPU、ASIC和FPGA 4種典型的硬件計算平臺在性能、靈活性、功耗比、適用性和可編程定制性方面的能力對比。
這些硬件平臺為深度學習提供了強大的計算能力和訪存能力的支持。一般來講,CPU更適用于處理指令調度靈活的通用控制任務,而GPU更加適用于處理有較大數據吞吐量的計算任務,比如實時動畫游戲和神經網絡在特定數據集下的訓練。雖然專用集成電路ASIC在性能功耗比方面比其他硬件平臺具有明顯優勢,但其結構一旦固化便無法修改,硬件開發周期過長,硬件一旦固化,便無法進行可編程配置,這并不適用于發展更新換代較快的深度學習神經網絡的計算[27]。
相比之下,FPGA具有面向特定領域算法、特定計算順序和訪存模式可編程定制的特點,FPGA芯片的硬件資源可以靈活配置和分配,開發周期短,這使得FPGA更加適用于快速發展和靈活多變的神經網絡模型的推理計算。此外,得益于近幾年新興的異構計算技術的崛起,研究人員可以將CPU和FPGA融合到單個片上系統(System on Chip,SoC),這樣就可以將傳統CPU靈活調度優勢和FPGA強大的并行計算能力有機結合,構造出SoC級別的深度學習加速器。加速器系統集成在單顆芯片上可以大大降低CPU和FPGA之間的訪存通訊時間,進一步提高深度學習模型的計算速度。表1列出了幾種常見的深度學習加速器,文獻[28]給出了近10年來幾乎所有的加速器。

表1 深度學習加速器舉例Table 1 Example of deep learning accelerators
此外,可以將FPGA開發過程中成熟的且已驗證正確的深度學習專用計算模塊(深度學習加速器模塊)打包為可移植的IP核(Intelligent Property Core)。這種IP核相當于單個硬件計算模塊,在開發大型計算系統時可以被拿來直接使用。IP核通過片上總線與CPU或其他計算模塊直接連接,這樣可以降低開發成本,縮短開發周期,便于促進深度學習加速器的開源化。目前,主要的FPGA生產廠家有賽靈思(Xilinx,2021年被AMD公司收購)、英特爾(Intel Altera)和中國的復旦微電子等。這些廠商提供性能良好的FPGA芯片,為深度學習加速器的開發提供了很好的平臺,在學術界和工業界備受青睞。
1.3.2 基于FPGA的深度學習加速器
由以上分析可知,FPGA在構建深度學習加速器方面具有特殊優勢,目前已經成為構建深度學習加速器的主流硬件平臺,本小節主要介紹基于FPGA的深度學習加速器。
基于FPGA的深度學習加速器異構計算系統如圖5所示,加速器系統主要由負責調度深度學習模型計算的CPU、負責并行計算的脈動陣列(PE array)、片上緩存、片外主存DRAM以及相應的接口控制器5大部分組成。從硬件方面來看,初期量化好的模型權重文件、模型輸入數據以及負責模型計算的調度主程序,都放在內存DRAM當中。CPU通過運行編譯好的調度程序,將神經網絡逐層拆分,利用各層對應的算子,通過逐層單層計算來復用加速器中的硬件資源。計算完成一層后緩存中間結果,然后再進行下一層的計算,直到最后一層計算完成,輸出整個模型的預測結果。CPU可以通過中斷方式建立與加速器IP核的控制同步,當各層計算完成時加速器IP核發送給CPU一個中斷信號,告訴CPU本次計算完成,然后輸入下一個數據[37]。
在軟件方面,調度程序可直接通過mmap()函數在進程虛擬內存空間的用戶空間建立加速器與外設配置寄存器的直接映射,也可通過系統調用,從用戶空間過度到內核空間,再通過ioremap()函數以IO內存的方式訪問加速器外設。主存與加速器之間的大塊數據搬運可以通過系統調用函數經CPU轉運,也可以通過DMA方式進行[38]。
在優化計算性能方面,可以利用多組寄存器來構造ALU,充分利用數據級并行,構造單指令多數據流(Single Instruction Multiple Data, SIMD)的計算架構,多個PE陣列進行數據級并行計算。在加速器局部存儲的訪問上,通常利用Ping-Pang buffer雙緩沖機制來緩解局部訪存-計算瓶頸,以提高局部數據計算速度。在計算過程中,輸入特征圖(Feature map)矩陣和權重參數矩陣相乘時,可以進行分片(Tile)處理,將分片大小劃分為2n,可以充分發揮二叉樹的累加計算性能。
下面以目前深度學習中最廣泛采用的卷積層(Convolution)運算為例進行論述。相對于全連接層,神經網絡卷積層運算采用了卷積核滑動窗口機制,即卷積核(濾波器)對上一層輸入特征圖進行局部感知,輸出特征圖通道內權重參數共享,這2種機制可以大大減少權重參數的個數。
在卷積層,單個卷積核的通道個數應與輸入特征圖的通道數一致,而輸出特征圖的通道數取決于卷積核的個數。每個卷積核在輸入特征圖上以步幅S移動,每移動一次,在加速器中就進行一次乘加運算。特別地,當卷積核的大小為1×1時,卷積層退化為全連接層。圖6畫出了三通道輸入特征圖在2×2卷積核滑動計算的硬件映射,圖中DFF表示D型觸發器,用來寄存中間結果。
卷積計算過程中由輸入特征圖到輸出特征圖計算過程的算法偽代碼[39]如下:

for (m=0, m FPGA加速器中卷積的計算過程如圖7所示。 加速器的攻防技術主要圍繞硬件進行,然而,加速器是面向深度學習模型算法而定制的專用硬件系統,其安全問題又具有領域相關性,與模型自身安全問題密不可分。因此,本部分先對深度學習模型自身的安全問題進行概括性介紹,然后詳細介紹加速器系統的攻擊技術及防御技術。 對于深度學習模型本身,典型的安全威脅有對抗樣本攻擊(Adversarial Example Attack)[40]、模型逆向攻擊(Model Inversion Attack)[41-42]、模型萃取攻擊(Model Extraction Attack)[43-44]、數據投毒攻擊(Poisoning Attack)[45]和成員推理(Membership Inference Attacks)攻擊[46]等,其中應用最多的為對抗樣本攻擊[47]。 模型萃取攻擊,也稱為模型提取攻擊,是攻擊者通過循環地向深度學習模型發送數據并查看模型相應的響應結果,來推測深度學習模型的參數或功能,從而復制出一個功能相似甚至完全相同的深度學習模型的攻擊方法。這種攻擊方法由Tramèr等[43]在2016年提出。 模型逆向攻擊,該方法利用深度學習系統提供的一些API來獲取模型的一些初步信息,并通過這些信息對模型進行逆向分析,獲取模型內部的隱私數據[41]。2020年,Zhang等[42]借助生成對抗網絡GAN提出了“生成式模型逆向攻擊”,生成式模型逆向攻擊能夠更加準確地反演出被攻擊模型。 數據投毒攻擊是指攻擊者對訓練數據集進行投毒,從而影響已訓練模型在未被污染的測試集上面的表現,降低模型的預測準確率。2019年,Sun等[45]提出針對聯邦機器學習的數據投毒攻擊方法:AT2FL,AT2FL可以有效地推導出有毒數據的隱式梯度,進而計算出聯邦機器學習中最優的攻擊策略。 對抗樣本攻擊是應用最多也是最主要的安全威脅。2013年,Szegedy等[40]首次提出對抗樣本(Adversarial Examples)的概念,其原理是攻擊者通過對輸入數據增加一個定制的微小擾動,可使深度學習模型形成穩定誤判,以實現攻擊目的。對抗樣本攻擊分為白盒攻擊(White-Box Attack)、黑盒攻擊(Black-Box Attack)和物理攻擊(Physical Attack)等[48-50]。另外,根據攻擊后是否預設結果,對抗樣本攻擊可分為有目標攻擊和無目標攻擊[51]。構造對抗樣本的方法很多,常用經典算法有:Box-constrained L-BFGS、快速梯度下降法FGSM、JSMA、單像素攻擊、C&W、Deep Fool和ATNs等[52-53],近兩年研究人員還提出了基于GAN的對抗樣本攻擊[54]。 針對以上安全威脅,研究人員也提出了相應的防御技術。常用的防御方法有對抗訓練(Adversarial training)、樣本檢測、權重枝剪(Weight pruning)、隨機化(Randomization)和去噪(Denoising methods)[55]等,本文在第三部分著重討論加速器硬件層面的安全問題。 從深度學習模型應用接口到底層加速器、存儲系統,從拒絕服務(Denial-of-Service, DoS)到獲取整個模型結構,深度學習加速器系統的攻擊方法眾多[56-58]。從大類別來講,典型的攻擊技術有側信道攻擊(Side-channel Attack)[59-61]、硬件木馬攻擊(Hardware Trojan Attack)[62-65]、故障注入攻擊(Fault-injection Attack)[66-68],以及它們之間的融合攻擊。攻擊方法及基本原理如表2所示。 表2 深度學習加速器系統攻擊技術Table 2 Attack techniques of deep learning accelerator system 3.1.1 側信道攻擊 如圖8所示,側信道攻擊(Side-channel Attack)是利用探測到的一些信道的輸入和輸出信息,來發掘加密系統硬件的弱點,從而繞過加密算法強有力的防護措施。具體來講,側信道攻擊是利用硬件平臺處理密碼算法執行過程中泄漏的與內部運算緊密相關的多種物理狀態信息,如時鐘信息、聲光信息、功耗、電磁輻射以及運行時間等,再結合統計學手段來進行獲取秘鑰相關或其他數據相關的攻擊。常見的側信道攻擊實現方法包括時序側信道攻擊(Timing Side-Channel Attack)、主存測信道攻擊(Memory Side-Channel Attack)、緩存側信道攻擊(Cache Side-Channel Attack)、功耗側信道攻擊(Power Side-Channel Attack)和電磁側信道攻擊(Electromagnetic Side-Channel Attack)等。 在深度學習加速器中,攻擊者可以利用側信道泄露的信息對深度學習模型的信息進行推斷,獲得網絡層級結構,或者獲取加速器中深度學習模型的推理規律,以實現盜取模型信息或根據該信息對推理過程或推理結果實施破壞的目的。 Hua等[69]利用逆向工程,向執行8層AlexNet和18層SqueezeNet模型的加速器中進行試探性輸入,然后觀測片外存儲的Memory Pattern和Timing側信道信息,進而可以推測出潛在的神經網絡結構和零枝剪情況下的模型權重信息,該方法可以繞過強大的加密防御技術。 Jha等[70]提出一種兩階段攻擊方法“DeepPeep”,該方法利用對目標加速器時延、訪存足跡和輸入每幀圖像后的功耗等側信道信息的探測,并與已知加速器的表現進行對比,可用來推測由Dense Block、Channel Shuffling和Depthwise CONV等模塊堆疊而組成的DNN模型結構。 針對公用或租用GPU可以被多個用戶在細粒度級別共享,Naghibijouybari等[59]利用OpenGL發送任務到GPU,這樣攻擊者和受害者就可以交錯使用共享的GPU,通過線程級并行的上下文信息,攻擊者可以通過存儲大小和時間側信道結合CUDA的資源跟蹤API,來推測受害者的DNN模型結構。 Yan等[61]提出利用Cache側信道的“Cache Telepathy”,該方法基于DNN推理嚴格依賴于廣義矩陣相乘GEMM這一規律,根據GEMM的Cache測信道信息可以獲得DNN結構參數信息,實驗表明,該方法可以有效攻擊VGG-16和ResNet-50模型。 3.1.2 硬件木馬攻擊 木馬攻擊包含軟件木馬攻擊和硬件木馬攻擊,硬件木馬(Hardware Trojan)是指硬件設計者或第三方IP核供應商故意留下的惡意電路功能模塊。從功能上來講,硬件木馬包含觸發模塊(Trigger)和實施攻擊的負載模塊(Payload)2個部分,Trigger實時監測硬件執行環境,可以在特定條件下觸發Payload負載,Payload用來實施攻擊。硬件木馬中這些模塊一般潛伏在正常的硬件電路之中,僅在特定條件(通常是攻擊者設計的小概率事件)下被觸發。Trigger一旦觸發,Payload模塊能夠被攻擊者利用,進而對深度學習加速器進行有目的的修改,使原始硬件平臺出現功能規范之外的不期望行為,這些行為可以在硬件層面控制或泄露深度學習模型的數據信息,甚至直接損壞深度學習加速器,使之不能輸出正確結果。 對于硬件木馬攻擊神經網絡加速器的研究,2018年,Clements等[71]基于JSMA 算法在卷積神經網絡加速器中植入了硬件木馬,并成功對MNIST和CIFAR-10數據集進行了攻擊。同年,Ye等[72]提出在深度學習模型輸入的圖像上加上添加0.000 356%的修改便可以100%激活藏在加速器平臺上硬件木馬,從而可以操縱神經網絡模型的預測結果,該硬件木馬只占原始加速器硬件資源開銷的0.005 1%,難以被用戶察覺。 2019年,Zhao等[65]在內存控制器memory controller中注入硬件木馬,通過監測讀寫存儲器的泛洪隨時間的變化時序規律,來推測輸入數據信息。他們利用一種特殊的分形圖像作為輸入來觸發硬件木馬,可以直接控制深度學習加速器的輸出結果。 2020年,Liu等[62]在干凈的AI加速器中加入了一個硬件木馬旁路模塊,將圖像識別中正常的圖像以特定的序列輸入到神經網絡加速器,通過旁路模塊的PRB模塊來檢測該輸入序列,當旁路模塊檢測到事先設定好的特定的輸入序列后,可以觸發該硬件木馬,該方法可以用來躲避深度學習輸入圖像預處理防御技術。 3.1.3 故障注入攻擊 故障注入攻擊(Fault-injection Attacks)又稱為錯誤注入攻擊,是指在硬件層面對深度學習加速器引入幾乎察覺不到的微小的故障或錯誤,從而干擾深度學習的正確計算。 在深度學習加速器中,層內噪聲注入(Noise-injection)[68]和關鍵位反轉攻擊(Bit-flip attack)[66,73]是目前比較成熟的故障注入攻擊。常用的故障注入攻擊是針對深度學習模型的權重(Weight)和偏置(Bias)參數而開展的Bit-Flip Attack攻擊(簡稱BFA)。類似于黑盒攻擊中的單像素攻擊尋找關鍵攻擊像素點的方法,BFA攻擊利用特定方法尋找到對DNN模型魯棒性影響最大的關鍵權重點進行硬件或物理層面的攻擊,攻擊后可使模型預測精確度嚴重降低,甚至使加速器平臺無法正常進行推理。常見的BFA攻擊實現方法有行錘(row-hammer)、時鐘脈沖故障(clock glitch)和電磁類輻射故障(electromagnetic radiation)等。 Rakin等[66-67]提出“關鍵位反轉攻擊”,他們利用損失函數的梯度來尋找權重中對深度學習模型預測精確度影響最大的脆弱位(vulnerable bits),進而實施攻擊。他們發現,對于AlexNet、ResNet-18和ResNet-50模型,分別需要翻轉17位、13位和11位關鍵位就可以將模型平均推理精度降低到0.2%。作為對照實驗,隨機性的翻轉權重的100位對DNN模型準確度卻基本沒有影響。此外,對照實驗表明,權重枝剪(Weight Pruning)和對抗訓練(Adversarial Training)也不能有效防御該方法的攻擊。 Liu等[68]利用噪聲注入的方法,評估了10種DNN模型對內層注入噪聲的敏感性。他們發現對于傳統的卷積網絡(AlexNet和VGG-16),最后一個卷積層是最易受攻擊的。對最后一個卷積層添加0.3%的噪聲,就可以使模型分類精度下降46.3%(AlexNet)和36.3%(VGG-16)。而對于先進的網絡結構(Inception, ResNet和DenseNet),改變模型權重的0.1%,或者改變每個通道維度一個位的擾動,就可以改變整個模型的原始預測結果。 針對深度學習加速器系統的以上攻擊,以及模型自身層面的其他安全威脅,研究人員也提出了硬件加速器層面的防御方法。表3列出了深度學習加速器系統相關的關鍵防御技術及其基本原理。 表3 深度學習加速器系統防御技術Table 3 Defense techniques of deep learning accelerator system 3.2.1 加密與認證 加密(Encryption)與認證(Authentication)是最為經典的安全技術。如圖9所示,信息傳輸過程中的安全威脅主要分為4大類:竊聽、篡改、偽裝和否認,與其對應的安全特性分別為:機密性(Confidentiality)、完整性(Integrity)、認證(Authentication)和不可否認性(Non-repudiation)。具體對應的防御方法分別是加解密、單向散列函數、認證和數字簽名。一般來講,對于深度學習加速器系統,不存在不可否認性這一安全問題。 2019年,Wang等[74]針對Model Inversion Attack 提出深度學習安全加速器架構NPUFort。他們利用AES加密算法的CTR模式對片上加速器的指令流、數據流和控制流的關鍵總線路徑進行加解密,用來防御模型逆向攻擊。該加速器也可以從一定程度上防御側信道攻擊。 Guo等[75]提出基于物理不可克隆函數(Physical Unclonable Functions, PUF)進行模型認證,來保護深度學習模型參數,PUF混淆后的DNN模型參數只能在特定硬件設備上運行。在AlexNet上的實驗表明,僅需0.44%的額外硬件開銷,便使攻擊者的攻擊精度下降到1.2%,而模型性能損失僅為0.83%[76]。 為了保證深度學習計算平臺數據的機密性和完整性,Hua等[77]提出安全的DNN加速器架構GuardNN。他們對利用AES對稱密碼和消息認證碼(Message Authentication Code, MAC)機制實現的FPGA加速器原型系統進行評估,發現加入安全機制后對深度學習推理性能的影響低于2%。 致力于實現實時加密態DNN計算,2021年,Reagen等[78]提出基于全同態加密(Homomorphic Encryption)的深度學習加速器優化策略Cheetah,他們在一個5 nm特殊加速器中將ResNet-50模型的密態計算速度提升到了實時推理。 3.2.2 檢測與監測 檢測(Detection)是指對深度學習加速器的輸入數據,或者內部硬件和模型參數進行潛在安全威脅和漏洞的檢查,以排除諸如對抗樣本和軟硬件木馬等的威脅。監測(Monitoring)是指在深度學習模型計算過程中增加旁路或輔助監視功能模塊,進行實時監測,以排除加速器系統運行時內部或外部出現的各種安全威脅。 2019年,Reshma等[79]提出用深度學習的方法來檢測網表中的硬件木馬。對于一個給定的電路,他們利用深度學習和K-means聚類方法來提取網表中一種稱之為“可控遷移幾率”的值作為木馬標記,該方法在小于6 s的時間內對 ISCAS’85 benchmark電路中木馬感染節點的檢測準確率為100%。 2020年,Wang等[80]提出基于RISC-V的彈性異構深度學習加速器SoC架構DNNGuard,該加速器可以并行、高效地支持2個并行神經網絡的計算:①推理神經網絡的計算;②檢測對抗樣本攻擊的神經網絡的計算。為了降低片外存儲器的訪存開銷和提高硬件資源利用率,DNNGuard架構還引入動態資源調度機制并擴展了AI指令集,在NVDLA開源加速器上的實驗表明,該調度方案可以比Base line加速器實現1.42倍性能的提升。 2021年,Sharma等[81]提出基于部分逆向工程(Partial Reverse Engineering, PRE)的改進方法,利用深度卷積神經網絡(DCNN)來檢測IC 布局版圖中的硬件木馬,該方法在Trust-Hub和ISCAS 數據集上對硬件木馬的檢測精度達到了99%和97%。 3.2.3 可信與隔離 在硬件上建立可信操作區域,對隱私計算進行隔離,常用到可信執行環境(Trusted Execution Environments, TEE)的概念。如圖10所示,TEE的地位相當于一個小的操作系統管理區,TEE允許應用程序在私有區域處理敏感數據,該區域也常被稱作“飛地”,英文譯為enclave。常見的TEE技術有ARM TrustZone技術、Intel的軟件保護擴展SGX技術等。TEE技術常被用到深度學習加速器安全防護當中。 為保證資源有限的移動端用戶中DNN模型的計算速度和安全,Gangal等[82]提出基于ARM TrustZone和SGX的移動可信執行環境HybridTEE。HybridTEE利用“基于目標識別”和“尺度不變特征變換SIFT”2種隱私度量技術,將DNN模型的計算進行隱私感知拆分,將一部分計算送到服務器,并在移動端和服務器之間建立安全傳輸通道,來保證移動端的計算速度和安全。安全和性能評估實驗表明,HybridTEE在保證安全的前提下可將Darknet-19和GoogleNet的推理速度分別提升1.75倍和3.5倍。 為了支持深度學習云計算平臺和諸如GPU等板卡級系統中的大規模數據隱私計算,Zhu等[83]提出板卡級異構可信執行環境HETEE。他們在PCIe總線網上設置HETEE Box作為安全隔離區,利用資源池技術動態劃分計算任務,并利用一個TCB棧來進行安全管理。他們在搭建的HETEE安全硬件平臺上進行了ResNet-152的安全訓練和推理實驗,實驗表明,安全訓練和推理過程中的訪存開銷比一般情況分別降低了0.95% 和2.17%。 2022年,Lee等[84]提出神經網絡加速器可信執行環境TNPU,他們利用一種稱之為“無樹完整性保護 (tree-less integrity protection)”的機制,該機制給CPU enclave中每個計算張量維護一個張量版本號,通過追蹤帶版本號的張量更新的數據流,可以有效地驗證張量中數據的“近代性”,從而可以保護數據的完整性。該方法可以避免傳統的內存硬件保護機制中hash cache不命中而帶來的性能損失,在三星Exynos 990和ARM Ethos N77中的實驗表明,單個NPU的性能平均提高了10.0%和7.5%。 3.2.4 誘騙與干擾 誘騙與干擾是指在加速器的數據訪存過程中,增加一些混淆性的訪存模式,或在常規訪存、計算規律中加入一些干擾,從而使攻擊者得不到透明有效的規律性信息,同時又不帶來繁重的性能開銷。在深度學習加速器中,神經網絡不同層的數據訪問模式是不同的,攻擊者可以通過監測存儲訪問模式的規律,并和已知網絡的訪存模式進行對比,從而推測出模型的內部層間結構。常用的誘騙干擾技術有“不經意隨機訪問(Oblivious RAM, ORAM)”技術,它通過混淆每一次訪問過程,使其與隨機訪問不可區分,從而保護數據的訪問操作、訪問位置等信息。 在深度學習加速器中,為了防止攻擊者利用內存訪問模式側信道對DNN模型進行逆向攻擊,Liu等[85]提出了一種防御性的內存訪問模式,該模式主要基于3種技術:隨機打亂(Oblivious shuffle)、地址空間布局隨機化(Address space layout randomization, ASLR)和偽內存訪問模式(Dummy memory access, DumMA),該方法帶來的內存訪問額外開銷極低,且不會隨著DNN網絡深度的增加而增加。 為了保護深度學習模型權重文件,Zhao等[86]提出基于錯誤掩碼(Error mask)的神經網絡加速器設計方案AEP,他們故意制造少量DRAM時序錯誤單元并產生相應錯誤掩碼,這些錯誤單元的分布只依賴于特定設備時序,并且只能由錯誤掩碼來進行屏蔽。然后,在錯誤掩碼的過濾下進行模型權重的訓練,得到的權重文件只能在本地執行,即使攻擊者竊取訓練的權重文件,也不能有效運行。實驗表明,通過注入0.1%~5.0%錯誤,AEP帶來的本地精度損失可以忽略不計,但在沒有錯誤掩碼的平臺精度損失到基本不能使用。此外,研究人員還通過Cache分區[87]和Cache鎖存[88]等方法來干擾通過Cache側信道攻擊訪存數據。 3.2.5 枝剪與量化 針對對抗樣本攻擊和故障注入等攻擊,研究人員還提出了模型權重層面的枝剪(Pruning)或量化(Quantization)方法進行防御。通過權重的量化或枝剪,可以從模型權重上增強DNN魯棒性和抗攻擊性。 為了防御關鍵位反轉攻擊(BFA),Li等[89]提出一種權重重構的方法,具體來講,在推理過程中對權重進行一種“平均-量化-裁剪”的3步重構操作,BFA引起的權值擾動將會被最小化或擴散到相鄰權重去,該方法可以提升DNN模型在基于梯度的BFA攻擊下的魯棒性。實驗表明,在5輪BFA迭代攻擊下被保護的ResNet-18在ImageNet識別精度保持在60%以上,而沒有保護機制的模型攻擊后識別精度下降到了不足1%。 針對Bit-Flip權重攻擊,He等[90]系統地分析了Bit-Flip攻擊原理,他們發現常規的權重枝剪和對抗訓練并不能有效防御權重Bit-Flip攻擊。基于此,他們提出一種利用“權重二值量化感知訓練”加“分段聚類約束”的防御對策,在ResNet-20和VGG-11模型上的實驗表明,Bit-Flip要實現相同的攻擊效果(如對CIFAR-10數據集的識別精度低于11%),該種防御情況下的模型的位翻轉數量分別需要比無防御情況下提升19.3倍和480.1倍。 Rakin等[91]提出用“動態量化激活DQA”的方法來提高DNN模型的魯棒性,他們將激活函數量化的位寬值作為一個調優參數進行對抗訓練,對抗訓練過程中該參數的調整變化可以在每個激活層抑制和過濾對抗噪聲,對抗學習后的量化寬度可以用來提高模型的魯棒性,從而防御對抗樣本攻擊。LeNet 網絡對MNIST以及Resnet-18 網絡對CIFAR10數據集上的實驗表明,該量化方法在減小計算量的同時,也提高了模型的魯棒性。 3.2.6 隨機化 隨機化是指在訪存、生成密鑰或構造其他數據結構時對操作對象進行隨機化處理,使攻擊者捕獲不到有規律的對象信息,進而達到防御相應攻擊的目的。在深度學習加速器系統的防御技術當中,隨機化技術與前面提到的誘騙、干擾技術有重合之處,然而隨機化這種叫法一直是計算機防御領域里的一種慣例。 2021年,Fu等[92]提出具有對抗魯棒性的加速器軟硬件協同設計框架“2-in-1 Accelerator”,他們利用一種隨機精度開關算法(Random Precision Switch, RPS),在訓練和推理過程中將深度學習模型進行隨機精度的定點量化,然后映射到加速器中,在6種DNN模型和4種數據集上的實驗表明,該方法可以將DNN模型遭受對抗攻擊時的魯棒精度提高24.48%。 Liu等[85]在保護DNN模型計算時內存訪問模式免遭側信道攻擊時,也用了地址空間布局隨機化的技術。 以往軟硬件分離的設計思路中,硬件設計過程中缺乏對軟件構架和實現機制的清晰了解,在系統安全設防時,由于受到設計空間的限制,只能改善硬件/軟件各自的安全性能,不能對系統進行綜合優化,很難充分利用硬軟件資源的交互,難以適應面向特定算法而定制的異構計算系統。軟硬件協同設計是使軟件設計和硬件設計作為一個有機的整體進行并行設計,軟硬件互相影響和配合,在更細粒度級別實現最佳結合,從而使系統獲得更高的工作性能、安全性能。由于深度學習加速器是面向特定領域或算法而定制的硬件計算系統,軟硬件協同是其與生俱來的特點。深度學習加速器系統軟硬件協同防御的路線有2層含義:①用硬件安全機制防御深度學習輸入樣本、模型權重或訓練推理算法過程層面的攻擊;②用優化的模型權重、輸入數據或訓練推理過程來防御硬件層面的攻擊。 隨著EDA技術的發展,深度學習加速器設計人員可以利用高層次綜合(High-level Synthesis, HLS)工具,使用面向對象的高級語言(例如C++、Scala、Chisel和PyGears等敏捷開發語言)來設計針對深度學習模型特定并行計算規模和訪存結構的加速器硬件。 伴隨著諸如全同態加密計算、Transformer加速器、聯邦學習和云加速平臺等計算機技術的不斷進步和神經網絡結構的不斷發展,許多新的安全威脅也會不斷涌現。追求安全和高效的深度學習系統,始終是軟硬件研究人員不斷努力探索的目標。 離開硬件談AI安全是追求無源之水。在硬件領域,研究人員主要聚焦于深度學習加速器在特定領域推理的精度、速度以及訪存帶寬性能的提升,而往往忽略其安全問題。而深度學習的安全領域當中,以往研究人員更多地關注深度學習模型本身的魯棒性以及其訓練、推理過程中算法層的安全問題,而針對其硬件計算平臺——深度學習加速器的安全關注相對較少。尤其在后摩爾定律時代,隨著面向特定神經網絡結構或特定模型算法而定制的專用異構計算系統,以及神經網絡芯片NPU的崛起,深度學習硬件加速器系統的安全問題更加凸顯。 本文從硬件角度入手,系統地分析了深度學習加速器系統的關鍵攻擊及防御技術,以求幫助科研人員或工程技術人員快速了解本領域,為軟硬件協同技術奠定基礎。2 深度學習算法層面安全威脅
3 深度學習加速器關鍵攻防技術
3.1 加速器系統攻擊技術

3.2 加速器系統防御技術

4 軟硬件協同防御
5 結束語