999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

機器學習在SQL注入攻擊檢測中的應用

2021-07-22 10:53:40劉紹廷楊孟英朱廣全袁媛
河南科技 2021年8期
關鍵詞:機器學習

劉紹廷 楊孟英 朱廣全 袁媛

摘 要:本文以結構化查詢語言(SQL)為研究對象,利用詞袋(BoW)模型和詞頻-逆文檔頻率(TF-IDF)算法兩種方法進行SQL語句向量化。文本向量化后,特征矩陣維數大大增加,很難在后面數據訓練和預測中使用。為解決這個問題,對大量SQL注入攻擊語句與用戶正常輸入的SQL語句進行研究分析,概括出28個特征關鍵詞。同時,使用決策樹、XGBoost和隨機森林三個分類模型,對數據集進行模型訓練及預測。實驗結果表明:與詞袋(BoW)模型相比,詞頻-逆文檔頻率(TF-IDF)算法的準確率、召回率、F分數、精確率均提高了10%左右。此外,ROC曲線也說明了該方法的有效性。

關鍵詞:TF-IDF;SQL注入攻擊;文本向量化;機器學習

中圖分類號:TP393.08文獻標識碼:A文章編號:1003-5168(2021)08-0023-05

Application of Machine Learning in SQL Injection Attack Detection

LIU Shaoting YANG Mengying ZHU Guangquan YUAN Yuan

(Hebei Institute of Mechanical and Electrical Technology,Xingtai Hebei 054000)

Abstract: This paper took structured query language (SQL) as the research object, and used BoW model and TF-IDF algorithm to vectorize SQL statements. After the text is quantized, the dimension of feature matrix is greatly increased, which is difficult to use in the data training and prediction. To solve this problem, a large number of SQL injection attack statements and normal SQL statements were analyzed, and 28 key words were summarized. At the same time, the data set was trained and predicted by using three classification models: decision tree, XGBoost and random forest. The experimental results show that the accuracy, recall rate, f score and accuracy rate of TF-IDF algorithm are improved by about 10% compared with the BoW model. In addition, ROC curve also shows the effectiveness of the method.

Keywords: TF-IDF;SQL injection attacks;text vectorization;machine leaning

隨著計算機互聯網技術的廣泛應用,各種互聯網服務水平不斷提升。但由于設計人員和程序員的疏忽、水平和經驗參差不齊等,部分應用程序存在大量的安全漏洞。依據2017年打開Web應用程序安全項目(Open Web Application Security Project,OWASP)互聯網應用安全風險評估的結果,注入類攻擊在排名前十的互聯網攻擊行為中名列第一位。其中,結構化查詢語言(Structured Query Language,SQL)注入攻擊作為一種常見的應用層注入攻擊,備受學術界和工業界的關注[1]。SQL注入是網絡上經常使用的攻擊手段,具有變種極多、攻擊簡單、危害極大的特點。利用機器學習檢測SQL注入攻擊已成為一種趨勢。

1 基本知識原理及分類

1.1 SQL注入攻擊原理及分類

SQL注入攻擊是黑客對數據庫進行攻擊的常用手段之一。SQL注入的根本原因是代碼沒有對用戶輸入數據的合法性進行驗證,直接拼接到查詢語句中。利用SQL注入漏洞,攻擊者可以在應用的查詢語句中輸入自己的SQL代碼,并傳遞給后臺SQL服務器加以解析執行,根據程序返回的結果,獲得某些其想得知的數據,結果是導致系統崩潰、數據被破壞以及非公開的信息被偷竊,危害網站安全[2]。

SQL注入攻擊可以細分為多種類型,常見的有聯合注入、報錯注入、布爾注入、時間注入、堆疊注入、寬字節注入、二次注入、cookie注入等[3]。

聯合注入:用于將多個select語句的結果組合起來;每條select語句必須擁有相同的列、相同數量的列表達式、相同的數據類型;出現的次序要一致,長度不一定相同。

報錯注入:原理是利用數據庫的某些機制,通過人為制造錯誤條件,將查詢結果通過錯誤信息顯示出來;MySQL中通常用到updatexml、floor和exp三個函數。

布爾注入:指代碼存在SQL注入漏洞,然而頁面既不會回顯數據,也不會回顯錯誤信息,只返回“真”和“假”;通過構造語句,來判斷數據庫信息的正確性,通過頁面返回的“真”和“假”來識別判斷是否正確。

時間注入:代碼存在SQL注入漏洞,然而頁面既不會回顯數據,也不會回顯錯誤信息,語句執行之后不提示真假,不能通過頁面來進行判斷;通過構造語句、頁面響應的時長來判斷信息。

堆疊注入:在SQL語句中,語句的結束都是以“;”結尾的,但是如果我們在“;”后面再加上一條SQL語句,兩條語句會一起執行,這就造成了堆疊注入。

寬字節注入:GB2312、GBK、GB18030、BIG5、Shift_JIS等這些都是常說的寬字節,實際上只有兩字節;寬字節帶來的安全問題主要是吃ASCII字符(一字節);寬字節注入發生就是PHP發送請求到MYSQL時字符集使用character_set_client設置值進行了一次編碼。

二次注入:二次注入是通過與數據庫服務器進行交互的過程再次進行注入。

cookie注入:cookie注入的原理是更改本地的cookie,從而利用cookie來提交非法語句。

1.2 機器學習分類算法

隨著大數據技術的飛速發展和機器學習在各個領域的應用不斷成熟,基于機器學習檢測與防御SQL注入攻擊問題,已經成為網絡安全領域一個非常重要的發展趨勢。近年來,多數研究者采用機器學習[4]、深度學習[5]、神經網絡[6]等解決SQL注入攻擊檢測問題。本文采用的機器學習算法為決策樹、隨機森林、XGBoost[7]。

1.2.1 決策樹。決策樹是機器學習中一種基本的分類和回歸算法,是依托策略抉擇而建立起來的樹。用于分類的算法主要是借助每一個葉子節點對應一種屬性判定,通過不斷判定導出最終的決策;用于回歸的算法則是用均值函數進行多次二分,用子樹中數據的均值進行回歸。決策樹的主要優點是模型具有可讀性,分類速度快,易于理解。

1.2.2 隨機森林。隨機森林是用隨機的方式建立一個森林,森林由諸多決策樹組成,隨機森林的每一棵決策樹之間是沒有關聯的。通過多棵樹的集中決策來對分類問題或者回歸問題進行建模,是一種集成學習算法。為了保證樹與樹之間的差異性,對每棵樹從訓練集和劃分屬性上引入了隨機性。

1.2.3 XGBoost。極端梯度提升(Xtreme Gradient Boosting,XGBoost)經常被用在一些比賽中,效果顯著。XGBoost是大規模并行Boosted Tree的工具,是目前最快最好的開源Boosted Tree工具包,比常見的工具包快10倍以上。XGBoost應用的算法是梯度提升決策樹(Gradient Boosting Decision Tree,GBDT)的改進,既可以用于分類,也可以用于回歸問題中。

1.3 數據預處理:文本特征提取和向量化

1.3.1 詞袋模型。詞袋(Bag of Words,BoW)模型假定對于一個文檔,忽略它的單詞順序和語法、句法等要素,將其僅僅看作是若干個詞匯的集合,文檔中每個單詞的出現都是獨立的,不依賴于其他單詞是否出現。詞袋模型首先會進行分詞,在分詞之后,通過統計每個詞在文本中出現的次數,就可以得到該文本基于詞的特征,如果將各個文本樣本的這些詞與對應的詞頻放在一起,就是常說的向量化。

1.3.2 TF-IDF算法。詞頻-逆文檔頻率(Term Frequency-Inverse Document Frequency,TF-IDF)算法通過分配權重來反映每個詞的重要程度,根據權重對一篇文章中的所有詞語從高到低進行排序,權重越高,說明重要性越高。算法分為兩部分:詞頻(TF)和逆文檔頻率(IDF)。[TF]、[IDF]、[TF-IDF]的相關計算公式為:

