999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于TextCNN 的惡意源代碼功能分類模型

2021-07-09 17:19:32黎星宇
現(xiàn)代計算機(jī) 2021年14期
關(guān)鍵詞:分類特征文本

黎星宇

(四川大學(xué)計算機(jī)學(xué)院,成都 610065)

0 引言

隨著互聯(lián)網(wǎng)的普及與發(fā)展,越來越復(fù)雜的惡意軟件造成了絕大多數(shù)的互聯(lián)網(wǎng)安全問題,惡意軟件的開發(fā)人員通過改寫手中的惡意核心代碼或使用工具可以相當(dāng)輕易地制作出大量的惡意軟件,這些源代碼的中間傳播站便是地下黑客網(wǎng)絡(luò)社區(qū)[1]。安全研究人員可以通過探索這些社區(qū)來發(fā)現(xiàn)新的安全威脅、趨勢和黑客行為,目前主流研究方向包括內(nèi)容分析、社交網(wǎng)絡(luò)分析和惡意軟件分析等。相關(guān)研究人員探索了多個地緣政治區(qū)域的黑客社區(qū),觀察到黑客共享各種網(wǎng)絡(luò)社區(qū)的惡意源代碼資源,并且互相傳播合作,各種惡意程序和腳本的源代碼在黑客之間自由分發(fā)[2]。然而,源代碼經(jīng)常伴隨著不完整的說明文檔甚至沒有相關(guān)文檔和代碼注釋。對于跨越多個不同區(qū)域的社區(qū)研究人員會遇到使用不熟悉的編程語言編寫的惡意腳本,或者由于源代碼本身過于模糊,無法解譯,代碼中常常存在復(fù)雜的代碼邏輯與不停轉(zhuǎn)換的變量名,這對惡意源代碼的研究和分析上造成了很大的限制。

針對這一問題本文設(shè)計了一種基于TextCNN 的自動化惡意源代碼功能分類模型,受到自然語言處理領(lǐng)域的啟發(fā),將惡意源代碼文件轉(zhuǎn)換為普通文本文檔,把代碼詞視為文本詞,通過Word2Vec 轉(zhuǎn)換為詞向量,將一句代碼視為一串詞向量序列,該序列能有效地保留詞特征,詞時序特征以及詞語義關(guān)系,再利用TextCNN建立惡意源代碼分類模型,TextCNN 能高效保留文檔的局部特征,通過卷積操作可以實(shí)現(xiàn)N-Gram 的單詞組合,自學(xué)習(xí)其中的特征含義并篩選出代表特征詞,從抽象的代碼詞中抽取出不同層次的語義信息。經(jīng)過實(shí)驗(yàn)認(rèn)證,本文設(shè)計的分類模型在惡意源代碼樣本數(shù)據(jù)集上結(jié)果表明,相較于傳統(tǒng)機(jī)器學(xué)習(xí)分類方法,本分類模型在分類精確度上有明顯的提升。

1 相關(guān)工作

過去的研究發(fā)現(xiàn),黑客經(jīng)常聚集在虛擬社區(qū)中,即IRC 社區(qū)和在線論壇,黑客通過平臺與同行公開分享惡意軟件源碼和框架,那么這些被分享出來的公用惡意資源將成為安全研究的主流對象[2]。

惡意軟件分析包括兩種傳統(tǒng)分析方法:靜態(tài)分析和動態(tài)分析。靜態(tài)分析包括分析源代碼或其他形式的程序指令,這種分析方法不會實(shí)際執(zhí)行程序,動態(tài)分析則相反,需要運(yùn)行程序分析其動態(tài)行為,這兩種分析形式相輔相成[3]。近年來越來越多的研究人員將神經(jīng)網(wǎng)絡(luò)應(yīng)用到惡意軟件二進(jìn)制文件的匯編指令和API 調(diào)用序列的研究上,SAXE 等人[4]在2015 年將惡意軟件二進(jìn)制樣本直接輸入神經(jīng)網(wǎng)絡(luò)中訓(xùn)練分類器,PASCANU 等人[5]在同年將惡意代碼動態(tài)執(zhí)行指令的API 視為特征,利用循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行分類,F(xiàn)AN[6]在2016 年抽取出指令序列,對其進(jìn)行模式匹配,再用神經(jīng)網(wǎng)絡(luò)完成分類。隨著NLP 方向的研究與發(fā)展,一些應(yīng)用在自然語言處理上的深度學(xué)習(xí)方法也被使用到惡意代碼的研究上,2017 年P(guān)OPOV 等人[7]將惡意軟件的匯編指令視為文檔的詞,指令序列視為文檔的句子,利用Word2Vec將不同的匯編指令計算出對應(yīng)的詞向量,再使用機(jī)器學(xué)習(xí)的方法進(jìn)行分類,2018 年CAKIR 等人[8]在文獻(xiàn)[7]的基礎(chǔ)上使用GBM 方法構(gòu)造分類器,2019 年張濤等人[9]基于Doc2Vec 文字嵌入方法將惡意軟件的動態(tài)API 序列視為特征,對惡意軟件進(jìn)行家族分類,同年喬延臣等人[10]將匯編指令排序后得到的序列結(jié)合卷積神經(jīng)網(wǎng)絡(luò)對惡意代碼進(jìn)行分類,2020 年劉恒訊等人[11]則使用API 函數(shù)調(diào)用序列詞向量化來對惡意軟件家族進(jìn)行更細(xì)粒度的文本分類。

