◆謝江濤 卜文娟 王 陽
基于流式處理的Web漏洞攻擊檢測技術研究
◆謝江濤 卜文娟 王 陽
(信息工程大學數學工程與先進計算國家重點實驗室 河南 450001)
隨著互聯網與國家發展的聯系日益緊密,網絡安全已經成為關系國家政治穩定、經濟社會發展以及國防軍隊建設的“第五疆域”。而Web安全作為網絡安全的重要組成部分,也越來越受到人們的重視。本文就基于流式處理的Web漏洞攻擊檢測技術進行了研究,供相關讀者參考。
網絡安全;Web漏洞;攻擊檢測
隨著互聯網與國家發展的聯系日益緊密,網絡安全已經成為關系國家政治穩定、經濟社會發展以及國防軍隊建設的“第五疆域”。而Web安全作為網絡安全的重要組成部分,也越來越受到人們的重視。在網絡安全領域,針對Web漏洞攻擊的檢測是防范APT攻擊的重要步驟。目前,Web的攻擊檢測系統有基于策略[1],基于行為說明[2],基于特征以及基于異常的檢測。前兩種檢測方式對于持合法訪問權限的攻擊方式檢測能力較差,應用較少;基于特征的檢測由于對特征庫依賴性高,容易導致無法檢測未知攻擊,漏報率較高,同時,過大的特征庫也會導致檢測系統的實時性下降?;诋惓5臋z測由于對正常行為模型依賴性強,容易導致正常行為被誤報,誤報率較高。
隨著網絡流量的不斷增長以及Web應用種類,流量特征的不斷增多,現有攻擊檢測技術呈現出實時性差,泛化能力弱以及難以同時降低誤報率與漏報率的問題,不能較好地適應日益增長的安全防護需求。因此,研究一種實時性強,泛化能力強以及低誤報率,低漏報率的Web攻擊檢測技術就顯得非常必要。
現有檢測技術主要分為兩種:一是基于特征的Web入侵檢測,二是基于異常的Web入侵檢測。
(1)基于特征的Web入侵檢測系統從大量已知攻擊中提取特征,建立模型,與特征匹配的行為即可被判定為入侵行為,不匹配的則為正常行為。目前,基于特征的Web入侵檢測技術發展時間較長,技術也較為成熟,主流的Snort,Bro IDS都是基于特征的。但由于攻擊識別依賴特征庫,因此無法檢測未知攻擊,漏報率較高。且由于特征庫的不斷增大,導致了檢測效率降低。現有基于特征的入侵檢測系統所采用的檢測方法有模式匹配,專家系統,狀態轉換分析等。
(2)基于異常的Web入侵檢測技術是基于正常行為的檢測方法,通過將當前用戶行為與過去觀察到的正常行為進行比較,當前行為與正常行為之間存在重大偏離時,即判定為入侵行為,否則判定為正常行為。這種檢測的優勢是能夠對未知的攻擊進行檢測,有著一定的泛化能力。但由于基于異常的檢測起步較晚,檢測模型構建往往不夠完善,誤報率往往偏高?;诋惓5臋z測技術主要分為兩種:一是基于統計分析的Web入侵檢測,二是基于機器學習的Web入侵檢測。
Web應用指采用B/S 架構、通過HTTP 或HTTPS 協議訪問的各種應用服務統稱。目前的Web應用訪問中,大多涉及服務器端的動態處理,因此各種應用攻擊問題不斷呈現。此外,由于開發人員安全意識不強,對用戶參數輸入檢查不嚴格,也導致了Web應用安全問題的出現。常見的Web漏洞有以下幾類:(1)信息泄露漏洞;(2)目錄遍歷漏洞;(3)命令執行漏洞;(4)文件包含漏洞;(5)SQL注入漏洞;(6)跨站腳本漏洞。SQL注入漏洞和跨站腳本漏洞出現最多,利用最廣泛,造成的危害也最大。Web漏洞攻擊檢測問題的本質是二分類問題,在利用單一特征進行檢測時,可作為一個線性分類問題,多特征檢測時則作為線性不可分問題。
根據基于流式處理的Web漏洞攻擊檢測技術需求,設計Web漏洞攻擊檢測模型構建流程。構建流程分為兩大部分,第一部分是數據準備階段,第二部分是模型訓練驗證階段。第一部分從數據集處理開始,經過樣本數據分類標記,特征參量提取,可完成前期的數據準備工作。接著將準備好的數據按照7:3的比例隨機分為兩部分,訓練數據用于模型訓練,訓練完成后通過測試數據對模型進行驗證,若不滿足預期效果,則對模型進行調整優化。選取合適特征是構建攻擊檢測模型的重要步驟。僅通過人工篩選容易造成特征的遺漏,而僅通過算法篩選則可能會混入無用信息。因此,通過采用基于Apriori算法與人工分析結合的方式,提高挖掘的準確性與完整性。
Apriori算法,是經典的關聯分析算法,用于挖掘數據內涵的未知的數據關系。核心思想是基于兩階段頻集思想的遞推算法。算法的第一階段是對頻繁項集進行挖掘,第二階段是產生關聯規則。
首先介紹有關支持度,置信度和頻繁K-項集的概念: 1.支持度:設有事件A,B,其支持度代表事件A,B同時發生的概率。即:
(1)支持度:設有事件A,B,支持度代表事件A,B同時發生的概率。
(2)置信度:設有事件A,B,置信度代表事件A發生的前提下發生事件B的概率。
(3)頻繁K-項集:設事件A包含K個元素,稱為K-項集事件A。若該事件滿足最小支持度閾值,則稱為頻繁K-項集。
Apriori算法步驟如表1所示(其中sup表示支持度,conf表示置信度)。

