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

?

SQL注入行為實(shí)時(shí)在線智能檢測技術(shù)研究

2020-12-21 03:38李銘邢光升王芝輝王曉東
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò)

李銘 邢光升 王芝輝 王曉東

摘? ?要:為了解決傳統(tǒng)手段在實(shí)時(shí)高速網(wǎng)絡(luò)流量環(huán)境下SQL注入行為檢測準(zhǔn)確度和效率之間無法達(dá)到較好平衡的問題,提出一種基于深度學(xué)習(xí)模型的SQL注入行為實(shí)時(shí)在線檢測的方法,構(gòu)建了以卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)并引入快速傅里葉變換層的復(fù)合檢測網(wǎng)絡(luò)模型SQLNN,并以此模型為基礎(chǔ)提出SQL注入行為在線檢測與自適應(yīng)訓(xùn)練框架. 該框架對(duì)于SQL注入語句的檢測正確率達(dá)到了99.98%,每秒可完成對(duì)一萬條左右含有SQL語句的數(shù)據(jù)包的檢測,滿足了SQL注入攻擊的實(shí)時(shí)在線檢測對(duì)檢測準(zhǔn)確度和效率的要求.

關(guān)鍵詞:SQL注入;實(shí)時(shí)檢測;卷積神經(jīng)網(wǎng)絡(luò);快速傅里葉變換

中圖分類號(hào):TP391? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)志碼:A? ?文章編號(hào):1674—2974(2020)08—0031—11

Abstract:In order to solve the problem that traditional methods cannot achieve a good balance between the accuracy and efficiency of SQL injection behavior detection in the real-time high-speed network traffic environment, this paper proposes a method for real-time detection method of SQL injection behavior based on deep learning construction model, and constructs a detection network model called SQLNN based on Convolutional Neural Networks (CNN) and introduces a fast Fourier transform layer. Based on this model, an online detection and adaptive training framework? for SQL injection behavior is proposed. For our detection framework, the detection accuracy of the SQL injection statements reaches 99.98%, and it can detect about 10 000 packets containing SQL statements per second. Therefore, it can satisfy the requirements of real-time online detection of SQL injection attacks for detection accuracy and efficiency.

Key words:SQL injection;real-time detection;Convolutional Neural Networks(CNN);Fast Fourier Transformation(FFT)

隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,各種網(wǎng)絡(luò)攻擊手段層出不窮,SQL注入攻擊作為網(wǎng)絡(luò)安全領(lǐng)域中最常見的攻擊方式已有十多年的歷史,根據(jù)開放 Web 應(yīng)用安全項(xiàng)目組織(Open Web Application Security Project, OWASP)正式發(fā)布的十大 Web 應(yīng)用安全風(fēng)險(xiǎn)報(bào)告,SQL注入已經(jīng)成為對(duì)Web業(yè)務(wù)系統(tǒng)威脅最嚴(yán)重的行為之一.攻擊者常常利用網(wǎng)絡(luò)應(yīng)用漏洞,滲透并進(jìn)一步獲取后臺(tái)服務(wù)器控制權(quán),然后執(zhí)行篡改頁面、竊取數(shù)據(jù)等惡意操作. SQL注入方式主要是通過構(gòu)建惡意的SQL語法組合作為參數(shù)輸入Web應(yīng)用程序,應(yīng)用程序執(zhí)行SQL語句時(shí)會(huì)同步執(zhí)行惡意操作,進(jìn)而發(fā)生SQL注入攻擊. 如果應(yīng)用程序代碼執(zhí)行過程中將含有攻擊者輸入的惡意字符串進(jìn)行存儲(chǔ)或傳遞,也會(huì)導(dǎo)致SQL注入的發(fā)生. SQL注入有多種方式,按照構(gòu)造參數(shù)類型劃分主要有Get注入、POST注入、Cookie注入、寬字節(jié)注入、基于時(shí)間注入、布爾型注入、報(bào)錯(cuò)型注入、聯(lián)合查詢注入、多語句查詢注入等.雖然注入類型比較多,但是所有的注入類型SQL語句均需遵循相關(guān)語法并且含有特定的關(guān)鍵詞或字符,這就為SQL注入行為檢測提供了基礎(chǔ)條件.

大數(shù)據(jù)時(shí)代,網(wǎng)絡(luò)信息呈現(xiàn)井噴式增長,在通信主干網(wǎng)和端到端的實(shí)時(shí)線路上網(wǎng)絡(luò)數(shù)據(jù)均呈現(xiàn)高速、大流量的特點(diǎn),對(duì)數(shù)據(jù)的實(shí)時(shí)處理提出更高要求. 對(duì)于實(shí)時(shí)在線網(wǎng)絡(luò)安全檢測設(shè)備來說,必須確保能夠及時(shí)發(fā)現(xiàn)安全威脅,盡可能檢測出所有可疑行為,保證后端設(shè)備安全,在此前提下可以適當(dāng)容忍誤檢情況的發(fā)生.這首先決定了安全檢測設(shè)備需采取有效的手段進(jìn)行流量降速,目前業(yè)界常規(guī)做法是基于特定字符(串)或流量特征對(duì)海量數(shù)據(jù)進(jìn)行高速篩選;其次是安全設(shè)備中的檢測模型不宜太復(fù)雜,同時(shí)又要保證檢測的有效性,在保證對(duì)可疑行為高檢測率的前提下盡量減少誤檢情況的發(fā)生. 目前通用的實(shí)時(shí)在線安全檢測設(shè)備大部分是以正則匹配的關(guān)鍵字符串過濾為基礎(chǔ),該類模型通常部署于基于深度包檢測技術(shù)(Deep Packet Inspection, DPI)的硬件平臺(tái)上,可以做到基于批量加載規(guī)則的實(shí)時(shí)大流量數(shù)據(jù)在線檢測,但是該類設(shè)備誤檢率較高.

