專利名稱:Web防注入的方法、裝置及設備的制作方法
技術領域:
本發明涉及互聯網技術應用領域,更具體地,涉及一種Web防注入的方法、裝置及設備。
背景技術:
Web安全是當今網絡安全和信息安全的核心內容。據統計,目前最嚴重的Web安全威脅是跨站攻擊、SQL (Structured Query Language,結構化查詢語言)注入、DDoS(Distributed Denial of service,分布式拒絕服務)攻擊以及零日攻擊等,其中2011年數據庫類的攻擊高達44%,而SQL注入在數據庫的攻擊中是最主要的攻擊方式之一。當前業界對數據庫方面的攻擊的防范方法大都集中在SQL審計方面。在SQL審計方面,可以通過機器學習、語法分析或者業務分析等方式進行防御。在Web防注入技術方面很少有比較成型的方案。業界對于防注入問題的解決辦法主要集中在特征匹配,如匹配特定的SQL關鍵字或特定的正則式。特征匹配方案被業界廠商廣泛采納,但存在以下缺陷1、特征匹配只能對已知的注入進行防御,不能防御未知注入;2、特征匹配的防御能力取決于規則庫和設備的匹配能力,性能低;3、特征匹配存在很高的誤判,正誤判和反誤判都很高;4、特征匹配很容易被欺騙,攻擊者很容易通過改變編碼等方式通過匹配引擎進行攻擊。由以上內容可知,特征匹配擴展不方便,特征庫依賴于防SQL注入專家的經驗和技術,人工維護的開銷較大,且無法進行自動防御。
發明內容
本發明的主要目的在于提供一種Web防注入的方法和裝置,旨在解決現有技術中開銷較大且無法進行自動防御的技術問題。為了實現發明目的,本發明提供一種Web防注入的方法,包括以下步驟步驟A,綁定Web應用的頁面與變量,形成頁面、變量和操作之間的關聯關系;步驟B,接受用戶輸入的對所述變量進行訓練的合法數據,計算并統計所述合法數據的信息距離;步驟C,根據所述合法數據的信息距離的統計信息建立識別模型,以判斷輸入的數據是否合法。優選地,在執行所述步驟B之后還包括步驟BI,提供調整窗口以供用戶輸入調整參數,以對所述識別模型進行調整。優選地,所述步驟C包括步驟Cl,向用戶反饋初步建模結果并提供驗證窗口供用戶對識別模型進行驗證;步驟C2,根據用戶輸入的識別模型調整指令,返回步驟BI以對識別模型進行調
難
iF. O
優選地,所述步驟C包括步驟C3,獲取變量的正常信息距離的概率分布;步驟C4,根據所述概率分布建立置信區間。優選地,在執行所述步驟C之后還包括步驟D,統計所述識別模型對輸入數據的判斷結果;步驟E,根據統計結果更新所述統計信息,以對所述識別模型進行調整。本發明還提供一種Web防注入的裝置,其包括綁定模塊,用于綁定Web應用的頁面與變量,形成頁面、變量和操作之間的關聯關系;訓練模塊,用于接受用戶輸入的對所述變量進行訓練的合法數據,計算并統計所述合法數據的信息距離;建模模塊,用于根據所述合法數據的信息距離的統計信息建立識別模型,以判斷輸入的數據是否合法。優選地,所述訓練模塊包括調整單元,用于提供調整窗口以供用戶輸入調整參數,以對所述識別模型進行調M
iF. O 優選地,所述建模模塊包括驗證單元,用于向用戶反饋初步建模結果并提供驗證窗口供用戶對識別模型進行驗證;調整啟用單元,用于根據用戶輸入的識別模型調整指令,啟用調整單元以對識別模型進行調整。優選地,所述建模模塊包括概率分布獲取單元,用于獲取變量的正常信息距離的概率分布;置信區間建立單元,用于根據所述概率分布建立置信區間。優選地,上述裝置還包括統計分析模塊,用于統計所述識別模型對輸入數據的判斷結果;自學習模塊,用于根據統計結果更新所述統計信息,以對所述識別模型進行調整。本發明還提供一種Web防注入的設備,其包括Web防注入的裝置。該裝置包括綁定模塊,用于綁定Web應用的頁面與變量,形成頁面、變量和操作之間的關聯關系;訓練模塊,用于接受用戶輸入的對所述變量進行訓練的合法數據,計算并統計所述合法數據的信息距離;建模模塊,用于根據所述合法數據的信息距離的統計信息建立識別模型,以判斷輸入的數據是否合法。本發明利用信息距離將原本無法利用的字符串數據進行量化,然后通過對量化后的數據進行統計、分析,最后建立一個識別模型,以判斷用戶輸入的合法性,解決了變量綁定在防注入中的應用問題,從而形成一種高效SQL注入的防御方案。本發明能夠動態防御未知的攻擊,也能阻擋零日攻擊之類的攻擊,并且使得攻擊者無法對其進行欺騙攻擊。
圖1為本發明一實施方式中Web防注入的裝置的結構示意圖;圖2為本發明一實施例中信息橫向距離的統計結果示意圖;圖3為本發明一實施例中信息縱向距離的統計結果示意圖;圖4為本發明一實施例中建模模塊的結構示意圖;圖5為本發明一實施例中識別模型的示意圖;圖6為本發明另一實施例中建模模塊的結構示意圖;圖7為本發明一實施例中Web防注入的裝置的結構示意圖;圖8為本發明一實施例中Web防注入的方法的流程示意圖;圖9為本發明一實施例中建立識別模型的步驟流程示意圖;圖10為本發明另一實施例中建立識別模型的步驟流程示意圖;圖11為本發明一實施例中Web防注入的設備的位置示意圖;圖12為本發明一實施例中輸入框的頁面示意 圖13為圖12中頁面其 后臺代碼示意 圖14本發明一實施例中訓練模塊用6個實例對變量進行訓練的示意圖。
本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
具體實施例方式應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。本發明實施方式提供一種Web防注入的裝置,參照圖1,在一較佳實施例中,該裝置包括綁定模塊10,用于綁定Web應用的頁面與變量,形成頁面、變量和操作之間的關聯關系;由于整個Web應用中,不同頁面的不同變量的作用的效果是不一樣的,有些是查詢數據庫的入口,有些只是顯示、打印等普通操作。為了區分不同的參數在作用上的不同,本發明實施例通過綁定模塊10將變量和頁面進行綁定處理,建立一種變量、頁面、操作類型等信息的關聯。經過綁定之后,變量就不單單是孤立的參數,而與頁面相聯系。綁定之后的變量具有了頁面的屬性,這樣能夠更好地區分變量的作用、取值范圍、正常值范圍等信息。同時,同一頁面之間的變量也可能存在聯系,綁定之后的變量這種聯系就明朗化。本發明實施例一具體示例中,綁定模塊10對變量的綁定過程如圖12和圖13所示,對于有圖12所示三個輸入框的頁面其后臺代碼實現,如圖13所示。以上示例中,可以將number、text、post、Sqllnjection. php等信息進行關聯,進而可以得到此頁面中的number綁定信息。按照同樣的方式可以處理password、statement兩個變量。可以看出,綁定之后的變量不再僅僅是一個無法利用的變量,而變為了包含一定
信息的量。訓練模塊20,用于接受用戶輸入的對所述變量進行訓練的合法數據,計算并統計所述合法數據的信息距離;訓練是在變量進行綁定之后,用合法的數據對每一個綁定變量進行實際操作,以便針對每個變量產生合法的統計信息,然后根據訓練得到的統計信息產生相應的識別模型。上述示例中,訓練模塊20用6個實例對變量進行訓練的情形如圖14所示。建模模塊30,用于根據所述合法數據的信息距離的統計信息建立識別模型,以判斷輸入的數據是否合法。信息距離是表示兩個信息之間相互轉化需要的代價的量。如,字符串“aaaaa”變為字符串“bbbbb”之間的需要經過5次替換操作,即從字符串“aaaaa”變為字符串“bbbbb”需要的替換代價是5,即字符串“aaaaa”和字符串“bbbbb”的橫向信息距離為5。字符串“aaa”變為字符串“aaaaa”需要經過兩次添加操作,即從字符串“aaa”變為字符串“aaaaa”的添加代價為2,其縱向信息距離為2。信息距離是信息的本質屬性,與信息的表述形式無關。同時,從廣義上講,信息熵也是一種距離,表示從沒有任何信息變為某確定信息的代價,其也適用于本發明。信息距離分為很多種,計量方法也稍有不同,如字符串替換是一種信息計量,字符的刪除和插入也是改一種計量。實際應用中,可以綜合考慮多種距離,并通過多種距離產生符合實際數據的距離,例如上文中橫向距離可類比數學中X軸距離,縱向距離可類比數學中y軸距離。信息距離可以將網絡中的防注入設備(例如Web應用防火墻等)得到的字符串形式的用戶輸入信息進行量化,量化為可計算的信息,用于統計分析,從而解決防注入設備獲取網絡中信息量少的弊端。本發明實施例利用綁定將孤立的變量變成了附帶一些信息的量,以便對其進行跟蹤、統計,進而建立識別模型,以判斷用戶輸入的合法性,解決了變量綁定在防注入中的應用問題,從而形成一種高效SQL注入的防御方案。本發明能夠動態防御未知的攻擊,也能阻擋零日攻擊之類的攻擊,并且使得攻擊者無法對其進行欺騙攻擊。另外,本發明對于XSS、函數注入等攻擊同樣適用。參照圖2和圖3,是對CSDN泄露的用戶名字段,僅用最簡單的信息橫向距離和縱向距離進行統計的結果。從圖2和圖3中可以看到,正常數據分布規律和特征非常明顯。若對數據從更多的維度進行統計分析,能夠更好地反映信息特征,更好地建立判別、分析模型,達到更好的防護效果。應當說明的是,本發明實施例中,識別模型有很多種,為了說明原理,此處只是以概率分布和置信區間為例進行描述。請參照圖1,本發明一較佳實施例中,訓練模塊20包括調整單元21,用于提供調整窗口以供用戶輸入調整參數,以對所述識別模型進行調整。由于訓練階段的訓練數據不一定會精確,對單個變量的統計信息不一定全面,故需要將統計信息返回用戶進行校驗和調整,以供用戶對不準確的距離進行調整。同時,有些變量的要求不那么嚴格,可適當減小精度提高效率,有些重點變量(如,用戶名和密碼)可以調高精度從而更好地進行防護。用戶可以選擇變量所要求的安全等級。用戶校驗和調整以后,對于那些沒有滿足要求的變量,需要繼續訓練,以達到要求。
參照圖4,在一實施例中,建模模塊30包括概率分布獲取單元31,用于獲取變量的正常信息距離的概率分布;置信區間建立單元32,用于根據所述概率分布建立置信區間。本發明實施例通過概率分布獲取單元31對正常變量信息的統計,得到正常變量信息的概率分布,然后置信區間建立單元32對該分布產生相應的置信區間。參照圖5所示,為本發明實施例中通過概率分布獲取單元31和置信區間建立單元32建立的識別模型。運行時,得到用戶輸入數據之后,對輸入參數求信息距離,然后判斷該距離是否在該參數的概率分布置信區間之內。若在置信區間中,則為合法輸入;否則是危險行為,做出處理。例如,若綁定后的變量number針對某一訓練集所產生的概率大于95%的置信區間為[1,9],則所有用戶輸入經過信息距離量化之后在區間[1,9]內的輸入為合法的,不在區間內的輸入為危險輸入,需進行處理,如報告等。置信區間是一個與置信度相對應的概念,反應統計中樣本點距離樣本中心的距離情況,反應樣本的可信程度。在概率論中,給定一個概率分布,對于給定置信度的置信區間可以計算出來,如標準正態分布置信水平為O. 95的置信區間為95%置信區間。置信區間可以通過給定的概率分布和置信度計算。以上通過概率計算置信區間只是本發明較多實施例中的一個,參照前述內容,本領域技術人員還可以按照類似的方法,根據變量自己的特征和相互有關聯的變量之間的特征建立語法分析的模型等,這些均應包含在本發明中。參照圖6所示,在一較佳實施例中,建模模塊30還可包括驗證單元33,用于向用戶反饋初步建模結果并提供驗證窗口供用戶對識別模型進行驗證;調整啟用單元34,用于根據用戶輸入的識別模型調整指令,啟用調整單元以對識別模型進行調整。識別模型建立之后,用戶可以根據實際情況(如,用戶數據庫之中的部分數據,部分正常的輸入),通過驗證單元33對模型進行驗證,并根據對模型的驗證情況,生成重點變量和非重點變量的判斷精度,用以判斷模型的評測精度,并可以做適當的調整。檢驗方法一用戶通過將部分數據庫中的數據導出為Xls文件,然后用模型對該文件進行檢驗,判斷模型的精度和誤判情況。檢驗方法二 用戶通過部分正常操作(可以包含有危險的SQL關鍵字等疑似注入行為的操作),用模型進行檢驗,檢驗模型的精度和誤判情況。模型判斷可以從攻擊數據和正常數據兩方面進行,從兩個方面判斷模型的防護能力,判斷誤判和漏判的可能。同時根據判斷的結果,可以適當的返回一個模型的準確率,準確率(誤判、漏判)在接受范圍內說明模型正常,否則模型不正常,需要繼續學習。由于訓練數據的覆蓋可能不全面,因此對模型的檢驗非常必要。模型檢驗之后,若檢驗結果滿意,可以進入防護和自學習階段;若結果不滿意,繼續對模型進行訓練。如前述實施例中,對每一個綁定后的變量,經過訓練和統計分析,得到該變量的輸入參數的置信區間。用戶可用部分實際輸入或數據庫中的數據,對該區間進行校驗,如對變量password,置信度為90%的置信區間為[5,10],用戶可用數據庫中部分數據計算password的信息距離(本發明提供計算接口,用戶只需在在管理界面中輸入即可),對置信區間進行檢驗。用戶可以調整單個變量的精度,如對password這樣的敏感字段,要求精度很高,用戶可以調整置信度為90%的置信區間為95%,增大范圍,同時可以要求繼續學習。應當說明的是,本發明實施例中識別模型有很多種,為了說明原理,此處只是以概率分布和置信區間為例進行描述。變量的模型是該變量(綁定之后)所滿足的一種統計關系。通過對變量的訓練,每一個綁定之后的變量都有相應的合法取值模型。通過判斷用戶對該變量的輸入的參數是否滿足相應的模型,判斷本次用戶輸入是否為一個合法的輸入。如前文所述,前文中采用的統計模型,通過統計分析得到綁定后變量的置信區間。在運行時,只需要判斷用戶輸入的變量求信息距離之后的數值是否落在置信區間內,如果在置信區間內,則為正常輸入,否則為異常輸入。參照圖7所示,本發明一較佳實施例中,上述裝置還可包括統計分析模塊40,用于統計所述識別模型對輸入數據的判斷結果;自學習模塊50,用于根據統計結果更新所述統計信息,以對所述識別模型進行調難
iF. O運行時,系統根據訓練得到的模型對用戶輸入數據進行判斷。模型對可疑數據進行報告,同時可以根據此時的數據更新統計信息。用運行時數據更新模型,使模型通過自學習,進一步完善,從而降低正誤判和反誤判,增加精確度。通過自學習,模型可以更好的適應應用場景,可以防御未知攻擊和新型的攻擊,同時,對零日攻擊等攻擊的防御能力更強。本發明還提供一種Web防注入的方法,該方法可通過前述Web防注入的裝置實現。參照圖8所示,在一較佳實施例中,該方法包括以下步驟步驟A,綁定Web應用的頁面與變量,形成頁面、變量和操作之間的關聯關系;例如,可通過前述綁定模塊10將變量和頁面進行綁定處理,建立一種變量、頁面、操作類型等信息的關聯。經過綁定之后,變量就不單單是孤立的參數,而與頁面相聯系。綁定之后的變量具有了頁面的屬性,這樣能夠更好地區分變量的作用、取值范圍、正常值范圍等信息。同時,同一頁面之間的變量也可能存在聯系,綁定之后的變量這種聯系就明朗化。步驟B,接受用戶輸入的對所述變量進行訓練的合法數據,計算并統計所述合法數據的信息距離;訓練是在變量進行綁定之后,用合法的數據對每一個綁定變量進行實際操作,以便針對每個變量產生合法的統計信息,然后根據訓練得到的統計信息產生相應的識別模型。本發明實施例中,可通過上述訓練模塊20對變量進行訓練。步驟C,根據所述合法數據的信息距離的統計信息建立識別模型,以判斷輸入的數據是否合法。例如,可通過前述建模模塊30建立識別模型。在一較佳實施例中,在執行所述步驟B之后還包括步驟BI,提供調整窗口以供用戶輸入調整參數,以對所述識別模型進行調整。由于訓練階段的訓練數據不一定會精確,對單個變量的統計信息不一定全面,故需要將統計信息返回用戶進行校驗和調整,以供用戶對不準確的距離進行調整。同時,有些變量的要求不那么嚴格,可適當減小精度提高效率,有些重點變量(如,用戶名和密碼)可以調高精度從而更好地進行防護。用戶可以選擇變量所要求的安全等級。本發明實施例可通過上述調整單元21對識別模型進行調整。參照圖9,在一較佳實施例中,上述步驟C包括步驟Cl,向用戶反饋初步建模結果并提供驗證窗口供用戶對識別模型進行驗證;步驟C2,根據用戶輸入的識別模型調整指令,返回步驟BI以對識別模型進行調
難
iF. O識別模型建立之后,用戶可以根據實際情況(如,用戶數據庫之中的部分數據,部分正常的輸入),通過驗證單元33對模型進行驗證,并根據對模型的驗證情況,生成重點變量和非重點變量的判斷精度,用以判斷模型的評測精度,并可以做適當的調整。檢驗方法一用戶通過將部分數據庫中的數據導出為Xls文件,然后用模型對該文件進行檢驗,判斷模型的精度和誤判情況。檢驗方法二用戶通過部分正常操作(可以包含有危險的SQL關鍵字等疑似注入行為的操作),用模型進行檢驗,檢驗模型的精度和誤判情況。模型判斷可以從攻擊數據和正常數據兩方面進行,從兩個方面判斷模型的防護能力,判斷誤判和漏判的可能。同時根據判斷的結果,可以適當的返回一個模型的準確率,準確率(誤判、漏判)在接受范圍內說明模型正常,否則模型不正常,需要繼續學習。由于訓練數據的覆蓋可能不全面,因此對模型的檢驗非常必要。參照圖10所示,在一實施例中,上述步驟C包括步驟C3,獲取變量的正常信息距離的概率分布;步驟C4,根據所述概率分布建立置信區間。本發明實施例可通過概率分布獲取單元31對正常變量信息的統計,得到正常變量信息的概率分布,然后置信區間建立單元32對該分布產生相應的置信區間。運行時,得到用戶輸入數據之后,對輸入參數求信息距離,然后判斷該距離是否在該參數的概率分布置信區間之內。若在置信區間中,則為合法輸入;否則是危險行為,做出處理。例如,若綁定后的變量number針對某一訓練集所產生的概率大于95%的置信區間為[1,9],則所有用戶輸入經過信息距離量化之后在區間[1,9]內的輸入為合法的,不在區間內的輸入為危險輸入,需進行處理,如報告等。在一實施例中,在執行所述步驟C之后還包括步驟D,統計所述識別模型對輸入數據的判斷結果;步驟E,根據統計結果更新所述統計信息,以對所述識別模型進行調整。運行時,系統根據訓練得到的模型對用戶輸入數據進行判斷。模型對可疑數據進行報告,同時可以根據此時的數據更新統計信息。用運行時數據更新模型,使模型通過自學習,進一步完善,從而降低正誤判和反誤判,增加精確度。通過自學習,模型可以更好的適應應用場景,可以防御未知攻擊和新型的攻擊,同時,對零日攻擊等攻擊的防御能力更強。本發明還提供一種Web防注入的設備,參照圖11所示,本發明實施例中Web防注入的設備其與分別于瀏覽器和腳本引擎進行數據交換,用以防御攻擊。本發明實施例中的Web防注入的設備包括Web防注入的裝置,該裝置的其模塊結構及工作原理可參照圖1至圖7及其對應的實施例,包含了前述實施例中的所有技術特征,在此就不一一詳述。本發明實施例中,Web防注入的設備可以為包含了前述Web防注入裝置的WAF (Web ApplicationFirewall,網站應用級入侵防御系統)。由于具有前述Web防注入裝置,本發明實施例中的Web防注入的設備能夠動態防御未知的攻擊,也能阻擋零日攻擊之類的攻擊,并且使得攻擊者無法對其進行欺騙攻擊。以上僅為本發明的優選實施例,并非因此限制本發明的專利范圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護范圍內。
權利要求
1.一種Web防注入的方法,其特征在于,包括以下步驟 步驟AJ^SWeb應用的頁面與變量,形成頁面、變量和操作之間的關聯關系; 步驟B,接受用戶輸入的對所述變量進行訓練的合法數據,計算并統計所述合法數據的信息距離; 步驟C,根據所述合法數據的信息距離的統計信息建立識別模型,以判斷輸入的數據是否合法。
2.如權利要求1所述的方法,其特征在于,在執行所述步驟B之后還包括 步驟BI,提供調整窗口以供用戶輸入調整參數,以對所述識別模型進行調整。
3.如權利要求2所述的方法,其特征在于,所述步驟C包括 步驟Cl,向用戶反饋初步建模結果并提供驗證窗口供用戶對識別模型進行驗證; 步驟C2,根據用戶輸入的識別模型調整指令,返回步驟BI以對識別模型進行調整。
4.如權利要求1所述的方法,其特征在于,所述步驟C包括 步驟C3,獲取變量的正常信息距離的概率分布; 步驟C4,根據所述概率分布建立置信區間。
5.如權利要求1至4中任一項所述的方法,其特征在于,在執行所述步驟C之后還包括 步驟D,統計所述識別模型對輸入數據的判斷結果; 步驟E,根據統計結果更新所述統計信息,以對所述識別模型進行調整。
6.一種Web防注入的裝置,其特征在于,包括 綁定模塊,用于綁定Web應用的頁面與變量,形成頁面、變量和操作之間的關聯關系;訓練模塊,用于接受用戶輸入的對所述變量進行訓練的合法數據,計算并統計所述合法數據的信息距離; 建模模塊,用于根據所述合法數據的信息距離的統計信息建立識別模型,以判斷輸入的數據是否合法。
7.如權利要求6所述的裝置,其特征在于,所述訓練模塊包括 調整單元,用于提供調整窗口以供用戶輸入調整參數,以對所述識別模型進行調整。
8.如權利要求2所述的裝置,其特征在于,所述建模模塊包括 驗證單元,用于向用戶反饋初步建模結果并提供驗證窗口供用戶對識別模型進行驗證; 調整啟用單元,用于根據用戶輸入的識別模型調整指令,啟用調整單元以對識別模型進行調整。
9.如權利要求6所述的裝置,其特征在于,所述建模模塊包括 概率分布獲取單元,用于獲取變量的正常信息距離的概率分布; 置信區間建立單元,用于根據所述概率分布建立置信區間。
10.如權利要求6至9中任一項所述的裝置,其特征在于,還包括 統計分析模塊,用于統計所述識別模型對輸入數據的判斷結果; 自學習模塊,用于根據統計結果更新所述統計信息,以對所述識別模型進行調整。
11.一種Web防注入的設備,其特征在于,包括如權利要求6至10中任一項所述的Web防注入的裝置。
全文摘要
本發明公開一種Web防注入的方法,包括以下步驟步驟A,綁定Web應用的頁面與變量,形成頁面、變量和操作之間的關聯關系;步驟B,接受用戶輸入的對所述變量進行訓練的合法數據,計算并統計所述合法數據的信息距離;步驟C,根據所述合法數據的信息距離的統計信息建立識別模型,以判斷輸入的數據是否合法。本發明還提供對應上述方法的Web防注入的裝置和具有該裝置的設備。本發明能夠動態防御未知的攻擊,也能阻擋零日攻擊之類的攻擊,并且使得攻擊者無法對其進行欺騙攻擊。
文檔編號G06F21/55GK103064870SQ20121035821
公開日2013年4月24日 申請日期2012年9月24日 優先權日2012年9月24日
發明者趙振陽, 李龍 申請人:深信服網絡科技(深圳)有限公司