表1 Apriori算法
XSS攻擊中,存在著一定數量的敏感詞集。為了準確全面地挖掘出詞集,本文首先對樣本集中的單詞利用符號集進行分割,接著通過Apriori算法,挖掘其中的關聯規則。最后通過人工分析去除無效的關聯規則,得到敏感詞集。
由于無法直接識別樣本集,需要逐行將樣本向量化,按照一定分割符將其分割成單詞向量,根據XSS語句中單詞之間常見的分割符及相關編碼變形,設定如表2分割符集并使用正則表達式對XSS語句進行分割。

表2 XSS分割符集
表2包含了常見的單詞分割符,可自定義添加新的分割符,對分割規則進行拓展。
接著對單詞向量集使用Apriori算法進行關聯規則分析,首先對最小支持度為0.1,最小置信度為0.6的情況做分析,第三項數值代表二者的置信度,置信度越高,說明二者關聯性越強。
從以上結果中可以發現,由于最小支持度較高,導致結果主要集中在經常出現script,alert等單詞中,部分出現概率較小語句的關聯關系沒有被挖掘出來。接著通過降低最小支持度,提升最小置信度進行挖掘,挖掘出現概率較低的強關聯關系。這樣就克服了詞頻統計法無法挖掘出現概率較小的單詞向量的問題。最終取置信度為0.8以上的關聯關系,再次人工篩選后得到敏感詞集為:alert,script,onerror,onchange,onclick,onload,eval,src,prompt。
與XSS攻擊類似,SQL攻擊中同樣存在敏感詞集。因此,本文采用與XSS敏感詞集挖掘同樣的方式對SQL敏感詞集進行挖掘。觀察樣本集。設定分割符集并使用正則表達式對SQL語句進行分割(表3)。

表3 SQL分割符集
接著調整最小支持度與最小置信度進行多次挖掘。最終取置信度為0.8以上的關聯規則,結合人工篩選后得到敏感字符集為:and,or,xor,version,substr,len,exists,mid,asc,inner join,xp_cmdshell,exec,union,order,information_schema,load_file,information schema,load data,database,group,contact。
在實際檢測中,往往無法做到對攻擊行為的完全檢測。Kumar和Stafford提出檢測結果和實際情況之間存在以下四種可能:
(1)真陽性(True Positives,TP),指的是一個攻擊行為,檢測系統檢測出該行為是攻擊。
(2)真陰性(True Negatives,TN),指的是一個正常行為,檢測系統檢測出該行為是正常的。
(3)假陽性(False Positives,FP),指的是一個正常行為,檢測系統認為該行為是攻擊行為并產生報警,也就是所謂的誤報。誤報會影響正常流量的通訊。
(4)假陰性(False Negatives,FN),指的是一個攻擊行為,檢測系統認為該行為是正常行為,不進行報警,也就是所謂的漏報。漏報會影響網絡和計算機系統的安全。
以上四種情況亦如表4所示:

