[發明專利]基于深度學習的SQL注入檢測方法在審
| 申請號: | 202110356950.8 | 申請日: | 2021-04-01 |
| 公開(公告)號: | CN112800435A | 公開(公告)日: | 2021-05-14 |
| 發明(設計)人: | 許明龍;常承偉;楊梟;王定宇 | 申請(專利權)人: | 北京計算機技術及應用研究所 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06F16/242;G06F40/284;G06K9/62;G06N3/04;G06N3/08 |
| 代理公司: | 中國兵器工業集團公司專利中心 11011 | 代理人: | 王雪芬 |
| 地址: | 100854*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 深度 學習 sql 注入 檢測 方法 | ||
1.一種基于深度學習的SQL注入檢測方法,其特征在于,包括以下步驟:特征工程、方法訓練、分類檢測;其中,所述特征工程是先將數據集進行預處理,隨后把處理好的數據通過Word2Vec模型生成詞向量模型;所述方法訓練是先將預處理好得到的訓練數據集經過詞向量模型生成訓練集詞向量,再通過CNN進一步提取數據特征,最后使用softmax分類器進行分類,通過反向傳播算法更新方法參數;所述分類檢測是將訓練集詞向量放入訓練好的CNN分類方法中進行測試,測試模型使用測試集。
2.如權利要求1所述的方法,其特征在于,所述數據集包括正常SQL語句和SQL注入語句,數據集預處理具體包括以下步驟:
1)解碼處理
先對正常SQL語句和SQL注入語句進行解碼處理;
2)大小寫統一處理
對SQL語句中的所有字符全部轉換為小寫;
3)泛化處理
對數據采用泛化處理操作;
4)分詞處理
采用分詞處理將SQL語句切分為字符串序列,對部分特殊字符進行針對性處理,以構建符合機器學習算法模型的數據特征;
(2)通過Word2Vec模型生成詞向量模型
使用Word2Vec的連續詞袋模型構造詞向量模型,采用負例采樣的方式進行優化;
(3)通過卷積神經網絡CNN進一步提取數據特征
其中,通過卷積神經網絡CNN提取數據特征時,采用改進的CNN分類方法實現:針對的數據為文本數據,因此使用卷積神經網絡的一維卷積層對數據進行特征提取,一維卷積只設置卷積核高的維度,默認使用詞向量長度作為卷積核寬的維度,一維卷積操作是使用卷積核按一個維度移動進行卷積運算。
3.如權利要求2所述的方法,其特征在于,泛化處理時,將用戶輸入的數字用0來替代。
4.如權利要求2所述的方法,其特征在于,分詞處理時,對于、=、!=、#這些特殊字符,先對其前后加上空格的方式來替換保留,然后對于替換后的字符串序列用空格分離的方法來進行切分處理。
5.如權利要求2所述的方法,其特征在于,一維卷積操作時,若輸入的詞向量維度為6,卷積核大小為2*6,步長為1,卷積核由上至下進行卷積運算。
6.如權利要求2所述的方法,其特征在于,采用改進的CNN分類方法實現時,還將池化層替換為卷積層。
7.如權利要求6所述的方法,其特征在于,將池化層替換為卷積層時,使用卷積核大小為2、步長為2的卷積層代替池化窗口大小為2的池化層,先用卷積核依次對特征圖做卷積運算,充分考慮特征圖中每個特征點的信息,隨后經過激活函數提升模型非線性表達能力,通過該卷積層對特征圖進行下采樣,使得輸出矩陣與池化運算后的矩陣大小一致。
8.如權利要求6所述的方法,其特征在于,采用改進的CNN分類方法實現時,還將全連接層替換為1*1卷積層。
9.如權利要求2所述的方法,其特征在于,解碼處理中包含的編碼操作有base64編碼、URL編碼以及對中文的編碼,其中一些語句可能經過多次編碼,因此將語句進行多次編碼判斷和解碼操作,直到該語句為可執行的SQL語句內容。
10.一種如權利要求1至9中任一項所述方法在信息安全技術領域中的應用。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京計算機技術及應用研究所,未經北京計算機技術及應用研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110356950.8/1.html,轉載請聲明來源鉆瓜專利網。





