彌補傳統惡意代碼檢測短板,機器學習技術還能這樣做?

2021-02-24 CSDN

這篇文章將介紹基於機器學習的惡意代碼檢測技術,主要參考鄭師兄的視頻總結,包括機器學習概述與算法舉例、基於機器學習方法的惡意代碼檢測、機器學習算法在工業界的應用。同時,我再結合自己的經驗進行擴充,詳細分享了基於機器學習的惡意代碼檢測技術,基礎性文章,希望對您有所幫助~

聲明:本人堅決反對利用教學方法進行犯罪的行為,一切犯罪行為必將受到嚴懲,綠色網絡需要我們共同維護,更推薦大家了解它們背後的原理,更好地進行防護。

隨著網際網路的繁榮,現階段的惡意代碼也呈現出快速發展的趨勢,主要表現為變種數量多、傳播速度快、影響範圍廣。在這樣的形勢下,傳統的惡意代碼檢測方法已經無法滿足人們對惡意代碼檢測的要求。比如基於籤名特徵碼的惡意代碼檢測,這種方法收集已知的惡意代碼,以一種固定的方式生成特定的籤名,維護這樣的籤名庫,當有新的檢測任務時,通過在籤名庫中檢索匹配的方法進行檢測。暫且不說更新、維護籤名庫的過程需要耗費大量的人力物力,惡意代碼編寫者僅僅通過混淆、壓縮、加殼等簡單的變種方式便可繞過這樣的檢測機制。

為了應對上面的問題,基於機器學習的惡意代碼檢測方法一直是學界研究的熱點。由於機器學習算法可以挖掘輸入特徵之間更深層次的聯繫,更加充分地利用惡意代碼的信息,因此基於機器學習的惡意代碼檢測往往表現出較高的準確率,並且一定程度上可以對未知的惡意代碼實現自動化的分析。下面讓我們開始進行系統的介紹吧~


機器學習概述與算法舉例


1.機器學習概念

首先介紹下機器學習的基本概念,如下圖所示,往分類模型中輸入某個樣本特徵,分類模型輸出一個分類結果。這就是一個標準的機器學習檢測流程。機器學習技術主要研究的就是如何構建中間的分類模型,如何構造一組參數、構建一個分類方法,通過訓練得到模型與參數,讓它在部署後能夠預測一個正確的結果。

訓練是迭代樣本與標籤對的過程,如數學表達式 y=f(x) ,x表示輸入的樣本特徵向量,y表示標籤結果,使用(x,y)對f進行一個擬合的操作,不斷迭代減小 y』 和 y 的誤差,使得在下次遇到待測樣本x時輸出一致的結果。該過程也稱為學習的過程。

構造分類方法


構造分類方法是機器學習中比較重要的知識,如何設計一種分類模型將f(x)表達出來。比如:

超平面(SVM)


在二維坐標軸中,可以設計一條直線將空間內分布的散點區分開來,如下圖所示。softmax
另外一種方法是構造類別概率輸出(softmax),比如歸一化處理得到A+B=1,最後看A和B的概率,誰的概率大就屬於哪一類,該方法廣泛使用於神經網絡的最後結果計算中。

2. 機器學習算法舉例作者之前Python系列分享過非常多的機器學習算法知識,也推薦大家去學習:機器學習系列文章(共48篇)。首先存在很多訓練數據點,包括直線上方和下方兩個簇,支持向量機的方法是尋找這兩個簇分類的超平面。如何尋找這個超平面呢?支持向量機先求解每個簇離對面最近的點,然後通過擬合方法計算出兩邊簇的邊界,最終計算出中間的平面,其基本思路就是這樣,而這些點就是支持向量。支持向量機往往用來處理超高維的問題,也不一定是類似直線的平面,也可能是圓形的分類邊界。


神經網絡基本網絡結構如下圖所示,包括三個常用層:輸入層、隱藏層、輸出層。在神經網絡中,最基本的單位是人工神經元,其基本原理是將輸入乘以一個權重,然後將結果相加進行激活,最後得到一個概率的輸出,其輸出結果誰大就預測為對應的結果。

普通的神經網絡通常只包括一個隱藏層,當超出之後可以稱為深度神經網絡。現在比較流行的包括CNN、RNN、RCNN、GRU、LSTM、BiLSTM、Attention等等。其中,卷積神經網絡常用於處理圖片,應用了卷積技術、池化技術,降低圖片維度得到很好的結果。

如上圖所示,將手寫數字「3」(32x32個像素)預測為最終的數字0-9的結果。模型首先使用了6個卷積核,對原始圖片進行固定的計算,如下5x5的圖像卷積操作後變成了 3x3 的圖像。其原理是將特徵提取的過程放至神經網絡中訓練,從而得到比較好的分類結果。卷積之後進行了一個2x2的下採樣過程,將圖片進一步變小(14x14),接著降維處理,一般採用平均池化或最大池化實現,選定一個固定區域,求取該區域的平均值或最大值,然後將向量進行組合,得到一個全連接網絡,最終完成分類任務。

深度神經網絡是深度學習中模型,它主要的一個特點是將特徵提取的過程放入到真箇訓練中,之前對於圖片問題是採用手工特徵,而CNN讓在訓練中得到最優的特徵提取。

3. 特徵工程-特徵選取與設計上面介紹了機器學習和深度學習方法,但是這些方法往往是該研究領域的學者所提出,而在惡意代碼檢測中,往往我們的主要工作量是一些特徵的提取和特徵的設計,這裡面涉及一個特徵工程的概念。例如,在路邊預測一個人是否是學生,假設我們不能去詢問,只能通過外表去預測他是否是一個學生,包括:年齡(低於15歲就是學生)、性別(不影響學生)、衣著(穿著活潑年輕的可能是學生,如果穿著西裝可能性就小)等等,然後根據這些特徵輸入機器學習模型,從而判斷是否是學生。在這些特徵中,顯然有些特徵是非常重要的,比如年齡和衣著。數據和特徵決定了機器學習的上限,而模型和算法只是逼近這個上限,所以如何選取特徵是機器學習的一個關鍵性因素。再比如淘寶的推薦系統,購買電腦推薦滑鼠、鍵盤等。當然,上面僅僅是一個比較簡單的問題,當我們推廣到惡意代碼檢測等複雜問題時,如果不了解這個領域,可能就會導致模型的結果不理想。

局部二值特徵(Local Binary Pattern),再舉一個人臉識別例子,深度學習出來之前,圖片分類都是使用一些特徵算子提取特徵的。比如存在一個3x3的窗口,我們取閾值5,比5小的窗口置為0,其他的置為1,然後順時針轉換為一個8位的二進位數字,對應的十進位就是19。顯然,LBP特徵進行了一個降維的操作,左邊的圖片顯示了人臉識別不應該受光照影響,不同光照的圖片進行LBP特徵提取後,顯示結果都一樣。

再看看我的桌面,這些都是作者最近看的一些安全、AI類書籍,希望也您喜歡~

基於機器學習方法的惡意代碼檢測
1.惡意代碼的靜態動態檢測(1) 特徵種類首先,特徵種類如果按照惡意代碼是否在用戶環境或仿真環境中運行,可以劃分為靜態特徵和動態特徵。

靜態特徵: 沒有真實運行的特徵

字節碼:二進位代碼轉換成了字節碼,比較原始的一種特徵,沒有進行任何處理

IAT表:PE結構中比較重要的部分,聲明了一些函數及所在位置,便於程序執行時導入,表和功能比較相關

Android權限表:如果你的APP聲明了一些功能用不到的權限,可能存在惡意目的,如手機信息

可列印字符:將二進位代碼轉換為ASCII碼,進行相關統計

IDA反彙編跳轉塊:IDA工具調試時的跳轉塊,對其進行處理作為序列數據或圖數據

舉一個簡單的控制流圖(Control Flow Graph, CFG)示例。

if (x < y){   y = 0;   x = x + 1;}else{   x = y;}

(2) 常見算法普通機器學習方法和深度學習方法的區別是,普通機器學習方法的參數比較少,相對計算量較小。

普通機器學習方法(SVM支持向量機、RF隨機森林、NB樸素貝葉斯)

深度神經網絡(Deep Neural Network)

卷積神經網絡(Convolution Neural Network)