近幾年人工智能技術(shù)蓬勃發(fā)展,在圖像處理、語言文本識(shí)別等方面以深度學(xué)習(xí)為基礎(chǔ)的相關(guān)處理技術(shù)有著卓有成效的應(yīng)用.網(wǎng)絡(luò)實(shí)時(shí)流量中的SQL語句具有網(wǎng)絡(luò)數(shù)據(jù)和腳本語言雙重特性,可以借鑒圖像和文本處理中的思路.本文提出一種基于深度學(xué)習(xí)構(gòu)建模型對(duì)SQL注入行為進(jìn)行實(shí)時(shí)檢測的方法,構(gòu)建了以卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),引入快速傅里葉變換層的復(fù)合檢測網(wǎng)絡(luò)模型SQLNN,并以此模型為基礎(chǔ)提出基于SQLNN模型的SQL注入行為檢測模型實(shí)時(shí)在線檢測及迭代訓(xùn)練框架.

本文第一部分梳理了國內(nèi)外SQL注入攻擊行為檢測技術(shù)相關(guān)研究以及其他網(wǎng)絡(luò)腳本或網(wǎng)絡(luò)數(shù)據(jù)檢測技術(shù)的相關(guān)研究;第二部分設(shè)計(jì)了SQL注入行為檢測模型實(shí)時(shí)在線檢測及迭代訓(xùn)練框架,滿足模型實(shí)時(shí)在線檢測的相關(guān)需求,同時(shí)使模型能夠在不影響實(shí)時(shí)在線運(yùn)行的前提下實(shí)現(xiàn)迭代更新,有效應(yīng)對(duì)網(wǎng)絡(luò)鏈路變化或者各類SQL腳本協(xié)議更新后帶來的數(shù)據(jù)類型和特征的變化;第三部分介紹了相關(guān)訓(xùn)練測試數(shù)據(jù)集的來源、特點(diǎn)和數(shù)據(jù)預(yù)處理過程;第四部分詳細(xì)介紹SQLNN模型設(shè)計(jì)有關(guān)內(nèi)容;第五部分對(duì)SQLNN模型與其他模型的實(shí)驗(yàn)對(duì)比測試的內(nèi)容和方法進(jìn)行闡述,并對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行梳理總結(jié).

1? ?相關(guān)研究

針對(duì)SQL注入攻擊檢測和防范,國內(nèi)外均有大量研究. 王丹等[1]介紹了SQL注入式安全漏洞分類,總結(jié)了漏洞成因,闡述了相關(guān)檢測關(guān)鍵技術(shù). 從研究對(duì)象來看,主要是從前后端的相關(guān)應(yīng)用程序源碼和包含SQL注入語句的網(wǎng)絡(luò)數(shù)據(jù)兩個(gè)方面開展相關(guān)研究. 對(duì)于實(shí)時(shí)在線檢測來說,更多的是基于數(shù)據(jù)開展研究,因此本文只關(guān)注基于數(shù)據(jù)層面的研究.

1.1? ?傳統(tǒng)檢測方法

在傳統(tǒng)檢測方法上,主要有基于關(guān)鍵字符串構(gòu)建相應(yīng)的特征表達(dá)式或者模型,基于SQL語義語法規(guī)則構(gòu)建模型兩種方法對(duì)SQL注入行為進(jìn)行檢測.

基于關(guān)鍵字符串方面, Halfond等[2]通過靜態(tài)分析方法找出程序中可能的注入點(diǎn),然后針對(duì)這些可能的注入點(diǎn)建立合法狀態(tài)模型,使用靜態(tài)分析方法建立合法SQL語句的模型,動(dòng)態(tài)分析檢測在線執(zhí)行SQL語句是否與建立的靜態(tài)模型一致,但是這種方法只適用于相關(guān)的特征應(yīng)用,類似于建立黑白名單機(jī)制,實(shí)時(shí)在線檢測能力受限. 張卓[3]、方爽[4]均是通過正則表達(dá)式對(duì)網(wǎng)絡(luò)數(shù)據(jù)內(nèi)容進(jìn)行驗(yàn)證,過濾SQL注入攻擊的關(guān)鍵字符串,通過分析SQL注入行為語句構(gòu)造特征,利用正則表達(dá)式來分辨SQL注入語句和合法語句,該方法實(shí)現(xiàn)相對(duì)容易,但誤檢率高,可轉(zhuǎn)化為實(shí)時(shí)在線檢測模型的前置處理模塊有效降低網(wǎng)絡(luò)流量.

基于SQL語義語法規(guī)則方面,孫義等[5]設(shè)計(jì)了一種根據(jù)模式匹配及序列對(duì)比SQL注入檢測的新思路,使用 Needleman-Wunsch 算法(用于 RNA 和 DNA 序列分析)檢測和預(yù)防 SQL注入攻擊,通過分析運(yùn)行過程中含注入命令和正常的命令模式字符串是否能夠完全匹配達(dá)到檢測目的,該方法有效降低檢測模型的時(shí)空復(fù)雜度,但只適用于具體應(yīng)用中的SQL注入數(shù)據(jù)檢測. 石聰聰?shù)萚6]使用語法樹特征匹配的方法檢測SQL注入,將執(zhí)行Web 應(yīng)用程序功能的所有 SQL 語句通過語法分析生成 SQL 語法解析樹,然后選擇出能夠識(shí)別 SQL 注入行為的特征,構(gòu)建知識(shí)庫,通過驗(yàn)證實(shí)際執(zhí)行的 SQL 語句和知識(shí)庫能否模式匹配成功,進(jìn)而判斷這條SQL是否存在注入行為. 王杰[7]提出基于抽象語法樹的SQL注入防御方法,使用EBNF范式來描述詞法語法規(guī)則,通過對(duì)生成語法樹的規(guī)則進(jìn)行重寫并去掉對(duì)檢測無用節(jié)點(diǎn),構(gòu)造抽象語法樹,基于抽象語法樹的hash值比對(duì)來判斷輸入語句是否存在 SQL 注入行為.上述兩個(gè)研究在相關(guān)應(yīng)用中的SQL注入檢測中效果較好,但基于語法樹特征的檢測方式需要研究者花費(fèi)大量時(shí)間構(gòu)建特征模型,且模型只針對(duì)特定應(yīng)用類型的SQL語句,在更新模型時(shí)花費(fèi)時(shí)間較多,模型效果好壞取決于研究者對(duì)相關(guān)知識(shí)的理解和模型的設(shè)計(jì)能力.

