張娜
(陜西電子信息職業(yè)技術(shù)學(xué)院,信息工程系,陜西,西安 710500)
用戶多數(shù)通過部署防火墻[1]來維護網(wǎng)絡(luò)安全,但伴隨惡意攻擊技術(shù)的發(fā)展和互聯(lián)網(wǎng)應(yīng)用普及,防火墻策略對很多攻擊不再具備防御能力,其中就包括跨站腳本(XSS)攻擊[2]。XSS攻擊擁有擴散能力,且隱蔽性強,會給用戶帶來極大的網(wǎng)絡(luò)安全隱患。為營造健康的網(wǎng)絡(luò)環(huán)境,降低黑客攻擊成功的概率,通過入侵檢測系統(tǒng)監(jiān)測網(wǎng)絡(luò)及系統(tǒng)運行狀態(tài)[3],最大限度挖掘各類攻擊行為,確保網(wǎng)絡(luò)系統(tǒng)資源的保密性、完整性與可用性。
面向攻擊入侵檢測問題,何發(fā)鎂等[4]提出了一種按照特征分組進行聚類的方法,調(diào)整聚類參數(shù)保存特征分組差異信息,運用決策樹方法劃分降維數(shù)據(jù)入侵類別,但該方法沒有考慮Web實時數(shù)據(jù)流量的變化情況,導(dǎo)致檢測結(jié)果精度不高;汪洋等[5]通過深度信念網(wǎng)絡(luò)訓(xùn)練歷史數(shù)據(jù),提取并降維歷史數(shù)據(jù)特征,使用加權(quán)序列核極限學(xué)習(xí)機方法實現(xiàn)攻擊入侵評估,但該方法在攻擊模式匹配過程中的耗時較長,輸出結(jié)果的實時性較差,極易造成XSS攻擊事態(tài)的進一步擴大。
綜合上述分析,本文提出了面向XSS攻擊的惡意軟件Web入侵檢測技術(shù),包括入侵檢測模塊、日志數(shù)據(jù)庫服務(wù)器模塊和日志分析控制臺模塊,使用蟻群聚類算法優(yōu)化技術(shù)檢測精度,提取XSS攻擊特征數(shù)據(jù),最終以圖表形式將入侵檢測結(jié)果呈現(xiàn)給網(wǎng)絡(luò)用戶。
眾多Web攻擊方法中,出現(xiàn)最多的是XSS攻擊,危害性很強,會令用戶蒙受巨大損失。Web程序受到XSS攻擊后,后臺管理人員需要手動分析Web日志儲存的攻擊信息,觀察是否產(chǎn)生入侵行為[6],但此方式耗費了大量人力物力,且工作人員要具有相應(yīng)的Web安全知識,入侵檢測效率較低。針對XSS攻擊,本文研究了一個惡意軟件Web入侵檢測技術(shù),該技術(shù)包含入侵檢測、日志數(shù)據(jù)庫服務(wù)器與日志分析控制臺3個模塊,可自主實現(xiàn)日志安全解析與告警。
入侵檢測模塊是技術(shù)最為關(guān)鍵的部分,其性能優(yōu)劣直接影響入侵檢測精準度[7]。其檢測過程如圖1所示。首先連接后臺數(shù)據(jù)庫,得到日志與攻擊向量數(shù)據(jù)庫的信息,提取日志數(shù)據(jù)和若干個攻擊矢量值匹配模式[8],匹配成功代表技術(shù)內(nèi)遭受入侵行為,匹配失敗就繼續(xù)提取日志信息實施字符串匹配,直至日志信息匹配完成為止。
圖1 XSS攻擊檢測過程示意圖
在技術(shù)方案確定的前提下,設(shè)計基于蟻群聚類的Web入侵檢測算法,將算法引入技術(shù)中進行訓(xùn)練,進一步優(yōu)化入侵檢測技術(shù)的檢測效率和精準度。
假設(shè)樣本集合X={Xi|Xi=(xi1,xi2,…,xim)}內(nèi)具備n個樣本,其中樣本Xi為m維向量,樣本集內(nèi)包含k個分類模式。聚類就是尋找一個分割標準C,讓類內(nèi)離散度總和為最小,如式(1):
(1)
式(1)中,d(Xi,mj)代表Cj類內(nèi)樣本Xi到達類中心mj的歐氏距離。
蟻群聚類算法內(nèi),樣本Xi抵達聚類中心mj的歐式距離是d(i,j),將啟發(fā)函數(shù)設(shè)置為η(i,j)=1/d(i,j)。樣本Xi與聚類中心mj之間的信息素是τ(i,j),τ(i,j)存在于樣本與S聚類中心之間,信息素的目標函數(shù)是式(1)中的F最小值。螞蟻搜尋樣本所屬聚類中心的概率解析式為
(2)
式(2)中,s表示聚類中心。
任意挑選k個樣本點作為原始聚類中心,螞蟻搜尋全部樣本空間之后獲得聚類結(jié)果,聚類中心mj的分量值是類Cj內(nèi)樣本所有屬性的平均值,將聚類中心計算公式記作:
(3)
螞蟻α任意挑選一個樣本Xi為初始點,根據(jù)式(2)推算此樣本挑選每個聚類中心的概率pij,憑借pij獲得所屬的聚類r,樣本Xi被歸類至Cr后,螞蟻重新選擇樣本反復(fù)執(zhí)行以上操作。
在搜尋全部樣本空間后構(gòu)成一個最終解。將信息素的更新過程描述為
τij(t+n)=ρ×τij(t)+Δτij
(4)
式(4)中,τij(t)表示t時段i、j之間的信息素濃度,ρ表示信息素揮發(fā)水平,Δτij表示信息素增量,Q表示信息素強度的增強值。
為了進一步提高蟻群聚類算法的應(yīng)用優(yōu)勢,避免產(chǎn)生停滯和過早收斂最優(yōu)解的現(xiàn)象,因此改進式(2)提高蟻群搜索的隨機性得到最優(yōu)解,改進后的公式為
(5)
式(5)中,p表示一個處于區(qū)間[0,1]的隨機值,p0表示預(yù)先設(shè)置的參變量,利用動態(tài)改變算法進行數(shù)值擇取。
改進蟻群聚類算法后,入侵檢測過程如下。
第一步,設(shè)置參變量的原始值,螞蟻數(shù)量為m,最高進化代數(shù)是Nc。
第二步,初始化k個聚類中心,任意挑選若干樣本為原始聚類中心,推算樣本至各個聚類中心的間距d(i,j)和啟發(fā)函數(shù)η(i,j)。
第三步,螞蟻憑借改進算法明確樣本所屬的類,推導(dǎo)出目標函數(shù)F的數(shù)值,使用式(1)得到各樣本至聚類中心的距離總和。
第四步,對比m只螞蟻求解的目標函數(shù)值,更新全局信息素。
第五步,聚類結(jié)束后,把全部聚類結(jié)果根據(jù)自身涵蓋的實例個數(shù)高低實施排序。設(shè)定異常臨界值是u,對小于u的聚類簇認定是正常行為,反之為異常入侵行為,實現(xiàn)XSS攻擊入侵檢測任務(wù)。
日志數(shù)據(jù)庫服務(wù)器模塊關(guān)鍵是將采集的日志信息傳輸至關(guān)系數(shù)據(jù)庫。所提出技術(shù)的入侵檢測模塊涵蓋形式多樣的日志報警模式,把日志信息保存在文本文件內(nèi),無需利用關(guān)系數(shù)據(jù)庫,但在關(guān)系數(shù)據(jù)庫內(nèi)儲存日志是有效保管大量報警信息最直接的方式,使用數(shù)據(jù)庫完成復(fù)雜的搜索行為。關(guān)系數(shù)據(jù)庫中,將數(shù)據(jù)從來源端通過抽取、變換、轉(zhuǎn)載到目的端的流程統(tǒng)一被稱作數(shù)據(jù)倉庫技術(shù),這是一種完成異構(gòu)數(shù)據(jù)源集中存儲與管理的策略,把分布于不同地理方位、不同應(yīng)用技術(shù)的數(shù)據(jù)采集到中間層,最終加載到數(shù)據(jù)庫,變換過程如圖2所示。
圖2 數(shù)據(jù)倉庫技術(shù)體系架構(gòu)
開啟MySQL服務(wù),并進入命令行狀態(tài),建立保存入侵檢測技術(shù)日志的信息庫和數(shù)據(jù)表格。從技術(shù)危險防范角度出發(fā),需要建立一個新用戶用來連接日志數(shù)據(jù)庫、查找與更新日志信息。
日志分析控制臺模塊內(nèi)涵蓋日志數(shù)據(jù)庫接口、分析控制臺、圖表化顯示窗口。數(shù)據(jù)庫接口可從日志數(shù)據(jù)庫內(nèi)獲取日志信息,按照被分析程序語言的差異,日志分析策略也各有不同。日志分析表示程序輸出的每一行運行時,日志探尋源代碼內(nèi)輸出的日志點,日志點是日志語句。在入侵檢測技術(shù)中,通常在一個全局共享的日志類實例內(nèi)調(diào)用各級別的日志來輸出技術(shù)狀態(tài)信息。日志點輸出數(shù)據(jù)通過字符串拼接策略組成。
分析控制臺按照事先預(yù)設(shè)的規(guī)則抽取日志核心字段,把非結(jié)構(gòu)化日志變換為結(jié)構(gòu)化信息,抽取核心字段的優(yōu)勢是可以對重要字段實施統(tǒng)計分析。分析控制臺中具備常見日志的解析規(guī)則,用戶利用后臺或Web頁面的解析原則得到關(guān)鍵字段,明確日志內(nèi)隱含的關(guān)鍵內(nèi)容,最終利用圖表化顯示工具把檢測結(jié)果呈現(xiàn)給用戶。
利用以上過程完成技術(shù)配置后,將技術(shù)安設(shè)于網(wǎng)絡(luò)服務(wù)器中,完成對XSS惡意攻擊的信息監(jiān)控與分析。
對本文技術(shù)進行仿真測試分析,證明所提方法的可靠性與真實性。測試平臺為MATLAB,將文獻[4]分組聚類法和文獻[5]極限學(xué)習(xí)法與本文方法進行比較。
測試過程中,把DVWA漏洞軟件安裝在Web服務(wù)器中,對后臺服務(wù)器實施爬蟲攻擊獲得仿真模擬用戶數(shù)據(jù)集,采用滲透工具XSpear進行惡意用戶的XSS攻擊,從中獲取XSS攻擊數(shù)據(jù),正常樣本從Web服務(wù)器日志中提取。將模擬獲得的測試數(shù)據(jù)記作表1。
表1 測試數(shù)據(jù)集內(nèi)容
入侵檢測的實質(zhì)就是一個分類正常數(shù)據(jù)與異常數(shù)據(jù)的過程,實施入侵檢測技術(shù)性能分析時,把入侵檢測方法的性能等同于分類器性能,也就是利用分類器的評價標準完成本文入侵檢測技術(shù)性能優(yōu)劣評估。設(shè)定檢測率與誤報率2個評估指標來展現(xiàn)方法的有效性,檢測率表示檢測到異常數(shù)據(jù)時,方法能準確檢測出來的幾率,誤報率表示將正常數(shù)據(jù)當(dāng)作異常數(shù)據(jù)的幾率。
2個指標計算過程分別為
(6)
(7)
式(6)~式(7)中,TN表示樣本為負,被預(yù)測成負類,FP表示樣本為正,被預(yù)測為負,FN表示樣本為負,被預(yù)測為正類。
除上述2個指標,也要考慮入侵檢測技術(shù)的負載均衡水平,負載均衡百分比越大,表明入侵檢測技術(shù)處理網(wǎng)絡(luò)數(shù)據(jù)的能力越強,技術(shù)整體的靈活性與實用性越好。負載均衡測試使用麻省理工學(xué)院林肯實驗室研發(fā)的入侵檢測技術(shù)測試離線數(shù)據(jù),挑選含有20 000次攻擊的網(wǎng)絡(luò)數(shù)據(jù),通過TcprePlay軟件提取高速網(wǎng)絡(luò)背景流量,流量高達15 Gbps。
融合XSS攻擊的測試數(shù)據(jù)和正常數(shù)據(jù)作為檢測數(shù)據(jù)集,測試前針對各類攻擊的信息均為已知的。在相同測試環(huán)境下,3種方法入侵檢測率結(jié)果如圖3所示。
圖3 檢測率仿真結(jié)果比較
從圖3可知,測試初期,3種方法的檢測率結(jié)果基本一致,但隨著測試次數(shù)增多,檢測結(jié)果產(chǎn)生巨大差異。與2種文獻方法相比,本文方法始終維持較高的信息素增量,證明本文技術(shù)方案是成功的,能夠有效感知XSS攻擊特點并完成入侵檢測。這是因為本文方法細致劃分了技術(shù)功能板塊,構(gòu)建攻擊向量數(shù)據(jù)庫,進一步提升了入侵檢測全局檢測精度。
3種方法入侵檢測誤報率比較如圖4所示。觀察圖4可知,本文方法信息素濃度處于5%以下,檢測誤報率極低,而另2個文獻方法入侵檢測誤報率數(shù)值起伏較大,最終穩(wěn)定于6%和11%左右。這是由于所提技術(shù)利用蟻群聚類算法有效提取并歸類攻擊類型相似特征,極大地提高了數(shù)據(jù)集異常數(shù)據(jù)診斷的精準度。
負載均衡測試中,使用5臺機器分流,每臺機器的檢測引擎大約接收60~300 M/s的數(shù)據(jù)包。隨機挑選1臺檢測引擎為測試系統(tǒng),為系統(tǒng)傳輸穩(wěn)定的網(wǎng)絡(luò)流量,檢測3種方法遭受XSS攻擊下的負載均衡能力,結(jié)果如圖5所示。
圖5 3種入侵檢測方法的負載均衡對比
從圖5可知,伴隨數(shù)據(jù)流量的增多,出現(xiàn)XSS攻擊時,本文方法負載均衡度比較平穩(wěn),而另2個文獻方法負載均衡度出現(xiàn)明顯下滑,無法在遭受攻擊時完成相應(yīng)入侵檢測計算。這是由于本文技術(shù)在日志數(shù)據(jù)庫服務(wù)器模塊中使用了數(shù)據(jù)倉庫技術(shù),在計算攻擊活動時能夠進行更為細致的優(yōu)化,大幅提高技術(shù)信息處理能力。
為了充分研究當(dāng)前XSS攻擊對Web應(yīng)用的安全風(fēng)險,為有效抵抗惡意攻擊,本文設(shè)計了一種面向XSS攻擊的惡意軟件Web入侵檢測技術(shù)。通過仿真測試分析,證明所提技術(shù)能有效解決抵御內(nèi)部攻擊過程中存在的缺陷,具備操作簡便、檢測精準等特點,給網(wǎng)絡(luò)管理人員帶來了極大便利,可在最短的時間內(nèi)對攻擊行為做出相應(yīng)判斷與處理,實用性極強。