[發(fā)明專利]一種基于AC自動機的SQL注入檢測方法、設(shè)備、存儲介質(zhì)在審
| 申請?zhí)枺?/td> | 202210268721.5 | 申請日: | 2022-03-18 |
| 公開(公告)號: | CN114861216A | 公開(公告)日: | 2022-08-05 |
| 發(fā)明(設(shè)計)人: | 趙航;申傳旺;羅森;羅超;李照川 | 申請(專利權(quán))人: | 浪潮卓數(shù)大數(shù)據(jù)產(chǎn)業(yè)發(fā)展有限公司 |
| 主分類號: | G06F21/62 | 分類號: | G06F21/62;G06F16/242 |
| 代理公司: | 北京君慧知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11716 | 代理人: | 肖鵬 |
| 地址: | 214002 江蘇省無錫市無錫經(jīng)濟開發(fā)區(qū)金融一街15號110*** | 國省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 ac 自動機 sql 注入 檢測 方法 設(shè)備 存儲 介質(zhì) | ||
本申請公開了一種基于AC自動機的SQL注入檢測方法、設(shè)備、存儲介質(zhì),該方法包括:獲取后端SQL數(shù)據(jù)庫中的所有關(guān)鍵字集合,作為第一字符串集合;獲取過去已知SQL注入攻擊字符串集合,作為第二字符串集合;對所述第一字符串集合和所述第二字符串集合進(jìn)行風(fēng)險打分;結(jié)合所述第一字符串集合和所述第二字符串集合,生成第三字符串集合,根據(jù)所述第三字符串集合建立字典樹;根據(jù)廣度優(yōu)先搜索對所述字典樹進(jìn)行前綴指針計算,構(gòu)造AC自動機;根據(jù)所述AC自動機對接收的輸入文檔進(jìn)行風(fēng)險打分,根據(jù)所述打分結(jié)果判斷是否執(zhí)行攔截命令。
技術(shù)領(lǐng)域
本申請涉及數(shù)據(jù)安全領(lǐng)域,尤其涉及一種基于AC自動機的SQL注入檢測方法、設(shè)備、存儲介質(zhì)。
背景技術(shù)
隨著社會各行業(yè)的數(shù)字化、互聯(lián)網(wǎng)的普及和云計算的發(fā)展,除了各大互聯(lián)網(wǎng)公司,許多傳統(tǒng)企業(yè)、政府機構(gòu)也在推廣“互聯(lián)網(wǎng)+”,以跟隨時代發(fā)展,提升辦公效率。但這也帶來了一些安全隱患。隨著網(wǎng)絡(luò)應(yīng)用的增長,服務(wù)器中存儲的個人、公司、政府機構(gòu)隱私信息越來越多,若數(shù)據(jù)庫遭遇攻擊,將會帶來非常嚴(yán)重的損失。
結(jié)構(gòu)化查詢語言(Structured Query Language,SQL)注入攻擊是一種常見的數(shù)據(jù)庫攻擊方式,攻擊者通過利用網(wǎng)站的交互功能,在通信時傳入能夠操縱數(shù)據(jù)庫的文本,達(dá)到惡意泄露數(shù)據(jù)庫信息甚至取得數(shù)據(jù)庫控制權(quán)限的目的。目前防范SQL注入攻擊的方法主要有兩種,第一種方式是建立攻擊代碼模板庫,并用正則表達(dá)式進(jìn)行內(nèi)容匹配;第二種方式是在后端操作數(shù)據(jù)庫時,使用SQL預(yù)編譯功能,防止字符串拼接。但這兩種方式均存在不同的弱點,首先SQL注入方式較多,代碼靈活多變,總有攻擊代碼模板庫中沒有的代碼片段;另外當(dāng)模板庫中代碼段較多,而輸入的文本較長時,多模板串正則表達(dá)式過濾的算法性能太低;此外,當(dāng)新的攻擊方式被識別后,往往不能及時添加到攻擊代碼模板庫中,導(dǎo)致注入問題短時間內(nèi)重復(fù)出現(xiàn);若采用SQL預(yù)編譯防范注入攻擊,則要求后端開發(fā)人員有良好的編碼習(xí)慣,在實踐中這往往并不穩(wěn)定。
發(fā)明內(nèi)容
本申請?zhí)峁┝艘环N基于AC自動機的SQL注入檢測方法、設(shè)備、存儲介質(zhì),解決了如何高效的防范SQL注入攻擊的技術(shù)問題。
一種基于AC自動機的SQL注入檢測方法,包括:
獲取后端SQL數(shù)據(jù)庫中的所有關(guān)鍵字集合,作為第一字符串集合;
獲取過去已知SQL注入攻擊字符串集合,作為第二字符串集合;
對所述第一字符串集合和所述第二字符串集合進(jìn)行風(fēng)險打分;
結(jié)合所述第一字符串集合和所述第二字符串集合,生成第三字符串集合,根據(jù)所述第三字符串集合建立字典樹;
根據(jù)廣度優(yōu)先搜索對所述字典樹進(jìn)行前綴指針計算,構(gòu)造AC自動機;
根據(jù)所述AC自動機對接收的輸入文檔進(jìn)行風(fēng)險打分,根據(jù)所述打分結(jié)果判斷是否執(zhí)行攔截命令。
在本申請的一種實施例中,根據(jù)所述AC自動機對接收的輸入數(shù)據(jù)進(jìn)行風(fēng)險打分,根據(jù)所述打分結(jié)果判斷是否執(zhí)行攔截命令,具體包括:所述輸入數(shù)據(jù)包括輸入?yún)?shù)、輸入文檔;將系統(tǒng)中接收的服務(wù)請求中包含的所有所述輸入?yún)?shù)或所述輸入文檔進(jìn)行風(fēng)險打分,判斷所述風(fēng)險打分是否超過預(yù)設(shè)閾值;若是,確定所述輸入數(shù)據(jù)為風(fēng)險輸入,并對該服務(wù)請求執(zhí)行告警或攔截操作。
在本申請的一種實施例中,所述字典樹的根節(jié)點不包含字符,除根節(jié)點外的每個節(jié)點都只包含一個字符;從根節(jié)點到某一結(jié)點,路徑上經(jīng)過的字符連接起來,為該節(jié)點對應(yīng)的字符串;每個節(jié)點的所有子節(jié)點包含的字符都不相同。
在本申請的一種實施例中,在所述字典樹建立時,所述方法還包括:判斷字符串的節(jié)點是否為終節(jié)點,若是,將所述字符串的風(fēng)險分值存儲在所述終節(jié)點中,作為該字符串的權(quán)重。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浪潮卓數(shù)大數(shù)據(jù)產(chǎn)業(yè)發(fā)展有限公司,未經(jīng)浪潮卓數(shù)大數(shù)據(jù)產(chǎn)業(yè)發(fā)展有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210268721.5/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種新能源汽車線束管夾緊固裝置
- 下一篇:干霧抑塵系統(tǒng)