長短時記憶網絡(Long Short-Term Memory Network

針對序列模型進行建模,包含上下文依賴關係,比如「我 是 一名 大學生」中的「我」和「是」前後出現的條件概率更高。廣泛應用於文本分類、語音識別中,同樣適用於惡意代碼檢測。

圖卷積網絡 (Graph Convolution Network)

比較新興的方法,將卷積應用到圖領域,圖這種數據類型比較通用,非圖數據比較容易轉換成圖數據,CCF論文中也已經應用到惡意代碼檢測中。

2.靜態特徵設計舉例首先分享一個靜態特徵的例子,該篇文章發表在2015年,是一篇CCF C類會議文章。

特徵抽取

使用了四種特徵

特徵抽取輸入到深度神經網絡

包含兩層隱含層的深度神經網絡

字節-熵對統計特徵:統計滑動窗口的(字節,熵)對個數

在下圖中,假設白框是一個二進位文件,其中紅色框W是滑動窗口,二進位文件如果有100KB大小,每個滑動窗口是1024位元組,那麼滑動100次可以將整個二進位文件掃描完。如果對窗口內的數值進行計算,首先計算它的熵值,熵是資訊理論的概念(下圖中的E),它描述了一個數組的隨機性,熵越大其隨機性越大。在圖中,每一個滑動窗口都有固定的熵值,包含了1024位元組,標記為(Bi,Ewi),最後滑動得到100x1024的字節熵對。


統計最後滑動得到100x1024的字節熵對個數,得到如下圖所示的二維直方圖結果,橫坐標是熵值最小值到最大值的範圍,縱坐標是一個字節轉換成10進位的範圍0-256,最終得到字節熵對分布的範圍,再將16x16維的二維數組轉換成1x256維的特徵向量。

PE頭IAT特徵:hashDLL文件名與函數名為[0-255)範圍
第二種特徵是PE頭IAT特徵。它的計算工程是將PE頭的IAT表裡面的文件名和函數名hash到0到255範圍,如果某個文件出現某個函數,就將該位置為1,當然每位對應表示的函數是固定的,最終得到256數組。

可列印字符:統計ASCII碼的個數特徵

可列印字符和字節熵對比較相似,這裡推薦大家閱讀原文。

PE元信息:將PE信息抽取出來組成256維數組,例如編譯時間戳
PE元信息是將PE信息的數值型信息抽取出來,組成256維數組,每一個數組的位置表示了一個固定的信息種類,再信息種類將對應的信息填入到元素的位置,比如編譯時間戳。

總共有上述四種特徵,然後進行拼接得到4*256=1024維的數組,這個數組就代表一個樣本的特徵向量。假設有10000個樣本,就有對應10000個特徵向量。

得到特徵向量之後,就開始進行模型的訓練和測試,一般機器學習任務事先都有一個數據集,並且會分為訓練數據集和測試數據集,按照4比1或9比1的比例進行隨機劃分。訓練會將數據集和標籤對輸入得到惡意和非惡意的結果,再輸入測試集得到最終結果。

下面是衡量機器學習模型的性能指標,首先是一幅混淆矩陣的圖表,真實類別中1代表惡意樣本,0代表非惡意樣本,預測類別也包括1和0,然後結果分為:然後是Accuracy(準確率)、Precision(查準率)、Recall(查全率)、F1等評價指標。

通常Accuracy是一個評價惡意代碼分類的重要指標,但本文選擇的是AUC指標,為什麼呢?
假設我們模型的效果非常差,它會將所有本測試樣本標記為惡意樣本,這樣我有兩個數據集,一個樣本包括100個數據(99個惡意樣本、1個非惡意樣本),另一個樣本包括50個數據(50個惡意樣本、50個非惡意樣本),如果我單純的計算ACC,第一個樣本的結構是0.99,顯然不符合客觀的描述,不能用來評價性能高低的,並且這種情況是很容易產生的。所以論文中廣泛採用AUC指標。

AUC指標包括TPRate和FPRate,然後得到一個點,並計算曲線以下所包圍的面積即為AUC指標。其中,TPRate表示分類器識別出正樣本數量佔所有正樣本數量的比值,FPRate表示負樣本數量站所有負樣本數量的比值。舉個例子,我們撒網打魚,一網下去,網中好魚的數量佔池子中所有好魚的數量就是TPRate,而FPRate表示一網下去,壞魚的數量佔整個池子中所有壞魚的數量比例,當然FPRate越小越好。最好的結果就是TPRate為1,而FPRate為0,此時全部分類預測正確。

該論文測試了六種特徵集合,其計算的TPR和AUC值如下所示。


3.經典的圖片特徵舉例下面介紹另一種比較新興經典的方法,就是圖片特徵。但一些安全界的人士會認為這種特徵不太好,但其方法還是比較新穎的。它的基本方法是按照每8位一個像素點將惡意軟體的二進位文件轉換為灰度圖片,圖片通常分為R、G、B通道,每個8位像素點表示2^8,最終每隔8位生成一個像素點從而轉換為如下圖所示的灰度圖片。圖片分別為Obfuscator_ACY家族、Lolipop家族、ramnit家族惡意軟體樣例,這些樣例由微軟kaggle比賽公布的數據生成。這是因為對於某些惡意樣本作者來說,他只是使用方法簡單的修改特徵碼,從而每個家族的圖片比較相似,最終得到了較好的結果。

4.動態特徵設計舉例接下來分享一個動態特徵的例子,該篇文章發表在2016年,文章的會議一般,但比較有代表性。下圖展示了該方法的整體流程圖。PE文件進入後,直接進入Cuckoo沙箱中,它是一個開源沙箱,在學術論文中提取動態特徵比較通用;接著進行進行預處理操作,將文本轉換成向量表示的形式,比如提取了200個動態特徵,可以使用200維向量表示,每個數組的位置表示對應API,再將所得到的序列輸入卷積神經網絡LSTM進行分類,最終得到家族分類的結構。

下圖展示了實驗的結構,其指標是高於單純的神經網絡和卷積網絡的效果更好,這是一篇比較基礎的文章。

5.深度學習靜態檢測舉例這篇文章是火眼公司的兩名員工發布的,所使用的也是靜態檢測特徵,其流程如下所示。

首先,原始的字節碼特徵直接輸入一個Byte Embedding層(詞嵌入),對單個元素進行向量化處理,將字節碼中的每個字節表示成一個固定長度的向量,從而更好地將字節標記在一個空間維度中。詞嵌入技術廣泛應用於自然語言處理領域,比如「女人」和「女王」關係比較緊密,這篇文章的目的也是想要在惡意代碼中達到類似的效果。

然後將矩陣輸入到卷積和池化層中,比如存在一個100K字節的二進位文件,得到100102410矩陣輸入卷積神經網絡中,最後通過全連接層完成惡意和非惡意的分類任務。

Fireeye使用了三個數據集進行訓練和測試,其訓練的模型分類效果結果如下表所示,博客Small、Baseline、Baseline+Dropout模型,其網絡結構是一樣的,其中Small表示使用小的數據集,Baseline表示使用大的數據集,Dropout表示對訓練好的神經網絡中隨機丟棄一些神經元,從而抑制過擬合現象,也是比較常用的深度學習技術。

這篇文章的重點是對深度學習的解釋性,就是解釋深度學習是否能學習到惡意軟體的本質特性。下圖展示了不同特徵對於分類結果的影響,橫坐標是Offset偏移,通常用Offset記錄字節,從0到右邊也對應文件大小,前面可能就是PE頭,中間有各種段。它的橫縱坐標分別表示了某些特徵對於惡意性分類比較重要,還是非惡意性比較重要。如果它的校驗和(CheckSum)是0,就對惡意性分類比較重要,這表示深度學習並沒有學習到惡意軟體為什麼是惡意的,只是通過統計學去發現惡意軟體和非惡意軟體差別最大部分,以此進行數據建模。深度學習進行惡意軟體檢測的問題:沒有學習到惡意和非惡意特徵,而是學習到區別的統計差異,而這種差異如果被黑客利用是可以被規避的。

6.優缺點

優點

特徵提取速度快

特徵種類豐富,可以組合多種特徵向量

缺點

易受加殼、加密、混淆幹擾

無法防範無文件攻擊,難以反映惡意軟體行為的惡意性

優點

提供惡意軟體的動作,調用API

規避一些靜態的混淆對抗方法

缺點

反虛擬化,延時觸發等技術的對抗

測試時間較長,單個樣本2-3分鐘(Cuckoo)

malware data science書籍
https://www.amazon.com/Malware-Data-Science-Detection-Attribution-ebook/dp/B077X1V9SY
7.靜態分析和動態分析對比下面簡單總結靜態分析和動態分析與深度學習結合的知識,該部分內容源自文章:深度學習在惡意代碼檢測 - mbgxbz,在此感謝作者,覺得非常棒,故引用至此!謝謝~惡意代碼的檢測本質上是一個分類問題,即把待檢測樣本區分成惡意或合法的程序。基於機器學習算法的惡意代碼檢測技術步驟大致可歸結為如下範式:深度學習作為機器學習的一個分支,由於其可以實現自動化的特徵提取,近些年來在處理較大數據量的應用場景,如計算機視覺、語音識別、自然語言處理時可以取得優於傳統機器學習算法的效果。隨著深度學習在圖像處理等領域取得巨大的成功,許多人將深度學習的方法應用到惡意軟體檢測上來並取得了很好的成果。實際上就是用深度神經網絡代替上面步驟中的人為的進一步特徵提取和傳統機器學習算法。根據步驟中對訓練樣本進行預處理的方式,可以將檢測分為靜態分析與動態分析:一般來說,在絕大部分情形下我們無法得到惡意程序的原始碼。因此,常用的靜態特徵包括程序的二進位文件、從使用IDA Pro等工具進行反彙編得到的彙編代碼中提取的彙編指令、函數調用等信息,另外基於字符串和基於API調用序列的特徵也是比較常見的。文獻[i]提出一種對PE文件的惡意程序檢測方法,提取PE文件四個類型的特徵:字節頻率、二元字符頻率、PE Import Table以及PE元數據特徵,採用包含兩個隱藏層的DNN作為分類模型,但是為了提取長度固定的輸入數據,他們丟棄了PE文件中的大部分信息。文獻[ii]使用CNN作為分類器,通過API調用序列來檢測惡意軟體,其準確率達到99.4%,遠高於傳統的機器學習算法。然而,當惡意代碼存在混淆或加殼等情形時,對所選取的靜態特徵具有較大的影響,因此靜態分析技術本身具有一定的局限性。利用虛擬機或沙箱執行待測程序,監控並收集程序運行時顯現的行為特徵,並根據這些較為高級的特徵數據實現惡意代碼的分類。一般來講,行為特徵主要包括以下幾個方面:文件的操作行為;註冊表鍵值的操作行為;動態連結庫的加載行為;進程訪問的操作行為;系統服務行為;網絡訪問請求;API調用。文獻[iii]通過API調用序列記錄進程行為,使用RNN提取特徵向量,隨後將其轉化為特徵圖像使用CNN進行進一步的特徵提取,提取其可能包含的局部特徵並進行分類。文獻[iv]提出了一個基於動態分析的2層架構的惡意軟體檢測系統:第1層是RNN,用於學習API事件的特徵表示;第2層是邏輯回歸分類器,對RNN學習的特徵進行分類,然而這種方法的誤報率較高。文獻[v]提出了用LSTM和GRU代替傳統RNN進行特徵的提取,並提出了使用CNN的字符級別的檢測方案。文獻[vi]提出在惡意軟體運行的初期對其進行惡意行為的預測,他們使用RNN進行PE文件檢測,根據惡意代碼前4秒的運行行為,RNN對惡意軟體的預測準確率是91%,隨著觀察的運行時間的增長,RNN的預測準確率也隨之提高。可以看到,相對於靜態分析,動態分析的過程更加複雜耗時,相對而言採用了較高層次的特徵,因此可解釋性也較差。在網絡攻擊趨於精細化、惡意代碼日新月異的今天,基於深度學習算法的惡意代碼檢測中越來越受到學術界和眾多安全廠商的關注。但這種檢測技術在現實應用中還有很多尚未解決的問題。例如上面提到的靜態分析與動態分析存在的不足,現在發展的主流方向是將靜態、動態分析技術進行結合,使用相同樣本的不同層面的特徵相對獨立地訓練多個分類器,然後進行集成,以彌補彼此的不足之處。除此之外,深度學習算法的可解釋性也是制約其發展的一個問題,當前的分類模型一般情況下作為黑盒被加以使用,其結果無法為安全人員進一步分析溯源提供指導。我們常說攻防是息息相關的,螺旋上升的狀態。既然存在基於深度學習的惡意代碼檢測技術,那麼自然也有基於深度學習的或者是針對深度學習的惡意代碼檢測繞過技術,這也是近年來研究的熱點問題,那麼如何提高模型的穩健性,防止這些定製化的幹擾項對我們的深度學習算法產生不利的影響,對抗生成網絡的提出或許可以給出答案。

機器學習算法在工業界的應用首先普及一個概念——NGAV。NGAV(Next-Gen AntiVirus)是下一代反病毒軟體簡稱,它是一些廠商提出來的新的病毒檢測概念,旨在用新技術彌補傳統惡意軟體檢測的短板。

多家殺毒引擎廠商將機器學習視作NGAV的重要技術,包括McAfee[11], Vmware[9], CrowdStrike[10], Avast[6]

越來越多的廠商開始關注機器學習技術,並發表相關的研究(卡巴斯基[7],火眼[8]),火眼還是用機器學習技術對APT進行分析(組織相似度溯源)

越來越多的安全廠商將機器學習視為反病毒軟體的一個關鍵技術,但需要注意,NGAV並不是一個清晰的定義,你沒法去界定一個反病毒軟體是上一代產品還是下一代產品。衡量反病毒軟體的性能只有對惡意軟體的檢測率、計算消耗、誤報率等,我們只是從現狀分析得到越來越多安全領域結合了機器學習。作為安全從業人員或科研人員,機器學習技術也是我們必須要關注的一個技術。

算力問題
機器學習和深度學習算法需要大量的算力,如果我們在本地部署還需要GPU的支持,這樣就帶來了一個硬體配置問題,所以如何減小模型的size及提升模型的檢測能力是一個關鍵性的問題。

大規模的特徵數據

特徵對於分類訓練非常關鍵,如何抽取這些數據特徵呢?

訓練的模型是可解釋的

這個問題可以說是機器學習算法和深度學習算法在反病毒軟體應用中最關鍵的一個問題,病毒的對抗是黑客與安全從業人員的對抗的前線,如果我們訓練的模型是不可解釋的,那麼一旦被黑客發現某些規則存在的弱點,他們就可以針對這些弱點設計免殺方法,從而繞過造成重大安全隱患。另一方面,如果機器學習算法是不可解釋黑盒的,用戶他也是不可接受的,難以起到保護重要。

誤報需要維持極度的低水平

誤報是反病毒軟體用戶體驗的一個重要指標,傳統的特徵碼技術、主動防禦技術都具有誤報低的特性,而機器學習是一個預測技術,會存在一些誤報,如何避免這些誤報並且提高檢測的查全率也是重要的問題。

算法需要根據惡意軟體作者的變化快速適應新的檢測特徵

這也是關鍵性問題,在機器學習模型應用中,惡意軟體是不斷變化的,而機器學習算法部署到本地中,它的參數是不變的,所以在長時間的惡意演化中其模型或參數不再適用,其檢測結果會有影響。目前,雲沙箱、在線更新病毒庫特徵是一些解決方法。

優點:能夠建立專家難以發現的規則與特徵
發現的規則和特徵很可能是統計學特徵,而不是惡意和非惡意的特徵,所以這些特徵很容易被黑客進行規避,這既是優點也是缺點,雖然有缺陷,但也能發現惡意樣本的關聯和行為。

總結寫到這裡,這篇文章就介紹完畢,希望對您有所幫助,最後進行簡單的總結:機器學習方法與傳統方法不是取代與被取代的關係,而是相互補充,好的防禦系統往往是多種技術方法的組合。機器學習的檢測方法研究還不充分,安全領域的專有瓶頸與人工智慧研究的共有瓶頸均存在、機器學習算法本身也面對一些攻擊方法的威脅,比如對應抗本。對抗樣本指的是一個經過微小調整就可以讓機器學習算法輸出錯誤結果的輸入樣本。在圖像識別中,可以理解為原來被一個卷積神經網絡(CNN)分類為一個類(比如「熊貓」)的圖片,經過非常細微甚至人眼無法察覺的改動後,突然被誤分成另一個類(比如「長臂猿」)。再比如無人駕駛的模型如果被攻擊,Stop標誌可能被汽車識別為直行、轉彎。

參考文獻:
[1] Saxe J, Berlin K. Deep neural network based malware detection using two dimensional binary program features[C]//2015 10th International Conference on Malicious and Unwanted Software (MALWARE). IEEE, 2015: 11-20.
[2] https://www.kaggle.com/c/malware-classification
[3] https://www.fireeye.com/blog/threat-research/2018/12/what-are-deep-neural-networks-learning-about-malware.html
[4]Kolosnjaji B, Zarras A, Webster G, et al. Deep learning for classification of malware system call sequences[C]//Australasian Joint Conference on Artificial Intelligence. Springer, Cham, 2016: 137-149.
[5] Wüchner T, Cisłak A, Ochoa M, et al. Leveraging compression-based graph mining for behavior-based malware detection[J]. IEEE Transactions on Dependable and Secure Computing, 2017, 16(1): 99-112.
[6]https://www.avast.com/technology/malware-detection-and-blocking
[7] https://media.kaspersky.com/en/enterprise-security/Kaspersky-Lab-Whitepaper-Machine-Learning.pdf
[8] https://www.fireeye.com/blog/threat-research/2019/03/clustering-and-associating-attacker-activity-at-scale.html
[9] https://www.carbonblack.com/resources/definitions/what-is-next-generation-antivirus/
[10] https://www.crowdstrike.com/epp-101/next-generation-antivirus-ngav/
[11] https://www.mcafee.com/enterprise/en-us/security-awareness/endpoint/what-is-next-gen-endpoint-protection.html[i] Saxe, J., & Berlin, K. (2015, October). Deep neural network-based malware detection using two-dimensional binary program features. In 2015 10th International Conference on Malicious and Unwanted Software (MALWARE) (pp. 11-20). IEEE.
[ii] Nix, R., & Zhang, J. (2017, May). Classification of Android apps and malware using deep neural networks. In 2017 International joint conference on neural networks (IJCNN) (pp. 1871-1878). IEEE.
[iii] Tobiyama, S., Yamaguchi, Y., Shimada, H., Ikuse, T., & Yagi, T. (2016, June). Malware detection with deep neural network using process behavior. In 2016 IEEE 40th Annual Computer Software and Applications Conference (COMPSAC) (Vol. 2, pp. 577-582). IEEE.
[iv] Pascanu, R., Stokes, J. W., Sanossian, H., Marinescu, M., & Thomas, A. (2015, April). Malware classification with recurrent networks. In 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 1916-1920). IEEE.
[v] Athiwaratkun, B., & Stokes, J. W. (2017, March). Malware classification with LSTM and GRU language models and a character-level CNN. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 2482-2486). IEEE.
[vi] Athiwaratkun, B., & Stokes, J. W. (2017, March). Malware classification with LSTM and GRU language models and a character-level CNN. In 2017 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP) (pp. 2482-2486). IEEE.參考推薦:
[1] https://mooc.study.163.com/learn/1000003014?share=2&shareId=1000001005
[2] 《軟體安全之惡意代碼機理與防護》WHU
[3] 師兄的分享及作者學習和實踐經驗

