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