當(dāng)前惡意代碼分類的主要研究動向大多集中在二進(jìn)制文件上,研究方向大致為檢測是否為惡意文件與惡意軟件家族分類。由于缺乏分析惡意源代碼文件的工具,跨越多種編程語言的源代碼沒有對應(yīng)的說明文檔和解釋代碼,過于晦澀,缺乏可閱讀性,導(dǎo)致這類數(shù)據(jù)通常比惡意軟件二進(jìn)制文件更難檢索和分析,通過研究已經(jīng)確定了惡意源代碼現(xiàn)在可以在黑客社區(qū)中找到,在2013 年,BENJAMIN[3]利用惡意源代碼的上下文,使用支持向量機(jī)和C4.5 決策樹者兩種算法和遺傳算法配對的包裝器模型選定惡意源代碼特征,發(fā)現(xiàn)執(zhí)行不同功能的惡意源代碼中出現(xiàn)了不同的具有特征性的代碼單詞,最后利用機(jī)器學(xué)習(xí)分類器來識別惡意源代碼的功能攻擊類型,因此認(rèn)為針對大量惡意軟件源代碼進(jìn)行研究是可行的。

2 理論基礎(chǔ)

2.1 Word2Vec

在自然語言處理領(lǐng)域,詞語是最常見的文檔切分力粒度,研究人員在做文本聚類或者分類的時候,經(jīng)常需要考慮如何表示一個詞語。最早被提出的方法是one-hot 編碼方法,利用一個離散的取值空間,使用一個長度為詞匯表大小的向量來表示一個本文,將文本表示成了一個長度為詞匯表大小的向量,接下來就可以進(jìn)行聚類或者分類了。但是獨(dú)熱編碼經(jīng)常會面對巨大的詞匯表,需要高達(dá)上百萬長度的向量,此時需要做細(xì)致的特征工程,把維度降下來,而特征約簡導(dǎo)致的信息損失會影響文本分類的效果。獨(dú)熱編碼的另一個重要缺陷,就是忽略了詞語在文本中的順序。自然語言文本實(shí)際上是一種序列數(shù)據(jù),相鄰的文字或者詞語之間有著密切的關(guān)聯(lián)。獨(dú)熱編碼的假設(shè)過于粗暴,將這種關(guān)聯(lián)省略了,導(dǎo)致了信息的丟失。2013 年,Mikolov[12]認(rèn)為利用詞的分布式表達(dá)方式,詞向量可以包含此含義,并且計算不同詞向量之間的關(guān)系形成低維且稠密的詞表達(dá)方式,這種方法經(jīng)常用在文本分類或情感分析等應(yīng)用場景中。

