網站攻擊驗證方法及裝置的制造方法
【技術領域】
[0001]本發明涉及信息安全技術領域,特別是涉及一種網站攻擊驗證方法、網站攻擊驗證裝置。
【背景技術】
[0002]在線網站每天都會承受數以萬計的攻擊。攻擊者希望通過網站的漏洞獲取非法的利益,如不用付錢購買商品、欺詐正常用戶匯款,轉賬、偷盜敏感信息利用倒賣等。多數攻擊者會使用漏洞掃描器對網站進行掃描。漏洞掃描器會將正常的路徑或者參數替換或者更改為惡意的攻擊載荷(Payload)來尋找網站的漏洞。由于攻擊者無從得知網站服務器的具體配置,也無法預知網站漏洞,因此這類攻擊往往無針對性。并且由于漏洞掃描器往往是多并發工作,這就造成網站在短時間采集到大量攻擊日志,雖然其中大部分攻擊不能成功,但同時不排除通過大量的投機枚舉,漏洞掃描器會發現少量的且危害巨大的漏洞。漏洞可能造成網站的各種敏感信息泄露(用戶個人信息、信用卡支付數據、商業信息等),網頁、后臺數據被篡改等。這不僅會造成直接經濟損失,更會降低用戶對網站的信任,并且某些商業敏感數據的泄漏更會使競爭對手完全了解公司的商業動向,失去競爭優勢。因此驗證攻擊是否對網站有威脅很有必要。
[0003]現有方案是通過“正則”匹配ngnix(Web服務器和反向代理服務器)日志,采集帶有惡意的攻擊載荷的URL (Uniform Resoure Locator,統一資源定位器),存入數據庫中。接著人工從數據庫中或者從連接數據庫的網頁上復制帶有惡意的攻擊載荷的URL,黏貼入網頁瀏覽器的地址欄中并訪問,觀察網頁瀏覽器返回頁面是否有符合攻擊成功的特征,例如彈出對話框,顯示報錯或返回敏感信息等,從而來判斷攻擊是否成功。
[0004]但是網站每天承受的攻擊數量很大,并且隨著知名度的上升,攻擊數量會越來越多。現有的人工驗證攻擊有效性的方法存在費時、響應不及時、準確性較低以及人工成本較尚等缺點O
【發明內容】
[0005]基于此,有必要針對上述問題,提供一種網站攻擊驗證方法及裝置,能夠減少人工驗證、提升攻擊驗證的即時性以及準確性。
[0006]一種網站攻擊驗證方法,包括步驟:
[0007]采集網站的各攻擊日志;
[0008]根據各攻擊日志記錄的信息進行關鍵字匹配和HTTP狀態碼匹配,將與預設關鍵字或預設HTTP狀態碼匹配一致的攻擊日志對應的攻擊確定為無威脅;
[0009]通過python urllib庫提交還未確定是否有威脅的攻擊的URL,獲取各HTTP返回包信息和各網頁源代碼;
[0010]將各網頁源代碼與預設的敏感信息文件的特征關鍵字進行匹配,若網頁源代碼與特征關鍵字匹配,則將相應的攻擊確定為有威脅;若攻擊訪問的是敏感信息文件且網頁源代碼與特征關鍵字不匹配,則將相應的攻擊確定為無威脅;若攻擊訪問的不是敏感信息文件且網頁源代碼與特征關鍵字不匹配,則根據HTTP返回包信息,將攻擊的URL被跳轉到預設頁面的攻擊確定為無威脅,將攻擊的URL不跳轉或者被跳轉到的頁面不是預設頁面的攻擊確定為需要人工驗證。
[0011]一種網站攻擊驗證裝置,包括:
[0012]攻擊日志采集模塊,用于采集網站的各攻擊日志;
[0013]攻擊初步驗證模塊,用于根據各攻擊日志記錄的信息進行關鍵字匹配和HTTP狀態碼匹配,將與預設關鍵字或預設HTTP狀態碼匹配一致的攻擊日志對應的攻擊確定為無威脅;
[0014]攻擊URL提交模塊,用于通過python urllib庫提交還未確定是否有威脅的攻擊的URL,獲取各HTTP返回包信息和各網頁源代碼;
[0015]攻擊最終驗證模塊,用于將各網頁源代碼與預設的敏感信息文件的特征關鍵字進行匹配,在網頁源代碼與特征關鍵字匹配時,將相應的攻擊確定為有威脅;在攻擊訪問的是敏感信息文件且網頁源代碼與特征關鍵字不匹配時,將相應的攻擊確定為無威脅;在攻擊訪問的不是敏感信息文件且網頁源代碼與特征關鍵字不匹配時,則根據HTTP返回包信息,將攻擊的URL被跳轉到預設頁面的攻擊確定為無威脅,將攻擊的URL不跳轉或者被跳轉到的頁面不是預設頁面的攻擊確定為需要人工驗證。
[0016]本發明網站攻擊驗證方法及裝置,針對攻擊是否對在線網站有威脅,將攻擊評級為三種類型:有威脅攻擊、無威脅攻擊和需要人工繼續驗證的攻擊。先通過攻擊日志將一些不需要訪問網頁就可以給出評級的攻擊事先過濾,然后將剩余的攻擊通過訪問網頁進行進一步判斷,從而加快了攻擊驗證的速度,減少了網站服務器因處理驗證請求而產生的流量和壓力。并且在訪問網頁判斷時,通過python urllib庫自動提交剩余攻擊的URL,然后根據返回的HTTP返回包信息和網頁源代碼信息進行攻擊評級,若經過訪問網頁步驟仍存在無法確定有效性的攻擊,則將這些攻擊確定為人工驗證,確保有威脅攻擊不被遺漏。本發明實現了攻擊有效性的自動驗證,大大減少了人工驗證量,能夠及時對攻擊做出響應,節省了攻擊驗證時間,提高了攻擊驗證的準確性和可靠性,并且節省了人力成本。
【附圖說明】
[0017]圖1為本發明網站攻擊驗證方法實施例的流程示意圖;
[0018]圖2為本發明需要人工驗證的攻擊數量和現有技術中需要人工驗證的攻擊數量對比圖;
[0019]圖3為本發明網站攻擊驗證裝置實施例的結構示意圖。
【具體實施方式】
[0020]下面結合附圖對本發明網站攻擊驗證方法的【具體實施方式】做詳細描述。
[0021]如圖1所示,一種網站攻擊驗證方法,包括步驟:
[0022]S110、采集網站的各攻擊日志;
[0023]S120、根據各攻擊日志記錄的信息進行關鍵字匹配和HTTP狀態碼匹配,將與預設關鍵字或預設HTTP狀態碼匹配一致的攻擊日志對應的攻擊確定為無威脅;
[0024]S130、通過python urllib庫提交還未確定是否有威脅的攻擊的URL,獲取各HTTP返回包信息和各網頁源代碼;
[0025]S140、將各網頁源代碼與預設的敏感信息文件的特征關鍵字進行匹配,若網頁源代碼與特征關鍵字匹配,進入步驟S150,若攻擊訪問的是敏感信息文件且網頁源代碼與特征關鍵字不匹配,進入步驟S160,若攻擊訪問的不是敏感信息文件且網頁源代碼與特征關鍵字不匹配,進入步驟S170 ;
[0026]S150、將相應的攻擊確定為有威脅;
[0027]S160、將相應的攻擊確定為無威脅;
[0028]S170、根據HTTP返回包信息,將攻擊的URL被跳轉到預設頁面的攻擊確定為無威脅,將攻擊的URL不跳轉或者被跳轉到的頁面不是預設頁面的攻擊確定為需要人工驗證。
[0029]攻擊者對網站進行攻擊時,網站就會采集到大量的攻擊日志,也即nginx日志。攻擊日志記錄有訪問域名、訪問路徑頁面和參數、HTTP/HTTPS(超文本傳輸協議)的回包大小,HTTP/HTTPS的狀態碼等信息。為了加快攻擊驗證的速度,可以先根據攻擊日志確定出攻擊是否有威脅,該步驟不需要訪問網絡,減少了網站服務器因處理驗證請求而產生的流量和壓力。
[0030]根據攻擊日志確定攻擊是否有威脅時,可以先逐一匹配每條攻擊日志的惡意攻擊有效載荷中是否含有預設關鍵字,若含有預設關鍵字,則此攻擊日志對應的攻擊無威脅,若不包含預設關鍵字,則進入下一步驗證。關鍵字匹配的目的主要在于過濾完全和網站系統配置不符的攻擊。例如,某網站全部使用php (Hypertext Preprocessor,超文本預處理器)語言編寫,而完全沒有使用asp (Active Server Page,動態服務器頁面),因此針對asp頁面的攻擊