表4 檢測情況分類
為了表征檢測模型的性能,根據上文所述檢測結果和實際情況之間的四種可能,需要引入召回率(Recall Rate,RR),精確率(Precision Rate,PR)以及綜合評價指標F1的概念。
綜合評價指標F1:是統計學用于衡量二分類模型精確度的一種指標,對精確率和召回率求調和平均數,從而兼顧了二者對分類模型的影響。
核函數在SVM中的作用是將初始低維線性不可分樣本映射到高維特征空間中再構建最優分類平面進行分類。確定恰當的核函數,可以在不增加復雜度的前提下實現高維空間的線性分類。不同的核函數,產生的最優分類平面不同,產生的分類模型也不同。核函數的選擇是決定分類性能的重要因素之一。目前SVM中主要選用的四種核函數是:
線性核函數(Linear):該函數適合對低維空間的線性可分樣本進行分類。主要優點是復雜度低,缺點是但復雜特征條件下的樣本一般是低維空間線性不可分的,應用范圍有限。
多項式核函數(Polynomial):多項式核函數主要針對低維空間線性不可分問題進行分類。主要優點是可以根據特征空間維數確定核函數維數。缺點是高維空間下計算復雜度高,效率低,分類器易受偏離較遠的樣本影響。
徑向基核函數(RBF):徑向基核函數擁有較好的局部性能,對于距離較近的點分類效果較好,能夠有效降低誤漏報率。
Sigmoid核函數:該函數與二層神經網絡等效,優點是全局收斂性好,缺點是存在局部極值問題。
根據上述核函數特點,結合Web漏洞攻擊檢測實際,本文選用徑向基核函數作為核函數。原因如下:
Web攻擊種類較多,針對防護的變形復雜,具有特征維數大,樣本數量不一的特點。RBF函數不受樣本數量和特征維數限制,適用性強。
目前Web漏洞攻擊檢測技術中存在實時性差,泛化能力弱以及誤報率與漏報率難以同時降低的問題,不利于在高速復雜流量條件下開展Web攻擊檢測。
針對上述問題,本文研究基于流式處理的Web漏洞攻擊檢測技術,通過研究基于Apriori算法的攻擊流量特征關聯分析技術,結合人工分析,完成了攻擊流量特征挖掘;通過研究基于SVM的模型構建技術與基于網格搜索與K折交叉驗證的參數調優技術,完成了Web漏洞攻擊檢測模型構建;通過將模型部署至流式處理平臺,最終實現了基于流式處理平臺的Web漏洞攻擊檢測技術。經實驗驗證,該技術能具備較強的實時檢測能力與一定的泛化能力,同時有效降低了誤報率與漏報率。
[1]Dorothy E.Denning. An Intrusion-Detection Model[J]. IEEI Transactions on Software Engineering,1987:222-232.
[2]Juan José García Adeva,Juan Manuel Pikatza Atxa. Intrusion detection in web applications using text mining[J]. Engineering Applications of Artificial Intelligence,2006,20(4).
[3]Garcia V H,Monroy R,Quintana M.Web attack detection using ID3[OL]. http://homepage.cem.itesm.mx/raulm/pub/id3-ids,2013-12.
[4]溫凱.自適應WEB入侵異常檢測技術的應用研究[D].江西師范大學,2012.
[5]Kumar S.Classification and detection of computer intrusions[D]. West Lafayette:Purdue University,1995.
[6]Callegari C, Cyprus N. Statistical approaches for network anomaly detection[J]. ICIMP Conference,2009,169(1):1-20.
[7]Cao L C. Detecting Web-Based Attacks by Machine Learning[C]//Machine Learning and Cybernetics, 2006 International Conference on. IEEE,2006:2737-2742.
[8]G.Kumar. Classification and Detection of Computer Intrusion. Purdue University,1995.
[9]曹杰.基于SVM的網絡流量特征降維與分類方法研究[D].吉林大學,2017.