在本文中,正是使用了這種符合直覺的詞語表示方法來有提取惡意代碼的特征表達(dá),即Word2Vec[13]。Word2Vec 是Google 公司在2013 年開放的用于訓(xùn)練詞向量的軟件工具,不需要額外訓(xùn)練,屬于無監(jiān)督方法,給定語料數(shù)據(jù)集后,自學(xué)習(xí)地將詞信息映射到語義空間中,最終得到一個詞向量模型,每個指定維度的數(shù)組對應(yīng)一個單詞。Word2Vec 將一個詞的上下文(前面k個詞和后面k 個詞)詞編碼輸入神經(jīng)網(wǎng)絡(luò),輸出這個詞的編號,他是一個高效率進(jìn)行詞嵌套學(xué)習(xí)的預(yù)測模型。Word2Vec 常用兩種模型,一種為Skip-Gram 模型,這種模型利用中心詞預(yù)測周圍詞,對出現(xiàn)頻率較低的詞預(yù)測效果更好,另一種是連續(xù)詞袋模型(CBOW),與前者相反,CBOW 利用周圍詞預(yù)測中心詞,通過計算上下文詞向量輸出中心詞的詞向量,訓(xùn)練時間要更少。在本實(shí)驗(yàn)中,惡意源代碼樣本數(shù)據(jù)集還是偏小且代碼詞也更為離散和生僻,因此使用Skip-Gram 方法來訓(xùn)練本文的詞向量,保證代碼詞更高的準(zhǔn)確度。因此綜合實(shí)驗(yàn)表現(xiàn),本文使用Skip-Gram 方法將惡意源代碼轉(zhuǎn)化為詞向量,設(shè)置向量維度為300 維,利用詞向量包含語義特征的特性,能有效地表示出源代碼之間的詞義關(guān)系,可以對惡意代碼行為作出更好的描述。最后經(jīng)過Skip-Gram 模型訓(xùn)練得出部分代碼詞的詞向量如表1 所示。

表1 部分惡意代碼詞的詞向量表達(dá)

2.2 文本卷積神經(jīng)網(wǎng)絡(luò)模型

在2014 年,KIM[15]針對CNN 的輸入層做了一些變形,提出了文本卷積神經(jīng)網(wǎng)絡(luò)TextCNN。與傳統(tǒng)圖像的CNN 網(wǎng)絡(luò)相比,TextCNN 在網(wǎng)絡(luò)結(jié)構(gòu)上沒有任何變化,將文本視為圖片矩陣,文本的單詞作為矩陣的行,文本長度決定矩陣的行數(shù),參考N-Gram 滑動窗口的思想,利用多個不同大小的卷積核對若干個單詞組成進(jìn)行卷積,從而提取出句子中的關(guān)鍵信息,這樣文本詞語的局部相關(guān)性能被更好地捕捉。

本文通過修改KIM 提出的網(wǎng)絡(luò)參數(shù)與結(jié)構(gòu),設(shè)計適合訓(xùn)練惡意詞向量的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。如圖1 所示網(wǎng)絡(luò)一共有四層,包含輸入層、卷積層、最大池化層以及輸出層。

圖1 TextCNN網(wǎng)絡(luò)結(jié)構(gòu)圖

(1)輸入層:

學(xué)校員工的工作地位與其在學(xué)校的分工有關(guān)。機(jī)能實(shí)驗(yàn)技術(shù)人員的地位較低,具體表現(xiàn)為缺乏參加培訓(xùn)、進(jìn)修的機(jī)會,職業(yè)發(fā)展不明朗;較少有為學(xué)校政策出謀劃策的機(jī)會,自身訴求得不到傾聽;工作待遇較低;工作不受教師和學(xué)生的理解。

輸入層是一個由詞向量拼成的詞矩陣,規(guī)模為1000×300,每一個行向量表示一個代碼詞的詞向量,具有300 維;一篇惡意代碼由多個代碼詞拼接而成,如圖2 所示樣本中文本長度在1000 左右的占比為90%左右,因此本實(shí)驗(yàn)中文本長度設(shè)定為1000。輸入層有兩個這樣的輸入矩陣,即雙通道形式,其中一個用預(yù)訓(xùn)練好的詞嵌入表達(dá),并且在訓(xùn)練過程中不再發(fā)生變化;另外一個也由同樣的方式初始化,但是會作為參數(shù),隨著網(wǎng)絡(luò)的訓(xùn)練過程發(fā)生改變。令xi為第i個代碼詞,n為惡意代碼文本長度,則一篇惡意源代碼文件x1:n可以形式化表示為如下形式:

圖2 樣本集單文本長度占比圖

(2)卷積層:

一共有三種規(guī)格卷積核,大小分別為3、4、5,每種規(guī)格包含100 個參數(shù)互不相同的卷積核。該層的卷積核的寬度k 和輸入層詞矩陣的寬相同,該寬度即為詞向量大小,卷積核只會在高度方向移動,移動范圍也就是卷積核的大小h。每次卷積范圍的位置都是完整的單詞,因?yàn)樾胁粫痪矸e分割,這樣不會將幾個單詞的一部分進(jìn)行卷積,這保證了代碼詞作為語言中最小粒度的合理性。使用卷積核ω∈Rhk與一個窗口xi:i+h-1進(jìn)行卷積操作,產(chǎn)生一個特征ci,計算方法如下公式:

其中xi:i+h-1代表輸入詞矩陣的第i行到第i+h-1行所組成的大小為k×h的窗口,W表示權(quán)重矩陣,大小也為k×h,b為偏置參數(shù),f為非線性函數(shù),本文使用ReLU 函數(shù)。卷積核掃描整個詞矩陣,每一次卷積操作相當(dāng)于一次提取該窗口的特征向量,卷積核內(nèi)不同的參數(shù)定義了不同的窗口,保證提取出互不相同且高密度的特征向量,惡意代碼文本長度為n,而卷積核的高度為h,所以總共滑窗n-h+1 次拼接成特征圖,構(gòu)成卷積層的輸出c。

(3)池化層:

池化層提取出每張?zhí)卣鲌DTop-K 的值作為保留,并保留特征值的原始順序,主要目的是降低特征圖的維度,池化過程的公式如下:

卷積層的每個卷積核能生成2 張?zhí)卣鲌D,一共生成3×2×100 個特征圖,經(jīng)池化操作,得到一個長度為規(guī)格為1×600 的向量,池化層的輸出z可表示為:

(4)輸出層:

輸出為維度為4 向量,向量的每一維度對應(yīng)著一個類別,該維度的數(shù)據(jù)表示預(yù)測該樣本屬于對應(yīng)功能類型的概率,池化層的向量z輸入到全連接層中,并使用Softmax 激活函數(shù)輸出每種惡意代碼類型的概率,以最大概率的標(biāo)簽作為預(yù)測結(jié)果。具體計算機(jī)公式如下:

3 實(shí)驗(yàn)評估

3.1 數(shù)據(jù)集

本文所使用的惡意源代碼文件來自Exploit Data?base 官方GIT 倉庫。Exploit Database 存儲了大量的惡意軟件程序和源代碼,可以幫助安全研究者和滲透測試工程師更好地進(jìn)行安全測試工作。Exploit Database將收集來的惡意源代碼分為四種功能,分別是本地內(nèi)存攻擊,遠(yuǎn)程代碼執(zhí)行攻擊,網(wǎng)絡(luò)應(yīng)用程序攻擊和拒絕服務(wù)攻擊。以下給出四種功能類型的說明:

本地內(nèi)存攻擊(Local Memory Attacks):利用軟件安全漏洞,構(gòu)造惡意輸入導(dǎo)致軟件在處理輸入數(shù)據(jù)時出現(xiàn)非預(yù)期錯誤,將輸入數(shù)據(jù)寫入內(nèi)存中的某些特定敏感位置,從而劫持軟件控制流,轉(zhuǎn)而執(zhí)行外部輸入的指令代碼,造成目標(biāo)系統(tǒng)被獲取遠(yuǎn)程控制或拒絕服務(wù)。

遠(yuǎn)程代碼執(zhí)行攻擊(Remote code Execution Attacks):用戶通過瀏覽器提交執(zhí)行命令,由于服務(wù)器端沒有針對執(zhí)行函數(shù)做過濾,導(dǎo)致在沒有指定絕對路徑的情況下就執(zhí)行命令,可能會允許攻擊者通過改變PATH 或程序執(zhí)行環(huán)境的其他方面來執(zhí)行一個惡意構(gòu)造的代碼。可以讓攻擊者直接向后臺服務(wù)器遠(yuǎn)程注入操作系統(tǒng)命令或者代碼,從而控制后臺系統(tǒng)。

網(wǎng)絡(luò)應(yīng)用程序攻擊(Web Application Exploits):包括SQL 注入,跨站點(diǎn)腳本,操作系統(tǒng)命令注入,會話劫持等方式攻擊或竊取服務(wù)器數(shù)據(jù)。

拒絕服務(wù)攻擊(Denial of Service):針對服務(wù)器漏洞,使用特殊手段消耗服務(wù)器資源,從而達(dá)到服務(wù)器無法正常為其他客戶端提供正常服務(wù)的目的。一般迫使服務(wù)器的緩沖區(qū)域溢出或者使用IP 欺騙等方法。

