「你的深度學習框架包含15個漏洞」,360說 | 附論文

注意!你的深度學習框架有漏洞!

這個警告來自360安全實驗室(Qixue Xiao、Deyue Zhang)、喬治亞大學(Kang Li)和弗吉尼亞大學(Weilin Xu)的研究者,他們在一篇論文中,對TensorFlow、Caffe、Torch三個深度學習框架中的第三方軟體包進行了研究,並在其中查找漏洞,最後得出最開頭的研究結論。

儘管這還只是一項初步研究,但研究人員仍然在三個框架中發現了15個漏洞,類型包括:DoS拒絕服務攻擊、躲避攻擊等。

他們說:「深度學習框架是複雜的,重度依賴大量開源軟體包。」這些依賴庫,也正是漏洞的根源。

潛藏風險的依賴庫

一個典型的、用深度學習框架開發出來的AI應用,在部署時往往是這樣的三層結構:

最上面一層,是開發者看得見的深度學習應用,包含應用邏輯、深度學習模型和相應的數據;中間一層是TensorFlow、Caffe等深度學習框架;最下面一層,則是底層框架依賴,也就是深度學習框架所用到的那些組件,比如說OpenCV、GNU LibC、NymPy、以及Google的protobuf等等。

每個深度學習框架,都依賴著大量第三方軟體包。比如說使用最廣泛的TensorFlow,就有97個Python依賴庫;Caffe背後,有137個依賴庫,老牌框架Torch7,也有48個Lua模塊。

深度學習框架的依賴庫

當你訓練圖像識別演算法的時候,也許並不那麼關心Caffe中用到的OpenCV開源庫或者TensorFlow依賴的numpy,但是,風險正蘊含其中。

攻擊從哪來?

要了解深度學習應用可能面臨的風險,就要先清楚它們的攻擊面(attack surface),也就是這類軟體可能受到怎樣的攻擊。

對於不同的應用,可能出現的攻擊多種多樣,不過幾位研究員在論文中總結說,有三個攻擊面,能夠代表絕大部分情況。

他們以MNIST手寫數字數據集為例對這三個攻擊面做了說明:

輸入圖像畸形

深度學習應用在進行分類或識別等任務時,會從文件或者網路讀取輸入數據,在這個環節中,攻擊者可能會構建畸形的輸入。

需要特別說明的是,如果從攝像頭等感測器直接獲取輸入數據,受到這種攻擊的可能性會小很多,但也無法消除。

訓練數據畸形

在構建深度學習應用的過程中,需要用數據對模型進行訓練,而訓練所用的數據集就可能被污染、打上錯誤的標籤。這種攻擊方式叫做數據下毒攻擊(data poisoning

attack)。

模型畸形

如果深度學習開發者使用別人搭建的模型,就可能會遭受這種攻擊。

都不安全

以上面提到的第一個攻擊面(輸入圖像畸形)為例,假設你的輸入數據來自文件或者網路,TensorFlow、Caffe和Torch就有十幾個漏洞,可能遭受DOS拒絕服務攻擊、躲避攻擊或者系統妥協攻擊,比如說下表列出的這些:

相比較而言,TensorFlow算是表現出色的,但其中也有兩個Python軟體包(NumPy和)存在DoS攻擊風險。

開源計算機視覺代碼庫OpenCV中的漏洞最多,總共發現了11處。Caffe和Torch框架中都使用了OpenCV。另外,Caffe中還有圖像處理庫libjasper和圖像瀏覽器OpenEXR的易受攻擊版本。

有意思的是,研究人員還發現如何利用越界寫入(out-of-bounds write)欺騙AI:在OpenCV中,數據指針可以設置為readData函數中的任何值,然後可以將指定的數據寫入數據指向的地址。即可以用來改寫分類結果。

OpenCV的例子如下:

我們來詳細看一下這幾類攻擊:

威脅一、DoS拒絕服務攻擊

我們在深度學習框架中發現,最常見的漏洞是軟體錯誤,導致程序崩潰,或者進入死循環,或者耗盡所有的內存。

威脅二、躲避攻擊

面對脆弱的深度學習框架,攻擊者可以利用軟體漏洞實施躲避攻擊,例如:1、通過漏洞覆蓋分類結果,修改特定內存內容 2、劫持控制流程以跳過或重新排序模型執行。

威脅三、系統妥協

攻擊者可以利用漏洞劫持控制流,或者遠程控制託管深度學習應用的系統。這個情況發生在深度學習應用作為雲服務運行,並從網路輸入饋送時。

這項研究,已經在敦促框架開發者對安全性進行改進了。作者們在論文中說:「我們的研究結果已經得到相關開發商的證實,其中很多已經根據我們的建議進行了修補。」

論文

最後,附上相關論文:

Security Risks in Deep Learning Implementations

Qixue Xiao, Kang Li, Deyue Zhang, Weilin Xu

在量子位公眾號(QbitAI)對話界面回復「360」,即可以直接下載。

—完—

歡迎大家關注我們的專欄:量子位 - 知乎專欄

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。

量子位 QbitAI · 頭條號簽約作者

?? ? 追蹤AI技術和產品新動態

推薦閱讀:

梯度下降法的神經網路容易收斂到局部最優,為什麼應用廣泛?
PyTorch提取中間層特徵?
如何評價Hinton在加拿大多倫多大學關於用「capsule」作為下一代CNN的演講?
現有的語音識別技術能否達到自動輸出嚴式國際音標的水平?
如果兩個Alphago對下,可以根據結果測試出黑棋貼多少目才最公平嗎?

TAG:深度学习DeepLearning | 漏洞挖掘 | 奇虎360 |