1.2? ?機(jī)器學(xué)習(xí)方法

在基于機(jī)器學(xué)習(xí)的SQL注入行為檢測方面,國內(nèi)外也有相關(guān)研究,在特征選擇上主要針對(duì)原始數(shù)據(jù)特征或數(shù)據(jù)流信息. Joshi等[8]使用貝葉斯算法建造了一個(gè)區(qū)分惡意和非惡意分類查詢的分類器,用于訓(xùn)練的數(shù)據(jù)集包含惡意和非惡意的查詢,對(duì)正常的SQL語句和惡意的 SQL 語句進(jìn)行建模識(shí)別. 張登峰[9]對(duì)原始數(shù)據(jù)從訪問者、被訪問者、Url字段3個(gè)方面進(jìn)行特征構(gòu)建和特征化描述,采取貝葉斯模型和決策樹模型相結(jié)合的集成學(xué)習(xí)方式,提升了機(jī)器學(xué)習(xí)模型對(duì)SQL注入行為檢測的準(zhǔn)確性,實(shí)現(xiàn)對(duì)大量正常數(shù)據(jù)快速識(shí)別的效果. 上述兩種方式均是基于原始數(shù)據(jù)進(jìn)行特征提取,檢測準(zhǔn)確率相對(duì)傳統(tǒng)方法有所提高,但是對(duì)于實(shí)時(shí)在線檢測來說仍然不夠. Kim等[10]通過SVM算法對(duì)基于數(shù)據(jù)庫日志中內(nèi)部查詢樹提取的特征向量進(jìn)行建模,對(duì)已經(jīng)發(fā)生的SQL注入行為進(jìn)行檢測,不針對(duì)實(shí)時(shí)在線檢測. 趙宇飛等[11]提出一種名為LFF(Length-Frequency-Feature)的SQL注入行為檢測方法,針對(duì)每條HTTP請求檢測其請求長度和連接頻率,然后采用特征串匹配算法,對(duì)請求語句進(jìn)行匹配,經(jīng)投票決策,確定HTTP請求中是否有SQL注入.張志超等[12-13]在研究中均采用多層神經(jīng)網(wǎng)絡(luò)對(duì)SQL注入進(jìn)行檢測,通過選擇能夠識(shí)別SQL注入行為的特征合成特征向量,使用多層神經(jīng)網(wǎng)絡(luò)對(duì)特征進(jìn)行訓(xùn)練識(shí)別. 上述方法雖然檢測準(zhǔn)確率較高,但是由于其特征是基于對(duì)象通聯(lián)關(guān)系或數(shù)據(jù)載荷的,在不同網(wǎng)絡(luò)環(huán)境和應(yīng)用中這兩類特征會(huì)有變化,因此模型只適用于特定網(wǎng)絡(luò)環(huán)境和某些特定應(yīng)用中.

1.3? ?深度學(xué)習(xí)方法

相對(duì)于機(jī)器學(xué)習(xí),深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)更有深度,隨著訓(xùn)練數(shù)據(jù)集規(guī)模的增大,能夠從數(shù)據(jù)中直接學(xué)習(xí)到高等級(jí)的特征,且不需要人工總結(jié)提取. 目前在網(wǎng)絡(luò)腳本和網(wǎng)絡(luò)數(shù)據(jù)識(shí)別處理上已有初步應(yīng)用,盡管在公開的文獻(xiàn)中還沒有基于深度學(xué)習(xí)的SQL注入行為的實(shí)時(shí)在線檢測方法的研究,但是在Github上已經(jīng)有眾多研究源代碼公開.在網(wǎng)絡(luò)腳本檢測方面,方忠慶[14]提出一種CNN+LSTM模型對(duì)跨站腳本攻擊(XSS)進(jìn)行檢測;傅建明等[15]基于卷積神經(jīng)網(wǎng)絡(luò)的檢測模型對(duì)Webshell進(jìn)行檢測;付壘朋等[16]基于多類特征提取和PNN(概率神經(jīng)網(wǎng)絡(luò))模型算法,實(shí)現(xiàn)對(duì)JavaScript惡意腳本的檢測;潘司晨等[17]和陳康等[18]均是利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)惡意URL進(jìn)行識(shí)別檢測,兩個(gè)研究差別在于數(shù)據(jù)的特征提取處理方法上.在網(wǎng)絡(luò)數(shù)據(jù)識(shí)別處理方面,深度學(xué)習(xí)技術(shù)也得到廣泛應(yīng)用,國內(nèi)外研究[19-23]均是利用流量數(shù)據(jù)類圖像性質(zhì),將原始數(shù)據(jù)輸入,由深度神經(jīng)網(wǎng)絡(luò)完成數(shù)據(jù)表征學(xué)習(xí)從而實(shí)現(xiàn)相關(guān)類型數(shù)據(jù)的檢測.上述研究利用深度學(xué)習(xí)技術(shù)構(gòu)建檢測識(shí)別模型,均取得很高的準(zhǔn)確率.目前在Github開源項(xiàng)目中已經(jīng)出現(xiàn)基于深度學(xué)習(xí)的SQL注入行為識(shí)別檢測方面的相關(guān)應(yīng)用和代碼,經(jīng)過代碼閱讀研究,已有的開源研究均是基于構(gòu)建詞向量的方式產(chǎn)生訓(xùn)練數(shù)據(jù),需要構(gòu)建和訓(xùn)練詞向量模型和檢測模型兩種模型,處理流程較為繁瑣.