本文選擇以Python 語言所寫的惡意源代碼為研究對象,使用爬蟲方法收集數(shù)據(jù)后,剔除重復(fù)的源代碼文件和執(zhí)行程序文件,共計5487 個文件,為了保證四種功能分類的樣本均衡,最后篩選各類別樣本數(shù)量為1200 個左右,共計4887 個樣本文件,具體分類數(shù)量如圖3 所示。通過梳理四大分類的源代碼,將源代碼轉(zhuǎn)化為txt類型文檔,利用傳統(tǒng)文本分類方式將空格符號識別為分隔符,將代碼詞各自獨(dú)立,統(tǒng)計出Python 編程語言的關(guān)鍵字,和高頻出現(xiàn)的無效字使其作為停用詞,其中針對惡意源代碼中穿插的二進(jìn)制類型字節(jié)編碼(即0x56、x0A、0x24 等,其中0x 代表數(shù)字,x 代表字符,如圖4),有針對性地發(fā)現(xiàn)這類型的編碼在不同類型的源代碼中出現(xiàn)次數(shù)也各有不同,因此使用統(tǒng)一代碼抽離,化為單詞“shellcode”,最后對各類源代碼建立起不同的詞袋模型。利用Word2Vec 的CBOW 模型將詞袋訓(xùn)練為詞向量模型,輸入TextCNN 進(jìn)行訓(xùn)練。對于待檢測的源代碼樣本直接將該樣本預(yù)處理后利用詞向量模型生成矩陣輸入訓(xùn)練好的TextCNN 模型中,輸出長度為4 形式的向量,每個元素代表每種分類的概率,以最大概率作為結(jié)果判定輸出。

圖3 樣本集中分類數(shù)量分布

圖4 原始樣本中頻繁出現(xiàn)的字節(jié)編碼

3.2 分類表現(xiàn)評估

在本文中我們采用交叉熵?fù)p失函數(shù),將最小化損失函數(shù)作為訓(xùn)練目標(biāo),計每個分類下的惡意文檔樣本數(shù)量為n,pi表示樣本的實(shí)際分類概率,pi=1 代表該文檔屬于類別i,否則pi=0,qi則表示模型的輸出,即預(yù)測為功能i的概率交叉熵?fù)p失函數(shù)定義如下:

本惡意代碼分類實(shí)驗(yàn)采用以下4 個指標(biāo)作為評估標(biāo)準(zhǔn):

(1)準(zhǔn)確率(Accuracy):被模型正確分類的樣本數(shù)占樣本總數(shù)百分值的平均值;

(2)精確率(Precision):中,真正屬于該分類的樣本占所有被分類為某類型的樣本百分值的平均值;

(3)召回率(Recall):被模型檢測出來且分類正確被占所有待檢測總樣本的百分值的平均值;

(4)F1_score:準(zhǔn)確率與精確率的調(diào)和平均數(shù),使得兩種指標(biāo)得到綜合平衡。

本實(shí)驗(yàn)使用十折交叉驗(yàn)證法進(jìn)行性能評估,這是一種經(jīng)典可靠的模型性能評估方法,輪流將樣本集平均劃分為十份,選取兩份分別作為模型驗(yàn)證集和模型測試集,剩下八份作為模型訓(xùn)練集,本實(shí)驗(yàn)具體數(shù)量分布則是隨機(jī)抽取訓(xùn)練樣本集3900 個(80%)左右、驗(yàn)證樣本集490 個左右(10%)以及測試樣本集510 個(10%)左右。實(shí)驗(yàn)10 次后將10 次結(jié)果計算平均值作為最后的評估成果,多次進(jìn)行十折交叉驗(yàn)證可以有效提高實(shí)驗(yàn)結(jié)果的準(zhǔn)確性,消除隨機(jī)性。實(shí)驗(yàn)結(jié)果如表2所示。

表2 十折交叉驗(yàn)證實(shí)驗(yàn)結(jié)果

3.3 機(jī)器學(xué)習(xí)對比試驗(yàn)

使用傳統(tǒng)機(jī)器學(xué)習(xí)方法,在面對離散化文本文檔提取有效特征的能力是非常有限的,特別是本文的實(shí)驗(yàn)樣本是更為抽象的代碼語言,與傳統(tǒng)的語言文本相比,可閱讀性更差,本文做了直接將文檔樣本作為學(xué)習(xí)樣本的預(yù)前實(shí)驗(yàn),分類精度一般在70%左右,因此在建立機(jī)器學(xué)習(xí)分類器之前需要使用一些特征工程篩選出更具代表性的特征詞庫,利用詞庫將代碼文檔映射為矩陣再使用機(jī)器學(xué)習(xí)方法建立分類器,實(shí)驗(yàn)流程如圖5所示。

