◆謝江濤 卜文娟 王 陽
基于流式處理的Web漏洞攻擊檢測技術(shù)研究
◆謝江濤 卜文娟 王 陽
(信息工程大學(xué)數(shù)學(xué)工程與先進(jìn)計(jì)算國家重點(diǎn)實(shí)驗(yàn)室 河南 450001)
隨著互聯(lián)網(wǎng)與國家發(fā)展的聯(lián)系日益緊密,網(wǎng)絡(luò)安全已經(jīng)成為關(guān)系國家政治穩(wěn)定、經(jīng)濟(jì)社會(huì)發(fā)展以及國防軍隊(duì)建設(shè)的“第五疆域”。而Web安全作為網(wǎng)絡(luò)安全的重要組成部分,也越來越受到人們的重視。本文就基于流式處理的Web漏洞攻擊檢測技術(shù)進(jìn)行了研究,供相關(guān)讀者參考。
網(wǎng)絡(luò)安全;Web漏洞;攻擊檢測
隨著互聯(lián)網(wǎng)與國家發(fā)展的聯(lián)系日益緊密,網(wǎng)絡(luò)安全已經(jīng)成為關(guān)系國家政治穩(wěn)定、經(jīng)濟(jì)社會(huì)發(fā)展以及國防軍隊(duì)建設(shè)的“第五疆域”。而Web安全作為網(wǎng)絡(luò)安全的重要組成部分,也越來越受到人們的重視。在網(wǎng)絡(luò)安全領(lǐng)域,針對(duì)Web漏洞攻擊的檢測是防范APT攻擊的重要步驟。目前,Web的攻擊檢測系統(tǒng)有基于策略[1],基于行為說明[2],基于特征以及基于異常的檢測。前兩種檢測方式對(duì)于持合法訪問權(quán)限的攻擊方式檢測能力較差,應(yīng)用較少;基于特征的檢測由于對(duì)特征庫依賴性高,容易導(dǎo)致無法檢測未知攻擊,漏報(bào)率較高,同時(shí),過大的特征庫也會(huì)導(dǎo)致檢測系統(tǒng)的實(shí)時(shí)性下降?;诋惓5臋z測由于對(duì)正常行為模型依賴性強(qiáng),容易導(dǎo)致正常行為被誤報(bào),誤報(bào)率較高。
隨著網(wǎng)絡(luò)流量的不斷增長以及Web應(yīng)用種類,流量特征的不斷增多,現(xiàn)有攻擊檢測技術(shù)呈現(xiàn)出實(shí)時(shí)性差,泛化能力弱以及難以同時(shí)降低誤報(bào)率與漏報(bào)率的問題,不能較好地適應(yīng)日益增長的安全防護(hù)需求。因此,研究一種實(shí)時(shí)性強(qiáng),泛化能力強(qiáng)以及低誤報(bào)率,低漏報(bào)率的Web攻擊檢測技術(shù)就顯得非常必要。
現(xiàn)有檢測技術(shù)主要分為兩種:一是基于特征的Web入侵檢測,二是基于異常的Web入侵檢測。
(1)基于特征的Web入侵檢測系統(tǒng)從大量已知攻擊中提取特征,建立模型,與特征匹配的行為即可被判定為入侵行為,不匹配的則為正常行為。目前,基于特征的Web入侵檢測技術(shù)發(fā)展時(shí)間較長,技術(shù)也較為成熟,主流的Snort,Bro IDS都是基于特征的。但由于攻擊識(shí)別依賴特征庫,因此無法檢測未知攻擊,漏報(bào)率較高。且由于特征庫的不斷增大,導(dǎo)致了檢測效率降低?,F(xiàn)有基于特征的入侵檢測系統(tǒng)所采用的檢測方法有模式匹配,專家系統(tǒng),狀態(tài)轉(zhuǎn)換分析等。
(2)基于異常的Web入侵檢測技術(shù)是基于正常行為的檢測方法,通過將當(dāng)前用戶行為與過去觀察到的正常行為進(jìn)行比較,當(dāng)前行為與正常行為之間存在重大偏離時(shí),即判定為入侵行為,否則判定為正常行為。這種檢測的優(yōu)勢是能夠?qū)ξ粗墓暨M(jìn)行檢測,有著一定的泛化能力。但由于基于異常的檢測起步較晚,檢測模型構(gòu)建往往不夠完善,誤報(bào)率往往偏高?;诋惓5臋z測技術(shù)主要分為兩種:一是基于統(tǒng)計(jì)分析的Web入侵檢測,二是基于機(jī)器學(xué)習(xí)的Web入侵檢測。
Web應(yīng)用指采用B/S 架構(gòu)、通過HTTP 或HTTPS 協(xié)議訪問的各種應(yīng)用服務(wù)統(tǒng)稱。目前的Web應(yīng)用訪問中,大多涉及服務(wù)器端的動(dòng)態(tài)處理,因此各種應(yīng)用攻擊問題不斷呈現(xiàn)。此外,由于開發(fā)人員安全意識(shí)不強(qiáng),對(duì)用戶參數(shù)輸入檢查不嚴(yán)格,也導(dǎo)致了Web應(yīng)用安全問題的出現(xiàn)。常見的Web漏洞有以下幾類:(1)信息泄露漏洞;(2)目錄遍歷漏洞;(3)命令執(zhí)行漏洞;(4)文件包含漏洞;(5)SQL注入漏洞;(6)跨站腳本漏洞。SQL注入漏洞和跨站腳本漏洞出現(xiàn)最多,利用最廣泛,造成的危害也最大。Web漏洞攻擊檢測問題的本質(zhì)是二分類問題,在利用單一特征進(jìn)行檢測時(shí),可作為一個(gè)線性分類問題,多特征檢測時(shí)則作為線性不可分問題。
根據(jù)基于流式處理的Web漏洞攻擊檢測技術(shù)需求,設(shè)計(jì)Web漏洞攻擊檢測模型構(gòu)建流程。構(gòu)建流程分為兩大部分,第一部分是數(shù)據(jù)準(zhǔn)備階段,第二部分是模型訓(xùn)練驗(yàn)證階段。第一部分從數(shù)據(jù)集處理開始,經(jīng)過樣本數(shù)據(jù)分類標(biāo)記,特征參量提取,可完成前期的數(shù)據(jù)準(zhǔn)備工作。接著將準(zhǔn)備好的數(shù)據(jù)按照7:3的比例隨機(jī)分為兩部分,訓(xùn)練數(shù)據(jù)用于模型訓(xùn)練,訓(xùn)練完成后通過測試數(shù)據(jù)對(duì)模型進(jìn)行驗(yàn)證,若不滿足預(yù)期效果,則對(duì)模型進(jìn)行調(diào)整優(yōu)化。選取合適特征是構(gòu)建攻擊檢測模型的重要步驟。僅通過人工篩選容易造成特征的遺漏,而僅通過算法篩選則可能會(huì)混入無用信息。因此,通過采用基于Apriori算法與人工分析結(jié)合的方式,提高挖掘的準(zhǔn)確性與完整性。
Apriori算法,是經(jīng)典的關(guān)聯(lián)分析算法,用于挖掘數(shù)據(jù)內(nèi)涵的未知的數(shù)據(jù)關(guān)系。核心思想是基于兩階段頻集思想的遞推算法。算法的第一階段是對(duì)頻繁項(xiàng)集進(jìn)行挖掘,第二階段是產(chǎn)生關(guān)聯(lián)規(guī)則。
首先介紹有關(guān)支持度,置信度和頻繁K-項(xiàng)集的概念: 1.支持度:設(shè)有事件A,B,其支持度代表事件A,B同時(shí)發(fā)生的概率。即:
(1)支持度:設(shè)有事件A,B,支持度代表事件A,B同時(shí)發(fā)生的概率。
(2)置信度:設(shè)有事件A,B,置信度代表事件A發(fā)生的前提下發(fā)生事件B的概率。
(3)頻繁K-項(xiàng)集:設(shè)事件A包含K個(gè)元素,稱為K-項(xiàng)集事件A。若該事件滿足最小支持度閾值,則稱為頻繁K-項(xiàng)集。
Apriori算法步驟如表1所示(其中sup表示支持度,conf表示置信度)。
表1 Apriori算法
XSS攻擊中,存在著一定數(shù)量的敏感詞集。為了準(zhǔn)確全面地挖掘出詞集,本文首先對(duì)樣本集中的單詞利用符號(hào)集進(jìn)行分割,接著通過Apriori算法,挖掘其中的關(guān)聯(lián)規(guī)則。最后通過人工分析去除無效的關(guān)聯(lián)規(guī)則,得到敏感詞集。
由于無法直接識(shí)別樣本集,需要逐行將樣本向量化,按照一定分割符將其分割成單詞向量,根據(jù)XSS語句中單詞之間常見的分割符及相關(guān)編碼變形,設(shè)定如表2分割符集并使用正則表達(dá)式對(duì)XSS語句進(jìn)行分割。
表2 XSS分割符集
表2包含了常見的單詞分割符,可自定義添加新的分割符,對(duì)分割規(guī)則進(jìn)行拓展。
接著對(duì)單詞向量集使用Apriori算法進(jìn)行關(guān)聯(lián)規(guī)則分析,首先對(duì)最小支持度為0.1,最小置信度為0.6的情況做分析,第三項(xiàng)數(shù)值代表二者的置信度,置信度越高,說明二者關(guān)聯(lián)性越強(qiáng)。
從以上結(jié)果中可以發(fā)現(xiàn),由于最小支持度較高,導(dǎo)致結(jié)果主要集中在經(jīng)常出現(xiàn)script,alert等單詞中,部分出現(xiàn)概率較小語句的關(guān)聯(lián)關(guān)系沒有被挖掘出來。接著通過降低最小支持度,提升最小置信度進(jìn)行挖掘,挖掘出現(xiàn)概率較低的強(qiáng)關(guān)聯(lián)關(guān)系。這樣就克服了詞頻統(tǒng)計(jì)法無法挖掘出現(xiàn)概率較小的單詞向量的問題。最終取置信度為0.8以上的關(guān)聯(lián)關(guān)系,再次人工篩選后得到敏感詞集為:alert,script,onerror,onchange,onclick,onload,eval,src,prompt。
與XSS攻擊類似,SQL攻擊中同樣存在敏感詞集。因此,本文采用與XSS敏感詞集挖掘同樣的方式對(duì)SQL敏感詞集進(jìn)行挖掘。觀察樣本集。設(shè)定分割符集并使用正則表達(dá)式對(duì)SQL語句進(jìn)行分割(表3)。
表3 SQL分割符集
接著調(diào)整最小支持度與最小置信度進(jìn)行多次挖掘。最終取置信度為0.8以上的關(guān)聯(lián)規(guī)則,結(jié)合人工篩選后得到敏感字符集為: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。
在實(shí)際檢測中,往往無法做到對(duì)攻擊行為的完全檢測。Kumar和Stafford提出檢測結(jié)果和實(shí)際情況之間存在以下四種可能:
(1)真陽性(True Positives,TP),指的是一個(gè)攻擊行為,檢測系統(tǒng)檢測出該行為是攻擊。
(2)真陰性(True Negatives,TN),指的是一個(gè)正常行為,檢測系統(tǒng)檢測出該行為是正常的。
(3)假陽性(False Positives,F(xiàn)P),指的是一個(gè)正常行為,檢測系統(tǒng)認(rèn)為該行為是攻擊行為并產(chǎn)生報(bào)警,也就是所謂的誤報(bào)。誤報(bào)會(huì)影響正常流量的通訊。
(4)假陰性(False Negatives,F(xiàn)N),指的是一個(gè)攻擊行為,檢測系統(tǒng)認(rèn)為該行為是正常行為,不進(jìn)行報(bào)警,也就是所謂的漏報(bào)。漏報(bào)會(huì)影響網(wǎng)絡(luò)和計(jì)算機(jī)系統(tǒng)的安全。
以上四種情況亦如表4所示:
表4 檢測情況分類
為了表征檢測模型的性能,根據(jù)上文所述檢測結(jié)果和實(shí)際情況之間的四種可能,需要引入召回率(Recall Rate,RR),精確率(Precision Rate,PR)以及綜合評(píng)價(jià)指標(biāo)F1的概念。
綜合評(píng)價(jià)指標(biāo)F1:是統(tǒng)計(jì)學(xué)用于衡量二分類模型精確度的一種指標(biāo),對(duì)精確率和召回率求調(diào)和平均數(shù),從而兼顧了二者對(duì)分類模型的影響。
核函數(shù)在SVM中的作用是將初始低維線性不可分樣本映射到高維特征空間中再構(gòu)建最優(yōu)分類平面進(jìn)行分類。確定恰當(dāng)?shù)暮撕瘮?shù),可以在不增加復(fù)雜度的前提下實(shí)現(xiàn)高維空間的線性分類。不同的核函數(shù),產(chǎn)生的最優(yōu)分類平面不同,產(chǎn)生的分類模型也不同。核函數(shù)的選擇是決定分類性能的重要因素之一。目前SVM中主要選用的四種核函數(shù)是:
線性核函數(shù)(Linear):該函數(shù)適合對(duì)低維空間的線性可分樣本進(jìn)行分類。主要優(yōu)點(diǎn)是復(fù)雜度低,缺點(diǎn)是但復(fù)雜特征條件下的樣本一般是低維空間線性不可分的,應(yīng)用范圍有限。
多項(xiàng)式核函數(shù)(Polynomial):多項(xiàng)式核函數(shù)主要針對(duì)低維空間線性不可分問題進(jìn)行分類。主要優(yōu)點(diǎn)是可以根據(jù)特征空間維數(shù)確定核函數(shù)維數(shù)。缺點(diǎn)是高維空間下計(jì)算復(fù)雜度高,效率低,分類器易受偏離較遠(yuǎn)的樣本影響。
徑向基核函數(shù)(RBF):徑向基核函數(shù)擁有較好的局部性能,對(duì)于距離較近的點(diǎn)分類效果較好,能夠有效降低誤漏報(bào)率。
Sigmoid核函數(shù):該函數(shù)與二層神經(jīng)網(wǎng)絡(luò)等效,優(yōu)點(diǎn)是全局收斂性好,缺點(diǎn)是存在局部極值問題。
根據(jù)上述核函數(shù)特點(diǎn),結(jié)合Web漏洞攻擊檢測實(shí)際,本文選用徑向基核函數(shù)作為核函數(shù)。原因如下:
Web攻擊種類較多,針對(duì)防護(hù)的變形復(fù)雜,具有特征維數(shù)大,樣本數(shù)量不一的特點(diǎn)。RBF函數(shù)不受樣本數(shù)量和特征維數(shù)限制,適用性強(qiáng)。
目前Web漏洞攻擊檢測技術(shù)中存在實(shí)時(shí)性差,泛化能力弱以及誤報(bào)率與漏報(bào)率難以同時(shí)降低的問題,不利于在高速復(fù)雜流量條件下開展Web攻擊檢測。
針對(duì)上述問題,本文研究基于流式處理的Web漏洞攻擊檢測技術(shù),通過研究基于Apriori算法的攻擊流量特征關(guān)聯(lián)分析技術(shù),結(jié)合人工分析,完成了攻擊流量特征挖掘;通過研究基于SVM的模型構(gòu)建技術(shù)與基于網(wǎng)格搜索與K折交叉驗(yàn)證的參數(shù)調(diào)優(yōu)技術(shù),完成了Web漏洞攻擊檢測模型構(gòu)建;通過將模型部署至流式處理平臺(tái),最終實(shí)現(xiàn)了基于流式處理平臺(tái)的Web漏洞攻擊檢測技術(shù)。經(jīng)實(shí)驗(yàn)驗(yàn)證,該技術(shù)能具備較強(qiáng)的實(shí)時(shí)檢測能力與一定的泛化能力,同時(shí)有效降低了誤報(bào)率與漏報(bào)率。
[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]溫凱.自適應(yīng)WEB入侵異常檢測技術(shù)的應(yīng)用研究[D].江西師范大學(xué),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的網(wǎng)絡(luò)流量特征降維與分類方法研究[D].吉林大學(xué),2017.