国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于時空特征融合的SQL注入檢測研究

2023-08-01 17:56:01王清宇王海瑞朱貴富孟順建
化工自動化及儀表 2023年2期
關(guān)鍵詞:注意力機制

王清宇 王海瑞 朱貴富 孟順建

摘 要 針對深度學(xué)習方法檢測SQL注入時特征提取效果欠佳的問題,提出一種基于時空特征融合的檢測模型SFFM。首先使用BERT預(yù)訓(xùn)練模型進行詞嵌入,使用TextCNN提取SQL樣本中不同粒度下的局部空間特征,同時使用BiGRU在保證訓(xùn)練效率的同時提取SQL樣本的時序特征;再把提取到的特征送入Attention層進行全局語義信息提??;最后將提取到的特征進行融合,連接全連接層后送入softmax分類器進行分類檢測。對比實驗結(jié)果表明:SFFM模型獲得了高達99.95%的準確率和99.90%的召回率,相較于CNN、LSTM和BERT?base模型,具有更好的檢測效果。

關(guān)鍵詞 SQL注入檢測 時空特征融合 SFFM模型 注意力機制 詞嵌入

中圖分類號 TP393.08;TP181? ?文獻標識碼 A? ?文章編號 1000?3932(2023)02?0207?09

隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)絡(luò)安全逐步上升為我國安全領(lǐng)域的重要組成部分。從2013年至今的OWASP TOP 10報告中可以看到,注入攻擊多年位居十大安全隱患排行榜前三的位置[1,2]。SQL注入作為注入攻擊中的最大元兇,其危害性和破壞性極大,成為國內(nèi)外安全人員持續(xù)關(guān)注的研究熱點。傳統(tǒng)的SQL注入檢測方法可分為靜態(tài)檢測方法、動態(tài)檢測方法和動靜結(jié)合的檢測方法[3]。靜態(tài)檢測是指在不運行程序的情況下通過對源碼進行分析來判斷是否存在SQL注入風險。GOULD C等開發(fā)的JDBC Checker工具,可以檢測出部分類型的SQL注入攻擊[4]。這種方法需要相當嚴謹?shù)脑创a分析能力和對各種SQL注入非常敏銳的洞察力,靜態(tài)檢測方法具有較高的誤報率,而且在某些情況下無法獲得程序的源代碼。動態(tài)檢測是指在程序運行時通過動態(tài)測試來檢測是否存在SQL注入風險。張慧琳等提出的基于敏感字符的SQL注入檢測方法,通過對可信敏感字符進行積極污點標記來檢測是否存在SQL注入[5]。動態(tài)檢測方法雖然較為靈活,但是檢測效果的好壞取決于測試用例的范圍,而實際人工合成的測試用例非常有限,并且非常耗費系統(tǒng)資源,檢測效率較低。動靜結(jié)合的檢測方法旨在結(jié)合靜態(tài)方法與動態(tài)方法兩者的優(yōu)勢,在靜態(tài)分析階段,構(gòu)造安全的SQL語句模型,然后在動態(tài)分析階段,解釋提交的SQL語句,將其與靜態(tài)SQL語句模型進行對比,判斷是否存在SQL注入風險。HALFOND W G J和ORSO A提出的AMNESIA,先通過分析Web應(yīng)用程序生成安全的SQL查詢模型,然后動態(tài)監(jiān)視提交的查詢,若查詢與靜態(tài)模型不符,則判定為SQL注入攻擊,并向開發(fā)人員或者管理員報告相關(guān)信息[6]。這種方法可能會因為靜態(tài)模型創(chuàng)建時不變量提取不全面,導(dǎo)致發(fā)生大量的虛警和漏警。

近年來,機器學(xué)習方法越來越多地應(yīng)用于安全檢測領(lǐng)域,有望在SQL注入方面發(fā)揮巨大作用。但淺層機器學(xué)習依然需要人工提取復(fù)雜的注入樣本特征,而且使用場景大幅受限。新的SQL注入攻擊類型不斷涌現(xiàn),淺層機器學(xué)習應(yīng)對較為乏力。深度學(xué)習因為節(jié)省了復(fù)雜的特征工程而頗受工程師和學(xué)者的青睞。肖澤力使用DNN分類器檢測SQL注入,實驗結(jié)果證明了深度學(xué)習模型的檢測效果優(yōu)于樸素貝葉斯、人工神經(jīng)網(wǎng)絡(luò)等機器學(xué)習模型[7]。雖然深度學(xué)習模型在SQL注入檢測領(lǐng)域有了較多的應(yīng)用,但是大多數(shù)方法只是針對單一的模型進行訓(xùn)練,這些模型很難同時在時間和空間維度上提取到有效的特征,如RNN、LSTM等模型只是針對樣本的時序特征進行提取,CNN模型只是提取樣本的空間特征。為此,筆者提出一種基于時空特征融合的SFFM模型,在盡可能保證網(wǎng)絡(luò)參數(shù)不過于復(fù)雜的情況下,同時提取SQL樣本的時序和空間特征、局部與全局特征,最后通過對比實驗和消融實驗驗證筆者所提SFFM模型的有效性。

1 特征融合

SFFM模型融合了卷積神經(jīng)網(wǎng)絡(luò)、循環(huán)神經(jīng)網(wǎng)絡(luò)、注意力機制和BERT預(yù)訓(xùn)練模型,能夠兼顧樣本的局部和整體特征、空間與時序特征,從而更好地對SQL樣本進行分類檢測。

SFFM模型主要包括輸入層、詞嵌入層、TextCNN層、BiGRU層及注意力層等,具體結(jié)構(gòu)如圖1所示。

首先將所有數(shù)據(jù)進行預(yù)處理操作,包括解碼處理、泛化處理和分詞處理。解碼處理主要針對ASCII編碼、URL編碼、UNICODE編碼及JSON編碼等常見編碼進行解碼。泛化處理是為了去除相似無用的冗余特征,主要包括大小寫轉(zhuǎn)換、統(tǒng)一日期格式和數(shù)字格式、排查重寫過度。接著將預(yù)處理后得到的訓(xùn)練集數(shù)據(jù)Xi送入BERT Embedding層做詞嵌入,再將得到的詞向量Ti分別送入TextCNN層和BiGRU層進行空間特征和時序特征的提取。然后使用Attention層加強重要特征的權(quán)重,削弱噪聲的影響。最后將特征展平后接入全連接層,送入softmax分類器進行分類檢測。

1.1 BERT預(yù)訓(xùn)練模型

BERT的核心組件是雙向Transformer編碼器,相比于傳統(tǒng)的單向語言模型或者多個淺層拼接后的單向語言模型,BERT能夠?qū)W到更重要的單詞或句子語義以及文本中不同級別的關(guān)系特征[8],同時使用上億級別的無標注語料進行預(yù)訓(xùn)練,能夠生成更加準確、更通用的詞向量或者句向量表示[9]。很多下游任務(wù)只需在預(yù)訓(xùn)練模型的基礎(chǔ)上添加一個額外的輸出層進行微調(diào),便可獲得非常出色的任務(wù)表現(xiàn)。

BERT構(gòu)建了兩種預(yù)訓(xùn)練模型,分別是掩碼語言模型(Masked Language Model,MLM)和下一句預(yù)測(Next Sentence Prediction,NSP)。MLM類似于完形填空,將一些詞MASK掉,用剩余詞對MASK掉的詞進行預(yù)測,具體做法是隨機MASK掉15%的單詞,這些單詞中有10%隨機替換成其他單詞,10%保持不變,還有80%真正MASK掉,即替換成[MASK]標志。此類任務(wù)能夠使模型學(xué)習到深度的雙向信息,具備更強的多義性學(xué)習能力。NSP的任務(wù)是判斷給定的兩個句子是否是連續(xù)的。此類任務(wù)能夠讓模型學(xué)習到連續(xù)文本之間的關(guān)系,使模型具備長距離語義捕捉能力。

BERT的輸入結(jié)構(gòu)如圖2所示,主要包含3個部分:詞向量、句子向量和位置向量。其中句子向量是為了刻畫句子的全局語義信息,并與詞向量信息相融合;位置向量是為了克服注意力機制不能編碼位置信息的缺點。BERT的輸出結(jié)構(gòu)如圖3所示,其中C是[CLS]對應(yīng)最后一個transformer的輸出,T代表其他token對應(yīng)最后一個transformer的輸出。對于字或詞級別的任務(wù),將T輸入到額外的輸出層繼續(xù)處理,對于句子級別的任務(wù),則把C輸入到額外的輸出層中處理。筆者利用BERT進行詞嵌入,需要將T輸送到TextCNN層和BiGRU層繼續(xù)學(xué)習高級特征。

1.2 TextCNN網(wǎng)絡(luò)

TextCNN網(wǎng)絡(luò)將傳統(tǒng)圖像卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于文本分類任務(wù)中,利用多個不同size的卷積核來提取句子中的關(guān)鍵信息,從而更好地捕捉局部相關(guān)性[10]。筆者利用TextCNN網(wǎng)絡(luò)對SQL樣本的局部空間特征進行提取。網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,主要包含輸入層(Input layer)、卷積層(Convolution layer)、激活層(Activation layer)、池化層(Pooling layer)和全連接層(Fully connected layer)。輸入層是n×k的句子矩陣,其中n代表SQL樣本長度,k代表每個單詞對應(yīng)的詞向量維度。由于輸入矩陣必須統(tǒng)一,所以需要對句子的長度進行padding,少于n的進行填充,多于n的進行截斷。卷積層用來對輸入數(shù)據(jù)進行特征提取,通過對句子矩陣和卷積核點乘的操作來抽象詞語或句子之間的局部特征關(guān)系。與處理圖像的卷積核不同,TextCNN中的卷積核的寬度一般和詞向量的維度一致,以保證每次滑動卷積核都可以取到完整的詞向量。本文中設(shè)置多個不同的卷積核來提取不同維度的上下文信息。激活層通過激活函數(shù)對卷積層提取到的特征進行激活,具體做法是在卷積層輸出的基礎(chǔ)上嵌套非線性函數(shù),從而讓輸出特征具有非線性結(jié)構(gòu)。池化層是對卷積層學(xué)到的特征進行有效篩選,避免參數(shù)過多導(dǎo)致運算效率降低和過擬合的產(chǎn)生。常見的池化方法有Average pooling、1?Max pooling及K?Max pooling等。全連接層負責對卷積神經(jīng)網(wǎng)絡(luò)學(xué)習提取到的特征進行匯總,整理成一個一維向量。本文在池化層后暫不進行全連接,而是接入到Attention層進行全局語義信息提取。

1.3 BiGRU網(wǎng)絡(luò)

門控循環(huán)單元(Gated Recurrent Unit,GRU)是循環(huán)神經(jīng)網(wǎng)絡(luò)簇中的一個變體,相比于長短期記憶網(wǎng)絡(luò)LSTM,GRU通常能夠獲得同等甚至更優(yōu)的效果,但結(jié)構(gòu)更加簡單,訓(xùn)練速度明顯更快[11]。GRU單元結(jié)構(gòu)如圖5所示。

圖5中有兩個重要的門:重置門Rt和更新門Zt。重置門決定了如何將新的輸入信息與前面的記憶相結(jié)合,有助于捕獲序列中的短期依賴關(guān)系,而更新門定義了舊的狀態(tài)保存到當前時間步的量。其計算式如下:

其中,X是當前t時刻的輸入;H是前一時刻的隱狀態(tài);W和W分別是R和Z對于當前輸入X的權(quán)重參數(shù);W和W分別是R和Z對于H的權(quán)重參數(shù);b和b分別是R和Z的偏置參數(shù);σ代表sigmoid函數(shù)將輸入值映射到(0,1)區(qū)間。

新的隱狀態(tài)需要舊的隱狀態(tài)和更新門共同計算得到,計算式如下:

其中,[H][^]為候選隱狀態(tài);W是當前隱狀態(tài)權(quán)重參數(shù);W為前一時刻的隱狀態(tài)權(quán)重參數(shù);b是隱狀態(tài)的偏置項。候選隱狀態(tài)由三項求和得到,并使用tanh非線性激活函數(shù)將值映射到(-1,1)之間。GRU的隱狀態(tài)信息是按照時間步順序從前往后單向傳遞的,只關(guān)注了前文對后文的影響,為了克服此缺陷,筆者使用雙向BiGRU,該模型由兩個方向相反的GRU隱藏層共同組成神經(jīng)網(wǎng)絡(luò),每個時刻的隱狀態(tài)由當前時刻的前向隱狀態(tài)和后向隱狀態(tài)拼接而成,因而能學(xué)習到更加豐富的雙向語義信息。

1.4 Attention機制

在深度學(xué)習領(lǐng)域,網(wǎng)絡(luò)模型往往需要處理海量的數(shù)據(jù),然而在某些時刻,可能只有少部分的信息是重要的,讓模型能夠通過自主學(xué)習將更多的注意力放在這些重要的信息上,有選擇性地忽略其他不重要的信息,就是Attention機制需要做的事[12]。Attention機制通??煞譃檐涀⒁饬C制、硬注意力機制和自注意力機制。其中軟注意力機制對每一個輸入都有所考慮,重要信息分配權(quán)重大一些,不重要的信息分配權(quán)重小一些,相對來說計算量比較大。硬注意力機制對每個輸入項分配的權(quán)重非0即1,也就是說關(guān)注的部分(重要)就分配權(quán)重為1,不關(guān)注的部分(不重要)直接舍棄。硬注意力機制雖然可以減少時間和計算成本,但可能導(dǎo)致許多本應(yīng)關(guān)注的信息丟失,因此使用較少。自注意力機制對每一個輸入項分配的權(quán)重取決于輸入項之間的關(guān)系,即學(xué)習輸入中不同部分的相關(guān)性,利用矩陣運算實現(xiàn)并行加速。筆者通過自注意力機制獲取SQL樣本的全局特征,其實現(xiàn)方式如圖6所示。

圖6中4個輸入向量x分別對應(yīng)4個輸出向量o(i=1,2,3,4)。為了計算得到o,首先對每一個輸入向量x分別點乘3個系數(shù)wq、wk和wv,得到q、k、v3個值,在實際應(yīng)用場景中,為了提高計算速度,采用矩陣相乘的方式,公式如下:

Q、K、V由輸入矩陣X點乘3個系數(shù)矩陣W、W、W所得,這3個系數(shù)矩陣是隨機化初始的,并在學(xué)習過程中不斷更新。然后將矩陣Q和矩陣K進行點乘操作來計算兩個輸入矩陣之間的相關(guān)性。為了使Attention得分不隨著向量維度的變化而發(fā)生改變,將Q和K的點積進行歸一化操作,即除以系數(shù)矩陣的第1個維度數(shù)dk的開方,并進行softmax操作,最后將得分矩陣A和真實值矩陣V點乘得到最終的輸出矩陣O。

由以上計算過程可以看到,每個詞看到的不僅是它前面的序列,而是整個輸入序列,因此Attention可以學(xué)習到SQL樣本的全局特征,并且矩陣運算可以實現(xiàn)并行加速。文中還使用了多頭注意力機制,通過不同的頭得到多個不同的特征,然后將所有特征拼接在一起,最后連接全連接層實現(xiàn)降維并使用softmax進行分類檢測任務(wù)。

2 實驗及結(jié)果

2.1 實驗數(shù)據(jù)集

實驗數(shù)據(jù)集一共有兩部分來源:一部分從數(shù)據(jù)倉庫[13]收集并篩選有效的SQL注入語句和正常SQL語句,另一部分數(shù)據(jù)通過在Windows10虛擬機中布署apache+php+mysql環(huán)境,搭建sqli?labs和bwapp靶場,使用SQLyog對MySQL進行正常訪問,同時使用sqlmap、AWVS等測試工具和自定義tamper腳本對靶場進行攻擊,使用wireshark、burpsuite等工具抓取正常SQL語句和具有攻擊行為的SQL注入語句。總共得到50 000條SQL樣本,其中包括25 000條正樣本和25 000條負樣本。

2.2 實驗環(huán)境

實驗在GPU環(huán)境下進行計算,使用Pytorch機器學(xué)習框架,開發(fā)平臺為Pycharm,開發(fā)語言為Python。具體實驗環(huán)境見表1。

2.3 實驗設(shè)置

對數(shù)據(jù)集按照8∶2的比例劃分訓(xùn)練集和測試集,即40 000條樣本作為訓(xùn)練集,10 000條樣本作為測試集,訓(xùn)練集與測試集中的正負樣本比例均為1∶1。具體數(shù)據(jù)分布見表2。

首先對數(shù)據(jù)集進行預(yù)處理。因為數(shù)據(jù)集的質(zhì)量決定了深度學(xué)習的上限,好的預(yù)處理能夠充分發(fā)揮模型的學(xué)習能力。實驗時在將數(shù)據(jù)輸送至BERT層之前,對數(shù)據(jù)進行解碼、泛化和分詞處理:

a. 解碼處理。解碼是為了去除雜亂的編碼信息,讓模型學(xué)習到真正有效的SQL樣本特征。具體做法是把ASCII編碼、URL編碼、UNICODE編碼、JSON編碼等常見編碼統(tǒng)一解碼成UTF?8編碼。

b. 泛化處理。泛化是為了減少SQL樣本中的冗余特征,讓模型學(xué)習更加具有針對性。比如or 1=1#和or 2=2#本質(zhì)上沒有任何區(qū)別,無需將其學(xué)習成兩種情況。為此筆者將所有十進制數(shù)轉(zhuǎn)換成0;將所有十六進制數(shù)轉(zhuǎn)換成0x12;將所有英文字母轉(zhuǎn)換成小寫(因為SQL語句不區(qū)分大小寫);將日期和時間轉(zhuǎn)換成固定字符“dtime”;排查重寫過度的詞語,只留下去除冗余后的字符或字符串,比如字符串“seunionleunionct”排除掉關(guān)鍵字union后,留下的字符串“select”依然是關(guān)鍵字。

c. 分詞處理。分詞是為了更準確地進行詞嵌入。本實驗不采用JOSHI A和GEETHA V的空白分割法[14],而是將包括空格在內(nèi)的所有字符、關(guān)鍵字等全部進行分詞。在分詞時保留原始字符的含義,比如“--”可以起到單行注釋的作用,如果拆成兩個“-”字符,將會失去該字符的本來特征。

數(shù)據(jù)預(yù)處理后,使用不區(qū)分大小寫的BERT?base?uncased模型進行詞嵌入,詞向量維度為768。TextCNN網(wǎng)絡(luò)中使用了4種大小的卷積核,以便學(xué)到不同尺度的特征,其大小為2、3、4、5,每組卷積核數(shù)為200,卷積步長設(shè)置為1,激活函數(shù)使用Leaky RELU,池化采用1?Max pooling方法,dropout大小為0.15。BiGRU的隱藏層維度設(shè)置為300。使用Adam優(yōu)化器優(yōu)化模型參數(shù),同時使用LambdaLR scheduler對學(xué)習率進行調(diào)整。以上參數(shù)設(shè)置均由手工調(diào)優(yōu)后得出。

2.4 評價指標

實驗使用準確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1值對深度學(xué)習模型進行評估。其中準確率代表被正確分類的樣本占總樣本的比例,是模型評估中最常用的指標之一;精確率是指被正確分類的正樣本占預(yù)測為正樣本的比例;召回率代表被預(yù)測為正樣本占實際為正樣本的比例,是安全領(lǐng)域最為重要的評價指標之一;F1值是整體考慮精確率與召回率的綜合指標。相關(guān)參數(shù)混淆矩陣見表3。

基于以上參數(shù),得出準確率Acc、精確率P、召回率R和F1的計算式如下:

2.5 實驗結(jié)果及分析

為了驗證筆者所提基于時空特征融合的SQL注入檢測模型的效果,設(shè)置一組對比實驗和一組消融實驗,分別對融合后的模型性能和特征融合的有效性進行檢驗。

2.5.1 對比實驗

實驗中將SFFM模型與幾種常用于SQL注入檢測的單一特征提取的深度學(xué)習模型進行對比,包括謝鑫等使用的CNN模型[15]、楚翔皓和劉震使用的LSTM模型[16]、DEVLIN J等提出的BERT?base模型[17],數(shù)據(jù)集劃分如2.3節(jié)所述,實驗結(jié)果見表4。

由表4可以看出,基于時空特征融合的SFFM模型在準確率、精確率、召回率和F1值4個指標上均優(yōu)于其他3個模型,BERT?base次之,LSTM表現(xiàn)最差,說明BERT預(yù)訓(xùn)練模型在大量語料訓(xùn)練的基礎(chǔ)上針對本文分類檢測擁有較好的任務(wù)表現(xiàn),而SFFM模型將BERT作為詞嵌入進行更深一層的

特征提取后,分類表現(xiàn)更加出色,可見基于時空特征融合的分類模型較其他單一特征提取的分類模型具有更好的特征提取能力。

圖7是4種模型的訓(xùn)練損失變化曲線,可以看出4種模型中SFFM模型收斂最快,在迭代4 000次左右便收斂到接近于0的值,BERT?base、CNN和LSTM收斂速度依次遞減,說明基于時空特征融合的模型能夠更有效地提取樣本特征,收斂速度較單一特征提取的模型更快。

圖8是測試集中不同模型的F1值對比曲線,每迭代500次記錄一個值。從圖8中可以看出,SFFM模型的F1值在迭代2 000次左右便收斂到最大值99.61%,且曲線波動較小。其他3種模型的F1值曲線收斂速度和最大值均不如SFFM模型,說明SFFM模型的綜合表現(xiàn)優(yōu)于其他3種模型。

2.5.2 消融實驗

設(shè)置一組消融實驗,以驗證SFFM模型中不同組件對模型的真實增益。去掉SFFM中的Attention層和BiGRU層得到-BiGRU?att模型;去掉SFFM中的BiGRU層得到-BiGRU模型;去掉SFFM中的TextCNN層得到-TextCNN模型;去掉Attention層得到-Attention模型;將SFFM中的BERT詞嵌入替換為Word2Vec詞嵌入模型得到-BERT模型。依然使用對比實驗中的數(shù)據(jù)劃分方式進行訓(xùn)練和測試,得到實驗結(jié)果見表5。

由表5實驗數(shù)據(jù)可以看出,-BiGRU?att模型檢測效果比BERT?base的召回率要高,說明TextCNN層可以進一步提取到有效的局部語義特征;-BiGRU模型、-TextCNN模型和-Attention模型的4個性能指標均低于SFFM模型,說明去掉這3個組件中的任意一個,其余兩層均能有效提取到SQL樣本特征;-BERT模型的結(jié)果明顯比其他幾組實驗效果差,說明BERT詞嵌入可以顯著提升特征提取能力??梢?,無論是BERT詞嵌入層,還是其余的單個組件、兩個組件或者三個組件,均能有效提高模型提取特征的能力。

3 結(jié)束語

筆者提出的基于時空特征融合的SQL注入檢測模型SFFM,使用BERT作為詞嵌入層,并利用TextCNN層提取SQL樣本不同粒度下的局部空間特征,BiGRU層提取SQL樣本的時序特征,Attention層提取SQL樣本的全局特征。對比實驗結(jié)果表明,筆者提出的SFFM模型的準確率、精確率、召回率和F1值4個指標均比其他單一特征提取模型的高,證明了特征融合的有效性。同時通過消融實驗證明了SFFM模型的每個組件均對模型的整體效果起到了積極作用。

實驗涉及的SQL注入均為一階注入,未來工作中將會對二階SQL注入的檢測開展進一步研究。

參 考 文 獻

[1] OWASP.Top 10 Web Application Security Risks[EB/OL].(2021-09-24)[2022-08-10].https://owasp.org/www?project?top?ten.

[2] sslHello.OWASP TOP 10 from 2003 to 2021 Releases[EB/OL].(2021-10-03)[2022-08-10].https://github.com/OWASP/Top10.

[3] 王方.基于深度學(xué)習的SQL注入檢測技術(shù)的研究與實現(xiàn)[D].北京:北京郵電大學(xué),2020.

[4] GOULD C,SU Z,DEVANBU P T.JDBC checker:A static analysis tool for SQL/JDBC applications[C]//26th International Conference on Software Engineering(ICSE 2004).IEEE,2004:697-698.

[5] 張慧琳,丁羽,張利華,等.基于敏感字符的SQL注入攻擊防御方法[J].計算機研究與發(fā)展,2016,53(10):2262-2276.

[6] HALFOND W G J,ORSO A.AMNESIA:analysis and monitoring for NEutralizing SQL?injection attacks[C]//Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering.2005:174-183.

[7] 肖澤力.SQL注入攻擊檢測方法研究[D].長春:東北師范大學(xué),2018.

[8] 林孟達,李書豪.融合BERT嵌入與注意力機制的方面情感分析[J].現(xiàn)代電子技術(shù),2022,45(12):130-136.

[9] 鄧維斌,朱坤,李云波,等.FMNN:融合多神經(jīng)網(wǎng)絡(luò)的文本分類模型[J].計算機科學(xué),2022,49(3):281-287.

[10] ? KIM Y.Convolutional Neural Networks for Sentence Classification[EB/OL].(2014-09-03).https://arxiv.org/pdf/1408.5882.pdf.

[11]? ?KYUNGHYUN CHO,BART VAN MERRIEENBOER,CAGLAR GULCEHRE,et al.Learning Phrase Representations Using RNN Encoder?Decoder for Statistical Machine Translation[C]//Conference on Empirical Methods in Natural Language Processing(EMNLP 2014).Doha,Qatar:Association for Computational Linguistics,2014:1724-1734.

[12] ? VASWANI A,SHAZEER N,PARMAR N,et al.Attention is all you need[C]//Proceedings of the 31st International Conference on Neural Information Processing Systems.2017:6000-6010.

[13] client9.SQL injection dataset[EB/OL].(2018-03-12 )[2022-08-10].https://github.com/client9/libinjection/.

[14] JOSHI A,GEETHA V.SQL injection detection using machine learning[C]//2014 International Conference on Control,Instrumentation,Communication and Com? putational Technologies(ICCICCT 2014).Kanyakum? ari,India:IEEE,2014:1111-1115.

[15] ? 謝鑫,任春輝,陳新宇.基于CNN的SQL注入檢測[J].計算機與網(wǎng)絡(luò),2020,46(3):69-71.

[16]? ?楚翔皓,劉震.基于LSTM神經(jīng)網(wǎng)絡(luò)的SQL注入攻擊檢測研究[J].天津理工大學(xué)學(xué)報,2019,35(6):41-46.

[17] DEVLIN J,CHANG M W,LEE K,et al.BERT:Pretrai? ning of Deep Bidirectional Transformers for Language Understanding[EB/OL].(2019-05-24).https://arxiv.org/pdf/1810.04805.pdf.

(收稿日期:2022-09-22,修回日期:2023-02-22)

Research on SQL Injection Detection Based on?Spatiotemporal Feature Fusion

WANG Qing?yu, WANG Hai?rui, ZHU Gui?fu, MENG Shun?jian

(Faculty of Information Engineering and Automation, Kunming University of Science and Technology)

Abstract? ?Considering poor feature extraction effect in detecting SQL injection through employing the deep learning method,a SFFM(spatiotemporal feature fusion model)?based detection model was proposed. In which, having BERT pre?training model used for word embedding and TextCNN employed to extract local spatial features of SQL samples at different granularity; meanwhile, having BiGRU adopted to extract temporal features of the SQL samples while ensuring a training efficiency; then, having the extracted features sent to the attention layer for global semantic information extraction; finally, having the extracted features fused and connected to the full connection layer and sent to the softmax classifier for classification detection. A comparative experiment shows that, the SFFM?based detection model can achieve an accuracy rate of 99.95% and a recall rate of 99.90%, and the SFFM?based detection model, as compared to CNN,LSTM and BERT?base models with single or simple structure, has better detection effect.

Key words? ?SQL injection detection, spatialtemporal feature fusion, SFFM model, attention mechanism, word embedding

基金項目:國家自然科學(xué)基金項目(61863016,61263023)。

作者簡介:王清宇(1995-),碩士研究生,從事網(wǎng)絡(luò)安全與機器學(xué)習的研究。

通訊作者:朱貴富(1984-),工程師,從事網(wǎng)絡(luò)安全、教育大數(shù)據(jù)、機器學(xué)習的研究,zhuguifu@kust.edu.cn。

引用本文:王清宇,王海瑞,朱貴富,等.基于時空特征融合的SQL注入檢測研究[J].化工自動化及儀表,2023,50(2):207-215.

猜你喜歡
注意力機制
基于注意力機制的行人軌跡預(yù)測生成模型
多特征融合的中文實體關(guān)系抽取研究
基于注意力機制和BGRU網(wǎng)絡(luò)的文本情感分析方法研究
從餐館評論中提取方面術(shù)語
基于深度學(xué)習的手分割算法研究
基于序列到序列模型的文本到信息框生成的研究
面向短文本的網(wǎng)絡(luò)輿情話題
基于自注意力與動態(tài)路由的文本建模方法
基于深度學(xué)習的問題回答技術(shù)研究
基于LSTM?Attention神經(jīng)網(wǎng)絡(luò)的文本特征提取方法
锡林郭勒盟| 将乐县| 梧州市| 长垣县| 平遥县| 昌平区| 沙坪坝区| 泰和县| 呼伦贝尔市| 清水县| 监利县| 青海省| 宝应县| 临沂市| 正安县| 礼泉县| 会泽县| 楚雄市| 北碚区| 台中县| 深泽县| 武定县| 宜城市| 东海县| 承德县| 高雄县| 济源市| 阿拉善右旗| 南涧| 株洲市| 萝北县| 疏勒县| 焦作市| 江达县| 建昌县| 甘肃省| 武清区| 陵川县| 印江| 尼勒克县| 黑山县|