[TF=某個詞在文章中的出現次數文章總詞數]? (1)

[IDF=log文章總數包含該詞的文章數+1]? ? ? ? ? ? ? ?(2)

[TF-IDF=TF×IDF]? ? ? ? ? ? ? ? ? ? ? ? ? (3)

由式(1)、式(2)、式(3)可知,當一個詞的文檔頻率越高并且新鮮度較高(即普遍度低)時,其詞頻-逆文檔頻率的值越高。詞頻-逆文檔頻率兼顧詞頻與新鮮度,過濾一些常見詞,保留能提供更多信息的重要詞。

2 實驗過程與結果分析

2.1 實驗平臺

實驗在同一臺計算機上進行,操作系統為Windows 10。需要配置的軟件是Anaconda3,實驗通過Python 3.7實現。

2.2 數據收集

本文主要利用公開的數據集進行相關驗證實驗,主要利用的是GitHub上的開源項目數據集,由SQL注入攻擊數據集和正常用戶輸入的SQL語句數據集組成。本次實驗所需的訓練集為從SQL注入攻擊數據集選取的37 093條,從正常用戶輸入的SQL語句中選取32 411條,共計69 504條。本次實驗的驗證集合為從SQL注入攻擊數據集選取30 154條,從正常用戶輸入的SQL語句中選取35 330條,共計65 484條。

2.3 文本向量化

第一種方式:分別利用BoW模型和TF-IDF算法[8],將所有的SQL語句分詞后,提取出所有不同的詞,不同詞的個數即是特征的維數,而每個SQL語句中如果存在某個詞,就將特征中相應的位置設置為該詞出現的次數或詞頻-逆文檔頻率,否則設置為0,這種方式可以確保特征向量的分布完全覆蓋數據集中的信息。但是,如果SQL數據集的數據量較大,就會造成特征維數激增。在SQL注入攻擊訓練數據集向量化過程中,特征維數是12 599,對應的向量矩陣是32 411×12 599;正常用戶SQL語句訓練集,產生的特征維數是63 395維,對應的向量矩陣是32 411×63 395。第二種方式是指定關鍵詞集,系統利用關鍵詞集中的詞將SQL語句轉為特征向量。選用SQL注入中常用的28個關鍵詞作為特征向量:'and';'id';'union';'sleep';'concat';'delay';'information_schema';'or';‘from;'where';'order';'like';'substring';'char';'load_file';'by';'group';'delete';'chr';'delete';'version';'limit';'insert';'update';'exec';'in';'if';'ascii'。從前面生成的向量矩陣中選擇關鍵詞特征向量組成新的特征矩陣作為訓練集和測試集。經過處理后,對應特征矩陣維數如表1所示。經過處理后的數據特征維數大大減少,并且維數相同,便于后面數據的訓練。

2.4 訓練數據與預測數據

利用BoW模型和TF-IDF算法后,使用指定關鍵詞法進行降維,得到的數據分別使用決策樹、隨機森林、XGBoost三種分類器進行模型訓練,并對測試數據進行驗證模型預測,最后對實驗結果進行評估分析。

2.5 評價指標

文本分類領域一般采用精準率(Precision)、召回率(Recall)、準確率(Accuracy)和F分數(F-Score)、受試者工作特征(Receiver Operating Characteristic,ROC)曲線等衡量機器學習分類的效果。準確率和召回率是廣泛用于信息檢索和文本分類領域的兩個度量值,用來評價結果的質量[9]。

精準率(Precision)又叫查準率,是針對預測結果而言的,其含義是在所有被預測為正的樣本中實際為正的樣本的概率,意思就是在預測為正樣本的結果中,有多少把握可以預測正確。精準率公式為:

[Pr=TPTP+FP]? ? ? ? ? ? ? ? ? ? ? ? ? ? (4)

式中:[Pr]指精準率;[TP]指被判定為正樣本,事實上也是正樣本;[FP]指被判定為正樣本,但事實上是負樣本。

召回率(Recall)又叫查全率,是針對原樣本而言的,其含義是在實際為正的樣本中被預測為正樣本的概率,計算公式為:

[R=TP(TP+FN)]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (5)

式中:[R]指召回率;[FN]指被判定為負樣本,但事實上是正樣本。

準確率(Accuracy)是預測正確的結果占總樣本的百分比,計算公式為:

[Acc=(TP+TN)(TP+TN+FP+FN)]? ? ? ? ? ? ? ? ? (6)

式中:[Acc]指準確率;[TN]指被判定為負樣本,事實上也是負樣本;[FP]指被判定為正樣本,但事實上是負樣本。

[F]分數是模型的準確率和召回率的調和平均數。[F]分數計算公式如式(7)所示。

[F=Pr×R×2Pr+R]? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(7)

此外,接受者操作特性曲線被用于機器學習領域,用來評判分類、檢測結果的好壞,其是非常重要和常見的統計分析方法。ROC曲線根據學習器的預測結果對樣例進行排序,按此順序逐個把樣本作為正例進行預測,每次計算出兩個重要量的值,即TPR(True Positive Rate)和FPR(False Positive Rate)。其中,TPR可以理解為所有正類中,有多少被預測成正類(正類預測正確);FPR可以理解為所有反類中,有多少被預測成正類(正類預測錯誤)。分別以它們為橫、縱坐標作圖。

AUC(Area Under Curve)為ROC曲線下的面積,介于0.1和1之間,可以直觀地評價分類器的好壞,數值越大,分類器效果越好。

2.6 實驗結果

將經過向量化處理的數據集分別使用決策樹、隨機森林、XGBoost三種分類器進行模型訓練及預測。利用上面評價指標進行評價,結果如表2和表3所示。

利用BoW模型向量后得到三種機器學習分類方法的ROC曲線,如圖1至圖3所示,利用TF-IDF模型向量化后得到三種機器學習分類方法的ROC曲線,如圖4至圖6所示。

對表1、表2及圖1至圖6進行分析發現,使用TF-IDF向量化方法比BoW向量法預測的結果有較大提升,這是因為BoW只創建了一組向量,其中包含文檔中單詞出現的次數,而TF-IDF模型還包含關于更重要的單詞和不重要的單詞信息。BoW模型向量很容易解釋,然而,在機器學習模型中,TF-IDF通常表現得更好,通過本次試驗也得到了很好地驗證。

此外,隨機森林算法略優于決策樹和XGBoost。從精準率、召回率、準確率和F分數(F-Score)4個指標來看,隨機森林四項指標均優于決策樹和XCBoost。從ROC曲線可以看出,隨機森林算法AUC為0.99,決策樹和XGBoost的AUC為0.98。

3 結語

本文利用常見機器學習分類方法進行SQL注入攻擊檢測,首先將SQL注入攻擊語句中的文本向量化,分別采用BoW模型和TF-IDF兩種文本向量化方法,然后根據SQL注入常用的28個關鍵詞進行特征向量提取,組成訓練集和測試集。利用決策樹、隨機森林、XGBoost三個模型對數據集進行模型訓練及預測。總體來看,本文設計的SQL注入攻擊檢測方法的關鍵步驟在于將原SQL語句文本向量化后進行降維處理,提取SQL注入關鍵詞作為特征點,保證訓練集和測試集特征維數的一致。同時,通過兩種文本向量化方法對比,TF-IDF較BoW模型在文本向量化過程中發揮的效果更好。

參考文獻:

[1]蔣磊.基于機器學習的SQL注入檢測技術研究[D].南京:南京郵電大學,2017:12-20.

[2]李小花.基于程序分析的SQL注入防御系統的設計與實現[D].長沙:湖南大學,2010:18-30.

[3]吳少華,程書寶,胡勇.基于SVM的Web攻擊檢測技術[J].計算機科學,2015(1):362-364.

[4]張澤亞,翟健宏.基于機器學習的SQL攻擊檢測技術研究[J].智能計算機與應用,2020(3):356-361.

[5]曹曉斌.基于深度學習的SQL注入檢測研究[D].南寧:廣西大學,2020:22-37.

