[發明專利]一種面向PHP程序的SQL注入行為檢測系統在審
| 申請號: | 201810499657.5 | 申請日: | 2018-05-23 |
| 公開(公告)號: | CN108875366A | 公開(公告)日: | 2018-11-23 |
| 發明(設計)人: | 方勇;黃誠;劉亮;周穎;郭俁松 | 申請(專利權)人: | 四川大學 |
| 主分類號: | G06F21/55 | 分類號: | G06F21/55;G06F21/56 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 610065 四川*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 行為檢測系統 污點 準確率 日志 信息獲取模塊 抽象語法樹 安全審計 分類算法 分析過程 函數執行 技術對比 可移植性 匹配檢測 身份信息 隨機森林 系統檢測 信息生成 應用程序 攻擊 語法樹 加載 溯源 判定 分析 攜帶 記錄 應用 | ||
本發明設計了一種面向PHP程序的SQL注入行為檢測系統。首先,該系統使用PHP擴展技術在SQL函數執行時獲取SQL語句,并記錄攻擊者所攜帶的身份信息;基于以上信息生成SQL請求日志,并將該日志作為分析源。然后,基于SQL語法和抽象語法樹,實現了污點標記的SQL語法分析過程,并使用污點分析技術,提取語法樹中SQL注入行為的多個特征。最后,使用隨機森林分類算法實現SQL注入行為的判定。與正則匹配檢測技術對比實驗結果顯示,通過該系統檢測SQL注入行為,準確率為96.9%,準確率提高了7.2%。該系統的信息獲取模塊能以擴展形式加載在任何PHP應用程序中,因此該模型可移植性強,在安全審計和攻擊溯源中具有應用價值。
技術領域
本發明設計一種基于污點分析的對PHP Web應用系統進行SQL注入的行為檢測模型,通過隨機森林分類算法實現SQL注入行為的判定,對針對Web系統的SQL注入攻擊行為進行有效檢測。
背景技術
隨著互聯網技術的高速發展,Web應用程序在人類生活發展中起到重要的媒介和資產管理作用。然而由于開發人員安全意識不足,全球大部分網站遭受了不同程度的Web攻擊。據2016年中國網站安全漏洞形勢分析報告,SQL(Structured Query Language)注入攻擊占據漏洞類型的44.9%,占網站衛士攔截攻擊類型的39.8%。而且Web應用一旦被發現SQL注入漏洞,容易形成通用漏洞,威脅范圍廣泛,影響巨大。所以,為保護互聯網信息安全,SQL注入行為檢測是至關重要的一個環節。PHP(PHP:Hypertext Preprocessor)作為一個優秀的腳本語言,由于其開發周期短、成本低和豐富的擴展資源等優秀特性,在Web 技術上已成為主流。據2016 年Web漏洞統計,87%的漏洞對應的開發語言為PHP。那么,在PHP 應用程序中,檢測SQL注入行為愈顯重要。
面對SQL注入行為進行檢測的方法很多,如基于文檔相似性匹配的檢測方法,在最常發生SQL 注入的位置提取子句,建立惡意子句的哈希庫。但在實際應用中發生SQL 注入的位置較多,難以建立起覆蓋面較全的惡意子句庫。以網絡流量作為數據源,從網絡環境中提取惡意請求較正常請求流量中有較大區別的特征檢測SQL 注入。但該檢測方法缺乏SQL注入行為的針對性,容易將其他攻擊行為誤判為SQL 注入行為。
運用支持向量機分類算法檢測SQL 注入,通過片段化的SQL語法樹,提取語法和語義特征建立多維特征向量,訓練SVM分類器。該方法的數據來源為數據庫日志,由于數據庫日志缺少訪問者信息,因此該方法并不適用于攻擊溯源。傳統的基于Web日志的SQL注入檢測技術,將日志中的訪問信息作為SQL注入檢測憑證時,由于信息的不完整性,無法判斷用戶輸入是否進入數據庫層。對于PHP應用程序,污點分析技術被應用于SQL注入行為檢測中,分為基于不可信源和可信源進行污點分析,通過污點分析技術,能夠定位SQL語句中外部輸入點。
在實現異常檢測中,只通過檢測不可信源中的攻擊關鍵詞等單一特征,并使用規則性的檢測方法,存在較高誤報率。同時在進行污點標記時,對每個字符都進行來源標記,這種標記方法為其后分詞添加了大量不確定性;過多的污點標記和污點凈化,難免對正常的業務邏輯產生影響。通常產生SQL 注入的外部輸入點有限,若是對所有可信源進行標記將產生大量冗余操作,并使服務器負載較大。
本模型針對以上缺陷,并基于PHP應用程序,將污點分析和日志分析技術相結合,通過使用機器學習算法提高SQL 注入行為檢測的有效性和準確率。
發明內容
該發明是基于PHP 擴展技術,重寫PHP 原生方法,基于污點標記技術、提取污點子樹和詞法特征技術,使用隨機森林算法等多項先進技術的先進模型。本模型對外部輸入信息進行數據整理和特征提取,并通過機器學習進行訓練。從而達到對SQL注入行為的高準確率檢測,同時對篩選出的SQL注入行為,記錄其攻擊載荷和攻擊者信息。
該發明旨在實現如下目標:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于四川大學,未經四川大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810499657.5/2.html,轉載請聲明來源鉆瓜專利網。