原文連結:

https://blog.csdn.net/Eastmount/article/details/107420755

☞那個盜竊比爾·蓋茨、馬斯克、巴菲特推特帳號,發布詐騙廣告的少年被捕了!年僅17歲

相關焦點

  • 惡意軟體檢測常見方法
    隨著惡意軟體的數量和多樣性的不斷增加,傳統的惡意軟體檢測方法已然失效。因此,研究更加快速、高效的惡意軟體檢測方法是十分有必要的。二、常見檢測方法及改進傳統的惡意軟體分析方法主要分為靜態分析法和動態分析法[3]。靜態方法準確性高,動態方法靈活性高,這兩種方法都存在一定的缺陷。
  • 從反惡意代碼到對抗高級威脅
    單機作業系統DOS全面退場,全面支持網絡通信的Windows 9x作業系統的廣泛使用;Windows NT也在全面蠶食著傳統UNIX的市場,WEB服務、FTP服務、電子郵件服務,從象牙塔中的奢侈品,變成普通用戶獲取和交換信息的方式。這種變化在帶來巨大革命變革的同時,計算機惡意代碼也藉此大規模流行。
  • 機器學習之KNN檢測惡意流量
    近年來,隨著基礎設施的完善,海量大數據的積累,機器學習方法理論越來越成熟,算力的大幅度提升,網際網路企業也越來越願意增大在AI領域的投入,AI的優勢在於處理海量數據提取捕獲其中有用信息上發揮著非常重要的作用,如OCR領域圖片鑑黃、自然語言處理方面的惡意言論捕獲、風控領域畫像、推薦系統等。
  • Facebook挑戰賽:利用AI檢測惡意圖文,還有很長的路要走
    Facebook認為,惡意圖文對於機器學習程序而言是一個有趣的挑戰,機器學習在短時間內還找不到完美的解決方法。而Facebook最新研究表明——深度學習的人工智慧形式在「檢測」惡意模因的能力方面遠遠落後於人類。
  • RSA 2020創新沙盒盤點| INKY——基於機器學習的惡意郵件識別系統
    與傳統的釣魚郵件包含惡意連結或附件不同,BEC攻擊者的郵件內容等是正常的,所以網絡安全層面的檢查無效。因為郵件安全引起的業務損失較高,應對BEC相關的安全產品成為Gartner 2019年十大項目之一。在相關的產品中,機器學習技術越來越多的被用來識別惡意郵件,並取得了較好的效果。
  • 機器學習的十大使用案例機器學習
    機器學習是當前科技行業的一大流行詞,原因很充分:它代表著計算機學習方式的一大躍進。福布斯近日盤點了機器學習技術的十大使用案例。
  • 十大案例分析,機器學習的十種網絡攻擊
    這種攻擊的有效性依賴於攻擊者誤導最終用戶點擊或下載惡意有效載荷並在之後繞過內部控制的能力。目前其不斷增加的破壞性和勒索軟體有效載荷使得這種攻擊更加嚴重。   組織可以通過從電子郵件中捕獲元數據來檢測這些威脅,而且這種做法不會影響用戶的隱私。通過查看電子郵件標題以及對郵件正文數據的二次抽樣,機器學習算法可以學習識別能夠暴露惡意發件人的電子郵件模式。
  • 英特爾推出可檢測代碼錯誤的ControlFlag機器編程工具 - Intel...
    在今日的 Intel Labs Day 2020 活動期間,英特爾展示了能夠檢測代碼錯誤的 ControlFlag 機器編程工具。
  • 比Keras更好用的機器學習「模型包」:0代碼上手做模型
    做機器學習模型時,只是融合各種算法,就已經用光了腦細胞?又或者覺得,數據預處理就是在「浪費時間」?一位畢業於哥廷根大學、做機器學習的小哥也發現了這個問題:原本只是想設計個模型,結果「實現比設計還麻煩」。
  • 惡意程序分析與高級對抗技術
    想要和黑客來過招,首先得要先學習對抗秘籍,送你一個「武林秘籍」,課程詳情就請看下文哦~本系列課程名為《惡意程序分析與高級對抗技術》,重點給大家介紹各種類型惡意程序的基本分析方法以及針對於某一批類似樣本的高級對抗技術,利用高級查殺技術,從而實現對惡意程序的通殺。
  • 自動編程還能自主檢測Bug,有了機器編程人類可更專注於創造
    在要評估的控制工具的有限輸入信息中,ControlFlag可以識別程式語言中的各種樣式,不受代碼使用的程式語言限制。 第二,ControlFlag檢測bug的功能集成了機器學習、形式化方法、程式語言、編譯器和計算機系統。
  • 放棄機器學習框架,如何用Python做物體檢測?
    」時,就會想到機器學習和各種不同的框架。但實際上,我們可以在不使用機器學習或任何其他框架的情況下進行物體檢測。在本文中,我將向你展示如何僅使用Python進行操作。首先,我們定義一個模板圖像(或者叫模板物體),然後程序將在源圖像中查找與我們選擇的模板匹配的所有其他物體。舉例來說明一下。下面有兩張圖片,上面是飛機的源圖像,下面是模板照片,其中的物體為飛機。
  • 放棄機器學習框架,如何用 Python 做物體檢測?
    (給Python開發者加星標,提升Python技能)來源:CSDN每當我們聽說「物體檢測」時,就會想到機器學習和各種不同的框架
  • 比Keras更好用的機器學習「模型包」:無需預處理,0代碼上手做模型
    原標題:比Keras更好用的機器學習「模型包」:無需預處理,0代碼上手做模型蕭簫發自凹非寺量子位報導|公眾號QbitAI做機器學習模型時,只是融合各種算法,就已經用光了腦細胞?一位畢業於哥廷根大學、做機器學習的小哥也發現了這個問題:原本只是想設計個模型,結果「實現比設計還麻煩」。於是他自己動手做了個項目igel(德語中意為「刺蝟」,但也是Init、Generate、EvaluateMachineLearning的縮寫),無需編寫任何多餘代碼,就能設計出想要的模型。
  • 病毒無處匿形:未來 CPU 可檢測惡意軟體
    根據外媒Digital Trends的報導,除了傳統的殺毒軟體之外,研究人員還希望通過新的方式為計算機提供另一道病毒防線,他們計劃讓CPU擁有殺毒功能。來自賓漢姆頓大學和加州大學河濱分校的研究人員正在合作開發這個項目,並且已經收到了一筆275000美元的研究資金,他們的目的是修改CPU,讓它能夠掃描潛在惡意軟體造成的異常情況。
  • 主攻APT防護領域,「東巽科技」提供網絡攻擊檢測、分析完整產品線
    在檢測入侵植入時可採用文件行為分析技術的虛擬化沙箱、Web攻擊監測、啟發式文件檢測、惡意文件情報庫檢測的各類引擎,在檢測失陷主機時可採用流量行為分析隱蔽信道檢測、異常流量行為檢測、C&C威脅情報檢測、惡意代碼流量特徵檢測,集成了大量機器學習模型、行為分析模型等新型技術來完整覆蓋網絡殺傷鏈的各個階段,並形成了獨特的深度分析能力。
  • 惡意POS軟體——「TreasureHunt」的原始碼已確定發生洩露
    Flashpoint的高級情報分析師Vitali Kremez在上周四發布的一篇技術文章中稱,從三月份開始,惡意POS軟體—— 「TreasureHunt」的原始碼開始在俄語黑客論壇上出現。   不僅TreasureHunt的原始碼洩露,惡意軟體的圖形用戶界面構建器和管理員面板的原始碼也一樣被洩露。   Vitali Kremez在文章中寫道:「這兩個代碼庫的洩露降低了網絡犯罪分子進入的門檻,他們希望利用這些漏洞來構建自己的POS惡意軟體變種。」
  • 機器學習實戰:Python信用卡欺詐檢測
    對信用卡交易數據建立檢測模型,使用Python庫進行預處理與機器學習建模工作,代碼通俗易懂。包括數據預處理與清洗,模型調參與評估等詳細數據分析與建模流程。故事背景與Python環境故事背景:原始數據為個人交易記錄,但是考慮數據本身的隱私性,已經對原始數據進行了類似PCA的處理,現在已經把特徵數據提取好了,接下來的目的就是如何建立模型使得檢測的效果達到最好,這裡我們雖然不需要對數據做特徵提取的操作,但是面對的挑戰還是蠻大的
  • 無代碼火了,短板有哪些?
    無代碼開發能夠提供的不僅是敏捷、賦能、融合、高效、安全與便捷,當其走向開放、擁抱變化、創造生態,勢必將打破傳統技術的重重壁壘,創造無限可能。 為了探索中國無代碼平臺企業的發展歷程,了解無代碼領域的優勢和挑戰,分析軟體開發市場無代碼平臺的未來趨勢,CSDN對輕流聯合創始人李婷婷進行了獨家專訪。
  • 內存攻擊技術及檢測 - 悅文天下
    駐留在內存中的惡意軟體利用內存進行攻擊是一種以多種形式出現、已經存在了十多年的攻擊技術;隨著時間的推移,越來越流行,也反映出了基於內存的技術成功地避開了安全產品和從業者檢測的現狀。4、進程冷注入Process Hollowing是現代惡意軟體常用的一種進程創建技術,雖然在使用任務管理器之類的工具查看時,這些進程看起來是合法的,但是該進程的代碼實際上已被惡意內容所替代。