李 釗,張先榮,郭 帆
(1.安徽醫(yī)科大學 圖書館信息技術部,安徽 合肥 340100;2.廣州大學 網絡空間先進技術研究院,廣東 廣州 510000;3.江西師范大學 計算機信息工程學院,江西 南昌 330022)
隨著互聯(lián)網技術的高速發(fā)展,網絡在人們生活中呈現(xiàn)爆發(fā)式的增長,Web平臺具有大量的網絡信息資源,這也導致了Web網站的漏洞越來越多[1]。據(jù)Gartern的統(tǒng)計,在絕大多數(shù)的網絡攻擊中,發(fā)生在Web層面的攻擊高達75%左右[2],因此面向Web程序的入侵檢測就顯得極為重要了。
Web入侵檢測系統(tǒng)主要分為誤用檢測和異常檢測[3],誤用檢測技術通常對所有已知的攻擊類型進行建立模型和規(guī)則匹配庫,因此誤用檢測類似于黑名單機制,優(yōu)點是能夠檢測已知的攻擊和具有較低的誤報率,缺點是對未知的攻擊難以檢測,所以當面對未知攻擊時誤用檢測的檢測率有時候并不理想。異常檢測是對正常行為進行建模,構建正常行為模型,不用分析所有的攻擊類型,類似于白名單機制,優(yōu)點是具有較高的檢測率,缺點是誤報率通常較高。
對于Web入侵檢測,眾多學者對此領域做出了相關貢獻。Almgren等[4]以Web應用日志URL的路徑、編碼字符等作為攻擊特征,通過攻擊特征來匹配攻擊請求,設計了Web誤用檢測系統(tǒng),具有較高的檢測率和低誤報率。著名的入侵檢測攻擊Snort[5]就是典型的基于網絡流量檢測的誤用檢測系統(tǒng),通過官方網絡攻擊規(guī)則庫或者自定義規(guī)則庫能夠對網絡流量進行入侵檢測。Jin Wang等[6]人提出了一種新的允許網絡爬行軌跡的方法來建立基線輪廓,并設計了一種新的基于異常的http泛洪檢測方案(簡稱HTTP-sCAN),HTTP-sCAN不受未知網絡爬行軌跡的干擾,能夠檢測出所有的http -flood攻擊。Li Bo等[7]人提出了一種基于加權深度學習的子空間光譜集合聚類方法,稱為WDL-SSEC,應用集合聚類模型將異常與正常樣本分離,然后,使用word2vec來獲得標記的語義表示,并連接加權標記以獲得url的向量。最后,基于子空間的集合聚類和局部自適應聚類(LAC)將多聚類異常分為具體類型。
以往研究大多是從誤用檢測或異常檢測的單個緯度去討論入侵檢測系統(tǒng)的,因此本文設計了混合的入侵檢測系統(tǒng),首先,基于Web已有的攻擊方法,提取Web日志的攻擊向量構建攻擊規(guī)則匹配庫,設計了Web誤用檢測模型。其次,采集Web日志的正常訪問數(shù)據(jù),構建正常訪問模型,設計了異常檢測模型。最后,在誤用檢測和異常檢測的基礎上設計了基于Web日志的Web混合入侵檢測系統(tǒng)模型WL-HIDSM(Web Log Intrusion Detection System Model)。
Web混合入侵檢測系統(tǒng)WL-HIDSM采用模塊化設計,模型的總體設計方法如圖1所示,利用這個混合入侵檢測模型能夠增加入侵檢測的檢測率和降低入侵檢測的誤報率,它的主要包括以下3個部分。
圖1 Web混合入侵檢測模型WL-HIDSM總體結構
(1)Web日志預處理模塊:這個模塊的功能是將Web日志的數(shù)據(jù)進行預處理和清洗。
(2)誤用入侵檢測模塊:通過Web攻擊向量構建規(guī)則庫,將Web日志與規(guī)則庫匹配,若匹配成功則表示檢測到入侵,若匹配失敗,則將進行異常入侵檢測。
(3)異常入侵檢測模塊:通過正常的Web日志數(shù)據(jù)構建正常訪問模型,將誤用檢測沒有匹配成功的日志數(shù)據(jù)送至異常檢測模塊進行檢測,若超過設定的閾值則表示檢測到異常日志數(shù)據(jù),反之亦然。
誤用檢測有著檢測率高和誤報率低的特征,這導致大量的工業(yè)產品使用誤用檢測技術。
誤用檢測技術[8]是分析出各種已知的攻擊類型數(shù)據(jù),并將這些攻擊數(shù)據(jù)集合構建一個攻擊向量庫,然后將待測數(shù)據(jù)與攻擊向量庫進行匹配,若匹配成功則表示檢測到入侵行為。鑒于本文的檢測數(shù)據(jù)是Web日志,所有將構建的攻擊向量庫與Web日志匹配,若匹配成功,則表示Web程序受到入侵。誤用檢測原理如圖2所示。
圖2 誤用檢測模型
由圖2所示誤用檢測技術的原理,我們可以總結Web誤用檢測模型的兩個關鍵:一是需要收集Web程序的各種攻擊類型方式,并能夠對已知的各種攻擊類型進行分析和攻擊向量提??;二是對攻擊向量進行分析并構建合適的規(guī)則庫。
本文Web誤用檢測模塊從Web日志采集入侵數(shù)據(jù),首先搭建使用PHPStudy v8.1[9]搭建Web服務器集成環(huán)境來模擬真實的運行環(huán)境,并將WebGoat[10]Web漏洞測試平臺放入服務器環(huán)境中,然后再OWASP Top10 2021[11]中獲取已知的Web程序攻擊向量,將使用這些獲取的Web攻擊向量在集成環(huán)境中測試,最后,將根據(jù)獲得的Web日志數(shù)據(jù)構建攻擊向量匹配規(guī)則庫。具體實現(xiàn)如圖3所示。
圖3 Web誤用檢測流程
我們以XSS跨站腳本攻擊的攻擊荷載payload:為例在Web漏洞站點WebGoat進行測試,獲得Web日志數(shù)據(jù)為:%3Cscript%3Ealert%281%29%3C%2Fscript%3E,通過得到的入侵測試數(shù)據(jù)分析得到正則表達式為:(?i)