針對(duì)網(wǎng)絡(luò)腳本和網(wǎng)絡(luò)數(shù)據(jù)識(shí)別處理還有一種新興的方法是使用模糊神經(jīng)網(wǎng)絡(luò),它是神經(jīng)網(wǎng)絡(luò)和模糊邏輯結(jié)合形成的混合智能系統(tǒng),通過將模糊系統(tǒng)的類人推理方式與神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)和連接結(jié)構(gòu)相融合來協(xié)同這兩種技術(shù).當(dāng)前已出現(xiàn)許多研究[24-28]將該種神經(jīng)網(wǎng)絡(luò)應(yīng)用于分類、模型識(shí)別等SQL注入檢測相關(guān)的問題中,如利模糊神經(jīng)網(wǎng)絡(luò)創(chuàng)建專家系統(tǒng)來檢測SQL注入等,但當(dāng)前該方法尚未成熟.

2? ?基于深度學(xué)習(xí)的SQL注入行為在線檢測

與自適應(yīng)訓(xùn)練框架

在網(wǎng)絡(luò)數(shù)據(jù)腳本識(shí)別檢測應(yīng)用上,采用深度學(xué)習(xí)技術(shù)可以在檢測與訓(xùn)練集同特征類型數(shù)據(jù)腳本時(shí)取得很高的準(zhǔn)確率,但是由于采用深度學(xué)習(xí)訓(xùn)練生成的檢測模型相比于傳統(tǒng)檢測模型結(jié)構(gòu)復(fù)雜,計(jì)算量大,如果直接加載于高速實(shí)時(shí)網(wǎng)絡(luò)鏈路中使用,必然會(huì)導(dǎo)致數(shù)據(jù)擁塞,效率低下. 同時(shí)由于網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,各類網(wǎng)絡(luò)數(shù)據(jù)腳本協(xié)議也在不斷完善修訂當(dāng)中,再加上不同的網(wǎng)絡(luò)線路中數(shù)據(jù)類型和數(shù)據(jù)載荷也不相同,因此個(gè)別線路采集的數(shù)據(jù)也不具有完全代表性,導(dǎo)致訓(xùn)練數(shù)據(jù)集不可能覆蓋相關(guān)腳本數(shù)據(jù)的所有特征類型,可能會(huì)造成模型在某些應(yīng)用場景表現(xiàn)的不夠理想,這就需要模型在不同的應(yīng)用場景時(shí)可以迭代訓(xùn)練,以更好地適應(yīng)不同場景.為了有效解決模型在高速線路中檢測效率和模型的迭代訓(xùn)練問題,提高模型在線檢測的靈活性和檢測數(shù)據(jù)類型的可擴(kuò)展性,本文提出一種SQL注入行為在線檢測與自適應(yīng)訓(xùn)練框架,如圖1所示,從流程上可以分為在線檢測流程和自適應(yīng)訓(xùn)練流程.

2.1? ?在線檢測流程

高速深度包檢測類設(shè)備可以輸入任何端到端實(shí)時(shí)網(wǎng)絡(luò)環(huán)境數(shù)據(jù)流或者核心網(wǎng)高速分接鏈路,該類設(shè)備基于硬件實(shí)現(xiàn)相關(guān)功能,通?;贔PGA開發(fā)板和專用網(wǎng)絡(luò)數(shù)據(jù)處理芯片兩種方法,已經(jīng)有較多成熟方案,并且得到廣泛應(yīng)用,性能較好,可實(shí)時(shí)處理10 Gbps甚至100 Gbps以上的網(wǎng)絡(luò)流量,實(shí)時(shí)加載檢測規(guī)則幾千條甚至上萬條以上,因此在框架中,關(guān)鍵詞過濾與分流模塊即該類設(shè)備加載的相關(guān)規(guī)則能夠應(yīng)對(duì)高速流量環(huán)境并確保所有可疑數(shù)據(jù)進(jìn)入SQL注入行為檢測模塊,可大幅降低所需后續(xù)SQLNN模型檢測的數(shù)據(jù)量.

在線檢測流程對(duì)實(shí)時(shí)線路數(shù)據(jù)進(jìn)行檢測,線路數(shù)據(jù)首先經(jīng)過告訴深度包檢測類設(shè)備的關(guān)鍵詞,過濾與分流模塊進(jìn)行數(shù)據(jù)篩選與流量降速,篩選出的含有SQL關(guān)鍵詞的數(shù)據(jù)流進(jìn)入數(shù)據(jù)預(yù)處理模塊進(jìn)行處理后,形成待檢測數(shù)據(jù)進(jìn)入SQL注入行為檢測模型——SQLNN進(jìn)行檢測,將檢測判別結(jié)果及數(shù)據(jù)包特征信息(IP五元組信息等)輸出,整個(gè)流程如圖2所示.

2.2? ?自適應(yīng)訓(xùn)練流程

