四篇关于恶意软件对抗方面的paper要点
文章目錄
- 第一篇paper
- 主要成果
- 主要方法
- 第二篇paper
- 主要成果
- 主要方法
- 第三篇paper
- 主要成果
- 第四篇paper
- 主要方法
第一篇paper
The Limitations of Deep Learning in Adversarial Settings
借鑒JSMA方法構造對抗樣例,將其從連續可微的空間轉移應用到了離散空間中,初步證明對抗攻擊在惡意軟件領域的可行性。
主要成果
減少了制作對抗性樣本的失真(即更改的特征數量)。我們認為,這使惡意軟件可執行文件等輸入域的對抗性制作變得容易得多
主要方法
該算法主要是迭代地修改X,直到達到擾動最大值或生成成功的對抗樣本。
進行特征挑選。
迭代的步驟為
- 首先生成雅可比矩陣
- 然后調用saliency_map方法,其實這個方法可以理解為根據雅可比矩陣和目標分類為輸入向量的每一個特征打分
- 接下來選擇分數最大者進行擾動。
第二篇paper
Deceiving End-to-End Deep Learning Malware Detectors using Adversarial Examples
主要成果
- 在二進制文件中,對字節碼的微小修改通常會導致其功能/有效性發生重大變化,因此生成對抗性示例并不容易。
- 通過向二進制文件中注入一小部分字節來修改惡意二進制文件。修改后的文件被檢測為良性,同時保留其惡意功能。
多位置注入payload,且逃避率與payload長度無關;
Evading detection can be explained by a shift in the model’s attention.
主要方法
插入payload位置,payload為隨機字符序列
- 中間文件位置注入:將payload插入到物理大小大于虛擬大小的已使用或未使用的段中
- 文件結尾注入:將payload視為新的部分附加到二進制文件中。
使用FGSM算法迭代payload的值,直至分類器錯誤識別
為了進一步驗證重構的二進制文件的功能,我們評估并比較了有效載荷注入前后文件的行為圖,發現它們是相同的。
第三篇paper
Adversarial Malware Binaries: Evading Deep Learning for Malware Detection in Executables
主要成果
也是添加字節序列,構造原本末尾的padding 0的序列
具體算法與上篇文章不盡相同,但思路相同。
第四篇paper
Generic Black-Box End-to-End Attack Against State of the Art API Call Based Malware Classifiers
插入API序列以對抗惡意軟件檢測
主要方法
1)API序列由可變長度的離散符號組成,而圖像則表示為矩陣具有固定尺寸,并且矩陣的值是連續的。
2)在對抗性API序列中,必須驗證惡意軟件的原始功能是否保持完整。
訓練基于API序列的RNN或其變種LSTM模型:
- 只訓練API序列,不加參數和返回值
- 僅考慮成功的API調用,忽略失敗的API調用,例如寫入臨時文件而不是無效文件句柄
- 滑動檢測:每個API調用序列都分為大小為m的窗口。依次對每個窗口進行檢測,如果將任何窗口分類為惡意,則整個序列都是惡意的。
攻擊過程:
- 為黑盒模型創建代理模型
- 利用模型間的遷移性,攻擊代理模型達到攻擊黑盒模型的效果
訓練代理模型算法:
- 先驗知識為攻擊者已知曉使用API調用類型
- 為了學習與黑盒模型相似的決策邊界,同時最大程度地減少黑盒模型查詢的次數,綜合訓練輸入基于對模型輸出變化的方向進行優先排序。
該方法最初在這篇文章中提到:
N. Papernot, P. McDaniel, I. Goodfellow, S. Jha, Z. B. Celik, and A. Swami.
Practical black-box attacks against machine learning. In ASIACCS, 2017
簡單說明一下這篇文章的基本思路:
- 訓練替代模型,根據常識,圖像一般用CNN,序列一般用RNN
- 合成樣本數據,根據黑盒模型的輸入輸出給自己的樣本打標簽,但全部遍歷是不可能的,查詢次數過多,容易被封。需要使用更高效的數據合成,利用雅可比的數據合成,雅可比矩陣表述了輸出F對輸入x的敏感程度,在雅可比矩陣較大的方向上構造合成樣本。
- 使用合成樣本訓練模型,使其學習到原模型的決策邊界
- 利用基于梯度的對抗樣本生成算法進行攻擊
攻擊算法:
- 隨機選擇滑動窗口,隨機選擇其中的索引值,插入的API為雅可比較大值方向
- 直到替代模型將其分類為良性為止
數據集:
- 25w良性,25w惡意
- 4:1切分
- 訓練集和測試集為時間順序關系
- 使用Virus-Total進行標記,15個以上標記為惡意,否則為良性
有的惡意代碼存在反監控,反調試功能:
- 使用YARA規則過濾:https://github.com/Yara-Rules/rules
- 只考慮具有15個API以上的序列
訓練了RNN,LSTM,GRU,BRNN,BLSTM,SVM,邏輯回歸,隨機森林等不同分類器。
準確率如下:
攻擊效果:
- 替代模型選為GRU
- 在測試集中隨機挑選了70個樣本
包裝API至原PE文件的方法:
- 使用了代碼添加包裝器
- 使用IAT Patcher技術hook:http://hasherezade.github.io/IAT_patcher/
總結
以上是生活随笔為你收集整理的四篇关于恶意软件对抗方面的paper要点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一入爬虫深似海,反爬技术你知多少?
- 下一篇: 手把手教你完成CSDN对接百度统计 看完