破解神經網絡、攻擊GPU,AI黑客教程來了,已登GitHub熱榜

機器之心報道
參與:一鳴

深度學習的廣泛使用也讓很多黑客躍躍欲試,想利用 AI 的弱點發起攻擊。本項目總結了很多相關的方法和經驗,用於教學示範,目前已登 GitHub 熱榜,今天獲得了 200 多贊。

隨著深度學習的發展,各行各業都在考慮將相關新技術引入業務場景中,網絡安全領域也不例外。近一段時間以來,很多網絡安全公司都嘗試用神經網絡去檢測病毒、發現程序後門等,而一些數據公司也使用了神經網絡發現和檢測惡意爬蟲程序。但是,神經網絡真的在軟件層面上是安全嗎?今日的 GitHub 趨勢榜上有一個「駭入神經網絡指南」項目。作者提供了一系列教學資料和代碼,告訴了我們黑客會怎樣對神經網絡發起攻擊。和對抗樣本攻擊不同,這些攻擊都是從軟件層面進行的,和使用對抗樣本混淆模型能力的攻擊不同。

項目地址:https://github.com/Kayzaks/HackingNeuralNetworks

安全攻防戰蔓延到 AI

在項目中,作者主要介紹了幾種利用神經網絡弱點對其發動攻擊的方法,包括從使用神經網絡的應用中找到漏洞,進行信息竊取、惡意程序注入和後門入侵等。此外還有利用深度學習訓練中的內存加速,從 GPU 攻入系統的方法。項目具體分為多個章節,每個章節都提供了對應的代碼和練習教程。除此以外,作者還提供了一篇文章,詳細介紹了攻擊原理和思路。

教程文章地址:https://github.com/Kayzaks/HackingNeuralNetworks/blob/master/Article.pdf

課程目錄

項目分為 8 個章節,目錄如下:

  1. 最後一層攻擊
  2. 尋找神經網絡後門
  3. 信息竊取
  4. 暴力破解
  5. 神經溢出
  6. 惡意軟件注入
  7. 神經混淆
  8. 尋找漏洞
  9. 攻擊 GPU

如何攻擊 AI 系統

作者在教程文章中提供了一個例子:攻擊使用神經網咯的虹膜識別系統。假設黑客可以部分地進入到某虹膜識別系統中,但是該系統的識別認證是由一個神經網絡組成的,黑客無法獲取完整代碼,僅有模型文件「model.h5」,怎樣才能進行攻擊?

具體而言,這種 HDF5 文件幾乎存儲了模型所有的相關信息,包括架構和權重等。因此,作者認為修改文件中的權重等信息,特別是在模型的最後一層上。以一個二分類問題為例,模型的最後一層可能有兩個神經元,正樣本得到一個權重,而負樣本則是另一個。黑客可以改變負樣本的權重,使其也對本應當識別為陌生人的人授予進入的權利。

破解神經網絡、攻擊GPU,AI黑客教程來了,已登GitHub熱榜

修改神經網絡權重以改變識別結果。

此外,神經網絡也可以被修改,以竊取輸入數據。例如,黑客可以在網絡的輸入層前加入一層,讓這個層根據反向傳播調整自身權重(其他層不參與訓練),最後根據特定的標籤獲得對應的層和權重。這樣一來,如果需要一個能夠繞過虹膜識別 AI 的數據,只需要利用這樣的神經網絡生成一個對應的輸入即可。

破解神經網絡、攻擊GPU,AI黑客教程來了,已登GitHub熱榜

研究者將一個新層加在已有層上。這時候只需要訓練新層,舊層不訓練。

攻擊 GPU 緩存

除了這些以外,作者還談到了如何讓深度學習中使用的 GPU 發生緩存溢出,以便於獲取控制系統權限的方法。在一個圖像任務中,為了對圖片進行預處理並分配給模型,系統可能會將圖像和模型加載到 DRAM 中並使用兩個不同的核進行處理。

由於預訓練需要處理圖像,而模型本身也很大,如果同時對兩者使用全局內存(global memory),就可能使得分配給圖像的內存發生溢出。溢出後,黑客就有了可以修改模型的能力。通過修改模型,則可以進一步控制整個系統。

安裝依賴和使用

作者表示,本項目需要 Python 和相關依賴。項目相關代碼是在 VS Code 上完成的。

具體需要的依賴包包括:

  1. Keras
  2. Numpy
  3. SciPy
  4. PyCuda
  5. NLTK

安裝後就可以使用教程了。在每個章節的代碼目錄中都附有具體的說明信息,讀者可參考說明和代碼研究實現。


分享到:


相關文章: