范禹辰,劉相坤,朱建生,蔣秋華,李 琪,徐東平
(1.中國(guó)鐵道科學(xué)研究院研究生部,北京 100081;2.中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司電子計(jì)算技術(shù)研究所,北京 100081)
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,web應(yīng)用及網(wǎng)站正在給越來(lái)越多的人提供服務(wù)。提供大規(guī)模服務(wù)的同時(shí)意味著需要傳輸和保存大量的用戶數(shù)據(jù),而這會(huì)招致一些惡意攻擊者對(duì)網(wǎng)站及web應(yīng)用進(jìn)行惡意攻擊、滲透,以竊取用戶數(shù)據(jù)或破壞系統(tǒng)正常運(yùn)行。該文的服務(wù)網(wǎng)站作為在線售票服務(wù)提供網(wǎng)站,每年都會(huì)受到大量惡意攻擊,其中SQLi攻擊數(shù)量最多、XSS攻擊其次,因此需要部署WAF來(lái)檢測(cè)經(jīng)CDN到內(nèi)網(wǎng)服務(wù)器的http請(qǐng)求,過(guò)濾掉惡意的http請(qǐng)求。
基于上述背景,提出一種基于BERT[1]的web攻擊檢測(cè)方法,并選擇攻擊樣本數(shù)量較多的SQLi和XSS跨站腳本攻擊作為研究對(duì)象,通過(guò)對(duì)BERT改進(jìn)使其支持長(zhǎng)文本輸入來(lái)實(shí)現(xiàn)對(duì)http頭的全量檢測(cè)。由于服務(wù)網(wǎng)站互聯(lián)網(wǎng)出口流量較大,為了保證web服務(wù)的時(shí)延在可接受的范圍內(nèi),采用參數(shù)量小的BERT-mini[2]預(yù)訓(xùn)練模型訓(xùn)練該任務(wù),在保證檢測(cè)準(zhǔn)確率的同時(shí),提高模型的檢測(cè)速度。
傳統(tǒng)基于規(guī)則的WAF只能通過(guò)人工添加規(guī)則匹配已出現(xiàn)過(guò)的攻擊類型,無(wú)法檢測(cè)未知的攻擊,且匹配規(guī)則大多基于正則引擎,添加大量規(guī)則會(huì)增加計(jì)算資源的消耗,降低檢測(cè)效率。近年基于深度學(xué)習(xí)的web攻擊檢測(cè)的方向中,文獻(xiàn)[3]基于抽象語(yǔ)法樹及BP神經(jīng)網(wǎng)絡(luò)提出了一種語(yǔ)義分析與神經(jīng)網(wǎng)絡(luò)結(jié)合的WebShell檢測(cè)方法;文獻(xiàn)[4]提出了一種基于CNN的web攻擊檢測(cè)方法,將web流量轉(zhuǎn)化為流量圖像,并構(gòu)建基于空間金字塔池化的卷積神經(jīng)網(wǎng)絡(luò),將web攻擊檢測(cè)問(wèn)題轉(zhuǎn)化為圖像分類問(wèn)題進(jìn)行分類;文獻(xiàn)[5]提出了一種基于ResNet的web攻擊檢測(cè)方法,使用CSIC2010、FWAF、HttpParams三個(gè)公開數(shù)據(jù)集,將數(shù)據(jù)正則化后使用word2vec[6]和TF-IDF進(jìn)行特征提取并分類;文獻(xiàn)[7]使用CSIC2010數(shù)據(jù)集和WAF產(chǎn)生的數(shù)據(jù),對(duì)url進(jìn)行word embedding,并采用LSTM[8]和GRU[9]兩種方式評(píng)估檢測(cè)結(jié)果;文獻(xiàn)[10]提出了一種Locate-Then-Detect的實(shí)時(shí)檢測(cè)方法,對(duì)每個(gè)url使用payload檢測(cè)定位網(wǎng)絡(luò)提取多個(gè)候選區(qū)域,再將其送入基于隱式馬爾可夫模型[11]的payload分類網(wǎng)絡(luò)進(jìn)行分類。Gong Xinyu等人[12]提出了一種基于字符級(jí)卷積網(wǎng)絡(luò)[13]的web攻擊檢測(cè)方法,使用LSTM及多層感知機(jī)進(jìn)行特征提取,并在CSIC數(shù)據(jù)集下驗(yàn)證效果。
目前大多基于深度學(xué)習(xí)的web攻擊檢測(cè)方法為了提高檢測(cè)效率及降低樣本的復(fù)雜度,都僅針對(duì)http get請(qǐng)求的url字段及其參數(shù),而不對(duì)http頭內(nèi)的其余字段進(jìn)行檢測(cè),這將會(huì)使所有存在于http頭其余字段內(nèi)的user-agent字段注入、cookie注入惡意攻擊等無(wú)法被有效統(tǒng)計(jì)到,從而導(dǎo)致漏報(bào)或誤報(bào)?;谏疃葘W(xué)習(xí)的web攻擊檢測(cè)可以被看作一個(gè)NLP中的文本分類任務(wù),而上述幾種方法采用的模型并不是近年來(lái)在NLP任務(wù)上得分較好的模型,近年在NLP領(lǐng)域表現(xiàn)較好的模型有GPT[14]、ERNIE[15]、XLNet[16]、BERT等,該文基于預(yù)訓(xùn)練模型BERT-mini設(shè)計(jì)檢測(cè)模型。
本節(jié)將討論http請(qǐng)求的預(yù)處理、檢測(cè)模型的設(shè)計(jì)以及數(shù)據(jù)集的構(gòu)建、選取。將長(zhǎng)文本分片,送入BERT得到各片段的表征輸出,設(shè)計(jì)了基于LSTM和Transformer[17]兩種模型進(jìn)行特征融合的方法并使用融合后的特征進(jìn)行分類。
BERT對(duì)應(yīng)的全稱為Bidirectional Encoder Representations from Transformers,即基于Transformer的雙向編碼器表征,該模型由google AI研究院在2018年提出,曾刷新11個(gè)NLP任務(wù)的紀(jì)錄,是近年用途最廣泛的NLP模型之一。該文采用的BERT-mini模型由4個(gè)Transformer結(jié)構(gòu)組成,每個(gè)Transformer包含6個(gè)Encoder,BERT網(wǎng)絡(luò)模型結(jié)構(gòu)和Transformer的結(jié)構(gòu)如圖1所示。
圖1 BERT網(wǎng)絡(luò)結(jié)構(gòu)
BERT模型的訓(xùn)練分為預(yù)訓(xùn)練(pretraining)和微調(diào)(finetuning),預(yù)訓(xùn)練模型采用谷歌公布的BERT-mini,無(wú)需額外預(yù)訓(xùn)練,故該文僅考慮模型微調(diào)部分,對(duì)于文本分類任務(wù),進(jìn)行一次檢測(cè)的流程如下:
(1)輸入的原始數(shù)據(jù)的頭部會(huì)增加一個(gè)[CLS]標(biāo)志位,尾部添加一個(gè)[SEP]標(biāo)志位,經(jīng)embedding層計(jì)算每個(gè)分詞的token embedding、segment embedding、position embedding。其中token embedding是每個(gè)單詞映射到固定長(zhǎng)度的一維向量表示,[CLS]的token embedding可以理解為一個(gè)不包含特定語(yǔ)義信息,并在模型訓(xùn)練過(guò)程中自動(dòng)學(xué)習(xí)輸入數(shù)據(jù)全局的語(yǔ)義信息的向量,用于特定的分類任務(wù);segment embedding是在輸入序列為句子對(duì)的情況下,用于區(qū)分兩個(gè)句子的向量表示;position embedding是每個(gè)單詞的位置信息,用于解決token embedding無(wú)法編碼輸入序列位置信息的問(wèn)題,即給不同位置的相同單詞賦予不同的語(yǔ)義。將這三種embedding結(jié)合作為Transformer Encoder層的輸入。
(2)如圖2所示,將embeddings作為Encoder的輸入,送入multi-head attention層,通過(guò)線性變換矩陣Wq、Wk、Wv計(jì)算輸入的查詢向量q(queries)、鍵值向量k(keys)、值向量v(values)的值,并根據(jù)這三個(gè)向量進(jìn)一步計(jì)算得到attention向量。接下來(lái)對(duì)Attention向量與Transformer的輸入進(jìn)行殘差連接,并進(jìn)行層歸一化,將歸一化得到的結(jié)果送入由兩個(gè)全連接層構(gòu)成的前饋神經(jīng)網(wǎng)絡(luò),將其輸出與attention向量殘差連接并再進(jìn)行一次層歸一化,得到Encoder的輸出,共經(jīng)過(guò)6個(gè)Encoder后得到最終的Encoder層輸出。
圖2 Encoder內(nèi)部結(jié)構(gòu)
(3)對(duì)于文本分類任務(wù),不需要Decoder層的參與,故最后一層Encoder的輸出即是Transformer的最終輸出,輸出[CLS]標(biāo)志位對(duì)應(yīng)的向量用于文本分類。
BERT所采用的Transformer結(jié)構(gòu)綜合了RNN和CNN的優(yōu)點(diǎn),同時(shí)擁有捕獲長(zhǎng)距離特征及并行計(jì)算的能力,且在語(yǔ)義特征提取方面Transformer的效果遠(yuǎn)超RNN和CNN,使其在運(yùn)算速度較快的同時(shí)擁有較高的檢測(cè)精度。
部分攻擊載荷會(huì)隱藏在url編碼或base64編碼中,如請(qǐng)求片段“c2VsZWN0IChleHRyYWN0dm FsdWUoMSxjb25jYXQoMHg3ZSxkYXRhYmFzZSgpKSkpO w==”,經(jīng)base64解碼后為“select (extractvalue(1,concat(0x7e,database())));”。故第一步先對(duì)每條http請(qǐng)求嘗試進(jìn)行url解碼及base64解碼。
大部分http請(qǐng)求長(zhǎng)度都超過(guò)了BERT的最大輸入限制512,因此采用滑動(dòng)窗口的思想對(duì)http請(qǐng)求進(jìn)行切片,若一個(gè)片段內(nèi)不存在攻擊載荷,則將其劃為正樣本,反之劃為負(fù)樣本。若攻擊載荷被分到了兩個(gè)不同的片段中,則重新對(duì)該http請(qǐng)求進(jìn)行分割,保證攻擊載荷在一個(gè)片段中。
BERT的Basic Tokenizer和Wordpiece Tokenizer會(huì)對(duì)http請(qǐng)求進(jìn)行進(jìn)一步處理。Basic Tokenizer首先對(duì)http請(qǐng)求片段進(jìn)行unicode編碼,去除多余的空格、亂碼及非法字符,然后根據(jù)空格進(jìn)行一遍分詞,最后替換變音字符并根據(jù)標(biāo)點(diǎn)進(jìn)行分詞;Wordpiece Tokenize在Basic Tokenizer的分詞基礎(chǔ)上,將單詞分割為多個(gè)子詞,并得到分詞結(jié)果,即BERT的原始輸入。
考慮http請(qǐng)求實(shí)際長(zhǎng)度和服務(wù)網(wǎng)站的流量強(qiáng)度,針對(duì)實(shí)時(shí)檢測(cè)需求,提出兩種對(duì)流量進(jìn)行檢測(cè)的方法,用于降低服務(wù)網(wǎng)站受到惡意攻擊的風(fēng)險(xiǎn)。
2.3.1 基于BERT+LSTM的檢測(cè)方法
該方法基于BERT模型的表征輸出,在下游設(shè)計(jì)檢測(cè)模型,如圖3所示,在將http請(qǐng)求分片時(shí),增加index標(biāo)志位記錄其原本屬于的http請(qǐng)求,送入BERT后得到其表征輸出,將屬于同一http請(qǐng)求的表征輸出放到一起送入LSTM網(wǎng)絡(luò)得到融合結(jié)果,再經(jīng)過(guò)全連接層及softmax分類器得到最終的分類結(jié)果。
圖3 基于LSTM的后續(xù)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)
Web攻擊檢測(cè)是一個(gè)多分類任務(wù),故LSTM的損失函數(shù)選擇交叉熵?fù)p失函數(shù),并使用Adam優(yōu)化器進(jìn)行優(yōu)化,交叉熵?fù)p失函數(shù)公式如下:
(1)
其中,N為樣本總數(shù),k為標(biāo)簽類別總數(shù),pxk為樣本x的實(shí)際類別,qxk為模型計(jì)算得到的樣本x屬于類別k的概率。
2.3.2 基于BERT+Transformer的檢測(cè)方法
該方法同樣在BERT模型后增加一個(gè)額外的Transformer,利用Transformer的Encoder層來(lái)融合BERT的表征輸出,但融合方式與LSTM不同,對(duì)于一條完整的長(zhǎng)http請(qǐng)求,將分片后的送入BERT得到的表征輸出,令第i個(gè)片段的表征輸出為CLSi,把所有的表征輸出連接到一起,并在頭部增加額外的[CLS]標(biāo)志位,得到Transformer的輸入為:
c=([CLS],CLS1,CLS2,…,CLSn)
(2)
輸入c經(jīng)Transformer得到輸出后,經(jīng)一層全連接層及softmax分類器得到最終分類結(jié)果。整個(gè)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4 基于Transformer的后續(xù)網(wǎng)絡(luò)結(jié)構(gòu)
選取公共數(shù)據(jù)集和服務(wù)網(wǎng)站真實(shí)數(shù)據(jù)集來(lái)訓(xùn)練并驗(yàn)證模型效果。公共數(shù)據(jù)集使用 CSIC 2010,網(wǎng)站真實(shí)數(shù)據(jù)集的正常流量部分由互聯(lián)網(wǎng)出口核心交換機(jī)鏡像導(dǎo)出,異常流量部分從旁路部署的攻擊溯源系統(tǒng)中提取。
3.1.1 公開數(shù)據(jù)集
大多用于web攻擊檢測(cè)的公開數(shù)據(jù)集僅提供url或攻擊載荷的關(guān)鍵詞,不符合對(duì)http請(qǐng)求全量檢測(cè)的需求,因此該文選取的公開數(shù)據(jù)集為CSIC 2010,該數(shù)據(jù)集是西班牙高等科研理事會(huì)于2010年公布的由正常和異常web流量組成的數(shù)據(jù)集,并被廣泛用于web攻擊檢測(cè)的研究。
其中每條數(shù)據(jù)都是完整的http請(qǐng)求,且POST請(qǐng)求包含請(qǐng)求體。標(biāo)簽分為正常和異常流量?jī)深?,異常流量中包括SQLi、目錄遍歷、XSS跨站腳本、CRLF注入等多種攻擊類型。該文選用CSIC2010數(shù)據(jù)集中的正常流量以及屬于SQLi和XSS跨站腳本的異常流量,對(duì)異常流量樣本重新標(biāo)注,來(lái)驗(yàn)證設(shè)計(jì)模型的泛化能力。
3.1.2 服務(wù)網(wǎng)站真實(shí)數(shù)據(jù)集
服務(wù)網(wǎng)站真實(shí)數(shù)據(jù)集最初收集了100萬(wàn)條正常請(qǐng)求,6萬(wàn)條異常請(qǐng)求作為全部樣本,經(jīng)測(cè)試發(fā)現(xiàn)無(wú)法有效檢測(cè)異常請(qǐng)求,后經(jīng)調(diào)整各類別樣本所占比例進(jìn)行測(cè)試,最終確定網(wǎng)站真實(shí)數(shù)據(jù)集共128 756條數(shù)據(jù),其中,NORM類65 933條,SQLi類46 824條,XSS類15 999條。
該文使用上述數(shù)據(jù)集對(duì)所設(shè)計(jì)方法進(jìn)行測(cè)試,為了關(guān)注檢測(cè)的準(zhǔn)確性以及誤報(bào)率、漏報(bào)率,模型的評(píng)估指標(biāo)選用Accuracy、TPR、TNR。各評(píng)估指標(biāo)計(jì)算方式如下:
(3)
(4)
(5)
其中,TP表示正確分類的正樣本,TN表示正確分類的負(fù)樣本,F(xiàn)P表示錯(cuò)誤分類的正樣本,F(xiàn)N表示錯(cuò)誤分類的負(fù)樣本。Accuracy反映了模型識(shí)別的準(zhǔn)確率;TPR也被稱作Recall,代表所有正樣本中被正確預(yù)測(cè)的比例,可以反映出模型檢測(cè)時(shí)的誤報(bào)率;TNR代表所有負(fù)樣本中被正確預(yù)測(cè)的比例,可以反映出模型檢測(cè)時(shí)的漏報(bào)率?;谏鲜鋈N指標(biāo),可以對(duì)模型的檢測(cè)能力進(jìn)行較為全面的評(píng)估。
經(jīng)多次實(shí)驗(yàn),選取實(shí)驗(yàn)結(jié)果最佳一次的參數(shù),給出實(shí)驗(yàn)參數(shù)如下:Epoch=3,Learning Rate=1e-4,Dropout=0.1,Batchsize=16,滑動(dòng)窗口大小=400。
基于該文所設(shè)計(jì)的兩種模型,不使用CSIC2010數(shù)據(jù)集作為訓(xùn)練集,僅作為測(cè)試集,使用服務(wù)網(wǎng)站真實(shí)數(shù)據(jù)集中的70%當(dāng)作訓(xùn)練集,驗(yàn)證集和測(cè)試集各占15%。選取實(shí)驗(yàn)結(jié)果最佳的參數(shù),使用訓(xùn)練集在網(wǎng)絡(luò)模型上訓(xùn)練3個(gè)epoch后,用CSIC2010數(shù)據(jù)集以及服務(wù)網(wǎng)站真實(shí)數(shù)據(jù)集中的測(cè)試集部分,分別對(duì)訓(xùn)練好的模型進(jìn)行測(cè)試,測(cè)試完成得到模型的評(píng)估指標(biāo)如表1、表2所示。
表1 使用BERT+LSTM模型的實(shí)驗(yàn)結(jié)果
表2 使用BERT+Transformer模型的實(shí)驗(yàn)結(jié)果
根據(jù)實(shí)驗(yàn)結(jié)果可以看出,使用Transformer的檢測(cè)模型融合特征的效果比LSTM要好,且泛化能力更強(qiáng),使用Transformer模型檢測(cè)得到的幾種評(píng)估指標(biāo)均高于使用LSTM的模型?;趯?shí)驗(yàn)結(jié)果分析性能差異的原因,Transformer與LSTM相比,能夠更有效地提取語(yǔ)義信息,但在長(zhǎng)距離依賴捕獲方面不如屬于RNN類結(jié)構(gòu)的LSTM,在web攻擊檢測(cè)的具體任務(wù)下,由于大部分攻擊載荷長(zhǎng)度不會(huì)太高,所以LSTM的優(yōu)勢(shì)體現(xiàn)的不明顯,而Transformer能夠更有效地提取出含有攻擊特征的語(yǔ)義,故在文中環(huán)境下,BERT+Transformer檢測(cè)模型的表現(xiàn)要優(yōu)于BERT+LSTM模型。
為了評(píng)估模型的檢測(cè)能力與檢測(cè)效率,選用原生BERT模型及XLNet模型與文中所設(shè)計(jì)模型進(jìn)行對(duì)比,比較模型的Accuracy指標(biāo)以及檢測(cè)時(shí)間,由于BERT不支持長(zhǎng)度超過(guò)512位的輸入,使用http請(qǐng)求的切片對(duì)模型進(jìn)行評(píng)估,每個(gè)切片對(duì)應(yīng)一個(gè)標(biāo)簽。XLNet為2019年提出的預(yù)訓(xùn)練模型,與BERT相比,引入了自編碼語(yǔ)言模型,并使用更多的數(shù)據(jù)對(duì)模型進(jìn)行預(yù)訓(xùn)練,在多項(xiàng)NLP任務(wù)中得分超過(guò)BERT,參數(shù)量為BERT-mini的十倍以上。
使用服務(wù)網(wǎng)站真實(shí)數(shù)據(jù)集的訓(xùn)練集對(duì)XLNet訓(xùn)練3個(gè)epoch,訓(xùn)練完成后使用服務(wù)網(wǎng)站測(cè)試集對(duì)XLNet進(jìn)行測(cè)試,得到的實(shí)驗(yàn)結(jié)果與文中模型的對(duì)比如表3所示。
表3 對(duì)照實(shí)驗(yàn)
基于實(shí)驗(yàn)結(jié)果分析模型性能差異的原因,該文設(shè)計(jì)的兩種檢測(cè)模型融合屬于同一http請(qǐng)求的切片的表征輸出,對(duì)http請(qǐng)求進(jìn)行全量檢測(cè),與不支持長(zhǎng)度超過(guò)512位輸入的原生BERT相比,能更有效地提取語(yǔ)義信息并捕獲更長(zhǎng)距離的特征,故在檢測(cè)準(zhǔn)確率方面高于原生BERT;由于XLNet本身支持超長(zhǎng)文本的輸入,預(yù)訓(xùn)練時(shí)使用的語(yǔ)料庫(kù)比BERT更加龐大,且模型的參數(shù)量遠(yuǎn)大于該文所選用的BERT,故檢測(cè)準(zhǔn)確率比文中設(shè)計(jì)模型更高一些。而模型的參數(shù)量越大,進(jìn)行一次運(yùn)算所消耗的計(jì)算資源也越高,檢測(cè)時(shí)間也就越長(zhǎng),該文用到的BERT模型以及設(shè)計(jì)的檢測(cè)模型參數(shù)量差距不大,處于同一數(shù)量級(jí),均在1 000萬(wàn)左右,而XLNet的參數(shù)量在1億左右,故檢測(cè)時(shí)間方面,XLNet的平均檢測(cè)時(shí)間遠(yuǎn)高于表3中的其余三種模型。
XLNet的準(zhǔn)確率雖高,但因?yàn)槟P蛥?shù)量巨大,平均檢測(cè)時(shí)間達(dá)到了25 ms,是BERT+Transformer模型平均檢測(cè)時(shí)間的6倍以上,對(duì)于流量強(qiáng)度較大的服務(wù)網(wǎng)站,過(guò)高的檢測(cè)時(shí)間會(huì)對(duì)業(yè)務(wù)造成一定影響,故綜合準(zhǔn)確率及平均檢測(cè)時(shí)間,BERT+Transformer是更加適合業(yè)務(wù)場(chǎng)景的檢測(cè)模型。
基于BERT+LSTM檢測(cè)模型研究不同大小的滑動(dòng)窗口對(duì)檢測(cè)結(jié)果的影響,分別選取滑動(dòng)窗口大小為100、200、300、400、500時(shí)訓(xùn)練模型并測(cè)試檢測(cè)效果,實(shí)驗(yàn)結(jié)果如表4所示。
表4 不同大小的滑動(dòng)窗口下模型的檢測(cè)結(jié)果
根據(jù)實(shí)驗(yàn)結(jié)果,隨滑動(dòng)窗口不斷增大模型的準(zhǔn)確率略微降低,但是滑動(dòng)窗口過(guò)小時(shí)會(huì)嚴(yán)重降低模型的檢測(cè)效率,滑動(dòng)窗口大小在300到500之間時(shí),對(duì)檢測(cè)模型是一個(gè)比較合適的范圍。
為了方便日后數(shù)據(jù)集及模型的更新,研究學(xué)習(xí)率及Epoch次數(shù)對(duì)模型準(zhǔn)確率的影響,在學(xué)習(xí)率為1e-4的條件下,分別選取epoch=1,2,3,4,5時(shí)的模型,使用服務(wù)網(wǎng)站數(shù)據(jù)集的測(cè)試集部分進(jìn)行測(cè)試。并在epoch=3,4,5的條件下,分別測(cè)試學(xué)習(xí)率為1e-4、1e-5、1e-6檢測(cè)模型的準(zhǔn)確率。
圖5(a)給出了Epoch與準(zhǔn)確率之間關(guān)系的實(shí)驗(yàn)結(jié)果。根據(jù)實(shí)驗(yàn)結(jié)果,Epoch=3時(shí),兩種模型均達(dá)到了最佳檢測(cè)效果,說(shuō)明較大的學(xué)習(xí)率下,模型的收斂速度很快,當(dāng)數(shù)據(jù)集更新時(shí),可以較快訓(xùn)練出新的檢測(cè)模型。圖5的(b)、(c)、(d)給出了不同Epoch次數(shù)下學(xué)
(a)Learning Rate=1e-4
習(xí)率與準(zhǔn)確率之間關(guān)系的實(shí)驗(yàn)結(jié)果,可以得到學(xué)習(xí)率為1e-4時(shí)模型能夠在最小的Epoch次數(shù)中獲得最佳的檢測(cè)效果。
該文提出了一種基于BERT的web攻擊檢測(cè)方法,基于輕量級(jí)預(yù)訓(xùn)練模型BERT-mini,通過(guò)改進(jìn)其網(wǎng)絡(luò)結(jié)構(gòu),設(shè)計(jì)了兩種不同的表征輸出融合方法,使其支持長(zhǎng)文本的檢測(cè),來(lái)對(duì)http請(qǐng)求進(jìn)行全量檢測(cè),識(shí)別url及其余字段的惡意攻擊載荷。其中BERT+Transformer模型在服務(wù)網(wǎng)站真實(shí)數(shù)據(jù)集下的檢測(cè)準(zhǔn)確率達(dá)到了99.97%,平均檢測(cè)時(shí)間4 ms,基本實(shí)現(xiàn)了在保證模型檢測(cè)準(zhǔn)確率的同時(shí),保證模型的檢測(cè)效率;在CSIC2010數(shù)據(jù)集下的檢測(cè)準(zhǔn)確率達(dá)到了95.83%,說(shuō)明了模型具有一定的泛化能力,但基于各網(wǎng)站業(yè)務(wù)及提供服務(wù)的差異性,數(shù)據(jù)集之間的流量特征不全部相同,無(wú)法通過(guò)一個(gè)數(shù)據(jù)集訓(xùn)練出的模型正確識(shí)別全部的http請(qǐng)求。
后續(xù)研究方向致力于研究web攻擊檢測(cè)與http請(qǐng)求語(yǔ)義之間的關(guān)系以及更多的攻擊類型分類,使模型能夠?qū)W習(xí)正常http請(qǐng)求以及惡意攻擊的語(yǔ)義特征,理解http請(qǐng)求,實(shí)現(xiàn)基于語(yǔ)義來(lái)識(shí)別web攻擊檢測(cè)的模型,能夠分辨出同一特征在不同應(yīng)用場(chǎng)景、排列順序下的不同語(yǔ)義,進(jìn)一步提高模型的檢測(cè)能力、泛化能力,以實(shí)現(xiàn)一個(gè)基于深度學(xué)習(xí)的語(yǔ)義級(jí)WAF。