本公開涉及用于檢測SQL注入的方法、系統、存儲介質及裝置。提供了用于檢測SQL注入的方法,包括:對于第一請求,基于第一神經網絡模型判斷第一請求是否對應SQL注入,其中在第一請求對應SQL注入的情況下第一請求被攔截,否則第一請求被通過;根據評價指標對第一請求進行預處理,以對第一請求進行標記,標記結果反映第一請求是否對應SQL注入;基于第一請求和所述標記結果生成第一樣本;利用第一樣本更新當前樣本,利用更新后的樣本訓練神經網絡以得到第二神經網絡模型;以及對于第二請求,基于第二神經網絡模型判斷第二請求是否對應SQL注入,其中在第二請求對應SQL注入的情況下第二請求被攔截,否則第二請求被通過。否則第二請求被通過。否則第二請求被通過。
【技術實現步驟摘要】
用于檢測SQL注入的方法、系統、存儲介質及裝置
[0001]本公開涉及計算機網絡安全,更具體地,本公開涉及用于檢測SQL注入的方法、系統、存儲介質及裝置的技術。
技術介紹
[0002]SQL注入是指這樣的情況:web應用程序對用戶輸入數據的合法性沒有判斷或過濾不嚴,攻擊者可以在web應用程序中事先定義好的查詢語句的結尾上添加額外的SQL語句,在管理員不知情的情況下實現非法操作,以此來實現欺騙數據庫服務器執行非授權的任意查詢,從而進一步得到相應的數據信息。
[0003]針對SQL注入的傳統檢測模式和現有的人工智能(AI)檢測模式是基于正則表達式匹配或離線模式進行檢測的模式,存在很多不足,包括以下幾點:1)用戶學習成本高,傳統檢測模式涉及大量的正則表達式并且語法比較復雜,對于復雜的攻擊,需要書寫大量的正則表達式;2)誤報漏報率高,當攻擊者熟悉基于正則表達式匹配的SQL注入檢測模式后,能夠通過SQL繞過方法對SQL攻擊語句進行編碼或者針對特殊符號進行轉義等手段來繞過規則庫中的正則表達式,從而造成大量攻擊語句漏報,而將規則檢測方式過度提高又會發生很多誤報的情況,使得企業員工的工作效率大大降低;3)適應性差:現有的AI離線狀態檢測模式是基于歷史樣本在離線狀態下對檢測模型進行訓練的,而對于新的SQL注入攻擊方法(如歷史樣本庫中沒有出現過的),現有的AI離線狀態檢測模式都不能很好地匹配新的SQL注入攻擊,因而造成大量的漏報誤報。
技術實現思路
[0004]在下文中給出了關于本公開的簡要概述,以便提供關于本公開的一些方面的基本理解。但是,應當理解,這個概述并不是關于本公開的窮舉性概述。它并不是意圖用來確定本公開的關鍵性部分或重要部分,也不是意圖用來限定本公開的范圍。其目的僅僅是以簡化的形式給出關于本公開的某些概念,以此作為稍后給出的更詳細描述的前序。
[0005]根據本公開的一方面,提供了用于檢測SQL注入的方法,包括:對于第一請求,基于第一神經網絡模型判斷第一請求是否對應SQL注入,其中,在第一請求對應SQL注入的情況下,第一請求被攔截,否則第一請求被通過;根據評價指標對第一請求進行預處理,以對第一請求進行標記,標記結果反映第一請求是否對應SQL注入;基于第一請求和所述標記結果生成第一樣本;利用第一樣本更新當前樣本,利用更新后的樣本訓練神經網絡以得到第二神經網絡模型;以及對于第二請求,基于第二神經網絡模型判斷第二請求是否對應SQL注入,其中,在第二請求對應SQL注入的情況下,第二請求被攔截,否則第二請求被通過。
[0006]根據一個實施例,上述方法還包括對第一請求進行分詞處理,并利用Word2Vec工具從分詞處理后的請求中提取文本向量。
[0007]根據一個實施例,在上述方法中,評價指標包括以下中的至少一者:相同特殊字符出現的次數、不同特殊字符出現的種類、相同敏感字段出現的次數、不同敏感字段出現的種
類、訪問敏感數據表的次數、或用戶所請求的互聯網協議(IP)地址出現的次數。
[0008]根據一個實施例,在上述方法中,預處理包括:根據評價指標獲得第一請求的得分;將得分按照預定的權重進行加權量化,并歸一化得到[0,1]區間值;將所得到的區間值按照預定的規則映射為0或1作為第一請求的標記結果,其中標記0表示第一請求不是SQL注入,標記1表示第一請求是SQL注入。
[0009]根據一個實施例,在上述方法中,利用更新后的樣本訓練神經網絡以得到第二神經網絡模型包括:獲得第一神經網絡模型的參數;將更新后的樣本所包含的請求輸入到當前神經網絡的輸入層,并將所包含的請求的標記結果輸出到當前神經網絡的理想輸出單元;計算當前神經網絡的輸出層的輸出;計算標記結果與當前神經網絡的實際輸出之間的偏差;根據該偏差更新當前神經網絡的權值;以及判斷更新后的當前神經網絡模型是否滿足要求,若滿足,則作為第二神經網絡模型,若不滿足,則返回繼續迭代直到滿足要求為止。
[0010]根據一個實施例,在上述方法中,對于第一請求,如果通過第一神經網絡模型輸出的輸出結果與根據評價指標進行預處理后獲得的標記結果不同,則在訓練神經網絡以得到第二神經網絡模型時,為該第一樣本給定比其他樣本大的權重。
[0011]根據一個實施例,在上述方法中,利用第一樣本更新當前樣本包括在當前樣本的數量達到預定閾值時,刪除一部分歷史樣本,并增加第一樣本。
[0012]根據本公開的另一方面,提供了一種用于檢測SQL注入的系統,該系統可以包括至少一個處理器和存儲器,所述存儲器中存儲有可執行指令,所述指令在由所述至少一個處理器執行時實現本公開的方法。
[0013]根據本公開的另一方面,提供了一種非暫態計算機可讀存儲介質,該計算機可讀存儲介質上存儲有可執行指令,所述指令在由處理器執行時,使所述處理器可以執行本公開的方法。
[0014]根據本公開的另一方面,提供一種用于檢測SQL注入的裝置,該裝置可以包括用于執行根據本公開的方法的操作的單元。
[0015]根據本公開的一個或多個實施例,根據評價指標利用仿真系統通過對請求實時地進行預處理,能夠實時地獲得新的樣本來動態地更新當前樣本庫,并進而通過訓練能夠近乎實時地更新神經網絡模型用于隨后的SQL注入檢測,以便基于最新的神經網絡模型進行SQL注入檢測。在這種情況下,不需要人工書寫繁瑣的規則,也不需人工挑選樣本或對樣本進行標記,大大減少了人力成本。此外,本公開能夠針對未知攻擊自動采集樣本,自動優化更新神經網絡模型使其更加高效、精準,因此可以大幅提高對未知攻擊的檢測準確率和檢測效率。
附圖說明
[0016]構成說明書的一部分的附圖描述了本公開的實施例,并且連同說明書一起用于解釋本公開的原理。參照附圖,根據下面的詳細描述,可以更清楚地理解本公開,其中:
[0017]圖1是示出根據本公開的實施例的用于檢測SQL注入的方法的示意圖;
[0018]圖2是示出根據本公開的實施例的用于通過對請求進行預處理以生成樣本的方法的示意圖;
[0019]圖3是示出根據本公開的實施例的用于訓練神經網絡的方法的示意圖;以及
[0020]圖4是示出根據本公開的實施例的用于檢測SQL注入的系統的示意圖。
具體實施方式
[0021]現在將參照附圖來詳細描述本公開的各種示例性實施例。應注意到:除非另外具體說明,否則在這些實施例中闡述的部件和步驟的相對布置、數字表達式和數值不限制本公開的范圍。以下對至少一個示例性實施例的描述實際上僅僅是說明性的,決不作為對本公開及其應用或使用的任何限制。在這里示出和討論的所有示例中,任何具體值應被解釋為僅僅是示例性的,而不是作為限制。因此,示例性實施例的其他示例可以具有不同的值。對于相關領域普通技術人員已知的技術、方法和設備可能不作詳細討論,但在適當情況下,所述技術、方法和設備應當被視為說明書的一部分。
[0022]應注意到,相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要本文檔來自技高網...
【技術保護點】
【技術特征摘要】
1.一種用于檢測SQL注入的方法,包括:對于第一請求,基于第一神經網絡模型判斷第一請求是否對應SQL注入,其中,在第一請求對應SQL注入的情況下,第一請求被攔截,否則第一請求被通過;根據評價指標對第一請求進行預處理,以對第一請求進行標記,標記結果反映第一請求是否對應SQL注入;基于第一請求和所述標記結果生成第一樣本;利用第一樣本更新當前樣本,利用更新后的樣本訓練神經網絡以得到第二神經網絡模型;以及對于第二請求,基于第二神經網絡模型判斷第二請求是否對應SQL注入,其中,在第二請求對應SQL注入的情況下,第二請求被攔截,否則第二請求被通過。2.如權利要求1所述的方法,還包括對第一請求進行分詞處理,并利用Word2Vec工具從分詞處理后的請求中提取文本向量。3.如權利要求1所述的方法,其中,所述評價指標包括以下中的至少一者:相同特殊字符出現的次數、不同特殊字符出現的種類、相同敏感字段出現的次數、不同敏感字段出現的種類、訪問敏感數據表的次數、或用戶所請求的互聯網協議IP地址出現的次數。4.如權利要求1所述的方法,其中,所述預處理包括:根據所述評價指標獲得第一請求的得分;將所述得分按照預定的權重進行加權量化,并歸一化得到[0,1]區間值;將所得到的區間值按照預定的規則映射為0或1作為第一請求的標記結果,其中標記0表示第一請求不是SQL注入,標記1表示第一請求是SQL注入。5.如權利要求1所述的方法,其中...
【專利技術屬性】
技術研發人員:朱建兵,
申請(專利權)人:中國電信股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。