SQL注入行為檢測模型SQLNN對(duì)預(yù)處理后的實(shí)時(shí)數(shù)據(jù)進(jìn)行檢測,所有模型判定為SQL注入行為數(shù)據(jù)進(jìn)入人工判別生成模塊,通過人工判別正反例并標(biāo)注,經(jīng)過處理后的人工篩選數(shù)據(jù)經(jīng)過數(shù)據(jù)預(yù)處理模塊后生成訓(xùn)練樣本導(dǎo)入到樣本庫供訓(xùn)練使用,自適應(yīng)訓(xùn)練流程如圖3所示.

自適應(yīng)訓(xùn)練過程是獨(dú)立的,不會(huì)影響模型在實(shí)時(shí)線路上的檢測運(yùn)行,模型在線運(yùn)行時(shí)所檢測出的可疑數(shù)據(jù)可以不斷豐富樣本庫,因此不管鏈路特征如何變化,即使相關(guān)數(shù)據(jù)特征協(xié)議發(fā)生變化時(shí),只要可疑數(shù)據(jù)仍具有SQL基本特性即相關(guān)關(guān)鍵詞不變,經(jīng)過一段時(shí)間的自適應(yīng)訓(xùn)練后,樣本庫中的數(shù)據(jù)在當(dāng)前檢測線路中能夠具有較好的代表性,多次迭代訓(xùn)練出的模型可實(shí)現(xiàn)較好的檢測效果. 當(dāng)然實(shí)現(xiàn)上述目標(biāo)也要求SQLNN模型必須對(duì)相關(guān)關(guān)鍵字符串具有高度敏感性,在遇到非訓(xùn)練集腳本特征數(shù)據(jù)時(shí),有一定的過擬合性,以減少可疑數(shù)據(jù)漏檢率,為人工判別標(biāo)注提供完善的數(shù)據(jù).

3? ?數(shù)據(jù)預(yù)處理

3.1? ?數(shù)據(jù)來源

本文中的原始啟動(dòng)訓(xùn)練數(shù)據(jù)集主要來自于Gihtub上基于關(guān)鍵詞“SQL detection”搜索得到開源項(xiàng)目的數(shù)據(jù)樣本以及對(duì)常用注入攻擊工具——明小子 4.3、SQLmap1.3.5執(zhí)行注入操作時(shí)進(jìn)行實(shí)時(shí)抓包分析提取得到的數(shù)據(jù)樣本,同時(shí)還有非SQL注入腳本的其他網(wǎng)絡(luò)數(shù)據(jù)樣本,分別將上述兩類樣本稱為SQL樣本和normal樣本,從原始數(shù)據(jù)樣本可以看出SQL樣本有高頻特征詞以及相對(duì)應(yīng)的上下文語義環(huán)境. 對(duì)SQL樣本進(jìn)行高頻特征詞統(tǒng)計(jì),總計(jì)有腳本95 602條,統(tǒng)計(jì)中關(guān)鍵詞不區(qū)分大小寫,統(tǒng)計(jì)結(jié)果見表1.

在檢測模型實(shí)際線上運(yùn)行時(shí),為了有效地降低流速,減輕模型計(jì)算負(fù)載,會(huì)提取含有關(guān)鍵字的數(shù)據(jù)包導(dǎo)入模型中進(jìn)行識(shí)別檢測. 為了提高后續(xù)模型訓(xùn)練過程中正負(fù)樣本之間的對(duì)比性,本文刪除不含關(guān)鍵詞的normal腳本得到normal原始樣本,總計(jì)有57 624條.

為了測試模型的泛化檢測能力——即測試模型對(duì)于非訓(xùn)練集中數(shù)據(jù)特征的可疑SQL腳本的識(shí)別能力,本文另行在網(wǎng)上搜集其他類型的SQL腳本和含有SQL關(guān)鍵詞并具有類似語法結(jié)構(gòu)的網(wǎng)絡(luò)腳本來構(gòu)建泛化測試集,訓(xùn)練集和泛化測試集中SQL腳本和normal腳本示例如表2所示.

3.2? ?特征提取處理

基于已有研究總結(jié),常見的網(wǎng)絡(luò)腳本特征提取方法主要分為4類:第1類是基于承載網(wǎng)絡(luò)腳本的數(shù)據(jù)流相關(guān)特征進(jìn)行提取分析,例如數(shù)據(jù)對(duì)象的通聯(lián)時(shí)間、通聯(lián)次數(shù)等;第2類是利用網(wǎng)絡(luò)數(shù)據(jù)的類圖像數(shù)據(jù)特性,直接利用原始數(shù)據(jù)按字節(jié)輸入處理[18-23];第3類是利用網(wǎng)絡(luò)腳本類自然語言的特性,基于腳本分詞并轉(zhuǎn)換詞向量,方法主要有one-hot編碼(或類似方法)[17]、Word2Vec[14]等;第4類是混合利用前兩類方法提取混合特征進(jìn)行處理.綜合來看,第一類方法需對(duì)網(wǎng)絡(luò)實(shí)時(shí)數(shù)據(jù)進(jìn)行一段積累才能進(jìn)行特征提取分析,在端到端的復(fù)雜網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)實(shí)體來源較多,數(shù)據(jù)鏈路容易發(fā)生變化,對(duì)特征提取時(shí)間窗口的設(shè)置提出較高要求,同時(shí)也考驗(yàn)研究者對(duì)于原始數(shù)據(jù)和相關(guān)數(shù)據(jù)腳本的解讀能力. 第3類方法基于數(shù)據(jù)(詞向量)特征進(jìn)行分析檢測,雖然在相關(guān)研究[14]中可達(dá)到極高的準(zhǔn)確率,但是在分詞和詞向量轉(zhuǎn)換時(shí)數(shù)據(jù)會(huì)成倍地膨脹,在流量較大的網(wǎng)絡(luò)中會(huì)對(duì)模型的計(jì)算能力和實(shí)時(shí)檢測能力提出挑戰(zhàn),同時(shí)該類方法在更新迭代時(shí)需要重新進(jìn)行分詞,構(gòu)建模型訓(xùn)練詞向量環(huán)節(jié)較多,更新任務(wù)量大.本文特征提取方式主要是基于原始數(shù)據(jù)的字符編碼作為輸入特征,同時(shí)針對(duì)腳本中的相關(guān)特性在特征轉(zhuǎn)換前需對(duì)腳本進(jìn)行URL編碼轉(zhuǎn)換、數(shù)字去重替換、腳本去重、長度統(tǒng)一化等操作,同時(shí)在模型構(gòu)建時(shí)增加的FFT層可對(duì)數(shù)據(jù)特征深度轉(zhuǎn)換處理,在實(shí)驗(yàn)測試中能夠看出本文的特征提取方式和詞向量特征提取方式下模型測試結(jié)果的差異.

