[發(fā)明專利]一種SQL注入攻擊的檢測方法、系統(tǒng)和計算機處理設(shè)備有效
| 申請?zhí)枺?/td> | 201710575664.4 | 申請日: | 2017-07-14 |
| 公開(公告)號: | CN107463845B | 公開(公告)日: | 2021-04-20 |
| 發(fā)明(設(shè)計)人: | 張珣 | 申請(專利權(quán))人: | 深圳供電局有限公司 |
| 主分類號: | G06F21/56 | 分類號: | G06F21/56;G06F21/62 |
| 代理公司: | 合肥上博知識產(chǎn)權(quán)代理事務(wù)所(特殊普通合伙) 34188 | 代理人: | 張果果 |
| 地址: | 518000 廣東省深圳市*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 sql 注入 攻擊 檢測 方法 系統(tǒng) 計算機 處理 設(shè)備 | ||
1.一種SQL注入攻擊的檢測方法,其特征在于,該方法包括:
獲取待檢測的SQL;
將所述待檢測的SQL按照預(yù)設(shè)規(guī)則分解為多個SQL樣本,具體包括:
根據(jù)預(yù)設(shè)數(shù)據(jù)庫及預(yù)設(shè)語法和關(guān)鍵字創(chuàng)建初始SQL語法樹;
獲取歷史SQL數(shù)據(jù)和對相應(yīng)歷史SQL數(shù)據(jù)的檢測結(jié)果;
將檢測結(jié)果標(biāo)記到對應(yīng)的歷史SQL數(shù)據(jù)上;
將已標(biāo)記的歷史SQL數(shù)據(jù)按照對應(yīng)的初始SQL語法樹進(jìn)行轉(zhuǎn)換處理,獲取帶有檢測結(jié)果標(biāo)記的標(biāo)記SQL語法樹;
將所述待檢測的SQL按照對應(yīng)的標(biāo)記SQL語法樹進(jìn)行轉(zhuǎn)換處理;
從處理后的標(biāo)記SQL語法樹中隨機抽取特征值,并重復(fù)多次,得到多個SQL樣本;
將所述多個SQL樣本分別輸入到對應(yīng)數(shù)量的預(yù)設(shè)決策模型中,分別得到?jīng)Q策結(jié)果;
將與多個SQL樣本數(shù)量相對應(yīng)的決策結(jié)果進(jìn)行比較,根據(jù)比較結(jié)果判斷待檢測的SQL是否為注入攻擊。
2.根據(jù)權(quán)利要求1所述的SQL注入攻擊的檢測方法,其特征在于,所述方法進(jìn)一步包括:
檢測每個標(biāo)記SQL語法樹的長度,獲取其中最長的標(biāo)記SQL語法樹的長度;
將其余的標(biāo)記SQL語法樹的長度調(diào)整至與最長的標(biāo)記SQL語法樹的長度一致。
3.根據(jù)權(quán)利要求2所述的SQL注入攻擊的檢測方法,其特征在于,所述將其余的標(biāo)記SQL語法樹的長度調(diào)整至與最長的標(biāo)記SQL語法樹的長度一致的步驟具體包括:
根據(jù)其余的標(biāo)記SQL語法樹與最長的標(biāo)記SQL語法樹的長度的長度差值,在其余的標(biāo)記SQL語法樹中添加占位符作為特征值。
5.根據(jù)權(quán)利要求4所述的SQL注入攻擊的檢測方法,其特征在于,所述將所述多個SQL樣本分別輸入到對應(yīng)數(shù)量的預(yù)設(shè)決策模型中,分別得到?jīng)Q策結(jié)果的步驟具體包括:
根據(jù)SQL樣本的屬性計算每個屬性的信息增益,選取信息增益最大的作為根節(jié)點屬性;
根據(jù)根結(jié)點屬性的每個可能值對應(yīng)生成分支,并把SQL樣本排列到預(yù)設(shè)的分支之下;
用每個分支結(jié)點關(guān)聯(lián)的SQL樣本來選取在該結(jié)點被測試的最佳屬性,根據(jù)最佳屬性得到?jīng)Q策結(jié)果。
6.根據(jù)權(quán)利要求1所述的SQL注入攻擊的檢測方法,其特征在于,所述決策結(jié)果中包括合法結(jié)果和注入攻擊結(jié)果;所述將與多個SQL樣本數(shù)量相對應(yīng)的決策結(jié)果進(jìn)行比較,根據(jù)比較結(jié)果判斷待檢測的SQL是否為注入攻擊的步驟包括:
將多個決策結(jié)果進(jìn)行比較,若合法結(jié)果的數(shù)量大于注入攻擊結(jié)果的數(shù)量,則所述待檢測的SQL為合法;若合法結(jié)果的數(shù)量不大于注入攻擊結(jié)果的數(shù)量,則所述待檢測的SQL為注入攻擊。
7.一種計算機處理設(shè)備,包括處理器及計算機可讀存儲介質(zhì),其特征在于,所述處理器獲取所述計算機可讀存儲介質(zhì)上的計算機程序,并執(zhí)行如權(quán)利要求1-6任一所述方法的步驟。
8.一種SQL注入攻擊的檢測系統(tǒng),其特征在于,包括:
獲取模塊,用于獲取待檢測的SQL;
分解模塊,用于將所述待檢測的SQL按照預(yù)設(shè)規(guī)則分解為多個SQL樣本,具體包括:
根據(jù)預(yù)設(shè)數(shù)據(jù)庫及預(yù)設(shè)語法和關(guān)鍵字創(chuàng)建初始SQL語法樹;
獲取歷史SQL數(shù)據(jù)和對相應(yīng)歷史SQL數(shù)據(jù)的檢測結(jié)果;
將檢測結(jié)果標(biāo)記到對應(yīng)的歷史SQL數(shù)據(jù)上;
將已標(biāo)記的歷史SQL數(shù)據(jù)按照對應(yīng)的初始SQL語法樹進(jìn)行轉(zhuǎn)換處理,獲取帶有檢測結(jié)果標(biāo)記的標(biāo)記SQL語法樹;
將所述待檢測的SQL按照對應(yīng)的標(biāo)記SQL語法樹進(jìn)行轉(zhuǎn)換處理;
從處理后的標(biāo)記SQL語法樹中隨機抽取特征值,并重復(fù)多次,得到多個SQL樣本;
決策模塊,用于將所述多個SQL樣本分別輸入到對應(yīng)數(shù)量的預(yù)設(shè)決策模型中,分別得到?jīng)Q策結(jié)果;
比較模塊,用于將與多個SQL樣本數(shù)量相對應(yīng)的決策結(jié)果進(jìn)行比較,根據(jù)比較結(jié)果判斷待檢測的SQL是否為注入攻擊。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于深圳供電局有限公司,未經(jīng)深圳供電局有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710575664.4/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





