摘要: 針對現(xiàn)有基于過濾器、動態(tài)分析、靜態(tài)分析等的解決方案在檢測未知 XSS 攻擊方面效果不佳的問題,利用機器學習方法可高效檢測出未知 XSS 攻擊的特點,提出一種基于遺傳算法和支持向量機的XSS攻擊檢測模型.通過模糊測試生成XSS攻擊預樣本,利用遺傳算法搜索特征空間,迭代生成最優(yōu)測試用例,從而擴充數(shù)據(jù)集、豐富XSS攻擊向量庫.給出了基于遺傳算法和支持向量機的攻擊檢測模型,確定了XSS測試用例編碼規(guī)則.進行了適應度函數(shù)設計,完成了選擇算子、交叉算子、變異算子的設計.從準確率、召回率、誤報率和F1值來評價分類器的檢測效果,結果表明:該模型準確率達到了99.5%;對比其他檢測方法,該檢測模型具有更好的檢測效果,并且召回率和誤報率也有明顯改善.
關鍵詞: "跨站腳本攻擊; 模糊測試; 遺傳算法; 支持向量機; 特征向量化
中圖分類號: TP391.9文獻標志碼: "A文章編號: ""1671-7775(2024)06-0686-08
引文格式: "馬征,陳學斌,張國鵬,等. 基于遺傳算法和支持向量機的XSS攻擊檢測方法[J].江蘇大學學報(自然科學版),2024,45(6):686-693.
XSS attack detection method based on genetic algorithm
and support vector machine
MA Zheng1,2,3, CHEN Xuebin 1,2,3, ZHANG Guopeng 1,2,3, ZHAI Ran1,2,3
(1. College of Science, North China University of Science and Technology, Tangshan, Hebei 063210, China; 2. Hebei Key Laboratory of Data Science and Application, North China University of Science and Technology, Tangshan, Hebei 063210, China; 3. Tangshan Key Laboratory of Data Science, North China University of Science and Technology, Tangshan, Hebei 063210, China)
Abstract: To solve the poor performance problem of the existing solutions based on filters, dynamic analysis and static analysis in detecting unknown XSS attacks, the machine learning methods were used to efficiently detect unknown XSS attacks, and the XSS attack detection model was proposed based on genetic algorithm and support vector machine. The fuzzy testing was used to generate XSS attack pre samples, and the genetic algorithm was used to search the feature space. The optimal test cases were iteratively generate, and the dataset was expanded to enrich the XSS attack vector library. The attack detection model was proposed based on genetic algorithm and support vector machine, and the coding rules for XSS test cases were determined. The fitness function was designed, and the designs of selection operator, crossover operator and mutation operator were completed. The detection performance of the classifier was evaluated based on accuracy, recall, 1 positive rate and F1 score. The results show that the accuracy of the model can reach 99.5%. Compared with other detection methods, the proposed detection model has better detection performance with high recall rate and low 1 positive rate.
Key words: "cross site script attack; fuzzy testing; genetic algorithm; support vector machine; feature vectorization
Web應用中隱藏的大量漏洞容易造成隱私泄露,存在巨大的安全隱患.文獻[1]中提到由開放式Web應用程序安全項目(open Web application security project,OWASP)最新發(fā)布的“十大最關鍵的Web應用安全風險”中,Web應用漏洞每年給國民經(jīng)濟造成巨大損失,從而引起了諸多企業(yè)和組織對Web應用安全漏洞的關注.文獻 [2]根據(jù)巴科斯范式使用模塊化的方式來構造跨站腳本(cross site scripting,XSS)攻擊向量,并把輸出的向量映射到不同的攻擊向量類型.文獻[3]將通過xssed平臺爬取的XSS數(shù)據(jù)作為正樣例,無XSS攻擊的HTTP請求作為負樣例.傳統(tǒng)的模糊方法可以生成大量的XSS測試用例,但是存在很多不合語義的向量,只追求了數(shù)量卻降低了質(zhì)量,從而顯得效率低下.將遺傳算法引入,可以提高測試效率.傳統(tǒng)的遺傳算法存在的收斂緩慢、群體早熟等問題會導致局部最優(yōu)解,并且會產(chǎn)生不合語義的致死基因,因此將遺傳算法進行改進,目的就是應對網(wǎng)站的過濾機制,生成更多符合XSS檢測的測試用例.
跨站腳本是由于過濾不足而經(jīng)常出現(xiàn)在Web程序中的一類危險網(wǎng)絡安全漏洞.一般XSS漏洞分為3種:反射型XSS漏洞、存儲型XSS漏洞、DOM型XSS漏洞.反射型XSS漏洞指由攻擊者發(fā)送一個含有惡意代碼的URL鏈接給用戶,用戶通過點擊來向服務器傳遞信息,隨后得到響應界面.攻擊者利用漏洞進行釣魚攻擊并盜取用戶的Cookie.存儲型XSS漏洞指攻擊者將惡意代碼存取到數(shù)據(jù)庫中,當用戶訪問界面時,數(shù)據(jù)庫讀取惡意代碼并發(fā)送到服務器.相比反射型漏洞,存儲型漏洞更加持久,能夠不斷地執(zhí)行,一般存在某些博客、某些論壇的評論下.而DOM型XSS漏洞與反射型XSS漏洞很像,攻擊者給用戶發(fā)送一段包含惡意代碼的鏈接,用戶點擊從而瀏覽器讀取DOM文檔中的惡意代碼.
目前,XSS的檢測方法有很多,包括靜態(tài)檢測、動態(tài)檢測、機器學習檢測、深度學習檢測等.靜態(tài)檢測是通過自動檢測工具Fortify SCA、XSS Filter對網(wǎng)頁進行檢測,對網(wǎng)站的源代碼進行分析,判斷是否存在相應的漏洞.靜態(tài)檢測存在局限性,需要網(wǎng)頁提供相應的源代碼.動態(tài)檢測是模擬攻擊者攻擊,通過注入點提交攻擊腳本(也就是XSS攻擊向量),根據(jù)服務器端的響應來判斷是否存在漏洞.文獻[4]通過循環(huán)神經(jīng)網(wǎng)絡模擬攻擊的方式,根據(jù)流量的復雜性是否存在來識別XSS漏洞;但不足之處就是誤報率雖然降到很低,但檢測不充分.文獻[5]通過長短期記憶網(wǎng)絡(long shortterm memory, LSTM)深度學習算法自動化提取特征,從而進行識別.機器學習檢測目前被廣泛使用,歸因于利用模型檢測使得準確率大幅度提高,誤報率能夠大幅度降低.文獻[6]通過樸素貝葉斯和支持向量機來檢測XSS攻擊,結果表明,與樸素貝葉斯相比,支持向量機(support vector machine, SVM)選擇了將混淆代碼、域數(shù)、URL長度、重復的特殊字符等來分類XSS攻擊,取得了最佳性能.文獻[7]改進SVM分類器并優(yōu)化了特征提取方式,來檢測未知的和變形的XSS測試用例.文獻[8]引入TFIDF算法對XSS樣本進行特征向量化分析,采用單分類支持向量機計算一類樣本的數(shù)據(jù).文獻[9-10]選取了支持向量機中的徑向基核函數(shù),但特征數(shù)量過少,會使得模型檢測不充分.
遺傳算法能夠獲取局部最優(yōu)解,文獻[11]通過遺傳算法對數(shù)據(jù)集進行擴充,增加了反過濾規(guī)則來增大樣本數(shù)量,樣本數(shù)量過多,導致人工操作較多.文獻[11-12]采用自動化腳本識別XSS攻擊,不過有些XSS攻擊存儲在界面內(nèi)會識別不到,存在一定的漏報.隨著攻擊方式不斷增加,檢測的局限性越來越高,文中擬結合模糊測試,實現(xiàn)對XSS樣本的預收集,采用遺傳算法不斷地迭代,進行選擇、交叉和變異形成攻擊性更加全面的XSS攻擊向量庫,以提高XSS攻擊檢測的檢測效率,避免大量無效向量影響模型的檢測.最后通過支持向量機構建模型對XSS攻擊進行檢測,以證明新模型在檢測準確率方面的良好效果.
1數(shù)據(jù)預處理
1.1XSS樣本預生成
通過XSS filter evasion cheat sheet收集到XSS測試用例作為初始樣本.XSS filter evasion cheat sheet是由OWASP[1]組織發(fā)布的XSS過濾備忘單,它記錄了包括基于屬性、事件、HTML標簽、CSS、XML等各種類型的XSS測試用例,同時也考慮了XSS用例加前綴、字母變換大小寫、轉編碼等各種方式來繞過服務器端.XSS filter evasion cheat sheet涵蓋的測試用例見表1.
XSS測試用例作為攻擊向量可以分為基于屬性、基于事件、基于HTML標簽、基于CSS、基于XML等5類,表1只簡單列出幾例作為說明.由于構成XSS測試用例的數(shù)量眾多,顯得針對性不足,為了減少漏報率,提高檢測效率,將對XSS測試用例進行優(yōu)化,目的是提高XSS攻擊的針對性.XSS測試用例是一個不斷擴充的過程,通過遺傳算法優(yōu)化生成XSS測試用例,目的是生成更具有攻擊性的XSS測試用例.
隨著網(wǎng)站過濾的機能逐漸強大,部分XSS測試用例在低版本的瀏覽器能夠成功攻擊,在高版本的瀏覽器中會被過濾掉,文中將通過模糊測試的方法對無效的測試用例進行過濾,基于模糊測試和XSS測試集的XSS攻擊樣本生成流程見圖1.
模糊測試的步驟如下: ① 輸入初始XSS測試集(XSS filter evasion cheat sheet)作為模糊測試的測試用例; ② 模擬攻擊方式,將測試用例輸入至網(wǎng)站中并執(zhí)行操作; ③ 監(jiān)測攻擊結果,以是否有彈窗顯示來判斷是否進行了XSS攻擊,若判斷攻擊成功則保存XSS測試用例,作為XSS攻擊樣本,若攻擊失敗則遺棄; ④ 不斷重復步驟②③,直至XSS測試集中的測試用例全都檢測完畢,算法結束.
目標程序DVWA用來檢測Web應用是否安全,初始界面是一個具有留言簿的界面,如圖2a所示.通過輸入XSS測試用例,輸入到“message”下,提交后得到新界面,不斷輸入XSS測試用例,判斷瀏覽器是否彈出彈窗,彈窗如圖2b所示.若未出現(xiàn)彈窗則證明此XSS測試用例無效,若出現(xiàn)彈窗則證明此XSS測試用例攻擊有效,直至模糊測試結束,最終得到預生成的XSS攻擊樣本X.
1.2XSS攻擊樣本生成流程
訓練模型的目的就是更好地識別出XSS攻擊行為,由于XSS漏洞攻擊模式的多樣性,有必要從攻擊者的角度考慮如何生成有效的測試向量,因此需要考慮攻擊載荷的構造,通過遺傳算法來生成更加有效的攻擊向量,進而通過定義的變異規(guī)則,能夠豐富XSS攻擊向量庫.通過優(yōu)化的XSS攻擊向量庫能夠更加有效地識別XSS攻擊行為.
遺傳算法是一種最優(yōu)化的搜索算法,目的就是尋找最優(yōu)解.算法流程如下: ① 初始化種群; ② 計算每一個種群中個體適應度的值; ③ 根據(jù)適應度的值選擇合適的算法進行選擇、交叉、變異; ④ 不斷進行迭代,直到達到所設定的閾值.
傳統(tǒng)的遺傳算法通過一系列的選擇、交叉和變異操作形成新的個體,通過迭代不斷朝向適應度大的方向搜索,能夠控制指引方向,不斷趨于最優(yōu)化從而找到全局最優(yōu)解.由于算法本身的缺陷,有時會陷入局部最優(yōu),不能得到全局最優(yōu)解,因此選擇改進遺傳算法,文中新增了精英策略[7],適應度最大值的個體不再進行選擇、交叉和變異操作,直接放入下一代中,再進行一系列的操作.對遺傳算法的變異操作中產(chǎn)生的致死基因(不符合HTML語義構造)進行新的變異操作.文中提出的基于遺傳算法的XSS優(yōu)化測試用例流程圖見圖3.
改進后的遺傳算法即存儲型XSS攻擊樣本生成算法,其輸入的各個參數(shù)包括種群大小、染色體的長度、交叉概率、變異概率和迭代次數(shù).其步驟如下:
1) 編碼,根據(jù)XSS測試用例確定合適的編碼規(guī)則,根據(jù)Onehot編碼把表現(xiàn)型轉換成計算機能夠識別的基因型.
2) 根據(jù)編碼規(guī)則,分為4個初始種群,4個種群之間互不交叉.
3) 根據(jù)適應度函數(shù),計算種群中個體適應度值.
4) 精英策略,適應度最大的值不進行選擇、交叉和變異,直接保留到下一代.
5) 根據(jù)不同種群,選取單點交叉或多點交叉的方式,生成一個隨機數(shù)對2個父代進行交叉.
6) 基本位變異,由變異概率來判斷種群中個體是否變異.
7) 修復,判斷編譯后的個體是否滿足HTML語義,對不滿足的采用改進變異方法,生成新的個體.
8) 判斷是否滿足停止條件,若不滿足重復步驟3)到步驟7),滿足則輸出結果.
9) 解碼,把基因型個體轉換成表現(xiàn)型,最終形成XSS攻擊樣本.
最終生成XSS攻擊樣本為X={X1,X2,…,Xn}.
1.3安全向量生成器
生成的安全向量保持在128個字符之內(nèi),其中的類型包括: ① 僅包含大寫或小寫的字符串; ② 包含所有字母和數(shù)字的字符串; ③ 包含所有字母、數(shù)字和特殊字符的字符串.
生成的安全向量取決于XSS攻擊向量的個數(shù),用來保持XSS和數(shù)據(jù)集安全樣本之間的平衡,平衡的數(shù)據(jù)集用于訓練和測試模型.安全向量生成器見圖4.
2基于遺傳算法和支持向量機的攻擊檢測模型
2.1XSS測試用例編碼規(guī)則
求解問題需要用到表現(xiàn)型,編碼將表現(xiàn)型轉換成基因型,基因序列能夠被遺傳算法識別,最終解碼再把基因型轉換為表現(xiàn)型,得到問題所求解.
文中采用Onehot編碼,采取二進制串特征對XSS測試用例進行編碼,根據(jù)不同的攻擊特征信息,為了盡可能地擴充XSS攻擊樣本,將模糊測試得到的XSS測試用例分為4個種群.4個種群的個體互不影響,構造特征如下: ① 種群1(直接攻擊),攻擊向量包括“特殊字符(3位)+頭標簽(4位)+X攻擊代碼(6位)+攻擊代碼(3位)+尾標簽(3位)”,編碼共19位; ② 種群2(基于屬性),攻擊向量包括“頭標簽(4位)+屬性(3位)+屬性值(6位)+尾標簽(3位)”,編碼共16位; ③ 種群3(基于事件),攻擊向量包括“頭標簽(4位)+事件(6位)+攻擊代碼(3位)+尾標簽(6位)”,編碼共19位; ④ 種群4(基于屬性和事件),攻擊向量包括“特殊字符(4位)+頭標簽(4位)+屬性(6位)+攻擊事件(5位)+攻擊代碼(5位)+尾標簽(4位)”,編碼共28位.
特殊字符如下:lt;,,/,’,”,#,@,*,=,:,;,?.
頭標簽如下:lt;scriptgt;、lt;SCRIPTgt;、lt;scriptx2Fgt;、lt;scriptx00gt;、lt;videogt;、lt;tablegt;、lt;imggt;、lt;imagegt;、lt;scriptgt;、lt;script/、lt;scriptx20、lt;scriptx3E、lt;scriptx0D、lt;scriptx2Fgt;、lt;IFRAMEgt;、input、video、IMG、BODY、body、HTML、iframe、marquee、style、svg、applet、xml、image、img、video、audio、body、object、script、IFRAME、IMG.
屬性如下:poster、background、src、herf、id、SRC、type.
屬性值如下:data:alert(1)、fuzzelement1、javascript:javascript:alert(1)、javascript:alert(1)、javascriptx3Ajavascript:alert(1)、javasx0Ccript:javascript:alert(1)、data:xD4x8F、javascript:alert(′XSS′)、 javascript:alert(1).
事件如下:onfocus、onblur、onerror、onmouseover、onError、onPageHide、onkeydown、onStart、onunload、onPropertyChange、onMouseDown、onResize、onload.
X攻擊代碼如下:x2A,x2E,x0B,x0D,x21,x9F,xE2,x00,x81,x8E,x20,x80,x88,xE3,x84,xAF.
攻擊代碼如下:alert(1),alert(xss),alert(document.cookie),javascript:alert(1)、javascript:alert(1)、alert(′XSS′)、javascript:javascript:alert(1).
尾標簽如下:lt;/scriptgt;,lt;/SCRIPTgt;,lt;/scriptx0Dgt;、video、audio、img、body、image、object、script、IFRAME、autofocus、source、title、xml、iframe、frameset、marquee、style、svg、gt;testlt;/agt;、gt;lt;/scriptgt;、lt;/scriptgt;、gt;lt;/IFRAMEgt;.
XSS攻擊特征編碼如表2所示.
2.2適應度函數(shù)設計
針對XSS攻擊樣本數(shù)據(jù)集,有越多的攻擊特征組合說明攻擊效果越好.從XSS攻擊樣本中選取攻擊特征,進行特征劃分,并量綱一化處理,得到攻擊特征庫M,集合M中包含n個攻擊特征m1,m2,…,mn.計算每個特征庫中個體在XSS攻擊樣本中出現(xiàn)的概率φmi,并把每個XSS測試用例中各個攻擊特征出現(xiàn)概率之和的平均值D作為當前攻擊樣本的相似度,取n次迭代的平均值為最后的攻擊樣本相似度p,計算公式為
D=1n∑ni=1φmi,(1)
p=1n∑ni=1φmilogtT.(2)
2.3遺傳算子的設計
2.3.1選擇算子
選擇的前提條件是計算測試用例的攻擊樣本相似度,根據(jù)樣本相似度值計算適應度.按照適應度值大小對攻擊樣本進行排序,適應度值大可以作為父代個體,可以遺傳到下一代,進行交叉、變異操作.通過選擇操作,保留優(yōu)秀基因不斷朝著適應度大的方向搜索.
文中采用了精英策略,通過保留當前種群中適應度最大的個體,不對它進行交叉和變異操作而是直接復制到下一代中,在加速算法進行的同時還能夠減小誤差.在迭代的過程中,不斷積累優(yōu)秀的XSS攻擊特征,不斷趨于最優(yōu)值.采用輪盤賭原則,根據(jù)概率大小實現(xiàn)隨機選擇,但適應度值越大的攻擊個體越容易被選擇.
2.3.2交叉算子
遺傳算法模仿生物進化過程,將選擇的2個父代染色體通過基因重組和交配產(chǎn)生新染色體,新個體具有更多攻擊特征,形成的新個體增加了遺傳算法的搜索空間,加強了全局搜索能力.文中將根據(jù)各個種群的特點,采用單點交叉的方式,按照交叉概率決定2個個體是否進行交叉操作.隨機選擇一個交叉點,將交叉點前面的內(nèi)容進行交換.例如:parent1為101|0000101000000000;parent2為100|0001101000001001.經(jīng)單點交叉得:child1為1000000101000000000;child2為1010001101000001001.
2.3.3變異算子
在Web應用安全中,未能對用戶輸入的內(nèi)容進行充足過濾導致漏洞的生成.應站在攻擊者的角度,需要對輸入內(nèi)容進行一系列的變形,才能繞過服務器端的過濾.通過引入遺傳算法中變異操作,實現(xiàn)優(yōu)秀基因的生成.傳統(tǒng)遺傳算法的變異操作,只是把基因位由0變到1,由1變到0,應用在XSS攻擊樣本生成上,變異后形成的新個體會存在致死基因,新個體不符合HTML語義.因此,對那些不滿足HTML語義的變異個體進行修補操作,變異的形式見表3.在變異時按照變異概率進行按位取反,例如:child1為1000000|1|01000000000;child1*為1000000001000000000.
2.4SVM分類器的設計
根據(jù)機器學習的思想,對遺傳算法生成的XSS攻擊樣本和安全向量生成器生成的白樣本采用數(shù)學統(tǒng)計和人工挑選的方式進行特征選取.XSS有效載荷比正常有效載荷長度更長,其中包含了惡意代碼,因此敏感詞、敏感字符和有效載荷的長度是識別XSS的重要因素.XSS有效載荷可能會利用重定向鏈接,將惡意代碼隱藏在重定向界面里,通過識別重定向鏈接來跳轉并執(zhí)行惡意代碼,一些協(xié)議可能會出現(xiàn)在一個負載中.XSS有效載荷包含7個維度:URL的長度(用戶請求輸入的字符數(shù))、HTTP(包含http和https)的個數(shù)、特殊關鍵詞(包含http和https)、閉合敏感符號(lt;gt;/*:amp;#等字符)數(shù)量、空格字符(空格)數(shù)量、大寫字母(包含[A-Z]的字符)數(shù)量、數(shù)字字符(阿拉伯數(shù)字0-9,攻擊樣本作為黑樣本,打標記為1,安全樣本作為白樣本,打標記為0)數(shù)量.
SVM根據(jù)線性函數(shù)是否被完全分開來定義樣本值是非線性可分還是線性可分,線性可分可通過直線或平面進行分割,如圖5所示.這樣的直線或平面有無數(shù)條,最優(yōu)分類能使得2類樣本正確分開,且間隔足夠大.
ωx+b=0(ω∈Rn,b∈R)(3)
表示.擴展到n維空間,SVM通過搜索最佳超平面把非線性可分轉換為線性可分,最終由尋找最優(yōu)超平面中邊界最大值轉化成求解被約束的最優(yōu)化問題.表達式為
minω,b12‖ω‖2+C∑Ni=1εi,
s.t.yi(ω·(xi)+b)≥1-εi,εi≥0,i=1,2,…,N,(4)
式中:C為懲罰因子,表示離群點的重視因子;εi為松弛變量,能夠?qū)颖居成涞礁呔S空間從而解決非線性可分問題.
常用的4種核函數(shù)包括: ① 線性核函數(shù)K(x,y)=xy; ② 多項式核函數(shù)K(x,y)=[(x,y)+1]d; ③ 徑向基函數(shù)K(x,y)=exp-|x-y|2d2; ④ 二層神經(jīng)網(wǎng)絡核函數(shù)K(x,y)=tanh(a(x,y)+b).
文中選取的特征維度為7維,采用高維度下性能良好的徑向基函數(shù)將樣本集升至高維空間,表達式為
K(x,y)=exp-|x-y|2d2.(5)
SVM把單個問題分解為多個二分類問題,最終得到一組判決次數(shù)最多的,將作為樣本分類的最后結果.
3試驗與結果分析
3.1試驗環(huán)境
為了驗證基于遺傳算法和支持向量機的攻擊檢測模型有效,設計了試驗進行驗證,試驗環(huán)境如下:操作系統(tǒng)為Windows10/64位;處理器為Intel(R) Core(TM) i710750H;內(nèi)存為16 GB;編程語言為Python3.9.
3.2試驗參數(shù)與結果分析
本遺傳算法實現(xiàn)采用的參數(shù)如下:種群規(guī)模為2 000個;交叉概率為0.8;變異概率為0.04;最大迭代次數(shù)為200次.
圖6給出了XSS攻擊樣本和安全樣本的特征分布情況,為了平衡數(shù)據(jù)集,安全樣本的數(shù)量保持和攻擊樣本的數(shù)量一樣.
XSS攻擊樣本和正常樣本合并,將60%作為訓練樣本,剩余40%作為測試樣本.本試驗引入準確率P、召回率R、誤報率FAL和F1值4個評價指標評價SVM分類器的效果.
準確率表示分類的準確度,表達式為
P=TP+TNTP+TN+FN+FP;(6)
召回率為預測為正的正樣本占總正樣本的比例,表達式為
R=TPTP+FN ;(7)
誤報率為預測為正的負樣本占總負樣本的比例,表達式為
FAL=FPTN+FP;(8)
F1值是召回率與精確率的一個均和調(diào)值,是對召回率與精確率的一個綜合評價,表達式為
F1=2P·RP+R ,(9)
式中:TP是預測為正樣本的正樣本數(shù)量;TN是預測為負樣本的負樣本數(shù)量;FN是預測為負樣本的正樣本數(shù)量;FP是預測為正樣本的負樣本數(shù)量.
文中利用傳統(tǒng)的檢測方法XSS Filter、隨機森林、SVM分類器進行對比,采用柱狀圖的形式直觀比較3者在準確率、召回率和誤報率上的表現(xiàn),圖7-8給出了對比結果.
從圖7可見在準確率和召回率上SVM分類器和隨機森林明顯高于XSS Filter,可以明顯看出隨機森林的誤報率達到最高,這是由于負樣本被正確分類的比例不夠高造成的.可見,SVM分類器在優(yōu)化XSS攻擊向量庫的檢測上效果能達到最好.
文中采用遺傳算法優(yōu)化的XSS攻擊向量庫作為SVM分類器的數(shù)據(jù)集,通過文獻[10]僅在各個網(wǎng)站收集得到的XSS測試用例和文獻[11]對普通XSS樣本進行變形得到的XSS測試用例進行對比,結合準確率、召回率和誤報率3個指標來評測文中提出經(jīng)遺傳算法優(yōu)化的XSS攻擊向量庫.
所提出的基于遺傳算法優(yōu)化得到的XSS攻擊向量庫提高了XSS測試用例攻擊的有效性,避免對其他無效向量進行多余檢測,因為檢測效率的提高,XSS對測試用例檢測的準確率得到了提升;另外文中提出的安全向量生成器在數(shù)量上與XSS攻擊樣本保持一致,一個好的檢測模型不僅能夠檢測出XSS攻擊向量,還能識別出用戶輸入的合法向量,在準確率上高于文獻[9]和文獻[10].由圖8可見,文獻[9]誤報率最低,改進SVM分類器能夠降低誤報率,優(yōu)化特征向量使得負樣本被正確分類的比例上升.圖9給出了文中基于遺傳算法和支持向量機的XSS攻擊檢測模型和基于深度學習的DCNNGRU模型[4]的評價指標對比.
由圖9可見,2個模型的準確率都穩(wěn)定在99.5%左右,但是文中模型召回率高了0.12,F(xiàn)1值高了0.08.
4結論
1) 文中提出基于遺傳算法與支持向量機的XSS檢測模型,通過模糊測試收集漏洞庫用例,利用遺傳算法優(yōu)化生成均衡的XSS攻擊向量庫,以解決傳統(tǒng)XSS檢測器的冗余與數(shù)據(jù)集不平衡問題.
2) 文中提出的基于遺傳算法和支持向量機的XSS攻擊檢測模型在數(shù)據(jù)集上使XSS測試用例更具有針對性,去除了很多冗余的數(shù)據(jù),明顯縮短了訓練時間,提高了檢測效率;與支持向量機與隨機森林相比,XSSFilter準確率、召回率是最高的;文中模型與基于深度學習的DCNNGRU模型對比,準確率都達到了較高的99.5%,但文中模型召回率和F1值略高.
3) 試驗驗證了SVM分類器在準確率上的提升很大,但是誤報率還存在不足.未來將開發(fā)有監(jiān)督的集成機器學習,目前的分類方法都是單個分類器的,集成方法的性能優(yōu)于單個分類器,從而進一步提升準確率、降低誤報率.
參考文獻(References)
[1]KORAC' D, DAMJANOVIC' B, SIMIC' D, et al. A hybrid XSS attack (HYXSSA) based on fusion approach: challenges, threats and implications in cybersecurity[J]. Journal of King Saud UniversityComputer and Information Sciences,2022,34:9284-9300.
[2]馮亦彤.基于攻擊向量自動生成的XSS漏洞檢測系統(tǒng)的研究與設計[D].北京:北京郵電大學,2019.
[3]許丹丹,徐洋,張思聰,等.基于DCNNGRU模型的XSS攻擊檢測方法[J].計算機應用與軟件,2022,39(2):324-329.
XU D D, XU Y, ZHANG S C, et al. XSS attack detection method based on DCNNGRU model[J]. Computer Applications and Software, 2022,39(2):324-329.(in Chinese)
[4]朱思猛,杜瑞穎,陳晶,等.基于循環(huán)神經(jīng)網(wǎng)絡的Web應用防火墻加固方案[J].計算機工程,2022,48(11):120-126.
ZHU S M, DU R Y, CHEN J, et al. Web application firewall reinforcement scheme based on recurrent neural network[J]. Computer Engineering, 2022,48(11):120-126.(in Chinese)
[5]丁雪川,張偉峰,方菽蘭,等.基于深度學習的跨站腳本攻擊檢測[J].技術與市場,2022,29(3):112-113.
DING X C, ZHANG W F, FANG S L, et al. Crosssite scripting attack detection based on deep learning[J]. Technology and Market, 2022,29(3):112-113.(in Chinese)
[6]THAJEEL I K, SAMSUDIN K, HASHIM S J, et al. Machine and deep learningbased XSS detection approaches: a systematic literature review[J]. Journal of King Saud UniversityComputer and Information Sciences, DOI: 10.1016/j.jksuci.2023.101628.
[7]MARASHDIH A W, ZAABA Z F, SUWAIS K, et al. Web application security: an investigation on static analysis with other algorithms to detect cross site scripting[J]. Procedia Computer Science, 2019,161:1173-1181.
[8]顧兆軍,李志平,張禮哲. 基于單分類支持向量機的XSS攻擊檢測研究[J]. 計算機應用與軟件, 2021,38(6):299-305.
GU Z J, LI Z P, ZHANG L Z. XSS attack detection based on OCSVM[J]. Computer Applications and Software, 2021,38(6):299-305.(in Chinese)
[9]趙澄,陳君新,姚明海. 基于SVM分類器的XSS攻擊檢測技術[J]. 計算機科學, 2018,45(11A):356-360.
ZHAO C, CHEN J X, YAO M H. XSS attack detection technology based on SVM classifier[J]. Computer Science, 2018, 45(11A):356-360.(in Chinese)
[10]KAUR G, PANDE B, BHARDWAJ A, et al.Efficient yet robust elimination of XSS attack vectors from HTML5 web applications hosted on OSNbased cloud platforms[J]. Procedia Computer Science, 2018,125:669-675.
[11]ABU ALHAIJA Q. Costeffective detection system of crosssite scripting attacks using hybrid learning approach[J]. Results in Engineering, DOI: 10.1016/j.rineng.2023.101266.
[12]MARASHDIH A W, ZAABA Z F, SUWAIS K. Predicting input validation vulnerabilities based on minimal SSA features and machine learning[J]. Journal of King Saud UniversityComputer and Information Sciences, 2022,34(10PB):9311-9331.
(責任編輯梁家峰)
收稿日期: ""2022-10-27
基金項目: "國家自然科學基金資助項目(U20A20179)
作者簡介: "馬征(1997—),男,河北唐山人,碩士研究生(745559283@qq.com),主要從事網(wǎng)絡安全、隱私保護等研究.
陳學斌(1970—),男,河北唐山人,教授(chxb@qq.com),主要從事大數(shù)據(jù)安全、物聯(lián)網(wǎng)安全、網(wǎng)絡安全等研究.