此外,在實(shí)時(shí)線路中,當(dāng)前最常用的方法有兩種,第一種是關(guān)鍵詞匹配過濾,該方法的缺點(diǎn)是正確率比較低. 第二種方法則是利用正則函數(shù)加流量分析,該方法雖然正確率比關(guān)鍵詞匹配過濾方法高很多,但是只能針對(duì)特定的注入攻擊類型檢測,不具有廣泛代表檢測能力. 本文所提的SQLNN模型檢測正確率較高,對(duì)于各種注入攻擊類型的腳本都可以檢測,因此優(yōu)于其他方法.

5.2? ?實(shí)時(shí)性效果檢測

以10 Gbps的大流量線路為例,峰值情況下每秒大約有2 000 000個(gè)數(shù)據(jù)包. 對(duì)于線路上的數(shù)據(jù)包,并不全包含有SQL語句,因此首先需要篩選出含有SQL語句的數(shù)據(jù)包.

對(duì)于數(shù)據(jù)包的篩選,包含如下兩步:

第一步是通過網(wǎng)絡(luò)協(xié)議進(jìn)行篩選,對(duì)于包含SQL語句的腳本,所使用的協(xié)議均為TCP協(xié)議.本文利用兩條10 Gbps線速環(huán)境的線路進(jìn)行實(shí)驗(yàn),利用網(wǎng)絡(luò)協(xié)議進(jìn)行篩選后,兩條線路每秒鐘所包含的TCP數(shù)據(jù)包數(shù)量約為10 000條.

第二步則是利用關(guān)鍵詞對(duì)第一步的篩選結(jié)果進(jìn)行進(jìn)一步的篩選,篩選出包含有SQL關(guān)鍵詞的數(shù)據(jù),作為需要SQLNN模型檢測的數(shù)據(jù).

經(jīng)過上述兩步,兩條線路中所包含的關(guān)鍵詞命中包分別為100條左右與30條左右.利用高速深度包檢測類設(shè)備完成上述操作所需的時(shí)間為秒級(jí).完成數(shù)據(jù)篩選后,對(duì)于實(shí)時(shí)線路中被檢測的數(shù)據(jù)僅包含URL轉(zhuǎn)換和長度統(tǒng)一化兩個(gè)操作,且需要處理的數(shù)據(jù)的數(shù)量級(jí)在102級(jí),因此對(duì)數(shù)據(jù)的篩選和處理所需的時(shí)間為秒級(jí),利用SQLNN模型對(duì)102級(jí)數(shù)據(jù)進(jìn)行檢測所需的時(shí)間可以忽略不計(jì),因此本文提出的檢測框架完全可以達(dá)到實(shí)時(shí)檢測的效果,在效率上滿足檢測要求.

6? ?結(jié)? ?論

本文提出一種基于深度學(xué)習(xí)的SQL注入行為在線實(shí)時(shí)檢測方法,構(gòu)建了檢測模型SQLNN,該模型引入FFT層豐富輸入數(shù)據(jù)表達(dá)特征,在測試集上可以達(dá)到與基于Word2Vec詞向量轉(zhuǎn)換特征表達(dá)方法相當(dāng)?shù)母邷?zhǔn)確率,在泛化測試集上召回率有明顯優(yōu)勢,可以有效減少在面臨新SQL注入形式時(shí)漏檢情況發(fā)生. 同時(shí)本文以SQLNN模型為基礎(chǔ)提出SQL注入行為在線檢測與自適應(yīng)訓(xùn)練框架,滿足SQL注入攻擊實(shí)時(shí)在線檢測對(duì)檢測準(zhǔn)確度和效率的要求,并可實(shí)現(xiàn)模型的迭代演進(jìn),該框架對(duì)其他網(wǎng)絡(luò)腳本類數(shù)據(jù)檢測模型的訓(xùn)練及在線運(yùn)行也有一定的參考價(jià)值.未來將進(jìn)一步優(yōu)化模型結(jié)構(gòu),使模型能夠在泛化測試集上有更好的表現(xiàn),并逐步擴(kuò)展到其他網(wǎng)絡(luò)腳本類攻擊行為檢測,同時(shí)基于檢測結(jié)果加入后續(xù)數(shù)據(jù)流量特征分析以進(jìn)一步分析可疑行為.

參考文獻(xiàn)

[1]? ? 王丹,趙文兵,丁治明. Web 應(yīng)用常見注入式安全漏洞檢測關(guān)鍵技術(shù)綜述[J].北京工業(yè)大學(xué)學(xué)報(bào),2016,42(12):1822—1832.? ? ? ? ? ? ? ? ? WANG D,ZHAO W B,DING Z M. Review of detection for injection vulnerability of web applications [J]. Journal of Beijing University of Technology,2016,42(12):1822—1832. (In Chinese)

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

[3]? ? 張卓. SQL注入攻擊技術(shù)及防范措施研究[D]. 上海:上海交通大學(xué)信息安全工程學(xué)院,2007:52—64.

