[發明專利]一種面向PHP程序的SQL注入行為檢測系統在審
| 申請號: | 201810499657.5 | 申請日: | 2018-05-23 |
| 公開(公告)號: | CN108875366A | 公開(公告)日: | 2018-11-23 |
| 發明(設計)人: | 方勇;黃誠;劉亮;周穎;郭俁松 | 申請(專利權)人: | 四川大學 |
| 主分類號: | G06F21/55 | 分類號: | G06F21/55;G06F21/56 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 610065 四川*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 行為檢測系統 污點 準確率 日志 信息獲取模塊 抽象語法樹 安全審計 分類算法 分析過程 函數執行 技術對比 可移植性 匹配檢測 身份信息 隨機森林 系統檢測 信息生成 應用程序 攻擊 語法樹 加載 溯源 判定 分析 攜帶 記錄 應用 | ||
1.本發明公開了一種面向PHP程序的SQL注入行為檢測系統。
2.其特征包括以下步驟:
步驟一:基于PHP 擴展技術,重寫PHP原生方法,在代碼層對SQL語句執行函數進行監聽,對不可信源進行屬性標記以實現對攻擊者可控點的跟蹤。
3.步驟二:基于抽象語法樹和SQL語法,將污點標記技術應用于詞法分析和語法分析中,實現SQL語句和內部污點的抽象化。
4.步驟三:對語法樹中的污點節點進行分析,基于詞法、語法和語義,提取了SQL注入語句區別于正常語句的多方面特征。
5.步驟四:使用隨機森林算法對SQL 注入行為和正常行為進行分類訓練,得出異常檢測模型。
6.步驟五:對異常檢測模型篩選出的SQL 注入行為,記錄其攻擊載荷和攻擊者信息。
7.根據權利要求1所述的基于PHP 擴展技術,重寫PHP原生方法,在代碼層對SQL語句執行函數進行監聽,其特征在于:定義全局數組存取外部變量和外部變量來源,當可控全局變量被賦值,將信息依次存入數組中,以數組索引值對該變量進行外部標記;對OPCODE(Operation Code)中函數執行類“DO_FCALL”和“DO_FCALL_BY_NAME”自定義處理函數,監控SQL 函數調用,當傳入參數帶有外部標記,記錄該SQL 語句。
8.根據權利要求1所述對不可信源進行屬性標記以實現對攻擊者可控點的跟蹤,其特征在于:從全局變量“SERVER”中可獲取攻擊者請求頭信息,以IP 地址(Internet ProtocolAddress)、用戶代理(User-Agent))、HTTP cookie(Cookie)、當前時間戳(Timestamp))作為攻擊者的標識參數,使用MurmurHash 算法對以上參數加密,得到識別攻擊者的Hash 值;將外部變量中的元素帶入SQL 語句中進行匹配,對匹配到的內容使用上文中的Hash 值進行首尾標記。
9.根據權利要求1所述的實現SQL語句和內部污點的抽象化,其特征在于:根據SQL語言特性,定義分隔符將SQL語句數組化,針對轉義符和其他特殊字符對分隔后的數組進行合并或分割處理;根據觀測點的首尾標記,對標記之間的元素設置污點標記值為1,若元素包含子句,保留其觀測點首尾標記,否則去掉觀測點首尾標記。
10.根據權利要求1所述的基于詞法、語法和語義,提取SQL注入語句特征,其特征在于:基于深度優先算法遍歷污點語法樹,選擇污點子樹的寬度和深度作為一組基本結構特征;對污點子樹集中的子樹頭節點計算語義相似度作為特征;選擇惡意節點所占比和節點總數作為基本特征;計算惡意節點組合概率作為特征。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川大學,未經四川大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810499657.5/1.html,轉載請聲明來源鉆瓜專利網。





