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

        ?

        改進(jìn)編碼-解碼框架下的跨站腳本檢測(cè)

        2021-01-20 07:57:22程琪芩
        關(guān)鍵詞:機(jī)制特征結(jié)構(gòu)

        程琪芩,萬(wàn) 良+

        (1.貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴州 貴陽(yáng) 550025;2.貴州大學(xué) 計(jì)算機(jī)軟件與理論研究所,貴州 貴陽(yáng) 550025)

        0 引 言

        跨站腳本(cross-site script,XSS)攻擊最早出現(xiàn)在20世紀(jì)90年代的萬(wàn)維網(wǎng)上,是一種攻擊者將惡意腳本注入web網(wǎng)頁(yè)的注入攻擊[1]。黑客利用XSS漏洞盜取用戶(hù)Cookie,從而得到用戶(hù)的身份權(quán)限,給用戶(hù)帶來(lái)不便甚至造成巨大損失[2]。因此,檢測(cè)XSS攻擊、提高web安全成為當(dāng)今網(wǎng)絡(luò)安全領(lǐng)域不懈的追求。傳統(tǒng)的檢測(cè)技術(shù)有模糊測(cè)試技術(shù)[3]、黑盒技術(shù)[4]、輸入驗(yàn)證技術(shù)[5]等,后來(lái)又提出了基于機(jī)器學(xué)習(xí)[6-8]的檢測(cè)技術(shù)。但是,隨著XSS攻擊形式越來(lái)越多變,攻擊特征也更加難以捕捉,現(xiàn)有的檢測(cè)方法性能有限[9]。為了更全面地獲取XSS特征,加快模型的收斂速度,提高檢測(cè)性能,本文將編碼-解碼(Encoder-Decoder)框架應(yīng)用到XSS檢測(cè)中,將XSS檢測(cè)視為自然語(yǔ)言序列問(wèn)題,由卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)和雙向門(mén)控循環(huán)單元(bidirectional gated recurrent unit,BiGRU)并行組成Encoder,并運(yùn)用注意力機(jī)制解決該框架的“分心問(wèn)題”。實(shí)驗(yàn)驗(yàn)證,應(yīng)用注意力機(jī)制改進(jìn)Encoder-Decoder框架下的XSS檢測(cè)模型具有良好的性能,且相對(duì)于串行結(jié)構(gòu),并行結(jié)構(gòu)的CNN和BiGRU具有更好的特征提取能力。

        1 相關(guān)工作

        傳統(tǒng)機(jī)器學(xué)習(xí)方法的人工提取特征具有主觀性強(qiáng)、工作量大、特征提取不夠充分等問(wèn)題,而具備自動(dòng)學(xué)習(xí)能力的深度學(xué)習(xí)能很好的解決這個(gè)問(wèn)題,一些專(zhuān)家學(xué)者將其應(yīng)用到XSS檢測(cè)中,并提出了不同的檢測(cè)方法。Guichang Z等[10]提出了一種命名為CNNPayl的XSS攻擊檢測(cè)方法,該方法先利用高斯混合模型和代碼混淆策略得到攻擊數(shù)據(jù)集,再構(gòu)建多層CNN模型學(xué)習(xí)和提取攻擊特征,得到了較高檢測(cè)率和較低假陽(yáng)性的檢測(cè)效果,但是該方法忽略了XSS上下文的語(yǔ)義信息。Fang Y等[11]提出了一種命名為DeepXSS的XSS檢測(cè)方法,該方法運(yùn)用長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)(long-short term memory,LSTM)檢測(cè)XSS,并取得了較好的預(yù)測(cè)效果。Wu F等[12]提出了一種結(jié)合CNN和LSTM的CNN-LSTM檢測(cè)模型,該方法驗(yàn)證了組合神經(jīng)網(wǎng)絡(luò)的效果優(yōu)于單一網(wǎng)絡(luò)。

        在上述文獻(xiàn)研究的基礎(chǔ)上,本文構(gòu)建了一種應(yīng)用注意力機(jī)制改進(jìn)Encoder-Decoder框架下的跨站腳本檢測(cè)模型。Encoder-Decoder[13]是深度學(xué)習(xí)中一個(gè)非常常見(jiàn)的模型框架,常用于圖像識(shí)別和機(jī)器翻譯等領(lǐng)域,采用CNN、循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)、LSTM等網(wǎng)絡(luò)自由搭配,解決多個(gè)領(lǐng)域的問(wèn)題。CNN[14]是一種前饋神經(jīng)網(wǎng)絡(luò),常用于圖像處理、自然語(yǔ)言處理等。CNN通過(guò)若干次卷積、池化,不斷提取和壓縮特征,最終學(xué)習(xí)到高層次特征。門(mén)控循環(huán)單元網(wǎng)絡(luò)[15](gated recurrent unit,GRU)為L(zhǎng)STM的一個(gè)變種,它將LSTM的遺忘門(mén)和輸入門(mén)合成為重置門(mén),用于捕獲序列問(wèn)題中的短期依賴(lài),并設(shè)置了更新門(mén),用于捕獲序列問(wèn)題中的長(zhǎng)期依賴(lài)。GRU結(jié)構(gòu)比LSTM簡(jiǎn)單,參數(shù)更少,訓(xùn)練收斂速度更快。借鑒雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(bidirectional recurrent neural network,BiRNN)雙向處理序列的特點(diǎn),選擇BiGRU學(xué)習(xí)XSS上下文信息。本文組合這兩種神經(jīng)網(wǎng)絡(luò),取其優(yōu)勢(shì),進(jìn)行XSS檢測(cè)。模型中Encoder采用CNN和BiGRU并行結(jié)構(gòu)的方式,讓CNN去逐層學(xué)習(xí)XSS的更高層次特征,讓BiGRU去學(xué)習(xí)XSS序列間的信息依賴(lài)和上下文信息,結(jié)合兩者學(xué)習(xí)到的特征,完成編碼,再利用注意力機(jī)制選擇關(guān)注編碼后的特征中與XSS顯著相關(guān)的重要特征,從而更好實(shí)現(xiàn)分類(lèi)。

        2 檢測(cè)模型

        為了有效檢測(cè)XSS、提高web網(wǎng)頁(yè)安全,本文提出了一種應(yīng)用注意力機(jī)制改進(jìn)Encoder-Decoder框架下的跨站腳本檢測(cè)模型,模型結(jié)構(gòu)自下而上如圖1所示,采用序列問(wèn)題中常用的Encoder-Decoder框架,并運(yùn)用注意力機(jī)制提取Encoder序列中與輸出顯著相關(guān)的信息。模型主要分為4個(gè)階段:Encoder階段、注意力機(jī)制階段、Decoder階段、分類(lèi)預(yù)測(cè)。實(shí)驗(yàn)中,樣例數(shù)據(jù)經(jīng)過(guò)數(shù)據(jù)預(yù)處理后,已經(jīng)為50×128維詞向量矩陣word embedding,因此模型不再需要使用embedding層,直接使用input層實(shí)例化神經(jīng)網(wǎng)絡(luò)的輸入,再進(jìn)行后面的操作。

        圖1 模型結(jié)構(gòu)

        2.1 Encoder

        在深度學(xué)習(xí)中,常用Encoder將輸入序列編碼形成中間表示形式。本文將CNN和BiGRU并行作為Encoder,結(jié)合CNN學(xué)習(xí)到的22×128維特征和BiGRU學(xué)習(xí)到的50×128維特征,作為編碼后的72×128維中間表示特征。

        2.1.1 CNN

        一維卷積(Convolution1D,Conv1D)是一維卷積操作,常用于自然語(yǔ)言處理,它的輸入為三維數(shù)據(jù)向量,本文選擇其作為模型的卷積層。最大池化(max-pooling)能減少卷積層參數(shù)造成的估計(jì)均值誤差,本文選擇其作為模型的池化層。

        模型的CNN階段包含兩個(gè)Conv1D層和一個(gè)max-pooling層。兩個(gè)Conv1D層選擇了128個(gè)卷積核為4×4的卷積操作(如式(1)所示),然后使用非線性激活函數(shù)對(duì)卷積操作的輸出結(jié)果做一次非線性映射,增強(qiáng)模型的非線性表達(dá)能力

        (1)

        常用的非線性激活函數(shù)中,relu函數(shù)(如式(2)所示)迭代速度較快,因此本文選擇其為卷積層的激活函數(shù)

        (2)

        經(jīng)過(guò)第一層卷積操作和非線性映射后,得到了一個(gè)特征映射,再將其作為第二個(gè)卷積層的輸入,經(jīng)過(guò)第二個(gè)卷積操作和非線性映射后,得到該層的特征映射。經(jīng)過(guò)兩層卷積后,將特征輸入到池化層進(jìn)行池化操作,對(duì)經(jīng)過(guò)非線性映射的特征進(jìn)行采樣處理。max-pooling層選擇值為2的池化步長(zhǎng),對(duì)特征映射取最大值,提取最有效的特征信息,降低特征維度。

        CNN階段通過(guò)逐層卷積或者池化,學(xué)習(xí)高層次的特征,作為Encoder編碼結(jié)果的一部分。CNN學(xué)習(xí)過(guò)程如下:

        步驟1 初始化卷積層的卷積核大小、卷積核數(shù)量,初始化池化層的池化步長(zhǎng);

        步驟2 將每條樣例數(shù)據(jù)x輸入第一個(gè)卷積層;

        步驟3 對(duì)其進(jìn)行卷積操作,再經(jīng)過(guò)非線性激活函數(shù)relu(x)進(jìn)行非線性映射,輸出47×128維的特征映射x1;

        步驟4 將步驟3卷積出來(lái)的特征映射x1輸入第二個(gè)卷積層;

        步驟5 以相同的方式進(jìn)行卷積和非線性映射,輸出44×128維的特征映射x2;

        步驟6 將步驟5輸出的特征映射x2輸入池化層;

        步驟7 池化下采樣,輸出CNN訓(xùn)練得到的22×128維特征。

        2.1.2 BiGRU

        圖2 GRU結(jié)構(gòu)

        重置門(mén)rt和更新門(mén)zt均以Sigmoid函數(shù)作為激活函數(shù),zt計(jì)算前一狀態(tài)傳遞到當(dāng)前狀態(tài)的信息量,如式(3)所示,其中wz為更新門(mén)zt的權(quán)值矩陣,bz為zt的偏置向量,σ(x)為Sigmoid激活函數(shù)。zt值越大,前一狀態(tài)傳遞到當(dāng)前狀態(tài)的信息越多。和LSTM必須考慮上一狀態(tài)對(duì)當(dāng)前狀態(tài)的影響不同,GRU通過(guò)重置門(mén)選擇是否保留上一狀態(tài)的隱藏輸出,若zt為0,則丟棄上一狀態(tài)的隱藏輸出,若為1,則保留上一狀態(tài)的隱藏輸出

        zt=σ(wz·[ht-1,xt]+bz)

        (3)

        rt=σ(wr·[ht-1,xt]+br)

        (4)

        (5)

        (6)

        BiGRU階段通過(guò)前向GRU層學(xué)習(xí)上文與下文的關(guān)系信息,通過(guò)反向GRU層學(xué)習(xí)下文對(duì)上文的關(guān)系信息,最后得到XSS的上下文信息特征,作為Encoder編碼結(jié)果的一部分。BiGRU學(xué)習(xí)過(guò)程如下:

        步驟2 將每個(gè)樣例數(shù)據(jù)x輸入BiGRU的前向?qū)樱?/p>

        步驟5 將每個(gè)樣例數(shù)據(jù)x輸入BiGRU的反向?qū)樱?/p>

        2.2 注意力機(jī)制

        本文引入注意力機(jī)制[16]來(lái)學(xué)習(xí)抽取特征中與XSS相關(guān)性高的信息,提高模型的檢測(cè)性能,加快模型的收斂速度。注意力機(jī)制主要是借鑒人類(lèi)的視覺(jué)系統(tǒng),讓模型忽略與XSS相關(guān)性不高甚至沒(méi)有關(guān)系的部分特征,選擇關(guān)注與XSS密切相關(guān)的部分特征,從而進(jìn)行更高效的學(xué)習(xí)。本文將CNN和BiGRU同時(shí)作為注意力模型的編碼器,以GRU作為解碼器,經(jīng)過(guò)編碼器編碼以后,計(jì)算每個(gè)輸入對(duì)于當(dāng)前輸出的注意力矩陣,再利用解碼器解碼,得到分類(lèi)結(jié)果。注意力機(jī)制的結(jié)構(gòu)如圖3所示。

        圖3 注意力機(jī)制結(jié)構(gòu)

        其中xi(1≤i≤n) 表示輸入向量,hi(1≤i≤n) 表示經(jīng)過(guò)CNN階段和BiGRU階段編碼得到的隱藏輸出,Hi(1≤i≤m) 表示經(jīng)過(guò)GRU解碼得到的隱藏輸出。 F(Ht-1,h1∶t) 計(jì)算輸入數(shù)據(jù)h1∶t對(duì)當(dāng)前輸出Yt的注意力分布情況(如式(7)所示),然后應(yīng)用softmax函數(shù)將其轉(zhuǎn)換為對(duì)應(yīng)的注意力分配權(quán)值(如式(8)所示),再與輸入加權(quán)求和(如式(9)所示),就得到了注意力矩陣,突顯出與當(dāng)前輸出密切相關(guān)的特征。將注意力矩陣作為解碼器的部分輸入,從而得到當(dāng)前隱藏輸出

        etj=relu(tanh(wF·[Ht-1,hj]+bF))

        (7)

        其中,wF為注意力機(jī)制權(quán)值矩陣,bF為偏置向量,relu(x)和tanh(x)均為激活函數(shù),etj表示第j個(gè)輸入hj對(duì)第t個(gè)輸出Yt的注意力分布情況

        atj=softmax(etj)

        (8)

        其中,atj表示第j個(gè)輸入對(duì)第t個(gè)輸出的注意力權(quán)重,softmax(x)表示激活函數(shù),使atj∈(0,1),atj趨近于0表示相關(guān)性不高,趨近1表示相關(guān)性高

        (9)

        其中,ct表示輸入對(duì)第t個(gè)輸出的注意力矩陣,將每個(gè)輸入和其與當(dāng)前輸出的注意力權(quán)重以點(diǎn)乘的方式進(jìn)行計(jì)算,完成對(duì)輸入序列的不同局部賦予不同的權(quán)重,得到其重要性分布。

        注意力機(jī)制階段通過(guò)計(jì)算輸入數(shù)據(jù)中對(duì)每個(gè)輸出的注意力特征向量,使模型只關(guān)注與XSS顯著相關(guān)的部分信息。注意力機(jī)制學(xué)習(xí)過(guò)程如下:

        步驟1 初始化注意力機(jī)制各層的神經(jīng)元個(gè)數(shù)、權(quán)值、偏置等;

        步驟2 將編碼后的72×128維中間表示特征輸入注意力機(jī)制的隱藏層;

        步驟3 將中間表示特征輸入到激活函數(shù)為tanh(x)的隱藏層和激活函數(shù)為relu(x)的隱藏層對(duì)應(yīng)神經(jīng)元,計(jì)算獲得目標(biāo)輸出Yi和每個(gè)輸入特征對(duì)應(yīng)的注意力分布情況;

        步驟4 再將步驟2得到的注意力分布情況輸入softmax層,歸一化處理,輸出注意力分配權(quán)重;

        步驟5 最后經(jīng)過(guò)Dot層,輸出輸入特征對(duì)應(yīng)目標(biāo)輸出Yi的2×128維高相關(guān)性特征;

        步驟6 重復(fù)步驟2到步驟5,直到計(jì)算出輸入特征對(duì)應(yīng)每個(gè)目標(biāo)輸出的高相關(guān)性特征。

        2.3 Decoder和分類(lèi)預(yù)測(cè)

        在Encoder-Decoder框架中,Encoder對(duì)輸入數(shù)據(jù)進(jìn)行編碼,得到中間語(yǔ)義表示向量,Decoder對(duì)中間語(yǔ)義表示向量和之前已經(jīng)生成的歷史信息來(lái)生成i時(shí)刻的解碼輸出。本文模型中,由于GRU具備記憶歷史信息的功能,避免了RNN的梯度消失,選擇其作為Decoder。Decoder學(xué)習(xí)過(guò)程如下:

        步驟1 初始化GRU的權(quán)值、偏置、初始輸出Y0;

        步驟2 將經(jīng)過(guò)注意力機(jī)制得到的每個(gè)高相關(guān)性特征輸入Decoder,得到對(duì)應(yīng)的128維解碼輸出。

        在經(jīng)過(guò)Encoder-Decoder框架學(xué)習(xí)后,得到了一組與XSS重要相關(guān)的特征,使用softmax分類(lèi)器對(duì)其進(jìn)行分類(lèi)預(yù)測(cè),得到模型預(yù)測(cè)的結(jié)果。

        在訓(xùn)練模型時(shí),根據(jù)預(yù)測(cè)結(jié)果和實(shí)際標(biāo)簽的誤差反向傳播,通過(guò)梯度下降算法對(duì)模型各層的權(quán)值和偏置進(jìn)行更新,直至模型參數(shù)達(dá)到最優(yōu)。

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

        實(shí)驗(yàn)使用的計(jì)算機(jī)配置為:windows10操作系統(tǒng)、Intel(R) Core(TM)i7-9750H CPU @2.60 GHz 2.60 GHz、8 G 內(nèi)存,實(shí)驗(yàn)環(huán)境為python3.5.2、Tensorflow1.12.0、Keras2.2.4。實(shí)驗(yàn)中,使用網(wǎng)絡(luò)爬蟲(chóng)從網(wǎng)站上爬取數(shù)據(jù)樣例,惡意樣例來(lái)源于XSSed數(shù)據(jù)庫(kù),正常樣例來(lái)源于DMOZ數(shù)據(jù)庫(kù),經(jīng)過(guò)數(shù)據(jù)預(yù)處理后,最終得到了20 000個(gè)惡意樣例和20 000個(gè)正常樣例,將其按照7∶3的比例,運(yùn)用交叉驗(yàn)證中的train_test_split函數(shù)隨機(jī)選取構(gòu)成訓(xùn)練集和測(cè)試集,數(shù)據(jù)集分布情況見(jiàn)表1。

        表1 數(shù)據(jù)集分布

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

        在自然語(yǔ)言處理中,數(shù)據(jù)以向量的形式作為神經(jīng)網(wǎng)絡(luò)的輸入,同時(shí)XSS代碼常常以編碼混淆的方式降低代碼的可讀性,以此躲避檢測(cè),因此對(duì)樣本數(shù)據(jù)進(jìn)行預(yù)處理,轉(zhuǎn)換為神經(jīng)網(wǎng)絡(luò)輸入需要的向量形式。

        (1)數(shù)值化

        由于XSS代碼常用URL編碼、Unicode編碼等方式降低代碼的可讀性,本文通過(guò)解碼技術(shù)還原代碼,如%3Cscript%3Ealert%28%27Xss%20By%20Atm0n3r%27%29%3C/script%3E還原為

        狠狠做深爱婷婷久久综合一区| 国产午夜亚洲精品理论片不卡| 久久人妻公开中文字幕| 女同性恋精品一区二区三区| 久久精品国产亚洲av一| 痴汉电车中文字幕在线| 天堂а√在线最新版中文在线| 馬与人黃色毛片一部| 亚洲国产成人精品福利在线观看| 久久99热精品免费观看麻豆| 两人前一后地插着她丰满| 日韩性爱视频| 撕开奶罩揉吮奶头视频| 精品国产一区二区三区AV小说| 最新日韩人妻中文字幕一区| 亚洲av手机在线网站| 东北少妇不戴套对白第一次 | 夜夜欢性恔免费视频| 亚洲日韩乱码中文无码蜜桃臀| 97超级碰碰碰久久久观看| 亚洲精品一区二区三区国产 | 日韩一区av二区三区| 欧美成人精品午夜免费影视| 日本a在线看| 色综合999| 国内精品嫩模av私拍在线观看 | 天天摸天天做天天爽天天舒服| 中文字幕亚洲五月综合婷久狠狠| 在办公室被c到呻吟的动态图| 亚洲色成人网站www永久四虎| 欧美色图中文字幕| 亚洲国产av精品一区二| 久久国产人妻一区二区| 又色又污又爽又黄的网站| 久久久久久久久高潮无码 | 国产亚洲第一精品| 精品一区二区三区a桃蜜| 亚洲av区,一区二区三区色婷婷| 久久精品国产色蜜蜜麻豆| 国产精品自产拍在线18禁| 一区二区亚洲熟女偷拍|