ZHANG Z. SQL injection attack techniques and countermeasures analysis [D].Shanghai: School of Information Security Engineering,Shanghai Jiaotong University,2007:52—64. (In Chinese)

[4]? ? 方爽. 基于特征匹配的WEB應(yīng)用防火墻的研究與實(shí)現(xiàn)[D] .合肥:安徽大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,2014:36—47.

FANG S. Research and implementation of web application firewall based on feature matching [D]. Hefei: School of Computer Science and Technology,Anhui University,2014:36—47. (In Chinese)

[5]? ? 孫義,胡雨霽,黃皓. 基于序列比對(duì)的SQL注入攻擊檢測方法[J]. 計(jì)算機(jī)應(yīng)用研究,2010,27(9):3525—3528.

SUN Y,HU Y J,HUANG H. SQL injection attack detection method based on sequence alignment [J].Computer Application Research,2010,27(9):3525—3528. (In Chinese)

[6]? ? 石聰聰,張濤,余勇. 基于語法樹特征匹配的SQL注入防護(hù)方法研究與實(shí)現(xiàn)[C]//第三屆計(jì)算智能與工業(yè)應(yīng)用國際學(xué)術(shù)研討. 武漢:電氣電子工程師協(xié)會(huì),2010:192—196.

SHI C C,ZHANG T,YU Y. Research and Implementation of SQL injection protection method based on syntax tree feature matching [C]//Proceedings of 2010 The 3rd International Conference on Computational Intelligence and Industrial Application. Wuhan: IEEE,2010: 192—196. (In Chinese)

[7]? ? 王杰. 基于抽象語法樹的SQL注入防御研究[D].武漢:武漢郵電科學(xué)研究院,2018:28—40.

WANG J. Research on SQL injection defense based on abstract syntax -tree [D]. Wuhan: Wuhan Institute of Posts and Telecommunications,2018: 28—40. (In Chinese)

[8]? ? JOSHI A,GEETHA V. SQL injection detection using machine learning[C]//2014 International Conference on Control,Instrumentation,Communication and Computational Technologies (ICCICCT). Tamilnadu,India:IEEE,2014:1111—1115.

[9]? 張登峰. 基于機(jī)器學(xué)習(xí)的SQL注入檢測[D].重慶:重慶郵電大學(xué)計(jì)算機(jī)學(xué)院,2017:31—45.

ZHANG D F. SQL injection detection based on machine learning [D].Chongqing: School of Computer,Chongqing University of Posts and Telecommunications,2017: 31—45. (In Chinese)

[10]? KIM M Y,DONG H L. Data-mining based SQL injection attack detection using internal query trees [J]. Expert Systems with Applications,2014,41(11):5416—5430.

[11]? 趙宇飛,熊剛,賀龍濤,等. 面向網(wǎng)絡(luò)環(huán)境的SQL注入行為檢測方法[J]. 通信學(xué)報(bào),2016,37(2):88—97.

ZHAO Y F,XIONG G,HE L T,et al. SQL injection behavior detection method for network environment [J]. Journal of Communications,2016,37(2):88—97. (In Chinese)

[12]? 張志超. 基于神經(jīng)網(wǎng)絡(luò)的 SQL 注入式攻擊漏洞檢測問題的研究與實(shí)現(xiàn)[D] .北京:北京工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,2016:17—26.

ZHANG Z C. Research and implementation of SQL injection attack vulnerability detection based on neural network [D]. Beijing: School of Computer,Beijing University of Technology,2016: 17—26. (In Chinese)

[13]? 張志超,王丹,趙文兵,等. 一種基于神經(jīng)網(wǎng)絡(luò)的 SQL 注入漏洞的檢測模型[J]. 計(jì)算機(jī)與現(xiàn)代化,2016(10):67—71.

ZHANG Z C,WANG D,ZHAO W B,et al. A SQL injection vulnerability detection model based on neural network [J].Computer and Modernization,2016(10):67—71. (In Chinese)

[14]? 方忠慶. 基于深度學(xué)習(xí)的跨站腳本攻擊檢測研究[D] .長沙:湖南大學(xué)信息科學(xué)與工程學(xué)院,2018:33—43.

FANG Z Q. Research on cross-site scripting attack detection based on deep learning [D]. Changsha: School of Information Science and Engineering,Hunan University,2018:33—43. (In Chinese)

[15]? 傅建明,黎琳,王應(yīng)軍. 基于 CNN 的 Webshell 文件檢測[J]. 鄭州大學(xué)學(xué)報(bào)(理學(xué)版),2019,51(2):1—8.

FU J M,LI L,WANG Y J. Webshell file detection based on CNN [J]. Journal of Zhengzhou University (Science Edition),2019,51(2):1—8. (In Chinese)

[16]? 付壘朋,張瀚,霍路陽. 基于多類特征的 JavaScript 惡意腳本檢測算法[J]. 模式識(shí)別與人工智能,2015,28(12):1111—1117.

FU L P,ZHANG H,HUO L Y. JavaScript malicious script detection algorithm based on multi-class features [J]. Pattern Recognition and Artificial Intelligence,2015,28(12):1111—1117. (In Chinese)

[17]? 潘司晨,薛質(zhì),施勇. 基于卷積神經(jīng)網(wǎng)絡(luò)的惡意URL檢測[J].通信技術(shù),2018,51(8):1919—1923.

PAN S C,XUE Z,SHI Y. Malicious URL detection based on convolutional neural network [J]. Communication Technology,2018,51(8):1919—1923. (In Chinese)