圖5 對比實(shí)驗(yàn)流程圖

利用上文收集的數(shù)據(jù)集,對其遍歷后篩選出使用詞頻、互信息、卡方校驗(yàn)這三種常用的特征詞方法所抽取的每個分類的前300 個特征詞,三者取并集,將該集合作為特征詞庫。通過這一步的工作,本文的發(fā)現(xiàn)與動態(tài)分析研究一致,重點(diǎn)是為了觀察不同類型的惡意代碼行為與特征代碼詞的關(guān)系。特征詞集平均為給定語言可用的所有詞量的30%左右,這將有助于研究人員更快地對惡意源代碼進(jìn)行分析,并且需要更少的硬件作為支撐執(zhí)行分析。除此之外本文發(fā)現(xiàn)對優(yōu)化特征詞集的手動檢查表明,導(dǎo)入編程庫和方法調(diào)用可能是最有用的分類表征,如表3 所示,Python 遠(yuǎn)程代碼執(zhí)行攻擊可能會為互聯(lián)網(wǎng)功能導(dǎo)入套接字庫(“socket”),而本地內(nèi)存攻擊則缺乏這種行為。字節(jié)碼編碼(即0x45、0x32、0x21 等代換而來的“shellcode”)也代表了這種特性,經(jīng)常用于基于內(nèi)存的攻擊。而在Web 應(yīng)用程序攻擊這類型源代碼中,頻繁使用了解析URL 的編程庫和登錄方法調(diào)用,這些分析結(jié)果都是與代碼實(shí)現(xiàn)的實(shí)際功能相匹配的。

表3 特征工程篩選出的部分特征詞

利用機(jī)器學(xué)習(xí)方法進(jìn)行功能分類。本實(shí)驗(yàn)中選用了SVM(支持向量機(jī))、C4.5 決策樹、MLP(多層感知機(jī))三種分類器。將以上三種分類模型與本文提出的TextCNN 模型進(jìn)行橫向比較,實(shí)驗(yàn)的評估指標(biāo)結(jié)果對比如表4。

表4 橫向?qū)嶒?yàn)評估對比

如表4 展示,根據(jù)實(shí)驗(yàn)結(jié)果可知,SVM、C4.5 決策樹以及MLP 這三種傳統(tǒng)的機(jī)器學(xué)習(xí)分類方法的精確度均在90%以下,這說明傳統(tǒng)的機(jī)器學(xué)習(xí)方法在面對離散化的代碼文本中無法有效找出暗含的特征,即使加入特征工程分類效果依然不夠好,此外特征工程還需要使用人工加工,而這需要研究者對代碼數(shù)據(jù)有很強(qiáng)的敏感度,和有相當(dāng)程度的源代碼閱讀能力的背景知識。而本文提出的基于詞向量的惡意代碼分類模型在各指標(biāo)上均有明顯提高;證明了加入惡意代碼詞向量語義特征,能更好地表述惡意源代碼。與BENJA?MIN[3]的分類實(shí)驗(yàn)相比,本文使用的數(shù)據(jù)集大小更具備規(guī)模,在分類精度上有明顯提升。相對其他機(jī)器學(xué)習(xí)而言,文本神經(jīng)網(wǎng)絡(luò)降低了對抽取源代碼詞特征工程能力的要求,無需額外的特征加工工作,同時利用文本神經(jīng)網(wǎng)絡(luò)抓取離散文本語義特性和代碼詞時序之間的關(guān)聯(lián)性,才使得惡意源代碼分類的準(zhǔn)確率有了提升。

4 結(jié)語

本文的主要研究工作集中在如何利用惡意源代碼樣本訓(xùn)練文本神經(jīng)網(wǎng)絡(luò)建立對惡意源代碼屬于哪種攻擊類型的分類器,并且相比傳統(tǒng)的文本分類的機(jī)器學(xué)習(xí)方法引入詞向量能更好地抽析出惡意源代碼在某些代碼詞的高特征性,設(shè)計了基于TextCNN 對惡意源代碼的詞頻、詞序列、詞向量進(jìn)行分類的神經(jīng)網(wǎng)絡(luò)。本文的模型在Exploit Database 收集的惡意源代碼樣本集上的交叉驗(yàn)證效果表明了該方法相較于傳統(tǒng)的機(jī)器學(xué)習(xí)方法或者特征分類方法的準(zhǔn)確率有更有優(yōu)勢。

