摘" 要: 前端組件涉及多個(gè)數(shù)據(jù)流,包括用戶輸入、服務(wù)器返回的數(shù)據(jù)等,惡意腳本會(huì)隱藏在這些數(shù)據(jù)流中,且跨站腳本攻擊存在變異性和不確定性,導(dǎo)致對(duì)其檢測(cè)困難。因此,提出一種Web前端組件中的跨站腳本攻擊檢測(cè)算法。使用基于網(wǎng)絡(luò)爬蟲的Web前端組件跨站腳本信息抓取模型,抓取不重復(fù)冗余的Web前端組件跨站腳本信息;再將所抓取的腳本信息作為多分類支持向量機(jī)算法的訓(xùn)練樣本。檢測(cè)之前,在權(quán)威Web漏洞提交平臺(tái)Exploit?db中,提取大規(guī)模變形跨站腳本信息樣本,使用訓(xùn)練完畢的多分類支持向量機(jī)對(duì)抓取的腳本信息進(jìn)行分類和檢測(cè)。實(shí)驗(yàn)結(jié)果表明,所提算法對(duì)100條反射型跨站腳本攻擊、50條存儲(chǔ)型跨站腳本攻擊、10條DOM型跨站腳本攻擊的數(shù)據(jù)分類結(jié)果準(zhǔn)確,且分類結(jié)果的樣本分布中,攻擊跨站腳本會(huì)按照攻擊類型有序分布。
關(guān)鍵詞: Web前端組件; 跨站腳本; 攻擊檢測(cè); 網(wǎng)絡(luò)爬蟲; 信息抓??; 多分類支持向量機(jī)
中圖分類號(hào): TN911?34; TP393.08" " " " " " " " " "文獻(xiàn)標(biāo)識(shí)碼: A" " " " " " " " " 文章編號(hào): 1004?373X(2024)14?0030?05
Research on cross site scripting attack detection algorithm in Web front?end components
LI Xinrong, XIE Shaomin
(School of Computer Engineering, Guilin University of Electronic Science and Technology, Beihai 536000, China)
Abstract: The front?end components involve multiple data streams, including user input, server returned data, etc. Malicious scripts can be hidden within these data streams, and cross site scripting attacks have variability and uncertainty, making it difficult to detect them. Therefore, a cross site scripting attack detection algorithm in Web front?end components is proposed. The web crawler based cross site script information crawling model for Web front?end components is used to capture non redundant cross site script information for Web front?end components. The captured script information is used as training samples for the multi classification support vector machine algorithm. Before detection, large?scale deformation cross site script information samples are extracted from the authoritative Web vulnerability submission platform Exploit?db, and a trained multi class support vector machine is used to classify and detect the captured script information. The experimental results show that this algorithm has accurate classification results for 100 reflective cross site script attacks, 50 storages cross site script attacks, and 10 DOM cross site script attacks. Moreover, in the sample distribution of the classification results, the attack cross site scripts can be distributed in an orderly manner according to the type of attack.
Keywords: Web front?end components; cross site scripting; attack detection; web crawler; information capture; multi classification support vector machine
0" 引" 言
跨站腳本(Cross?Site Scripting, XSS)漏洞是當(dāng)下Web前端組件中出現(xiàn)最多的攻擊模式。此類攻擊行為出現(xiàn)后,訪問者能夠通過Web前端組件應(yīng)用程序的漏洞,在網(wǎng)頁輸入?yún)^(qū)域傳輸攻擊腳本代碼,腳本代碼提交完畢,再次進(jìn)入客戶端便會(huì)嵌入Web前端組件[1?2]。此時(shí)如果用戶訪問Web前端組件的應(yīng)用程序,便會(huì)受到此類腳本代碼惡意入侵,攻擊者便會(huì)獲取用戶的敏感信息。為此,研究Web前端組件中的跨站腳本攻擊檢測(cè)方法是十分必要的[3]。
倪萍等人通過向目標(biāo)應(yīng)用程序輸入大量隨機(jī)或半隨機(jī)的數(shù)據(jù),觀察其異常反應(yīng)來發(fā)現(xiàn)潛在安全漏洞。檢測(cè)過程中,模糊測(cè)試能夠自動(dòng)地生成和輸入大量測(cè)試用例,提高漏洞檢測(cè)的效率[4]。但傳統(tǒng)的模糊測(cè)試方法通常是盲目的,缺乏對(duì)目標(biāo)應(yīng)用程序內(nèi)部邏輯的理解,因此可能無法有效地檢測(cè)所有可能的攻擊行為。程琪芩等人在跨站腳本檢測(cè)問題中,使用基于模糊測(cè)試和機(jī)器學(xué)習(xí)的方法,自動(dòng)學(xué)習(xí)和識(shí)別應(yīng)用程序中的潛在漏洞模式,降低了對(duì)人工干預(yù)的需求[5]。但該方法僅針對(duì)特定類型的應(yīng)用程序進(jìn)行訓(xùn)練,可能會(huì)在面對(duì)不同類型攻擊行為時(shí)表現(xiàn)不佳。
基于此,為優(yōu)化Web前端組件中跨站腳本攻擊檢測(cè)的效果,本文提出一種Web前端組件中的跨站腳本攻擊檢測(cè)算法。使用基于網(wǎng)絡(luò)爬蟲的Web前端組件跨站腳本信息抓取模型,抓取不重復(fù)冗余的Web前端組件跨站腳本信息;再將所抓取的腳本信息作為多分類支持向量機(jī)算法的訓(xùn)練樣本。檢測(cè)之前,在權(quán)威Web漏洞提交平臺(tái)Exploit?db中,提取大規(guī)模變形跨站腳本信息樣本,使用訓(xùn)練完畢的多分類支持向量機(jī)對(duì)抓取的腳本信息進(jìn)行分類和檢測(cè)。實(shí)驗(yàn)結(jié)果表明,所提算法對(duì)100條反射型跨站腳本攻擊、50條存儲(chǔ)型跨站腳本攻擊、10條DOM型跨站腳本攻擊的數(shù)據(jù)分類結(jié)果準(zhǔn)確,且分類結(jié)果的樣本分布中,攻擊跨站腳本會(huì)按照攻擊類型有序分布。
1" 跨站腳本攻擊檢測(cè)算法
1.1" 基于網(wǎng)絡(luò)爬蟲的Web前端組件跨站腳本信息抓取模型
Web前端組件是構(gòu)建Web應(yīng)用程序用戶界面的重要模塊[6],包括按鈕、輸入框、導(dǎo)航欄、列表等常見UI元素和功能模塊。這些組件可以單獨(dú)使用,也可以組合在一起構(gòu)建更復(fù)雜的用戶界面[7?9]。為了增強(qiáng)Web應(yīng)用程序的安全性,使用網(wǎng)絡(luò)爬蟲技術(shù)抓取Web前端組件信息,用于后續(xù)跨站腳本攻擊檢測(cè)。跨站腳本攻擊是Web應(yīng)用程序中常見的安全威脅,會(huì)對(duì)用戶隱私和數(shù)據(jù)安全產(chǎn)生嚴(yán)重影響。本文通過抓取Web前端組件的跨站腳本信息,提高Web應(yīng)用程序的安全性和可靠性。相比于傳統(tǒng)的手動(dòng)收集方式,網(wǎng)絡(luò)爬蟲能夠自動(dòng)化地抓取大量組件數(shù)據(jù),并提供更全面、準(zhǔn)確的樣本進(jìn)行進(jìn)一步分析和研究。
基于網(wǎng)絡(luò)爬蟲的Web前端組件跨站腳本信息抓取模型的技術(shù)框架圖如圖1所示。
1) Web前端組件跨站腳本信息采集模塊。讀入初始網(wǎng)頁,再進(jìn)入跨站腳本信息檢索環(huán)節(jié),在遍歷已有的腳本鏈接隊(duì)列模塊信息的基礎(chǔ)之上,檢索并下載存在關(guān)聯(lián)的跨站腳本所在網(wǎng)頁內(nèi)容。
2) Web前端組件跨站腳本信息分析模塊。將采集的跨站腳本所在網(wǎng)頁內(nèi)容進(jìn)行整理,并與URL進(jìn)行匹配處理。
3) 篩選全部URL,去除重復(fù)的URL。
4) 將篩選的URL整理為鏈接隊(duì)列,用于后續(xù)跨站腳本攻擊檢測(cè)[10]。
1.2" 基于多分類支持向量機(jī)的攻擊檢測(cè)算法
1.2.1" 變形跨站腳本信息訓(xùn)練樣本抽取
因Web前端組件跨站腳本信息受規(guī)則庫與黑名單所約束,在未知類型跨站腳本攻擊的檢測(cè)過程中,檢測(cè)難度較大。而使用機(jī)器學(xué)習(xí)技術(shù)訓(xùn)練大量已知類型的變形跨站腳本信息,構(gòu)建攻擊檢測(cè)模型,便可識(shí)別未知類型的跨站腳本攻擊。但在設(shè)計(jì)跨站腳本分類器時(shí),Web前端組件跨站腳本信息特征數(shù)據(jù)的使用十分重要。在權(quán)威Web漏洞提交平臺(tái)Exploit?db中,提取大規(guī)模變形跨站腳本信息樣本,利用這些樣本進(jìn)行機(jī)器學(xué)習(xí)訓(xùn)練,構(gòu)建一個(gè)多分類支持向量機(jī),用于識(shí)別和檢測(cè)未知類型的跨站腳本攻擊??缯灸_本信息特征類型如表1所示。
將跨站腳本信息特征數(shù)據(jù)進(jìn)行向量化處理,若某個(gè)跨站腳本攻擊樣本中,攻擊關(guān)鍵詞字符數(shù)量、特殊字符頻率數(shù)量分別是[b]個(gè)、[a]個(gè),數(shù)字字符頻率數(shù)量是[e]個(gè);第三方域名數(shù)量、訪問請(qǐng)求的字符數(shù)分別為[c]個(gè)、[f]個(gè),此時(shí)跨站腳本信息特征樣本向量化處理后變成:
[?=b,a,e,c,f]
本文將其作為多分類支持向量機(jī)訓(xùn)練樣本。
1.2.2" 多類型跨站腳本攻擊檢測(cè)算法
Web前端組件跨站腳本信息抓取模型提供了抓取到的真實(shí)數(shù)據(jù),用于提取特征并作為訓(xùn)練數(shù)據(jù)的一部分。而大規(guī)模變形跨站腳本信息樣本用于樣本訓(xùn)練,使模型能夠?qū)W習(xí)到不同類型的變形跨站腳本攻擊的特征。兩者緊密協(xié)作,可以提高跨站腳本攻擊檢測(cè)的準(zhǔn)確性。在這個(gè)過程中,支持向量機(jī)被廣泛應(yīng)用于跨站腳本攻擊的分類問題中。作為一種常用的線性分類器,支持向量機(jī)在跨站腳本的正常與攻擊這種線性二分類問題中具有顯著的分類能力,其原始形式如下:
[minβ,o,δj12β22+εj=1nμj] (1)
[s.t.φjβ?γ?j+θ≥1-μj] (2)
[μj≥0] (3)
式中:[?j,φj]、[β]分別代表跨站腳本特征數(shù)據(jù)樣本與樣本類型(正常/攻擊)、正常/攻擊分類超平面的權(quán)重;[θ]代表偏置項(xiàng),表示跨站腳本特征數(shù)據(jù)樣本分類的閾值;[μj]、[ε]分別代表松弛系數(shù)、懲罰系數(shù);[γ?j]代表映射函數(shù)。
跨站腳本攻擊檢測(cè)時(shí),腳本特征數(shù)據(jù)樣本分類函數(shù)為:
[gβ,θ?=sgnβT?+θ] (4)
設(shè)置跨站腳本信息特征樣本分類間隔是[2β],間隔最大時(shí),[β2]最小。[β22]最小化的分類面即為腳本攻擊檢測(cè)的最優(yōu)分類面。
因跨站腳本攻擊類型較多,為此,需構(gòu)建多分類支持向量機(jī)模型,把[?=b,a,e,c,f]的攻擊類型設(shè)成[p]種,將[p]種腳本攻擊行為看成[p]個(gè)二類分類,各個(gè)二類分類中存在全部腳本攻擊樣本。
在第[j]個(gè)腳本攻擊行為的二類分類過程中,第[j]類與其他類為不同類,則[p]個(gè)二類分類的判斷函數(shù)結(jié)合,便可構(gòu)建為[p]類腳本攻擊類型的判決函數(shù)。使用此函數(shù)分類跨站腳本特征數(shù)據(jù)樣本,若僅存在第[j]個(gè)分類結(jié)果是屬于第[j]類攻擊模式,剩下的判決函數(shù)均屬于其他攻擊模式,那么此樣本即為第[j]類腳本攻擊模式。綜上所述,跨站腳本攻擊檢測(cè)算法流程如圖2所示。
綜上所述,基于支持向量機(jī),通過特征提取與訓(xùn)練數(shù)據(jù)獲取,并進(jìn)行多分類支持向量機(jī)模型構(gòu)建,實(shí)現(xiàn)了對(duì)跨站腳本攻擊的準(zhǔn)確檢測(cè)。該算法能夠有效提取特征并使用支持向量機(jī)分類器進(jìn)行準(zhǔn)確分類,對(duì)不同類型的跨站腳本攻擊具有較高的識(shí)別能力。
2" 實(shí)驗(yàn)分析
為了驗(yàn)證Web前端組件中的跨站腳本攻擊檢測(cè)算法的整體有效性,進(jìn)行下述實(shí)驗(yàn)。實(shí)驗(yàn)中,使用Nikto模擬攻擊工具、XSpear模擬攻擊工具、Xsser模擬攻擊工具,分別模擬100條反射型跨站腳本攻擊、50條存儲(chǔ)型跨站腳本攻擊、10條DOM型跨站腳本攻擊數(shù)據(jù);并在不同漏洞網(wǎng)站中,依次將跨站腳本攻擊信息數(shù)據(jù)與正常數(shù)據(jù)混合,用于測(cè)試本文算法的檢測(cè)效果。搭建的實(shí)驗(yàn)環(huán)境配置圖如圖3所示。
由圖3可知,實(shí)驗(yàn)環(huán)境中的核心設(shè)備分別是Web服務(wù)器、交換機(jī)、模擬攻擊機(jī)。模擬攻擊機(jī)以惡意用戶身份向Web服務(wù)器發(fā)送攻擊行為,若所提算法檢測(cè)到攻擊行為,便會(huì)直接對(duì)Web服務(wù)器客戶端發(fā)送異常響應(yīng)信息。
2.1" 網(wǎng)絡(luò)爬蟲技術(shù)使用效果測(cè)試
測(cè)試所提算法使用網(wǎng)絡(luò)爬蟲技術(shù)前后,Web前端組件中的跨站腳本信息的抓取效果,使用網(wǎng)絡(luò)爬蟲技術(shù)前的抓取方法主要為人工篩選技術(shù),測(cè)試結(jié)果如表2所示。使用網(wǎng)絡(luò)爬蟲技術(shù)之前,跨站腳本信息的抓取速度較慢,且有效數(shù)據(jù)比例較低,耗費(fèi)時(shí)間較多;而使用網(wǎng)絡(luò)爬蟲技術(shù)后,跨站腳本信息的抓取速度耗時(shí)明顯縮短,且有效數(shù)據(jù)量比例提升。實(shí)驗(yàn)證明了所提算法使用網(wǎng)絡(luò)爬蟲技術(shù),能夠優(yōu)化跨站腳本信息的抓取效果。
2.2" 跨站腳本攻擊檢測(cè)效果測(cè)試
所提算法對(duì)100條反射型跨站腳本攻擊、50條存儲(chǔ)型跨站腳本攻擊、10條DOM型跨站腳本攻擊數(shù)據(jù)的檢測(cè)結(jié)果如圖4所示。
由圖4可知,所提算法在對(duì)100條反射型跨站腳本攻擊、50條存儲(chǔ)型跨站腳本攻擊和10條DOM型跨站腳本攻擊數(shù)據(jù)進(jìn)行檢測(cè)時(shí),表現(xiàn)出較高的準(zhǔn)確性。這表明所提算法具有一定的泛化能力,能夠適應(yīng)不同類型跨站腳本攻擊的特征,并進(jìn)行準(zhǔn)確的分類與識(shí)別。該算法通過大規(guī)模變形跨站腳本信息樣本的訓(xùn)練,使模型能夠?qū)W習(xí)到不同類型跨站腳本攻擊的特征,提高了跨站腳本攻擊檢測(cè)的準(zhǔn)確性。所提算法利用多分類支持向量機(jī)模型分類多類型攻擊數(shù)據(jù)的樣本分布圖如圖5所示。
由圖5可知,所提算法利用多分類支持向量機(jī)模型分類多類型跨站腳本攻擊行為特征數(shù)據(jù)后,不僅可分類正常、攻擊的跨站腳本樣本,而且在跨站腳本攻擊分類結(jié)果的樣本分布中,攻擊跨站腳本會(huì)按照攻擊類型有序分布,由此證實(shí)了所提算法對(duì)多類型攻擊數(shù)據(jù)的檢測(cè)性能較為顯著。這個(gè)結(jié)果表明,所提算法能夠有效地將不同類型的跨站腳本攻擊進(jìn)行分類,并區(qū)分出各種攻擊類型之間的差異。多分類支持向量機(jī)模型的應(yīng)用使得算法能夠?qū)W習(xí)到各種不同類型跨站腳本攻擊的特征,并進(jìn)行準(zhǔn)確的分類。
所提算法使用前后,三組跨站腳本攻擊數(shù)據(jù)的檢測(cè)耗時(shí)如圖6所示。
由圖6中對(duì)比可知,所提算法使用后三組跨站腳本攻擊行為數(shù)據(jù)的檢測(cè)耗時(shí),雖然也會(huì)隨著混合樣本數(shù)量增多而增多,但增幅并不顯著,且所提算法的攻擊檢測(cè)耗時(shí)明顯縮短,說明所提算法在跨站腳本攻擊檢測(cè)問題中效率較高。這是因?yàn)樵摲椒ㄍㄟ^引入特征提取和支持向量機(jī)分類器等技術(shù),能夠在較短的時(shí)間內(nèi)對(duì)跨站腳本攻擊進(jìn)行準(zhǔn)確的分類與識(shí)別。
3" 結(jié)" 論
Web前端組件中一個(gè)有效的跨站腳本攻擊檢測(cè)算法應(yīng)該能夠準(zhǔn)確地識(shí)別出攻擊腳本信息數(shù)據(jù)。準(zhǔn)確性是算法的基本要求,否則會(huì)導(dǎo)致漏報(bào)或誤報(bào),給安全防護(hù)帶來隱患。本文所提出的Web前端組件中的跨站腳本攻擊檢測(cè)算法可準(zhǔn)確檢測(cè)跨站腳本的攻擊腳本信息數(shù)據(jù),且檢測(cè)耗時(shí)短,具有應(yīng)用價(jià)值。結(jié)合所提方法,針對(duì)防范跨站腳本攻擊,對(duì)開發(fā)者提出以下幾點(diǎn)防御建議。
1) 在Web前端組件中,對(duì)用戶輸入的信息進(jìn)行適當(dāng)?shù)仳?yàn)證和過濾,以防止陌生用戶的惡意腳本注入。
2) 對(duì)輸出進(jìn)行適當(dāng)編碼,以防止惡意腳本被解析和執(zhí)行。
3) 使用內(nèi)容安全策略(CSP)來限制Web前端組件中可以執(zhí)行的腳本和加載的資源。
4) 及時(shí)更新和修補(bǔ)Web前端組件中的Web應(yīng)用程序和相關(guān)庫,以防止已知的安全漏洞被利用。
注:本文通訊作者為謝紹敏。
參考文獻(xiàn)
[1] 李子?xùn)|,姚怡飛,王微微,等.基于機(jī)器視覺的Web應(yīng)用頁面元素識(shí)別及可視化腳本生成[J].計(jì)算機(jī)科學(xué),2022,49(11):65?75.
[2] 劉玉婷,劉茗,王保衛(wèi),等.腳本事件預(yù)測(cè):方法、評(píng)測(cè)與挑戰(zhàn)[J].計(jì)算機(jī)應(yīng)用研究,2023,40(5):1303?1311.
[3] 孫盼,王琪,萬懷宇.結(jié)合事件鏈與事理圖譜的腳本事件預(yù)測(cè)模型[J].計(jì)算機(jī)工程,2022,48(4):119?125.
[4] 倪萍,陳偉.基于模糊測(cè)試的反射型跨站腳本漏洞檢測(cè)[J].計(jì)算機(jī)應(yīng)用,2021,41(9):2594?2601.
[5] 程琪芩,萬良.改進(jìn)編碼?解碼框架下的跨站腳本檢測(cè)[J].計(jì)算機(jī)工程與設(shè)計(jì),2021,42(1):44?50.
[6] 林雍博,凌捷.基于殘差網(wǎng)絡(luò)和GRU的XSS攻擊檢測(cè)方法[J].計(jì)算機(jī)工程與應(yīng)用,2022,58(10):101?107.
[7] 孫力立,武成崗,許佳麗,等.腳本語言執(zhí)行引擎的模糊測(cè)試技術(shù)綜述[J].高技術(shù)通訊,2022,32(12):1226?1235.
[8] 張海軍,陳映輝.語義分析及向量化大數(shù)據(jù)XSS入侵識(shí)別[J].南開大學(xué)學(xué)報(bào)(自然科學(xué)版),2021,54(2):1?12.
[9] 施瑞恒,朱云聰,趙易如,等.ROP漏洞利用腳本的語義還原和自動(dòng)化移植方法[J].計(jì)算機(jī)科學(xué),2022,49(11):49?54.
[10] 夏文英,翟偉芳,卞雪梅.DOM型跨站腳本網(wǎng)絡(luò)攻擊防御有效路徑模擬[J].計(jì)算機(jī)仿真,2021,38(5):260?263.
[11] 胡天樂.基于深度學(xué)習(xí)的跨站腳本檢測(cè)研究[D].上海:上海師范大學(xué),2023.
[12] 朱思猛,杜瑞穎,陳晶,等.基于循環(huán)神經(jīng)網(wǎng)絡(luò)的Web應(yīng)用防火墻加固方案[J].計(jì)算機(jī)工程,2022,48(11):120?126.
[13] 許丹丹,徐洋,張思聰,等.基于DCNN?GRU模型的XSS攻擊檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用與軟件,2022,39(2):324?329.
[14] 王陽.基于機(jī)器學(xué)習(xí)的跨站腳本攻擊檢測(cè)方法的研究與實(shí)現(xiàn)[D].南京:南京郵電大學(xué),2022.
[15] 胡乙丹.基于卷積神經(jīng)網(wǎng)絡(luò)的跨站腳本攻擊檢測(cè)模型[J].艦船電子工程,2023,43(6):110?115.