[18]? 陳康,付華崢,向勇. 基于深度學(xué)習(xí)的惡意URL識(shí)別[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2018,27(6):27—33.

CHEN K,F(xiàn)U H Z,XIANG Y. Malicious URL recognition based on deep learning [J].Application of Computer Systems,2018,27(6):27—33. (In Chinese)

[19]? TORRES P,CATANIA C,GARCIA S,et al. An analysis of recurrent neural networks for botnet detection behavior [C]//Biennial Congress of Argentina (ARGENCON).Buenos Aires,Argentina: IEEE,2016:1—6.

[20]? WANG W Y,ZENG X,YE X,et al. Malware traffic classification using convolutional neural network for representation learning [C]//The 31st International Conference on Information Networking(ICOIN). Da Nang,Vietnam: IEEE,2017:712—717.

[21]? 馬若龍.基于卷積神經(jīng)網(wǎng)絡(luò)的未知和加密流量識(shí)別的研究與實(shí)現(xiàn)[D]. 北京:北京郵電大學(xué)網(wǎng)絡(luò)技術(shù)研究院,2017:17—44.

MA R L. Research and implementation of unknown and encrypted traffic recognition based on convolutional neural networks [D]. Beijing:Institute of Network Technology,Beijing University of Posts and Telecommunications,2017:17—44. (In Chinese)

[22]? 張路煜,廖鵬,趙俊峰,等. 基于卷積神經(jīng)網(wǎng)絡(luò)的未知協(xié)議識(shí)別方法[J]. 微電子學(xué)與計(jì)算機(jī),2018,35(7):106—108.

ZHANG L Y,LIAO P,ZHAO J F,et al. Unknown protocol recognition method based on convolutional neural network[J]. Microelectronics and Computers,2018,35(7):106—108. (In Chinese)

[23]? 王偉.基于深度學(xué)習(xí)的網(wǎng)絡(luò)流量分類及異常檢測方法研究[D].合肥:中國科學(xué)技術(shù)大學(xué)信息學(xué)院,2018:45—67.

WANG W. Research on network traffic classification and anomaly detection method based on deep learning [D]. Hefei: School of Information,University of Science and Technology of China,2018:45—67. (In Chinese)

[24]? BATISTAL O,SILVA G A D, VANESSAJO V S,et al. Fuzzy neural networks to create an expert system for detecting attacks by SQL injection [J]. The International Journal of Forensic Computer Science,2018,13(1):8—21.

[25]? SOUZA P V C. Regularized fuzzy neural networks for pattern classification problems [J]. International Journal of Applied Engineering Research,2018,13(5): 2985—2991.

[26]? SOUZA P V C,OLIVEIRA P F A. Regularized fuzzy neural networks based on nullneurons for problems of classification of patterns[C]//2018 IEEE Symposium on Computer Applications & Industrial Electronics (ISCAIE).Penang Island,Malaysia: IEEE,2018: 25—30.

[27]? SOUZA P V C,GUIMARAES A J,ARAJO V S,et al. Fuzzy neural networks based on fuzzy logic neurons regularized by resampling techniques and regularization theory for regression problems[J]. Inteligencia Artificial,2018,21(62): 114—133.

[28]? MA B H,ZHONG G,CHEN Q N,et al. A fuzzy neural network system for architectural foundation selection [C]//Proceedings of the 2nd International Symposium on Asia Urban Geo Engineering. Springer,Singapore, 2018: 651—664.

[29]? 虞湘賓,董濤. 一種離散小波變換的快速分解和重構(gòu)算法[J]. 東南大學(xué)學(xué)報(bào)(自然科學(xué)版),2002,32(4):564—568.

YU X B,DONG T. A fast decomposition and reconstruction algorithm of discrete wavelet transform [J]. Journal of Southeast University (Natural Science Edition),2002,32(4):564—568. (In Chinese)

[30]? 王泳,胡包鋼.應(yīng)用統(tǒng)計(jì)方法綜合評(píng)估核函數(shù)分類能力的研究[J]. 計(jì)算機(jī)學(xué)報(bào),2008,31(6):942—952.

WANG Y,HU B G. Study on comprehensive evaluation of kernel function classification ability using statistical methods [J]. Journal of Computer,2008,31(6):942—952. (In Chinese)

猜你喜歡
卷積神經(jīng)網(wǎng)絡(luò)
基于深度神經(jīng)網(wǎng)絡(luò)的微表情識(shí)別
卷積神經(jīng)網(wǎng)絡(luò)中減少訓(xùn)練樣本時(shí)間方法研究
卷積神經(jīng)網(wǎng)絡(luò)語言模型研究
基于卷積神經(jīng)網(wǎng)絡(luò)的車輛檢索方法研究
基于卷積神經(jīng)網(wǎng)絡(luò)溫室智能大棚監(jiān)控系統(tǒng)的研究
基于深度卷積神經(jīng)網(wǎng)絡(luò)的物體識(shí)別算法
深度學(xué)習(xí)算法應(yīng)用于巖石圖像處理的可行性研究
基于深度卷積網(wǎng)絡(luò)的人臉年齡分析算法與實(shí)現(xiàn)
深度學(xué)習(xí)技術(shù)下的中文微博情感的分析與研究
基于卷積神經(jīng)網(wǎng)絡(luò)的樹葉識(shí)別的算法的研究
旺苍县| 尉犁县| 乌苏市| 观塘区| 武冈市| 望江县| 长宁县| 曲周县| 邹城市| 永靖县| 长乐市| 泸西县| 庆阳市| 教育| 阿克| 麻阳| 新竹市| 双柏县| 灵山县| 周宁县| 阳原县| 绥德县| 新兴县| 新昌县| 怀仁县| 重庆市| 郴州市| 武安市| 颍上县| 梧州市| 巴楚县| 图们市| 西平县| 荥经县| 西盟| 二连浩特市| 清原| 九江市| 沁源县| 三台县| 新蔡县|