亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        自編碼網(wǎng)絡(luò)在JavaScript惡意代碼檢測中的應(yīng)用研究*

        2019-12-19 17:24:52龍廷艷丁紅衛(wèi)
        計(jì)算機(jī)與生活 2019年12期
        關(guān)鍵詞:編碼器代碼編碼

        龍廷艷,萬 良+,丁紅衛(wèi)

        1.貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴陽 550025

        2.貴州大學(xué) 計(jì)算機(jī)軟件與理論研究所,貴陽 550025

        1 引言

        隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,企業(yè)和單位提供的Web服務(wù)呈現(xiàn)指數(shù)級(jí)的增長,據(jù)國家信息安全漏洞庫[1](China National Vulnerability Database of Information Security,CNNVD)2018年網(wǎng)安時(shí)情的調(diào)查,網(wǎng)絡(luò)安全技術(shù)平臺(tái)必須具備的8個(gè)特性,首要的就是覆蓋電子郵件和Web 安全主流的威脅,占比為38%。而JavaScript 作為一種與后臺(tái)通信的客戶端腳本語言,在提高網(wǎng)頁動(dòng)態(tài)性和Web 交互方式的同時(shí),因其不需編譯就可執(zhí)行給Web 安全領(lǐng)域帶來檢測的困難。惡意代碼在植入和傳播的過程中,利用邏輯異或運(yùn)算、分割字符串和壓縮字符串等混淆手段進(jìn)行惡意代碼的轉(zhuǎn)碼變形,從而躲避安全軟件的檢測達(dá)到自我保護(hù)的目的,這使得惡意代碼的檢測工作變得復(fù)雜和困難;此外,同一個(gè)惡意代碼也會(huì)產(chǎn)生大量的同源惡意代碼樣本,這對惡意代碼的特征提取、識(shí)別、分類和檢測就顯得尤為重要。

        目前,惡意代碼靜態(tài)分析[2]方法主要有:(1)基于簽名(signature-based)的方法,通過識(shí)別程序所獨(dú)有的二進(jìn)制字符串進(jìn)行檢測,該方法主要依賴已知的簽名數(shù)據(jù)庫[3],該方法的缺點(diǎn)是無法查殺新的未知程序,而且需要定期更新和維護(hù)簽名庫。(2)基于啟發(fā)式規(guī)則(heuristic-based)的方法,是通過分析人員對已知的惡意代碼提取具有啟發(fā)式的規(guī)則,并通過該規(guī)則發(fā)現(xiàn)新的惡意代碼。上述兩種方法的不足都是只能在計(jì)算機(jī)被惡意代碼感染后才能被檢測到,而不能及時(shí)發(fā)現(xiàn)新的未知惡意代碼[4]。(3)基于數(shù)據(jù)挖掘(data mining)的方法,該方法是一種基于統(tǒng)計(jì)學(xué)自動(dòng)發(fā)掘數(shù)據(jù)規(guī)律的方法,通過分析海量樣本的統(tǒng)計(jì)規(guī)律建立判別模型,從而讓攻擊者難以掌握避免查殺的規(guī)律。缺點(diǎn)是數(shù)據(jù)挖掘的算法屬于有監(jiān)督算法,對實(shí)時(shí)場景中豐富的樣本這些算法能否勝任還有待驗(yàn)證[5]。(4)基于機(jī)器學(xué)習(xí)(machine learning)的方法,該方法不需要執(zhí)行腳本,主要通過分析代碼的結(jié)構(gòu)、模糊的文本信息、語法信息來提取惡意代碼特征,再利用機(jī)器學(xué)習(xí)算法進(jìn)行識(shí)別和分類。如Likarish等人[6]依據(jù)JavaScript 代碼中特殊函數(shù)和特殊字符出現(xiàn)的次數(shù)作為惡意代碼的關(guān)鍵特征,進(jìn)行統(tǒng)計(jì)分析,提取了65個(gè)JavaScript 特征,并建立4個(gè)分類器Na?ve Bayes、AD Tree、SVM(support vector machine)和RIPPER(repeated incremental pruning to produce error reduction)來檢測網(wǎng)頁中惡意的JavaScript 代碼。Wang等人[7]實(shí)現(xiàn)了一個(gè)JavaScript惡意軟件檢測并分類的工具(JavaScript malware detection and classification,JSDC)。該工具基于機(jī)器學(xué)習(xí)的方法,利用可預(yù)期的文本信息、程序結(jié)構(gòu)和風(fēng)險(xiǎn)函數(shù)調(diào)用等作為特征;對于待檢測的惡意軟件,該工具又根據(jù)其攻擊特征向量和動(dòng)態(tài)執(zhí)行軌跡將其分為己知的八種攻擊類型。雖然機(jī)器學(xué)習(xí)的方法在惡意代碼檢測中得到了廣泛的認(rèn)可,但機(jī)器學(xué)習(xí)算法通常需要復(fù)雜的特征工程提取惡意代碼中的特征,如文獻(xiàn)[8],需要對JavaScript 源碼進(jìn)行分析后方可得到77個(gè)關(guān)鍵的特征,不僅耗費(fèi)時(shí)間,而且該方法對特征選擇的依賴較高,所提取特征的好壞直接影響最終的識(shí)別效果。如今出現(xiàn)的深度學(xué)習(xí)方法,不需要這樣的特征工程,只需將數(shù)據(jù)直接傳遞給網(wǎng)絡(luò),就可立即實(shí)現(xiàn)良好的性能,完全消除了提取特征過程中繁重而且很有挑戰(zhàn)性的特征工程。并且當(dāng)輸入是二進(jìn)制數(shù)據(jù)時(shí)堆棧降噪自編碼器(stacked denoising autoencoder,SDA)更適合文本的分類[9]且SDA 比其他的非監(jiān)督學(xué)習(xí)方法表現(xiàn)都好[10]。Wang等人[11]提出由SDA和邏輯回歸(logistic regression,LR)組成的深層學(xué)習(xí)框架,其中SDA被用來從JavaScript代碼中提取高級(jí)特征,LR作為分類器用于區(qū)分惡意和良性的JavaScript代碼。Li等人[12]使用自編碼器降低數(shù)據(jù)的維度并提取惡意代碼的特征,然后采用深度信念網(wǎng)絡(luò)(deep belief networks,DBN)進(jìn)行惡意代碼的檢測,在最后一層使用有監(jiān)督的誤差反向傳播(error back propagation,BP)算法進(jìn)行分類,實(shí)驗(yàn)結(jié)果表明檢測準(zhǔn)確率高于僅僅使用DBN 訓(xùn)練的情況,而且還降低了模型的時(shí)間復(fù)雜度。

        為獲取惡意代碼深層本質(zhì)特征信息,提高識(shí)別的精確度,本文提出了一種基于堆棧式稀疏降噪自編碼網(wǎng)絡(luò)(stacked sparse denoising autoencoder network,sSDAN)取代傳統(tǒng)的特征提取方法。首先,采用無監(jiān)督自編碼器自動(dòng)提取特征并降低數(shù)據(jù)維度,從高維的數(shù)據(jù)中概括出具有代表性的少量數(shù)據(jù),用來表示數(shù)據(jù)的最本質(zhì)特征。其次,在自編碼器的基礎(chǔ)上添加稀疏約束條件,從而具有更優(yōu)的特征學(xué)習(xí)能力,利用降噪自編碼網(wǎng)絡(luò)(denoising autoencoder network,DAN)進(jìn)行主動(dòng)染噪的學(xué)習(xí)訓(xùn)練,可以得到有效去噪后的深度特征提取模型。最后,將惡意代碼檢測與sSDAN 模型結(jié)合,一方面可以提高惡意代碼檢測的準(zhǔn)確性和穩(wěn)定性;另一方面,sSDAN通過堆疊多個(gè)加了噪聲的稀疏自編碼搭建的多層神經(jīng)網(wǎng)絡(luò)架構(gòu),實(shí)現(xiàn)對數(shù)據(jù)各層次的特征表達(dá),通過整體微調(diào)將特征提取和分類器有機(jī)結(jié)合,充分挖掘數(shù)據(jù)中的變化特征來優(yōu)化檢測性能,具有較好的目標(biāo)信息表示能力、魯棒性和泛化性。

        2 檢測方法

        2.1 自編碼網(wǎng)絡(luò)

        Fig.1 Structure of AE圖1 自編碼網(wǎng)絡(luò)結(jié)構(gòu)

        自編碼網(wǎng)絡(luò)(autoencoder network,AN)是一種三層神經(jīng)網(wǎng)絡(luò)模型,圖1為自動(dòng)編碼器的一個(gè)簡單模型結(jié)構(gòu),包含了輸入層、隱藏層、輸出層,是一種無監(jiān)督的學(xué)習(xí)算法,可以獲取數(shù)據(jù)中重要信息。從輸入層到隱藏層的壓縮低維表達(dá)過程可以稱作模型的編碼階段(encoder),從隱藏層的壓縮特征映射還原出輸出層的近似原始數(shù)據(jù)的過程稱為解碼階段(decoder)。

        設(shè)原始空間數(shù)據(jù)為Rm×n,m為原始空間中數(shù)據(jù)實(shí)例數(shù),n為每條實(shí)例數(shù)據(jù)的維度,x(i)∈Rn(i=1,2,…,m)其每一個(gè)訓(xùn)練數(shù)據(jù)x(i)經(jīng)過編碼器操作(式(1))可得隱藏層的特征表達(dá)y(i)。

        其中,θ=(W,b)為網(wǎng)絡(luò)參數(shù),W為輸入層到隱藏層的權(quán)值矩陣,b為偏置向量,σ(x)為激活函數(shù),此處選用Sigmoid 激活函數(shù)。然后隱藏層的特征表達(dá)經(jīng)過解碼操作(式(2)),得到重構(gòu)向量z(i)。

        其中,θ′=(W′,b′),W′為隱藏層到輸出層間的權(quán)值矩陣,通常取W′=WT。通過無監(jiān)督貪婪算法調(diào)節(jié)權(quán)值和偏置量使重構(gòu)誤差最小就可完成單個(gè)自編碼的訓(xùn)練,即對模型參數(shù)優(yōu)化調(diào)節(jié)實(shí)際上是最小化重構(gòu)誤差(式(3))。

        L為代價(jià)函數(shù),文獻(xiàn)[13]證明了交叉熵代價(jià)函數(shù)要優(yōu)于平方差代價(jià)函數(shù),因此本文采用交叉熵代價(jià)函數(shù),其表達(dá)式為式(4)。

        則整個(gè)數(shù)據(jù)集條件下的代價(jià)函數(shù)為式(5)。

        同時(shí)為了防止出現(xiàn)過擬合,需要添加一個(gè)L2正則化權(quán)重衰減項(xiàng),λ為對應(yīng)的懲罰因子,控制懲罰項(xiàng)從而促進(jìn)權(quán)重的衰減,則改進(jìn)后的代價(jià)函數(shù)為式(6)。

        2.2 稀疏自編碼網(wǎng)絡(luò)

        稀疏自編碼網(wǎng)絡(luò)(sparse autoencoder network,SAN)是Bengio于2007年提出,它是在自編碼器基礎(chǔ)上添加約束條件,要求大部分節(jié)點(diǎn)為零,少部分不為零,用盡可能少的神經(jīng)元表示原始數(shù)據(jù)從而具有更優(yōu)學(xué)習(xí)數(shù)據(jù)特征的能力[14]。稀疏自動(dòng)編碼器代價(jià)函數(shù)為式(7)。

        其中,S2是隱藏層中神經(jīng)元的數(shù)量,為稀疏懲罰項(xiàng),即,β為稀疏懲罰項(xiàng)的權(quán)重,ρ∈(0,1)為指定的稀疏性參數(shù),表示神經(jīng)元的平均激活度,它與權(quán)重和偏置量有關(guān),想讓隱藏層神經(jīng)元j盡量為0,可以讓=ρ,然后讓ρ是一個(gè)趨近于0的小數(shù)。當(dāng)=ρ時(shí),達(dá)到最小為0;當(dāng)接近0或者1時(shí),急劇增大。因此在代價(jià)函數(shù)中加入此項(xiàng),并使其最小化,可以使得更靠近于ρ。

        2.3 稀疏降噪自編碼網(wǎng)絡(luò)

        稀疏降噪自編碼網(wǎng)絡(luò)(sparse denoising autoencoder network,SDAN)是在自編碼網(wǎng)絡(luò)的基礎(chǔ)上,對各網(wǎng)絡(luò)層進(jìn)行稀疏項(xiàng)限制,同時(shí)加入按一定概率分布的噪聲對輸入的數(shù)據(jù)進(jìn)行加噪,使稀疏自編碼網(wǎng)絡(luò)學(xué)習(xí)去除這種噪聲,從而提高稀疏自編碼器對數(shù)據(jù)的泛化能力,提高模型的魯棒性[15]。Vincent等人[16]認(rèn)為為了使AN具備魯棒性的特征表達(dá),提出降噪自編碼網(wǎng)絡(luò)(DAN)。DAN 與AN 類似,都需要編碼和解碼過程來重構(gòu)數(shù)據(jù),同屬于無監(jiān)督學(xué)習(xí)。不同的是,降噪自編碼器是在原始數(shù)據(jù)x上加入一定比例的噪聲變成了噪聲數(shù)據(jù)x′,然后將噪聲數(shù)據(jù)作為網(wǎng)絡(luò)的輸入數(shù)據(jù),來重構(gòu)原始還未加入噪聲的數(shù)據(jù),因此降噪自編碼的損失函數(shù)是構(gòu)造原始數(shù)據(jù)x與網(wǎng)絡(luò)輸出x′之間的一個(gè)差異性度量,然后訓(xùn)練恢復(fù)原始數(shù)據(jù),使網(wǎng)絡(luò)具有抗噪能力,最終還原出更具魯棒性的特征,提高了基本AN對輸入數(shù)據(jù)的泛化能力。稀疏降噪自編碼器結(jié)構(gòu)如圖2所示,設(shè)訓(xùn)練樣本x,樣本空間x∈Rd,SDAN 通過一個(gè)隨機(jī)映射變換進(jìn)而得到一個(gè)含有噪聲污染的數(shù)據(jù)D為數(shù)據(jù)集,則DAN 的編碼輸出為,接著通過z=解碼器將y反向變化,得到原始輸入數(shù)據(jù)x的重構(gòu)數(shù)據(jù)z,y∈Rh,z∈Rd。通常,加噪的方法有兩種:一種是添加高斯噪聲;另一種是以二項(xiàng)分布隨機(jī)處理數(shù)據(jù),將數(shù)據(jù)以一定概率置0。稀疏降噪自編碼網(wǎng)絡(luò)代價(jià)函數(shù)為:

        Fig.2 Structure of SDAN圖2 稀疏降噪自編碼網(wǎng)絡(luò)結(jié)構(gòu)

        2.4 堆棧式稀疏降噪自編碼網(wǎng)絡(luò)

        堆棧式稀疏降噪自編碼網(wǎng)絡(luò)(sSDAN)是由多個(gè)SDAN 堆疊而成。神經(jīng)網(wǎng)絡(luò)經(jīng)過多層的非線性表達(dá)能夠?qū)W習(xí)輸入數(shù)據(jù)更深層次有效的特征,且對每個(gè)SDAN 加入一定比例的噪聲ρ能夠?qū)W習(xí)更強(qiáng)健的特征表達(dá)。在訓(xùn)練時(shí),將第1個(gè)SDAN網(wǎng)絡(luò)的隱藏層的輸出作為第2個(gè)SDAN網(wǎng)絡(luò)隱藏層的輸入,并丟棄第1個(gè)SDAN網(wǎng)絡(luò)的隱藏層到輸出層的映射部分,從而構(gòu)建sSDAN 網(wǎng)絡(luò)的第2隱藏層,依次類推逐層進(jìn)行訓(xùn)練。首先,用經(jīng)過加噪處理的原始輸入數(shù)據(jù)訓(xùn)練第1個(gè)稀疏降噪自編碼器,得到輸入數(shù)據(jù)的1階特征表示然后,將該特征表示作為下一個(gè)稀疏降噪自編碼器的輸入,得到2階特征表示依次類推,將第(n-1)階特征表示作為第n個(gè)稀疏降噪自編碼器的輸入,得到n階特征的表示sSDAN的學(xué)習(xí)分為無監(jiān)督逐層貪婪的預(yù)訓(xùn)練與有監(jiān)督的微調(diào)。當(dāng)模型在逐層預(yù)訓(xùn)練過程時(shí),訓(xùn)練每一層SDAN的輸入數(shù)據(jù)為加入一定比例噪聲ρ的數(shù)據(jù)信息,在微調(diào)過程中使用未加噪聲的原始數(shù)據(jù)對整個(gè)SDAN 網(wǎng)絡(luò)進(jìn)行微調(diào)。圖3呈現(xiàn)了預(yù)訓(xùn)練的過程,圖4呈現(xiàn)反向微調(diào)的過程。其中sSDAN的數(shù)目作為模型的一個(gè)重要參數(shù),將在下章節(jié)討論如何確定。

        模型學(xué)習(xí)的具體過程如下:

        (1)無監(jiān)督預(yù)訓(xùn)練

        步驟1首先采用稀疏自編碼網(wǎng)絡(luò)先訓(xùn)練從輸入層到h(1)層的參數(shù),需要用原始輸入數(shù)據(jù)x訓(xùn)練第一個(gè)SDAN,它能夠?qū)W習(xí)得到原始輸入的一階特征表示將無標(biāo)簽的JavaScript 向量數(shù)據(jù)加入一定的比例的噪聲ρ,生成樣本數(shù)據(jù)作為第一個(gè)SDAN的數(shù)據(jù),利用DAN 的重構(gòu)方式,訓(xùn)練得到隱藏層h(1)的權(quán)重參數(shù)W1,同時(shí)計(jì)算出隱藏層h(1)的輸出。訓(xùn)練完畢后,去除解碼層,只留下從輸入層到隱藏層的編碼階段。

        Fig.3 Unsupervised pre-training圖3 無監(jiān)督預(yù)訓(xùn)練

        Fig.4 Supervised fine-tuning圖4 有監(jiān)督的微調(diào)

        步驟2將步驟1的輸出加入相同比例的噪聲ρ,從而得到,作為第二個(gè)SDAN的輸入,用相同的方式訓(xùn)練得到隱藏層h(2)的權(quán)重參數(shù)W2,同時(shí)計(jì)算出隱藏層h(2)的輸出。訓(xùn)練完畢后,再去除h(2)層的解碼層,如此重復(fù),可以訓(xùn)練更高層的網(wǎng)絡(luò),這就是逐層貪婪訓(xùn)練的思想。

        步驟3同樣的方法將上一層數(shù)據(jù)加入相同比例的噪聲ρ,作為第n個(gè)SDAN 的輸入,訓(xùn)練得到隱藏層h(n)的權(quán)重參數(shù)Wn,并計(jì)算隱藏層h(n)的輸出。

        步驟4將步驟3隱藏層的輸出作為Softmax 分類器的輸入,得到分類器的參數(shù)。

        步驟5將步驟1~步驟4逐層訓(xùn)練得到的網(wǎng)絡(luò)參數(shù)作為網(wǎng)絡(luò)的初始參數(shù),完成模型預(yù)訓(xùn)練。

        (2)有監(jiān)督微調(diào)

        微調(diào)是采用少量標(biāo)簽數(shù)據(jù)進(jìn)行有監(jiān)督訓(xùn)練,與此同時(shí)對全局網(wǎng)絡(luò)訓(xùn)練中的誤差進(jìn)行優(yōu)化,微調(diào)的作用是對整個(gè)sSDAN+Softmax 網(wǎng)絡(luò)的權(quán)重進(jìn)行調(diào)優(yōu),使模型具有更精準(zhǔn)的特征提取和學(xué)習(xí)能力。微調(diào)算法具體過程如下:

        步驟1使用標(biāo)簽的數(shù)據(jù)作為輸入數(shù)據(jù),對sSDAN+Softmax 進(jìn)行全局訓(xùn)練,計(jì)算整個(gè)網(wǎng)絡(luò)的損失函數(shù),以及對每個(gè)參數(shù)的偏導(dǎo)函數(shù)。

        步驟2采用誤差反向傳播算法并運(yùn)用隨機(jī)梯度下降對網(wǎng)絡(luò)權(quán)值進(jìn)行優(yōu)化,過程是輸入標(biāo)簽化的數(shù)據(jù)從前至后逐層計(jì)算輸出Y值,計(jì)算輸出層誤差,誤差反向傳播,計(jì)算每層誤差和梯度,將這些參數(shù)作為sSDAN+Softmax整個(gè)網(wǎng)絡(luò)的最優(yōu)參數(shù)。

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

        本文實(shí)驗(yàn)環(huán)境是CPU Intel Core i5-7300HQ 2.50 GHz、GPU GeForce CTX1050 Ti、8 GB RAM 和Windows10操作系統(tǒng),使用Python3.6下Keras框架實(shí)現(xiàn)。

        3.1 實(shí)驗(yàn)流程

        Fig.5 JavaScript malicious code detection model based on sSDAN圖5 基于sSDAN的JavaScript惡意代碼檢測模型

        為了提取更加抽象和有用的特征信息,本文提出的基于sSDAN 的JavaScript 惡意代碼檢測模型完整過程如圖5所示。其中網(wǎng)絡(luò)由1個(gè)輸入層,4個(gè)隱藏層和1個(gè)Softmax 層組成。該檢測框架首先是數(shù)據(jù)預(yù)處理階段,將字符型JavaScript 代碼轉(zhuǎn)為數(shù)值型數(shù)據(jù)矢量X=(x1,x2,…,xn)T。然后將數(shù)據(jù)歸一化到[0,1]區(qū)間作為輸入。其次是sSDAN 網(wǎng)絡(luò)特征抽取階段,主要分為兩步:一是預(yù)訓(xùn)練,采用逐層貪婪算法對每個(gè)SDAN網(wǎng)絡(luò)初始化訓(xùn)練,將前一個(gè)SDAN的輸出作為下一個(gè)的輸入,然后在頂端加入Softmax 分類器;二是權(quán)值微調(diào),在每個(gè)單獨(dú)的SDAN 訓(xùn)練完成后,為保障整體權(quán)值的最優(yōu),需要進(jìn)行整體權(quán)值的微調(diào),使用誤差反向傳播分類算法進(jìn)行全局精調(diào)。這樣網(wǎng)絡(luò)前面的隱藏層完成特征的提取,Softmax 完成最終的分類檢測。

        3.2 實(shí)驗(yàn)數(shù)據(jù)

        本文的數(shù)據(jù)包括惡意的JavaScript代碼樣本和安全的JavaScript 代碼樣本。一方面來源于文獻(xiàn)[7]開源的數(shù)據(jù)集;一方面對Alexa’s Top 排名靠前的網(wǎng)站爬取,得到安全的JavaScript 代碼樣本,從PhishTank公布的網(wǎng)站中使用Python Scrapy獲取惡意的URL站點(diǎn),并利用Google Safe Browsing API進(jìn)行站點(diǎn)篩選,得到惡意代碼樣本。實(shí)驗(yàn)中,最終獲得21 000個(gè)良性JavaScript腳本和7 068個(gè)惡意JavaScript腳本。將數(shù)據(jù)集的90%作為訓(xùn)練集,10%作為測試集,數(shù)據(jù)集樣本大小如表1所示。

        Table 1 Data set size表1 數(shù)據(jù)集樣本大小

        3.3 數(shù)據(jù)預(yù)處理

        在自然語言處理中使用表示文本形式的詞向量更為常見,但由于惡意JavaScript代碼具有混淆特征,其中包含了大量無意義的字符串,因此惡意JavaScript代碼的檢測不適用于詞向量形式[11]。由于JavaScript代碼為字符型數(shù)據(jù),要進(jìn)行的預(yù)處理操作過程如下:

        (1)數(shù)值化

        依據(jù)ASCII 表將JavaScript 代碼中的字符轉(zhuǎn)為8位二進(jìn)制數(shù)值型數(shù)據(jù),然后以二進(jìn)制文件形式保存。圖6顯示了JavaScript 的兩個(gè)代碼片段,圖6(a)cklogin()函數(shù)對用戶的登錄進(jìn)行檢查,獲取用戶的cookie 信息并進(jìn)行判斷;惡意的JavaScript 代碼由一些無意義的字符串組成,如圖6(b)所示,通常使用Unicode、Hex、Decimal 和字符分割等手段將代碼轉(zhuǎn)變?yōu)槿搜蹮o法清晰可見的字符;因?yàn)榭臻g有限,只轉(zhuǎn)換了圖6(a)和圖6(b)的部分代碼如圖6(c)所示。

        Fig.6 Data processing example圖6 數(shù)據(jù)處理示例

        (2)歸一化

        進(jìn)行數(shù)值化處理之后,數(shù)據(jù)集中的數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù),但數(shù)值型數(shù)據(jù)中數(shù)值差異較大,取值范圍為0~255之間,數(shù)值差異較大容易引起網(wǎng)絡(luò)收斂較慢和神經(jīng)元輸出飽和等問題,因此要對原始數(shù)據(jù)進(jìn)行歸一化處理。文中使用最大-最小歸一化方法將數(shù)據(jù)集中的數(shù)據(jù)歸一化到[0,1]區(qū)間之內(nèi),其公式為:

        其中,x*為歸一化后的數(shù)據(jù),x為當(dāng)前原始數(shù)據(jù),xmin為當(dāng)前屬性中最小的數(shù)據(jù)值,xmax為當(dāng)前屬性中的最大數(shù)據(jù)值。

        3.4 sSDAN的結(jié)構(gòu)分析

        在堆棧式稀疏降噪自編碼學(xué)習(xí)過程中,網(wǎng)絡(luò)參數(shù)的設(shè)置會(huì)對網(wǎng)絡(luò)性能存在較大影響,因此,本文首先從網(wǎng)絡(luò)層數(shù)和噪聲系數(shù)大小探討參數(shù)對網(wǎng)絡(luò)性能的影響。

        (1)網(wǎng)絡(luò)層數(shù)

        在選取過程中存在較大的主觀性,沒有統(tǒng)一的標(biāo)準(zhǔn)和要求,因此為了對比不同網(wǎng)絡(luò)深度對整體分類性能的影響,本實(shí)驗(yàn)將網(wǎng)絡(luò)層數(shù)分別設(shè)置2~6層進(jìn)行對比。其中輸入維度是1 000維,輸出為50維,每個(gè)隱藏層節(jié)點(diǎn)設(shè)置為250,學(xué)習(xí)率0.01,將網(wǎng)絡(luò)層從2變化至6,識(shí)別率如表2所示,30次誤差迭代曲線圖如圖7所示。

        Table 2 sSDAN training of different structures表2 不同結(jié)構(gòu)的sSDAN訓(xùn)練

        Fig.7 Local magnification of training loss function圖7 局部訓(xùn)練損失函數(shù)放大圖

        從表2可以看出,當(dāng)網(wǎng)絡(luò)層數(shù)從2增加到4時(shí),網(wǎng)絡(luò)識(shí)別率呈現(xiàn)增長趨勢,這是由于增加降噪編碼層可以提高網(wǎng)絡(luò)的學(xué)習(xí)性能,使得更高層次可以學(xué)習(xí)到更具有代表性的特征,當(dāng)網(wǎng)絡(luò)為4層時(shí),識(shí)別率可達(dá)99.2%,但是當(dāng)網(wǎng)絡(luò)層數(shù)繼續(xù)增大,識(shí)別率反而下降。從圖7可以看出,網(wǎng)絡(luò)層數(shù)小于4層時(shí),網(wǎng)絡(luò)收斂速度慢,當(dāng)網(wǎng)絡(luò)層次大于4時(shí),網(wǎng)絡(luò)誤差震蕩較大,這是因?yàn)榫W(wǎng)絡(luò)過大時(shí)增加了網(wǎng)絡(luò)的復(fù)雜度,導(dǎo)致網(wǎng)絡(luò)不穩(wěn)定,泛化性降低,容易出現(xiàn)過擬合。較淺或較深都會(huì)使誤差增大。通常隨著網(wǎng)絡(luò)深度的增加,SDAN 的概括抽象能力也會(huì)增強(qiáng)。淺層的SDAN 網(wǎng)絡(luò)由于網(wǎng)絡(luò)層次較淺,導(dǎo)致概括抽象能力較差,容易損失較多的原始信息,從而使得訓(xùn)練誤差較大;太過于深層的SDAN網(wǎng)絡(luò),隨著深度的增加會(huì)導(dǎo)致抽取的信息過于抽象,使得原始數(shù)據(jù)的細(xì)節(jié)信息丟失,也會(huì)使訓(xùn)練誤差增加。因而,本文選用具有4層結(jié)構(gòu)的SDAN進(jìn)行數(shù)據(jù)降維。

        (2)噪聲率

        噪聲率是控制降噪自編碼網(wǎng)絡(luò)中將輸入隨機(jī)隱藏為零的部分,即決定降噪自編碼網(wǎng)絡(luò)要通過多少節(jié)點(diǎn)對輸入數(shù)據(jù)進(jìn)行重構(gòu)。如果噪聲率為0.6,選擇將輸入數(shù)據(jù)的60%隨機(jī)隱藏,用40%的節(jié)點(diǎn)對數(shù)據(jù)進(jìn)行重構(gòu)。在實(shí)際應(yīng)用中隱藏輸入的部分一般都要低于0.5,因此本實(shí)驗(yàn)中噪聲系數(shù)率取最大為0.6,迭代次數(shù)100,學(xué)習(xí)率0.01。從圖8可以看出,隨噪聲率的增加,識(shí)別率呈增長趨勢。當(dāng)噪聲為0時(shí),網(wǎng)絡(luò)為傳統(tǒng)的自編碼神經(jīng)網(wǎng)絡(luò),加入噪聲后的網(wǎng)絡(luò)性能明顯優(yōu)于傳統(tǒng)自編碼神經(jīng)網(wǎng)絡(luò),當(dāng)噪聲系數(shù)為0.4時(shí),可以從“被污染”的輸入中學(xué)習(xí)到更魯棒性的特征。

        Fig.8 Experimental results of different noise coefficients圖8 不同噪聲系數(shù)值實(shí)驗(yàn)結(jié)果

        圖9給出了稀疏參數(shù)ρ與第一層自編碼網(wǎng)絡(luò)重構(gòu)誤差的關(guān)系。可以看出選擇0.08的稀疏參數(shù)時(shí)的自編碼網(wǎng)絡(luò)的重構(gòu)誤差最小,加入0.4的隨機(jī)噪聲使得學(xué)習(xí)到的特征更具有魯棒性,學(xué)習(xí)率為0.001,神經(jīng)元激活函數(shù)為Relu。

        Fig.9 Reconstruction error圖9 重構(gòu)誤差

        在進(jìn)行最終實(shí)驗(yàn)測試時(shí),網(wǎng)絡(luò)層數(shù)設(shè)定為4層,網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置為1 000-500-250-125-50-2,首先要進(jìn)行參數(shù)調(diào)優(yōu)。目前對于參數(shù)調(diào)優(yōu)并沒有統(tǒng)一標(biāo)準(zhǔn),大多數(shù)根據(jù)實(shí)驗(yàn)條件而定并通過對比分析參數(shù)的優(yōu)劣,反復(fù)實(shí)驗(yàn)進(jìn)行調(diào)優(yōu),最終確定的參數(shù)如表3所示。

        Table 3 Parameter setting of sSDAN表3 sSDAN參數(shù)設(shè)置

        隨后,將經(jīng)過sSDAN降維后的數(shù)據(jù)作為Softmax神經(jīng)網(wǎng)絡(luò)的輸入進(jìn)行訓(xùn)練和預(yù)測。訓(xùn)練集和驗(yàn)證集的準(zhǔn)確率和損失函數(shù)曲線分別如圖10和圖11所示,其中acc代表訓(xùn)練集的準(zhǔn)確率,val_acc表示驗(yàn)證集的準(zhǔn)確率,loss 和val_loss 分別代表訓(xùn)練集和驗(yàn)證集的損失函數(shù)曲線。從兩組圖像可知,檢測曲線呈現(xiàn)穩(wěn)定上升的趨勢且訓(xùn)練準(zhǔn)確率較高,代價(jià)函數(shù)值呈現(xiàn)穩(wěn)定下降的趨勢且訓(xùn)練誤差較低,表明神經(jīng)網(wǎng)絡(luò)具有良好的訓(xùn)練效果。因此,本文選擇1 000-500-250-125-50-2結(jié)構(gòu)的sSDAN-softmax模型作為實(shí)驗(yàn)?zāi)P汀?/p>

        Fig.10 Accuracy curve圖10 準(zhǔn)確率曲線

        Fig.11 Loss function curve圖11 損失函數(shù)曲線

        3.5 對比實(shí)驗(yàn)

        本文定義惡意的JavaScript 代碼樣本為負(fù)樣本,正常的JavaScript 代碼為正樣本,由此得到分類器列表,詳見表4。

        Table 4 Evaluation index confusion matrix表4 評價(jià)指標(biāo)混淆矩陣

        研究中,將通過準(zhǔn)確率和誤報(bào)率來評估檢測性能,對其內(nèi)容分述如下。

        (1)準(zhǔn)確率(Accuracy)。被正確檢測出的樣本數(shù)/測試集所有樣本數(shù),公式為:

        (2)誤報(bào)率(false positive rate,F(xiàn)PR)。錯(cuò)誤分類為惡意的JavaScript良性代碼所占比例的公式為:

        為了從不同角度考察本文所提方法的有效性,本文設(shè)計(jì)3組不同的實(shí)驗(yàn):(1)AN、DAN 和SDAN 在不同訓(xùn)練數(shù)據(jù)情況下的精確度變化;(2)sSDANsoftmax、sSDAN-LR 和sSDAN-SVM 的分類效果對比;(3)sSDAN-Softmax 與傳統(tǒng)機(jī)器學(xué)習(xí)算法效果的對比,主要是對手工特征分類和自動(dòng)提取特征方法進(jìn)行對比,分別從CCR(correctly classified rate)、ICR(incorrectly classified rate)、TPR(true positive rate)和FPR進(jìn)行比較。

        將沒有添加噪聲的AE 與加了噪聲的DAE(denoising autoencoder)和加了稀疏限制的SDAE(sparse denoising autoencoder)對不同訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,結(jié)果如圖12??梢钥闯鲈诓煌?xùn)練數(shù)據(jù)下SDAE的精確度效果都要優(yōu)于AE和DAE的。

        Fig.12 Accuracy comparison of AE/DAE/SDAE under different training data sizes圖12 不同訓(xùn)練數(shù)據(jù)下AE/DAE/SDAE的精確度對比

        為了驗(yàn)證Softmax 的分類效果,增加LR 和SVM作為分類進(jìn)行對比,即將所提的sSDAN-Softmax、sSDAN-LR 和sSDAN-SVM 模型進(jìn)行分析和比較。隱藏層都設(shè)置為4層,噪聲和學(xué)習(xí)率參數(shù)都設(shè)置一樣,每訓(xùn)練10次取平均值作為一次輸出,實(shí)驗(yàn)結(jié)果如圖13所示,可以看出Softmax 的分類效果要高于LR和SVM。

        Fig.13 Comparison of effects of different sSDAN classifiers圖13 不同sSDAN分類器效果比較

        選擇機(jī)器學(xué)習(xí)算法平臺(tái)WEKA 中的7種機(jī)器學(xué)習(xí)分類算法對代碼樣本進(jìn)行訓(xùn)練和分類。采用十折交叉驗(yàn)證(10-fold cross-validation)方法,將數(shù)據(jù)集分成10份,輪流將其中9份作為訓(xùn)練數(shù)據(jù),1份作為測試數(shù)據(jù),進(jìn)行實(shí)驗(yàn)。將10次的結(jié)果數(shù)據(jù)的平均值作為實(shí)驗(yàn)結(jié)果,機(jī)器學(xué)習(xí)和sSDAN模型實(shí)驗(yàn)結(jié)果如表5所示。

        Table 5 Comparison between machine learning classification algorithm and sSDAN model表5 機(jī)器學(xué)習(xí)分類算法與sSDAN模型的對比

        從表5中可以看出,機(jī)器學(xué)習(xí)方法算法分類中,Na?ve Bayes 的效果最差,識(shí)別準(zhǔn)確率僅為79.939%,錯(cuò)誤率為20.061%;效果最好的是Random Forest,識(shí)別準(zhǔn)確率為98.784%,錯(cuò)誤率1.216%;但所提出的sSDAN 識(shí)別準(zhǔn)確率達(dá)到99.501%,錯(cuò)誤率僅為0.198%??梢缘弥褂脽o監(jiān)督學(xué)習(xí)的sSDAN對惡意代碼的檢測要優(yōu)于其他傳統(tǒng)機(jī)器學(xué)習(xí)檢測模型。

        4 結(jié)束語

        本文針對機(jī)器學(xué)習(xí)在人工提取惡意代碼特征過程中耗時(shí)且檢測準(zhǔn)確率過于依賴特征選擇的問題,提出一種基于堆棧式稀疏降噪自編碼網(wǎng)絡(luò)的JavaScript惡意代碼檢測方法。堆棧式稀疏降噪自編碼網(wǎng)絡(luò)是一種深層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),通過隱藏層逐層抽取有效的信息,可以很好地進(jìn)行特征降維和去除冗余特征。文中提出的sSDAN-Softmax檢測模型綜合使用了稀疏自編碼網(wǎng)絡(luò)和降噪自編碼網(wǎng)絡(luò),有效提高了網(wǎng)絡(luò)的泛化能力和降維特征的魯棒性。實(shí)驗(yàn)結(jié)果表明,將JavaScript 代碼轉(zhuǎn)為數(shù)值型矢量作為堆棧式稀疏降噪自編碼網(wǎng)絡(luò)的輸入,再使用sSDAN 對高維數(shù)據(jù)進(jìn)行高維至低維的非線性映射,自動(dòng)提取惡意代碼的抽象特征,最后對低維數(shù)據(jù)進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練和預(yù)測,相比于傳統(tǒng)的機(jī)器學(xué)習(xí)算法,sSDANSoftmax 對JavaScript 惡意代碼的檢測依然有較高的準(zhǔn)確率,并且誤報(bào)率也有所下降。因此,sSDANSoftmax 檢測模型不僅提高了惡意代碼檢測預(yù)測準(zhǔn)確率,且加快了檢測的速度,是一種適用于當(dāng)前高維、復(fù)雜多變惡意代碼的方法,可以為當(dāng)前的惡意代碼檢測研究提供一種新的思路。

        猜你喜歡
        編碼器代碼編碼
        基于SAR-SIFT和快速稀疏編碼的合成孔徑雷達(dá)圖像配準(zhǔn)
        《全元詩》未編碼疑難字考辨十五則
        子帶編碼在圖像壓縮編碼中的應(yīng)用
        電子制作(2019年22期)2020-01-14 03:16:24
        Genome and healthcare
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        創(chuàng)世代碼
        基于FPGA的同步機(jī)軸角編碼器
        基于PRBS檢測的8B/IOB編碼器設(shè)計(jì)
        亚洲国产成人久久精品美女av| 亚洲白白色无码在线观看| 射死你天天日| 成人国产精品一区二区网站| 亚洲综合精品在线观看中文字幕| 中文片内射在线视频播放| 男人的天堂一区二av| 韩国三级大全久久网站| 国产午夜福利小视频合集| 日本a在线天堂| 日本亚洲视频免费在线看| 草草地址线路①屁屁影院成人| 亚洲色偷偷综合亚洲av伊人| 无码成人片一区二区三区| 国产喷白浆精品一区二区豆腐| 蜜桃视频第一区免费观看| av无码精品一区二区三区| 日本xxxx色视频在线播放| 精品国偷自产在线不卡短视频| 国产一区二区三区在线爱咪咪| 最新国产不卡在线视频| 国产欧美一区二区精品久久久 | 女人无遮挡裸交性做爰| 麻豆一区二区99久久久久| 亚洲中文字幕av天堂| 男女啪啪在线视频网站| 久久久无码精品亚洲日韩蜜臀浪潮| 国产精品视频一区国模私拍| 色中文字幕视频在线观看| 一本色道久久亚洲综合| 国模雨珍浓密毛大尺度150p| 成人无码午夜在线观看| 熟女丝袜美腿亚洲一区二区三区| 精品女厕偷拍视频一区二区| 人妻 日韩 欧美 综合 制服| 国产羞羞视频在线观看| 国产精品制服一区二区| 国产剧情av麻豆香蕉精品| 国产成人亚洲精品| 中文字幕久热精品视频免费| 精品少妇白浆一二三区|