亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于人工神經(jīng)元網(wǎng)絡(luò)的SQL漏洞檢測方法與流程

文檔序號:12365206閱讀:809來源:國知局
一種基于人工神經(jīng)元網(wǎng)絡(luò)的SQL漏洞檢測方法與流程
本發(fā)明涉及一種基于人工神經(jīng)元網(wǎng)絡(luò)的SQL漏洞檢測方法,屬于計算機軟件領(lǐng)域。
背景技術(shù)
:近年來,隨著Web應(yīng)用的廣泛使用,Web安全問題也日益突出。SQL注入(SQLInjection)漏洞已成為Web應(yīng)用中普遍存在的安全隱患之一,它是指攻擊者利用Web應(yīng)用系統(tǒng)用戶輸入和信息上傳的動態(tài)特性,將一些惡意數(shù)據(jù)或代碼上傳到Web應(yīng)用系統(tǒng)中,并使這些惡意數(shù)據(jù)或代碼在Web應(yīng)用系統(tǒng)的服務(wù)器端或客戶端執(zhí)行,從而造成Web應(yīng)用目標(biāo)系統(tǒng)崩潰、數(shù)據(jù)被篡改和泄露。由于目前多數(shù)的Web應(yīng)用都采取了應(yīng)用程序與數(shù)據(jù)庫訪問的交互式結(jié)構(gòu),即用戶提交輸入,應(yīng)用程序根據(jù)輸入構(gòu)建SQL語句提交給數(shù)據(jù)庫管理系統(tǒng),執(zhí)行后將結(jié)果返回給用戶。SQL漏洞的產(chǎn)生是由于部分開發(fā)人員編寫Web應(yīng)用時,多關(guān)注業(yè)務(wù)邏輯,疏于驗證用戶輸入,導(dǎo)致惡意的用戶的輸入嵌入在SQL語句中,欺騙服務(wù)器端執(zhí)行,以獲取超越權(quán)限的數(shù)據(jù)和使用功能,從而導(dǎo)成數(shù)據(jù)庫信息的泄露等嚴(yán)重后果。因此,對SQL漏洞的檢測是非常必要的。通過調(diào)研國內(nèi)外流行的SQL漏洞檢測技術(shù),我們發(fā)現(xiàn)目前存在的主要缺點是誤報率和漏報率較高,精度較差。本文提出的方法是利用大量已知的SQL漏洞注入數(shù)據(jù)和人工神經(jīng)元網(wǎng)絡(luò)算法來訓(xùn)練產(chǎn)生SQL語句漏洞分析模型,可提高檢測的精度,減少檢測的時間。本方法的設(shè)計是基于這樣一種觀察:雖然SQL注入漏洞可能有多種樣式,但是其攻擊種類仍然是有限的,而且其中包含了大量相似的關(guān)鍵詞和組合語句。如果對攻擊的種類進行總結(jié)和分類,并設(shè)計一個能夠自主學(xué)習(xí)的模型,通過大量的樣本訓(xùn)練就能夠得到一個比較準(zhǔn)確的SQL注入漏洞檢測模型,用來分析SQL語句是否可能含有注入攻擊。本文基于這個思路,在對現(xiàn)有SQL注入式漏洞進行分析研究的基礎(chǔ)上,提出了利用人工神經(jīng)元網(wǎng)絡(luò)技術(shù)建立SQL注入式漏洞分析和檢測模型的方法。該方法充分應(yīng)用了人工神經(jīng)網(wǎng)絡(luò)的自主學(xué)習(xí)功能,先把大量已知的SQL注入樣本和對應(yīng)的應(yīng)識別的結(jié)果輸入人工神經(jīng)網(wǎng)絡(luò),并結(jié)合神經(jīng)元網(wǎng)絡(luò)算法來訓(xùn)練SQL注入漏洞的模型,網(wǎng)絡(luò)就會通過自學(xué)習(xí)功能,慢慢學(xué)會識別類似的SQL語句,并可檢測用戶輸入的SQL是否可能帶來SQL注入攻擊。與其它檢測方法相比較,該模型建立之后,無需再次建立檢測模型,即可對語句直接進行分析檢測,因此具有更快的檢測速度和更高的準(zhǔn)確率。目前,已有的利用人工神經(jīng)元網(wǎng)絡(luò)進行SQL注入檢測的工作有基于貝葉斯網(wǎng)絡(luò)的SQLassiede方法,該方法是通過在Web應(yīng)用程序和SQL數(shù)據(jù)庫之間添加一個貝葉斯網(wǎng)絡(luò)模型,當(dāng)Web應(yīng)用提交查詢命令,生成的SQL語句傳給貝葉斯網(wǎng)絡(luò)模型,通過貝葉斯算法和正則匹配來實現(xiàn)對SQL語句的檢測。雖然貝葉斯網(wǎng)絡(luò)的時間復(fù)雜度比較低,比較容易實現(xiàn),但是其分類性能不是很好,所以對于SQL注入檢測的誤報率也比較高。另外,該方法使用了字符串直接進行訓(xùn)練,這需要很長的時間,使得時間響應(yīng)性變變差。本文提出的基于人工神經(jīng)網(wǎng)絡(luò)系統(tǒng)可以解決分類不準(zhǔn)確的問題,同時,通過將SQL語句中的關(guān)鍵字組合而成的字符串為特征向量,來減少匹配的時間,從而改善漏洞檢測的響應(yīng)時間。綜上所述,為了更好地進行SQL漏洞檢測,需要實現(xiàn)以下兩個方面的功能:①利用人工神經(jīng)元網(wǎng)絡(luò)技術(shù)建立SQL注入式漏洞的分析算法和分析模型。②高效的模型實現(xiàn)及其部署機制。技術(shù)實現(xiàn)要素:本發(fā)明的內(nèi)容為:1)提出了一個基于人工神經(jīng)元網(wǎng)絡(luò)的SQL注入式漏洞分析和檢測模型,降低了漏洞檢測的誤報率,減少了檢測的時間。2)提出了一種通過將Web應(yīng)用提交的SQL語句轉(zhuǎn)換為特征向量組的SQL漏洞判定方法,因為樣本中包含有多種SQL注入的語句,所以訓(xùn)練生成的模型檢測的SQL注入的類型很多。3)通過在Web應(yīng)用程序和數(shù)據(jù)庫中間加一個代理來實現(xiàn)分析和檢測過程,無需對Web應(yīng)用代碼進行修改,且可方便開發(fā)人員的調(diào)試和修改。4)對相關(guān)模型和判斷方法進行了測試,驗證了其有效性。為達到以上發(fā)明目的,經(jīng)過研究討論和反復(fù)實踐,本系統(tǒng)確定最終方案如下。一種基于人工神經(jīng)元網(wǎng)絡(luò)的SQL漏洞檢測方法,實現(xiàn)本方法的為基于神經(jīng)元網(wǎng)絡(luò)的檢測模型,該模型由SQL語句分析模塊和人工神經(jīng)元網(wǎng)絡(luò)檢測模塊組成。(1)SQL語句分析模塊SQL語句分析模塊的主要功能是將Web應(yīng)用提交的SQL語句轉(zhuǎn)換一個特征向量組r,r是由0和1組成的特征向量。通過對SQL注入攻擊語句的分類研究,本方法將r設(shè)計為由12個ri組成。如果ri=1,則說明SQL語句中包含關(guān)鍵字;如果ri=0,則說明SQL語句中不包含某一關(guān)鍵字。定義C代表某一語句是否為SQL注入語句,并定義:若該語句是SQL注入語句,C的值為1,若該語句不是SQL注入攻擊語句,C值為0。如此,每一條SQL查詢語句都能夠用特征向量r和C來表示。語句分析模塊實現(xiàn)的功能就是將SQL語句轉(zhuǎn)換為特征向量,然后再將得到的特征向量提交給人工神經(jīng)元網(wǎng)絡(luò)檢測模塊進行分析與檢測。(2)人工神經(jīng)元網(wǎng)絡(luò)模塊人工神經(jīng)元網(wǎng)絡(luò)模塊是該模型的核心部分,本發(fā)明設(shè)計的人工神經(jīng)網(wǎng)絡(luò)模型是由四層組成的,其中包含4個隱藏層、12個輸入和1個輸出。該模塊用來訓(xùn)練、驗證和測試SQL語句相關(guān)的數(shù)據(jù),通過不斷改變內(nèi)部的權(quán)值,得到一個穩(wěn)定權(quán)值的人工神經(jīng)網(wǎng)絡(luò)檢測模型。人工神經(jīng)訓(xùn)練模塊的輸入矩陣、目標(biāo)矩陣和神經(jīng)元網(wǎng)絡(luò)的設(shè)計如下:1)輸入矩陣:這個矩陣是由n×12的邏輯矩陣組成的,其中矩陣的元素由0或者1組成的。其中的0代表錯誤,1代表正確。2)目標(biāo)矩陣:這個矩陣是由n×1的邏輯矩陣組成的,其中矩陣的元素由0或者1組成。其中的0代表錯誤,1代表正確。3)神經(jīng)元網(wǎng)絡(luò):該神經(jīng)網(wǎng)絡(luò)的中間層是由4個隱藏層組成的,該層利用輸入矩陣和輸出矩陣來對數(shù)據(jù)進行訓(xùn)練、驗證和測試?;谌斯ど窠?jīng)網(wǎng)絡(luò)的驗證模塊的樣本矩陣、輸出矩陣的設(shè)計如下:1)樣本矩陣:這個矩陣是從輸入矩陣得到的數(shù)據(jù),然后組成一個n×12的邏輯矩陣。2)輸出矩陣:這個矩陣包含了一個n×1的邏輯矩陣,由輸入樣本矩陣輸入訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),然后預(yù)測得到的輸出值,把輸出值存到矩陣中,就可以得到該輸出矩陣。運行環(huán)境本發(fā)明的人工神經(jīng)網(wǎng)絡(luò)采用BP神經(jīng)元網(wǎng)絡(luò)模型,用Java語言實現(xiàn),在Windows64位系統(tǒng)上編寫,在Windows64位系統(tǒng)上正常運行。軟件系統(tǒng)可根據(jù)實際情況改變的內(nèi)容由于本系統(tǒng)具有較強的通用性,在設(shè)計之初就考慮到了對其它操作系統(tǒng)的支持,可以很好的實現(xiàn)跨平臺移植。附圖說明圖1系統(tǒng)總體架構(gòu)(按模塊)圖2神經(jīng)元網(wǎng)絡(luò)模型具體實施方式本系統(tǒng)由SQL語句分析模塊和人工神經(jīng)元網(wǎng)絡(luò)模塊兩個部分組成。系統(tǒng)架構(gòu)如圖1所示。SQL語句分析模塊SQL語句分析模塊的主要功能是將Web應(yīng)用提交的SQL語句轉(zhuǎn)換一個特征向量組r,r是由0和1組成的特征向量。通過對SQL注入攻擊語句的分類,本模塊將r設(shè)計為由12個ri組成,i代表個數(shù)。如果ri=1,則說明SQL語句中包含關(guān)鍵字;如果ri=0,則說明SQL語句中不包含某一關(guān)鍵字。若C代表某一語句是否為SQL注入語句,并定義:若該語句是SQL注入語句,C的值為1,若該語句不是SQL注入攻擊語句,C值為0。這樣一來,每一條SQL查詢語句都可以用特征向量r和C來表示。語句分析模塊實現(xiàn)的功能就是將SQL語句轉(zhuǎn)換為特征向量,然后再將得到的特征向量提交給人工神經(jīng)元網(wǎng)絡(luò)分析模塊進行分析。語句分析模塊中包含SQL注入關(guān)鍵詞表,該表中存放有SQL語句組合注入的關(guān)鍵詞,當(dāng)用戶輸入某一查詢語句時,該模塊通過正則匹配該表的關(guān)鍵詞,找到該語句對應(yīng)的特征序列的位置,將該位置的值標(biāo)為1。匹配完成后,就可以得到該語句的特征序列。具體的特征向量對應(yīng)的攻擊關(guān)鍵詞如表1所示。表1攻擊關(guān)鍵詞對應(yīng)的特征向量特征向量SQL注入攻擊中的關(guān)鍵詞r1CreateTabler2SelectUNIONr3InsertIntor4DeleteFromr5UpdateSetr6Or=r7And=r8DropTabler9--r10/**/r11Load_filer12Information_schema某條SQL語句中含有下列關(guān)鍵詞'CreateTable','DropTable'和'And=',則根據(jù)表中對應(yīng)的位置,將生成的特征向量中的相應(yīng)位置標(biāo)記為1。其中:由于'CreateTable'對應(yīng)r1的位置則r1標(biāo)記為1,'DropTable'對應(yīng)r8位置,r8位置標(biāo)記為1,'And='對應(yīng)r7位置標(biāo)記為1。由于其他的攻擊字符沒有出現(xiàn),則其他的位置標(biāo)記為0;最后得到的特征向量組r(1000000110000)。這樣設(shè)置特征向量的好處是方便擴展,對于新的攻擊關(guān)鍵詞,能夠更好的擴展。另外,為便于字符串匹配,本模塊也提供了轉(zhuǎn)換大小寫的功能、轉(zhuǎn)換ASCII碼、去掉重復(fù)的關(guān)鍵詞功能,以方便將SQL注入攻擊語句轉(zhuǎn)換為簡單明了的語句。漏洞檢測模塊神經(jīng)元網(wǎng)絡(luò)模塊是該模型的核心部分,本文設(shè)計的神經(jīng)網(wǎng)絡(luò)模型是由4層組成的,其中包含4個隱藏層、12個輸入和1個輸出。該模塊用來訓(xùn)練、驗證和測試數(shù)據(jù),通過不斷改變內(nèi)部的權(quán)值,得到一個穩(wěn)定權(quán)值的模型。本文設(shè)計的神經(jīng)網(wǎng)絡(luò)模型如圖2所示。本文的訓(xùn)練模塊的輸入矩陣、目標(biāo)矩陣和神經(jīng)元網(wǎng)絡(luò)的設(shè)計如下:(1)輸入矩陣:這個矩陣是由n×12的邏輯矩陣組成的,其中矩陣的元素由0或者1組成的。其中的0代表錯誤,1代表正確。(2)目標(biāo)矩陣:這個矩陣是由n×1的邏輯矩陣組成的,其中矩陣的元素由0或者1組成的。其中的0代表錯誤,1代表正確。(3)神經(jīng)元網(wǎng)絡(luò):該神經(jīng)網(wǎng)絡(luò)的中間層是由4個隱藏層組成的,該層利用輸入矩陣和輸出矩陣來對數(shù)據(jù)進行訓(xùn)練、驗證和測試。具體步驟如算法1描述:驗證模塊驗證模塊的樣本矩陣、輸出矩陣的設(shè)計如下:(1)樣本矩陣:這個矩陣是從輸入矩陣得到的數(shù)據(jù),然后組成一個n×12的邏輯矩陣。(2)輸出矩陣:這個矩陣包含了一個n×1的邏輯矩陣,由輸入樣本矩陣輸入訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),然后預(yù)測得到的輸出值,把輸出值存到矩陣中,就可以得到該輸出矩陣。當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1