[6]張志超,王丹,趙文兵,等.一種基于神經網絡的SQL注入漏洞的檢測模型[J]計算機與現代化,2016(10):67-71.

[7]UWAGBOLE S O,BUCHANAN W J,LU F. Applied Machine Learning predictive analytics to SQL Injection Attack detection and prevention[C]//IEEE Symposium on Integrated Network and Service Management.2017.

[8]徐冬冬,謝統義,萬卓昊,等.基于TF-IDF文本向量化的SQL注入攻擊檢[J].廣西大學學報(自然科學版),2018(5):1818-1826.

[9]胡建偉,趙偉,閆崢,等.基于機器學習的SQL注入漏洞挖掘技術的分析與實現[J].信息網絡安全,2019(11):36-42.

猜你喜歡
機器學習
基于詞典與機器學習的中文微博情感分析
基于網絡搜索數據的平遙旅游客流量預測分析
時代金融(2016年27期)2016-11-25 17:51:36
前綴字母為特征在維吾爾語文本情感分類中的研究
科教導刊(2016年26期)2016-11-15 20:19:33
下一代廣播電視網中“人工智能”的應用
活力(2016年8期)2016-11-12 17:30:08
基于支持向量機的金融數據分析研究
基于Spark的大數據計算模型
基于樸素貝葉斯算法的垃圾短信智能識別系統
基于圖的半監督學習方法綜述
機器學習理論在高中自主學習中的應用
極限學習機在圖像分割中的應用
主站蜘蛛池模板: 国产成人在线小视频| 久久黄色一级视频| 亚洲欧美成人网| 日韩小视频在线观看| 亚洲一区免费看| 福利国产在线| 99视频免费观看| 麻豆AV网站免费进入| 国产菊爆视频在线观看| 亚洲无线国产观看| 国产成人精品日本亚洲77美色| 国产av无码日韩av无码网站| 午夜电影在线观看国产1区| 欧美日韩在线第一页| 国产成人无码AV在线播放动漫| 免费不卡在线观看av| 日韩毛片免费观看| 在线毛片网站| 无码精品福利一区二区三区| A级全黄试看30分钟小视频| 亚洲愉拍一区二区精品| 91九色最新地址| 国产成人1024精品下载| 永久毛片在线播| 99热亚洲精品6码| 国产91蝌蚪窝| 97国产在线视频| 成人毛片在线播放| 午夜少妇精品视频小电影| 亚洲中文无码av永久伊人| 四虎国产精品永久在线网址| 国产丝袜无码一区二区视频| 欧美午夜视频在线| 先锋资源久久| 国产精品部在线观看| 99在线观看国产| 制服丝袜亚洲| 伊人国产无码高清视频| 国产在线精彩视频论坛| 中文字幕人妻av一区二区| 久草视频精品| 茄子视频毛片免费观看| 91探花国产综合在线精品| 亚洲无码视频图片| 91精品啪在线观看国产| 欧美成人手机在线视频| 无码AV日韩一二三区| 国产精品13页| 亚洲国产精品久久久久秋霞影院| 国产99精品久久| 亚洲成年人网| 亚洲免费毛片| 中文国产成人精品久久| 亚洲大学生视频在线播放 | h视频在线播放| 国产区91| 青青草国产精品久久久久| 久久无码av一区二区三区| 欧美在线精品怡红院 | 久久精品嫩草研究院| 国产91在线免费视频| 91成人免费观看在线观看| 成人小视频网| 精品久久久久久成人AV| 广东一级毛片| 精品久久久久久成人AV| 在线观看国产网址你懂的| 亚洲国产欧美目韩成人综合| 国产一区在线视频观看| 亚洲午夜福利精品无码| 国产三级a| 久久男人视频| 日本免费一区视频| 免费va国产在线观看| 国产成人精品男人的天堂| 亚洲精品黄| 国产在线无码av完整版在线观看| 一级毛片不卡片免费观看| 亚洲欧美另类中文字幕| 免费国产一级 片内射老| 欧美精品亚洲二区| 日本精品中文字幕在线不卡|