• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      一種基于改進TF-IDF的SQL注入攻擊檢測算法

      2022-06-23 00:43:24盛靖媛曹同洲
      計算機與現(xiàn)代化 2022年6期
      關(guān)鍵詞:特征詞語句分類器

      關(guān) 慧,盛靖媛,曹同洲

      (1.沈陽化工大學計算機科學與技術(shù)學院,遼寧 沈陽 110142; 2.遼寧省化工過程工業(yè)智能化技術(shù)重點實驗室,遼寧 沈陽 110142)

      0 引 言

      隨著互聯(lián)網(wǎng)時代的到來,Web的安全問題也因其易用性和開放性日益顯著[1-2],根據(jù)2017年開放式Web應用程序安全項目組織OWASP(Open Web Application Security Project) 10大安全漏洞評估的結(jié)果顯示[3],注入類攻擊仍排在前十位中的第一位。因此,如何準確有效地檢測SQL注入攻擊便成為一個值得研究者們思考的問題。

      目前針對SQL注入攻擊檢測的研究,主要有基于污點分析的檢測方法[4-5]、基于規(guī)則匹配的檢測方法[6-8]和基于文本特征表示的方法。其中常用的基于文本特征表示的方法如基于改進查詢規(guī)范化的方法[9]、基于Token圖的方法[10]、基于Simhash指紋的方法[11]、基于N-gram的方法[12]、基于信息攜帶的方法[13]、基于六維特征(SDF)轉(zhuǎn)化的方法[14]、基于TFIDF文本向量化的方法[15-17],利用了TFIDF算法中所具有的詞頻以及逆文檔頻率2個指標,通過總結(jié)SQL語句敏感字符并計算其TFIDF值,設計文本向量化方法以實現(xiàn)SQL語句數(shù)據(jù)集到特征向量的轉(zhuǎn)化。

      但傳統(tǒng)方法進行數(shù)據(jù)處理并檢測攻擊時會存在以下問題:使用該算法進行向量化后,由于會出現(xiàn)SQL語句中包含的常規(guī)詞與關(guān)鍵字的語句數(shù)量相等或相近的情況,從而使SQL語句所得特征向量屬性表示稍弱,結(jié)果導致關(guān)鍵字權(quán)重描述不準確。

      1 TFIDF文本向量化算法

      1.1 TF的介紹

      TF表示詞ti出現(xiàn)在SQL語句dj中的頻率。SQL語句中每個詞的詞頻的計算方法如公式(1)所示:

      (1)

      1.2 IDF的介紹

      IDF表示SQL數(shù)據(jù)集中詞ti的逆文檔頻率。SQL語句中每個詞的逆文檔頻率的計算方法如公式(2)所示:

      (2)

      其中,|D|是數(shù)據(jù)集中的語句總數(shù)目,|{j:ti∈dj}|表示在數(shù)據(jù)集中出現(xiàn)詞ti的語句數(shù)目。如果該詞語不在D中,就會導致除數(shù)為0,因此一般情況下使用|{j:ti∈dj}|+1,即公式(2)改為公式(3):

      (3)

      傳統(tǒng)的TF-IDF并不能很好地處理特征詞的權(quán)重問題[18-19]。傳統(tǒng)的TF-IDF算法思想認為,某個詞t對于該文本內(nèi)容的重要程度與它的數(shù)量呈現(xiàn)出正相關(guān),但是如果詞t在整個數(shù)據(jù)集中,也就是各個類型的文本中均有出現(xiàn)的話,其計算權(quán)值又會隨著出現(xiàn)次數(shù)的增多而下降,從而說明詞t的區(qū)分能力不強。但實際上,當某些詞多次出現(xiàn)在一個類別的語句中,則該詞幾乎能夠代表這個類的語句文本的特征,應給予較高的權(quán)重,并選來作為該類語句的特征詞。

      1.3 改進的TFIDF算法

      計算IDF[20]的公式中可以看出,傳統(tǒng)的IDF計算方法僅與數(shù)據(jù)集總數(shù)量、包含特征詞的語句數(shù)量有關(guān),針對以上不足,本文采用加入文本數(shù)量比因子γ對特征詞出現(xiàn)的次數(shù)進行處理。計算方法如公式(4)所示:

      (4)

      其中,D為數(shù)據(jù)集中語句總數(shù),Ci為類別,Nci為詞ti在類別Ci中出現(xiàn)的語句數(shù)量,NDCi為類別Ci總的語句數(shù)量。

      可以看出詞頻比因子的數(shù)值代表了詞ti在某個類別Ci的重要程度,當詞在一個類別中出現(xiàn)的次數(shù)越高,公式計算出的數(shù)值越大,這個詞就越能很好地代表這個類別,應選取作為特征詞。

      然而當某個特征詞在每個類別中出現(xiàn)的頻率相同時得到的特征值仍然不能很好地區(qū)分,為解決這個問題引用卡方統(tǒng)計量CHI[21]。CHI的計算公式為:

      (5)

      其中,N為總語句數(shù)。表1給出了X、Y、M和Q的含義。CHI計算的值越大,說明詞ti與類別Ci之間的相關(guān)程度越高,可以作為該類的特征詞。

      表1 類別特征表

      為減小不同特征間的差異,加快訓練速度,因此還要對TF-IDF進行歸一化處理,采用min-max標準化(Min-Max Normalization),如公式(6)所示:

      (6)

      其中X表示當前樣本數(shù)據(jù)值;min表示樣本數(shù)據(jù)最小值;max表示樣本數(shù)據(jù)最大值。

      因此,改進后的TF-IDF算法公式為:

      (7)

      改進后的TF-IDF算法的處理流程如圖1所示。

      圖1 改進TF-IDF算法的處理流程圖

      2 基于改進的TF-IDF算法的數(shù)據(jù)處理方法

      2.1 實驗流程

      實驗流程如圖2所示。

      圖2 實驗流程

      2.2 數(shù)據(jù)預處理

      將數(shù)據(jù)集數(shù)據(jù)進行預處理,首先是使用分詞工具將SQL語句劃分為單詞。分詞過程如表2所示。

      表2 SQL語句分詞操作前后對比

      2.3 SQL語句向量化及樣本標記

      在進行完分詞操作后,接下來就是基于改進的TFIDF算法對數(shù)據(jù)集進行文本向量化,每條SQL語句經(jīng)過處理后都可以表示成一個34維特征向量。首先通過對大量SQL注入攻擊語句與合法語句進行分析,并利用總結(jié)的32個敏感字符[15]的i_tfidf值作為SQL語句部分特征點,同時還選擇SQL語句長度和敏感關(guān)鍵詞詞頻[15]作為SQL語句的另外2個特征點。3條SQL注入攻擊樣本如表3所示。樣本經(jīng)過文本向量化處理后得到的文本向量如表4所示。

      表3 SQL注入語句樣本

      表4 SQL注入攻擊樣本特征

      然后進行標記處理。如果該語句是攻擊樣本,則將其標記為-1;如果該語句是正常樣本,則將其標記為1。

      3 實驗及分析

      3.1 實驗環(huán)境

      實驗的硬件環(huán)境是處理器Intel? CoreTM i7-8850U CPU@1.80 GHz,內(nèi)存8 GB,64位的Win10家庭中文版操作系統(tǒng)。實驗環(huán)境為Python 2.7、Happier Fun Tokenizing。

      3.2 實驗數(shù)據(jù)來源

      SQL注入攻擊使用的數(shù)據(jù)來自GitHub上的開源libinjection項目[22],為了使數(shù)據(jù)集具有更多的注入攻擊特征,本文經(jīng)過刪除重復數(shù)據(jù)后挑選出1000條作為SQL注入攻擊語句數(shù)據(jù)集。此外,選擇1000條正常用戶在一定時間內(nèi)對數(shù)據(jù)庫的訪問記錄作為本文實驗中所使用的正常語句數(shù)據(jù)集。

      實驗數(shù)據(jù)分為訓練集和測試集,其中每類中選出60%作為訓練集,40%作為測試集,最后根據(jù)實驗結(jié)果對不同種類的分類器進行結(jié)果分析。

      3.3 實驗評價指標

      本文采用的評價指標包括準確率(Precision)、召回率(Recall)、正確率(Accuracy)和F1值(F-Score)作為檢測分類器性能的綜合評估標準,其計算公式如式(8)~式(11)所示。

      準確率指的是在已經(jīng)預測為真的SQL注入語句中,真正類所占的比例。其計算公式如式(8):

      (8)

      召回率指的是在所有為真的SQL注入語句中,被預測正確的個體所占的比例。其計算公式如式(9):

      (9)

      正確率指的是在正常語句和SQL注入語句中,正確分類的語句占總語句的比值。其計算公式如式(10):

      (10)

      為了能更加有效地衡量訓練出的分類器的綜合性能,通常會把F1值當作檢測指標。其數(shù)學公式如式(11):

      (11)

      公式中的TP、TN、FP、FN[23]含義如表5所示。

      表5 混淆矩陣

      3.4 實驗結(jié)果

      實驗過程中將經(jīng)過向量化處理的數(shù)據(jù)集導入Python中,將本文提出的基于改進的TF-IDF文本向量化的SQL注入攻擊檢測方法與文獻[14]中提出的基于SVM的檢測方法和文獻[15]提出的基于TF-IDF的檢測方法進行對照實驗。然后分別使用3種不同的分類器進行實驗,排除模型的唯一性,從而使效果越發(fā)準確。

      由表6可見,與其他2種方法相比,本文提出的算法的正確率、準確率、召回率和F1值均到達99.96%、99.95%、99.89%和99.92%。這是因為本文提出的改進方法很好地處理了特征詞的權(quán)重問題,彌補了傳統(tǒng)TF-IDF方法以術(shù)語頻率作為文本向量的不足,從而具有更好的檢測效果。

      表6 實驗結(jié)果

      由于在實際情況下SQL注入攻擊語句的數(shù)量要遠遠小于正常語句,因此將SQL注入攻擊語句數(shù)據(jù)集選擇500條,正常語句選擇1000條做一組實驗,以保證實驗的現(xiàn)實性。實驗結(jié)果如表7所示。

      表7 實驗結(jié)果

      圖3記錄了模型的訓練時間。

      圖3 3種模型的訓練時間

      通過圖3可以發(fā)現(xiàn),使用相同的2000條數(shù)據(jù)對3個分類器進行訓練,訓練時間最短的是Boosted Decision Tree。這說明,在同樣的條件下,如果使用Boosted Decision Tree作為分類器的算法,則分類的效率是最高的。

      由表6和圖3分析可知,Boosted Decision Tree模型無論是從準確率、召回率、正確率,還是F1值的結(jié)果上來看,對于SQL注入攻擊檢測來說都是最好的分類模型。

      4 結(jié)束語

      本文提出了一種改進的TF-IDF算法的SQL注入檢測方法。經(jīng)過改進的TF-IDF算法對SQL語句的特征詞計算出相對應的權(quán)值,通過卡方統(tǒng)計量改進傳統(tǒng)TF-IDF算法的不足,提高了SQL注入攻擊識別準確率。從實驗結(jié)果可知,改進的TF-IDF算法提高了SQL注入攻擊識別的正確率、準確率、召回率和F1值,這4方面最高可達到99.96%、99.95%、99.89%和99.92%。因此表明,本文改進方法的提出能夠在SQL檢測上具有更好的效果。

      猜你喜歡
      特征詞語句分類器
      重點:語句銜接
      基于改進TFIDF算法的郵件分類技術(shù)
      BP-GA光照分類器在車道線識別中的應用
      電子測試(2018年1期)2018-04-18 11:52:35
      產(chǎn)品評論文本中特征詞提取及其關(guān)聯(lián)模型構(gòu)建與應用
      精彩語句
      加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
      結(jié)合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
      面向文本分類的特征詞選取方法研究與改進
      基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
      如何搞定語句銜接題
      語文知識(2014年4期)2014-02-28 21:59:52
      凌云县| 宁安市| 眉山市| 大冶市| 报价| 清水河县| 仁怀市| 怀来县| 邯郸市| 汝州市| 普陀区| 临桂县| 察哈| 丹凤县| 东辽县| 贵阳市| 陵水| 永年县| 中阳县| 建阳市| 定襄县| 沂源县| 高清| 定州市| 五河县| 双辽市| 陇川县| 井陉县| 宁武县| 茌平县| 建水县| 清新县| 昌邑市| 沭阳县| 梨树县| 互助| 苏尼特右旗| 邢台市| 炉霍县| 略阳县| 皋兰县|