基于以上所述,利用TextCNN 建立惡意源代碼功能分類模型,將源代碼映射為文本文檔,把代碼分類轉(zhuǎn)化為文本分類,提取了包涵詞頻特征、詞序列特征、詞語義特征的詞向量,提高了針對晦澀難懂的源代碼分類的準(zhǔn)確性,對于處理大規(guī)模或者長片段式惡意源代碼片段的分類任務(wù)提出了一種有效的解決方案。但是基于神經(jīng)網(wǎng)絡(luò)的分類方法無法對于類似for、while 循環(huán)類型的結(jié)構(gòu)化條件循環(huán)表達(dá)出明確的分類含義,除此之外,如果源代碼中包含多種類型的惡意攻擊功能,分類器只能將其中代碼量占比最大的結(jié)果作為分類結(jié)果輸出,接下來的研究方向?qū)⑹沁M(jìn)一步提高源代碼的循環(huán)結(jié)構(gòu)或條件結(jié)構(gòu)的特征提取技術(shù)或者更細(xì)粒度劃分的功能模型構(gòu)建。

猜你喜歡
分類特征文本
分類算一算
如何表達(dá)“特征”
在808DA上文本顯示的改善
不忠誠的四個特征
分類討論求坐標(biāo)
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
數(shù)據(jù)分析中的分類討論
教你一招:數(shù)的分類
抓住特征巧觀察
文本之中·文本之外·文本之上——童話故事《坐井觀天》的教學(xué)隱喻
主站蜘蛛池模板: 国产精品性| 亚洲天堂视频网站| 欧美一级大片在线观看| 国产精品高清国产三级囯产AV| 午夜在线不卡| 日韩A∨精品日韩精品无码| 久久精品中文字幕免费| 色悠久久久| 国产精品所毛片视频| 国产在线视频福利资源站| 毛片免费在线视频| 国产成人综合亚洲欧洲色就色| 99视频在线免费| 欧美午夜在线播放| 精品国产免费观看| 综合人妻久久一区二区精品| 成人在线观看一区| 中文字幕天无码久久精品视频免费| 久久香蕉国产线| 国产精品人人做人人爽人人添| 亚洲欧美天堂网| 精品人妻AV区| 一区二区三区国产| 国产欧美日韩91| 亚洲第一视频免费在线| 久久伊人色| 久久久久人妻一区精品| 黄色在线网| 中文字幕亚洲精品2页| 国产精品无码AV片在线观看播放| 日韩视频免费| 激情综合激情| 在线色国产| 日韩亚洲高清一区二区| 亚洲av日韩av制服丝袜| 国产人成乱码视频免费观看| 人妖无码第一页| 久久国语对白| 99久久这里只精品麻豆| 日韩欧美国产精品| 国产乱子伦无码精品小说| 少妇人妻无码首页| 国产亚洲精品自在线| 国产网友愉拍精品视频| 波多野结衣一区二区三区四区| 亚洲天堂在线视频| 国产女人爽到高潮的免费视频 | 国产交换配偶在线视频| 亚洲日韩精品无码专区97| 免费在线视频a| 国产91导航| 永久免费精品视频| 老司国产精品视频91| 亚洲国产成人久久77| 国产精品香蕉| 久久黄色视频影| 91视频免费观看网站| 色悠久久久| 国产超碰一区二区三区| 欧美精品成人一区二区在线观看| 欧美黄网站免费观看| 蜜桃视频一区二区| 亚洲制服丝袜第一页| 中国毛片网| 国产精品天干天干在线观看| 亚洲无码不卡网| 亚洲黄网在线| 亚洲AⅤ波多系列中文字幕| 久久香蕉国产线看观看亚洲片| 青青草国产免费国产| 新SSS无码手机在线观看| 在线视频一区二区三区不卡| 精品国产Ⅴ无码大片在线观看81| 成色7777精品在线| 亚洲国产精品一区二区高清无码久久| 国产精品自在线拍国产电影| 国产一区二区影院| 亚洲视频在线青青| 欧美亚洲综合免费精品高清在线观看| 福利在线不卡一区| 一本大道在线一本久道| 国产精品手机视频一区二区|