[發明專利]基于特征模式識別的sql注入檢測方法在審
| 申請號: | 201710627467.2 | 申請日: | 2017-07-27 |
| 公開(公告)號: | CN107451473A | 公開(公告)日: | 2017-12-08 |
| 發明(設計)人: | 陳建培;聞建霞;柳遵梁 | 申請(專利權)人: | 杭州美創科技有限公司 |
| 主分類號: | G06F21/55 | 分類號: | G06F21/55;H04L29/06 |
| 代理公司: | 杭州杭誠專利事務所有限公司33109 | 代理人: | 尉偉敏,閻忠華 |
| 地址: | 310011 浙江省杭州市拱*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 特征 模式識別 sql 注入 檢測 方法 | ||
技術領域
本發明涉及網絡安全技術領域,尤其是涉及一種基于特征模式識別的sql注入檢測方法。
背景技術
Sql注入就是通過把sql命令插入到應用程序的用戶輸入從而影響查詢字符串,最終達到欺騙服務器執行惡意的sql命令。
當應用程序使用用戶輸入內容來動態構造sql語句用以訪問數據庫時,會發生sql注入攻擊。許多應用程序在編寫時,沒有對用戶輸入的內容做合法性過濾或者過濾不完整,使應用程序存在sql注入的安全隱患。攻擊者通過sql注入達到獲取敏感信息,破壞應用數據,直至控制整個服務器。
現有的sql注入攻擊的識別方案的缺陷:1.都是針對web應用,無法對非web應用提供支持。2.通過http協議的url,post信息等web瀏覽器提交到web服務啟的信息做sql注入識別,只有sql語句的片段沒有完整的sql語句。3.從http協議獲取的信息不能區分是構造sql語句的信息還是其他信息,例如url中存在sql注入語句但是這部分數據并沒有被用來構造sql語句容易誤報。4.使用正則表達式進行識別效率低,為了提高效率僅做部分字符的檢測容易漏報。5.由于從http協議獲取的不是完整sql語句,使用詞法分析的識別方法可能導致語句中的語法單元和數據不能正確區分從而導致誤報。
發明內容
本發明的發明目的是為了克服現有技術中的使用詞法分析的識別方法可能導致語句中的語法單元和數據不能正確區分,導致誤報的不足,提供了一種基于特征模式識別的sql注入檢測方法。
為了實現上述目的,本發明采用以下技術方案:
一種基于特征模式識別的sql注入檢測方法,包括如下步驟:
(1-1)基于sql語法解析和sql語義解析生成sql注入特征模式抽象語法樹庫;
(1-2)獲取應用程序到數據庫的網絡流量,根據數據庫協議解析網絡流量,從中提取完整的sql語句;
(1-3)對獲取的sql語句進行SQL語句語法解析,獲取sql語句的語法單元;
(1-4)對sql語句的語法單元進行sql語義解析,執行語義計算,生成計算簡化過的目標抽象語法樹;
(1-5)將計算生成的目標抽象語法樹與sql注入特征模式抽象語法樹庫進行匹配,如果特征模式抽象語法樹庫中任一個特征模式抽象語法樹是目標抽象語法樹的子樹,則做出存在sql注入攻擊的判斷。
本發明支持所有應用不僅限于web應用,能夠獲取完整的sql語句從而減少漏報,能夠排除不是sql語句的內容從而減少誤報,基于抽象語法樹的比較而不是字符比較,極大提高了工作效率。
作為優選,所述sql注入特征模式抽象語法樹庫是由語法分析、語義分析、語義計算后生成的抽象語法樹集合。
作為優選,獲取應用程序到數據庫的網絡流量包括應用程序到數據庫的所有流量。
作為優選,從應用程序到數據庫的網絡流量提取完整sql語句的方法為根據各種特定的數據庫協議解析提取。
作為優選,sql語句的語法單元包含保留關鍵字、常量、變量、標識符、數據類型、函數、表達式、運算符和注釋。
作為優選,語義計算包含變量替換,常量替換,函數計算,表達式計算和運算符計算。
作為優選,特征庫匹配的過程為抽象語法樹的子樹匹配。
因此,本發明具有如下有益效果:
1.支持所有應用不僅限于web應用。
2.能夠獲取完整的sql語句從而減少漏報。
3.能夠排除不是sql語句的內容從而減少誤報。
4.基于抽象語法樹的比較而不是字符比較,極大提高了工作效率。
附圖說明
圖1是本發明的一種流程圖。
具體實施方式
下面結合附圖和具體實施方式對本發明做進一步的描述。
圖1為本實施例的一種基于特征模式識別的sql注入檢測方法,包括以下步驟:
1.基于sql語法解析和sql語義解析生成sql注入特征模式抽象語法樹庫:
經過預防解析得到如下語法元素:
A.關鍵字,sql語句的保留關鍵字例如select,from等。
B.常量,sql語句中的常量值例如字符常量’aa’,數字常量123等。
C.變量,sql語句中使用的變量例如綁定變量。
D.標識符,sql語句中的標識符例如表名,字段名等。
E.數據類型,sql語句中對象的數據類型,例如字符類型,數字類型,日期類型等。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州美創科技有限公司,未經杭州美創科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710627467.2/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種防偏移的鑄造模具
- 下一篇:一種凸輪軸的可調式生產模具





