王鈴銅 王慧玲 徐苗 綦小龍
摘 要:跨站腳本(cross site scripting,XSS)攻擊是Web安全中最嚴(yán)重的風(fēng)險(xiǎn)之一。隨著Web服務(wù)、API等Web技術(shù)的廣泛使用,以及AJAX、CSS和HTML5等新編程風(fēng)格的出現(xiàn),XSS攻擊的威脅變得更加嚴(yán)重,因此如何處理XSS攻擊安全風(fēng)險(xiǎn)已成為Web安全研究的重要關(guān)注點(diǎn)。通過(guò)對(duì)近年來(lái)XSS攻擊檢測(cè)和防御技術(shù)的調(diào)研,根據(jù)XSS攻擊是否具有隱蔽性,首次從非對(duì)抗和對(duì)抗兩個(gè)角度綜述了XSS攻擊檢測(cè)和防御的最新技術(shù)。首先,從非對(duì)抗攻擊檢測(cè)和對(duì)抗攻擊檢測(cè)兩個(gè)方面探討分析了基于機(jī)器學(xué)習(xí)從數(shù)據(jù)中學(xué)習(xí)攻擊特征、預(yù)測(cè)攻擊的方法,以及基于強(qiáng)化學(xué)習(xí)識(shí)別或生成對(duì)抗樣本策略來(lái)優(yōu)化檢測(cè)模型的方法;其次,闡述了非對(duì)抗攻擊防御基于規(guī)則過(guò)濾XSS攻擊、基于移動(dòng)目標(biāo)防御(MTD)隨機(jī)性降低攻擊成功率和基于隔離沙箱防止XSS攻擊傳播的方法;最后,分別從樣本特征、模型特點(diǎn)和CSP的局限性、上傳功能的廣泛性等方面提出了XSS攻擊檢測(cè)和防御未來(lái)需要考慮的問(wèn)題并作出展望。
關(guān)鍵詞:XSS攻擊;機(jī)器學(xué)習(xí);非對(duì)抗攻擊檢測(cè);對(duì)抗攻擊檢測(cè);非對(duì)抗攻擊防御
中圖分類(lèi)號(hào):TP393.08?? 文獻(xiàn)標(biāo)志碼:A
文章編號(hào):1001-3695(2024)03-002-0652-11
doi:10.19734/j.issn.1001-3695.2023.06.0286
Review of cross-site scripting attack detection and defence techniques
Wang Lingtonga,b,Wang Huilinga,b,Xu Miaoa,b,Qi Xiaolonga,b
(a.School of Network Security & Information Technology,b.Key Laboratory of Intelligent Computing Research & Application,Yili Normal University,Yining Xinjiang 835000,China)
Abstract:Cross site scripting attack,also called XSS attack,is one of the most serious risks in Web security.With the widespread use of Web technologies such as Web services,APIs,and the emergence of new programming styles such as AJAX,CSS and HTML5,the threat of XSS attacks has become more serious.Therefore,how to deal with the security risk of XSS attacks has become an important concern in Web security research.By investigating the literature on XSS attack detection and defence in recent years,this paper reviewed the latest techniques for XSS attack detection and defence from both non-adversarial and adversarial perspectives,based on whether the XSS attack was stealthy or not.Firstly,from the aspects of non-confrontational attack detection and confrontational attack detection,this paper explored and analysed the methods of learning attack features from data and predicting attacks based on machine learning and optimising the detection model based on reinforcement learning to identify or generate confrontational sample strategies.Secondly,it elaborated the methods of non-confrontational attack defence to filter the XSS attacks based on rules,to reduce the success rate of attacks based on the randomness of the moving targets defence(MTD) ,and to isolation sandbox-based approach to prevent the propagation of XSS attacks.Finally,this paper presented the future issues to be considered and outlooks of XSS attack detection and defence in terms of sample characteristics,model features and limitations of CSP,and the wide range of uploading functions,respectively.
Key words:XSS attack;machine learning;non-adversarial attack detection;adversarial attack detection;non-adversarial attack defence
0 引言
跨站腳本攻擊又叫做XSS攻擊,是1999年由知名的Web安全數(shù)據(jù)庫(kù)與安全研究組織(Open Web Applications Security Project,OWASP)報(bào)告的一種針對(duì)用戶層面的惡意代碼注入型攻擊。XSS攻擊是由攻擊者向用戶的Web頁(yè)面植入惡意的script代碼,當(dāng)用戶點(diǎn)擊該頁(yè)面后達(dá)到攻擊用戶的目的。在OWASP每四年報(bào)告的年度十大Web應(yīng)用程序安全漏洞中,XSS攻擊都位于前十,其中在2021年OWASP公布的最新top10榜單中位列第三位[1]。XSS攻擊一旦攻擊成功,就會(huì)作出竊取cookie[2,3]、植入木馬[4]、直接獲取用戶信息[5]等危害用戶的行為。
為此,如何有效防范XSS攻擊備受研究者的關(guān)注。當(dāng)前,XSS處理技術(shù)主要有XSS檢測(cè)技術(shù)和XSS攻擊防御技術(shù),XSS檢測(cè)技術(shù)主要有XSS漏洞檢測(cè)技術(shù)和XSS攻擊檢測(cè)技術(shù)。其中,漏洞檢測(cè)技術(shù)旨在從源頭上檢測(cè)XSS攻擊;攻擊檢測(cè)技術(shù)旨在捕獲漏洞檢測(cè)不完備時(shí)的攻擊,是檢測(cè)的最后一道防線。現(xiàn)有的XSS攻擊檢測(cè)研究主要有兩條路線:a)面向Web頁(yè)面的漏洞進(jìn)行檢測(cè),判斷其是否存在XSS攻擊漏洞;b)面向攻擊行為進(jìn)行檢測(cè),通過(guò)機(jī)器學(xué)習(xí)方法檢測(cè)當(dāng)前的用戶特征是否為XSS攻擊。
XSS漏洞檢測(cè)技術(shù)是指使用合適的方法或工具通過(guò)檢查Web應(yīng)用程序的源代碼,檢測(cè)Web安全編碼在實(shí)際使用過(guò)程中是否存在漏洞,研究者一般將XSS漏洞檢測(cè)技術(shù)分為三大類(lèi)[6]:
a)靜態(tài)分析。該方法在用戶使用Web應(yīng)用程序前,通過(guò)Web源代碼與XSS安全漏洞特征庫(kù)的匹配分析判斷其是否存在漏洞。當(dāng)檢測(cè)到XSS攻擊漏洞風(fēng)險(xiǎn)時(shí),靜態(tài)分析工具報(bào)告異常行為以供開(kāi)發(fā)人員查看和修復(fù)。靜態(tài)分析方法中最具代表性的是XSS-secure XSS檢測(cè)框架[7]和基于單元測(cè)試的檢測(cè)工具[8],這類(lèi)靜態(tài)分析方法可以有效檢測(cè)出異常代碼片段的位置,極大提高了XSS攻擊漏洞的檢測(cè)率。然而,該方法也存在許多局限性:由于靜態(tài)分析需要檢查并分析Web程序的源代碼,而大多數(shù)Web應(yīng)用程序的制造公司是不愿意將源代碼分享出來(lái)的,這就為靜態(tài)分析造成了很大阻礙[9]。靜態(tài)代碼分析工具也無(wú)法處理一些網(wǎng)站在加載時(shí)出現(xiàn)的動(dòng)態(tài)代碼,同時(shí)在服務(wù)器上的靜態(tài)分析工具并沒(méi)有辦法分析存在于客戶端的DOM型XSS攻擊代碼。
b)動(dòng)態(tài)分析。該方法著重在Web應(yīng)用程序運(yùn)行時(shí)動(dòng)態(tài)分析從程序中提取的實(shí)時(shí)數(shù)據(jù),向服務(wù)器發(fā)送相應(yīng)請(qǐng)求從而檢查并分析程序是否具有XSS攻擊漏洞。動(dòng)態(tài)分析方法最具代表性的有基于動(dòng)態(tài)污染分析的TT-XSS檢測(cè)框架[10]和基于兩次爬山掃描的XSS攻擊檢測(cè)系統(tǒng)[11],這類(lèi)分析方法的優(yōu)勢(shì)是不需要像靜態(tài)分析那樣提前知道Web應(yīng)用程序的源代碼就可以檢測(cè)出XSS攻擊的漏洞。動(dòng)態(tài)代碼分析工具也可以分析網(wǎng)頁(yè)中的動(dòng)態(tài)代碼,進(jìn)一步優(yōu)化了靜態(tài)分析工具檢測(cè)XSS攻擊漏洞的弊端。但動(dòng)態(tài)分析也存在一些問(wèn)題:由于是在運(yùn)行時(shí)分析應(yīng)用程序的實(shí)時(shí)數(shù)據(jù),隨著XSS有效負(fù)載越來(lái)越多,動(dòng)態(tài)分析的方法檢測(cè)的時(shí)間就會(huì)大大增加,使得這些工具在實(shí)際的應(yīng)用場(chǎng)景中難以被有效使用。
c)混合分析方法。該方法利用動(dòng)態(tài)分析方法和靜態(tài)分析方法各自的優(yōu)點(diǎn),先靜態(tài)分析Web應(yīng)用程序,檢測(cè)出XSS攻擊漏洞,然后動(dòng)態(tài)分析對(duì)漏洞進(jìn)行驗(yàn)證,通過(guò)兩者的結(jié)合降低了XSS攻擊漏洞的漏報(bào)率??偟膩?lái)說(shuō),這種混合分析方法不僅可以檢測(cè)到網(wǎng)站的動(dòng)態(tài)代碼,還可以在網(wǎng)站XSS負(fù)載加大時(shí)極大地減少檢測(cè)XSS攻擊漏洞的時(shí)間,提升了XSS攻擊漏洞的檢測(cè)效率。但其中一些混合分析方法僅適用于單一語(yǔ)言,而XSS攻擊可用多種語(yǔ)言實(shí)現(xiàn)代碼的注入,使得混合分析方法在實(shí)際應(yīng)用過(guò)程中難以有效使用。
雖然這些方法在防范XSS攻擊上取得了一定的成績(jī),但這三種檢測(cè)XSS攻擊的方法都存在各自不可避免的缺陷,同時(shí)漏洞檢測(cè)技術(shù)在檢測(cè)未知的XSS攻擊漏洞時(shí)性能表現(xiàn)不佳;此外,代碼混淆、動(dòng)態(tài)代碼生成等技術(shù)也為漏洞檢測(cè)造成了阻礙。XSS攻擊防御也面臨同樣的問(wèn)題:由于攻擊策略的快速發(fā)展,傳統(tǒng)的基于黑白名單、正則表達(dá)式的方法已經(jīng)不能有效防御所有XSS攻擊。
為此,研究者將能進(jìn)行自我學(xué)習(xí)的機(jī)器學(xué)習(xí)技術(shù)應(yīng)用到了包括XSS攻擊檢測(cè)的網(wǎng)絡(luò)安全任務(wù)中以改善漏洞檢測(cè)的不足。通過(guò)增量式學(xué)習(xí)、持續(xù)學(xué)習(xí)等機(jī)器學(xué)習(xí)技術(shù)從數(shù)據(jù)中構(gòu)建自適應(yīng)決策模型,大大提升了對(duì)未知和新型XSS攻擊檢測(cè)的能力。同時(shí),研究者將CSP、MTD等新興技術(shù)用于XSS攻擊防御任務(wù)中以解決傳統(tǒng)方法不能有效防御所有XSS攻擊的問(wèn)題。
目前,XSS攻擊檢測(cè)和防御領(lǐng)域主要有以下綜述文獻(xiàn):Sarmah等人[6]綜述的傳統(tǒng)XSS攻擊檢測(cè)方法,根據(jù)檢測(cè)機(jī)制,主要闡述了基于傳統(tǒng)檢測(cè)方法部署點(diǎn)的分類(lèi)模型;Chen等人[12]根據(jù)XSS攻擊識(shí)別策略對(duì)多種機(jī)器學(xué)習(xí)算法進(jìn)行了相應(yīng)的闡述和比較,闡述了其優(yōu)勢(shì)以及在實(shí)際XSS攻擊檢測(cè)中面臨的問(wèn)題;Stency等人[13]從各種性能指標(biāo)上分析了基于深度學(xué)習(xí)的XSS攻擊檢測(cè)方法,通過(guò)對(duì)比得出了每種深度學(xué)習(xí)檢測(cè)方法的局限性,并指出使用基于深度學(xué)習(xí)技術(shù)的人工智能方法在開(kāi)發(fā)高效的XSS入侵檢測(cè)上意義重大。
Vijayalakshmi等人[14]根據(jù)XSS攻擊檢測(cè)和防御方法的部署點(diǎn)對(duì)XSS攻擊檢測(cè)和防御技術(shù)做了一個(gè)系統(tǒng)的綜述,主要對(duì)客戶端和服務(wù)器端使用的基于靜態(tài)分析以及動(dòng)態(tài)分析的XSS攻擊檢測(cè)方法作了詳細(xì)介紹,并闡述了服務(wù)器端和客戶端的XSS攻擊防御方法。
上述綜述都是從非對(duì)抗XSS攻擊角度考慮,分別闡述了傳統(tǒng)XSS攻擊檢測(cè)方法和智能XSS攻擊檢測(cè)方法,對(duì)XSS攻擊防御方法提及較少,且沒(méi)有整體對(duì)最新XSS攻擊檢測(cè)與防御技術(shù)進(jìn)行系統(tǒng)的闡述;并且就筆者所知,當(dāng)前沒(méi)有相關(guān)文獻(xiàn)闡述XSS對(duì)抗攻擊的檢測(cè)技術(shù)。為此,本文根據(jù)XSS攻擊是否具有隱蔽性,從非對(duì)抗和對(duì)抗兩個(gè)角度對(duì)新興的XSS攻擊檢測(cè)和防御技術(shù)進(jìn)行全面和系統(tǒng)的綜述。本文主要貢獻(xiàn)如下:a)對(duì)XSS攻擊進(jìn)行全面的回顧(包括新型XSS攻擊),并根據(jù)其攻擊媒介對(duì)XSS攻擊進(jìn)行分類(lèi)總結(jié);b)從非對(duì)抗和對(duì)抗兩個(gè)角度闡述了最新的基于機(jī)器學(xué)習(xí)的XSS攻擊檢測(cè)方法,并根據(jù)其使用動(dòng)機(jī)、特征提取的類(lèi)別、優(yōu)勢(shì)和局限性進(jìn)行了系統(tǒng)的綜述;c)從非對(duì)抗攻擊防御角度出發(fā),根據(jù)其研究動(dòng)機(jī)、優(yōu)勢(shì)和局限性對(duì)基于CSP、MTD等最新防御XSS攻擊的方法進(jìn)行了全面的分析和對(duì)比;d)分別從樣本特征、模型特點(diǎn)和CSP的局限性、上傳功能的廣泛性等方面提出了XSS攻擊檢測(cè)和防御未來(lái)需要考慮的問(wèn)題,為XSS攻擊檢測(cè)和防御的進(jìn)一步研究提供參考。
1 XSS攻擊概述
基于機(jī)器學(xué)習(xí)的XSS攻擊檢測(cè)技術(shù)面向攻擊行為進(jìn)行檢測(cè),通過(guò)使用機(jī)器學(xué)習(xí)方法來(lái)分析用戶的特征,進(jìn)而判定是否為XSS攻擊。在這個(gè)任務(wù)流程中,XSS攻擊特征的重要性不可忽視,攻擊特征影響檢測(cè)任務(wù)的性能。由于XSS攻擊存在多種類(lèi)型,可以使用不同的編碼方式和惡意代碼注入點(diǎn)來(lái)實(shí)現(xiàn)惡意代碼的注入。所以一種類(lèi)型的XSS攻擊特征并不能代表全部類(lèi)型的XSS攻擊,不同的XSS攻擊特征表現(xiàn)也存在多樣性。
1.1 XSS攻擊的類(lèi)型
隨著Web技術(shù)的快速發(fā)展,出現(xiàn)了越來(lái)越多的新型XSS攻擊,JavaScript型XSS攻擊(JSM-XSS)、XSS蠕蟲(chóng)(WXSS)以及變異的XSS攻擊(MXSS)等新型XSS攻擊相繼被研究者發(fā)現(xiàn);同時(shí)XSS攻擊的攻擊媒介也呈現(xiàn)出多樣性,如Web應(yīng)用程序、瀏覽器第三方擴(kuò)展和Web應(yīng)用程序的第三方框架等。本文根據(jù)XSS攻擊的攻擊媒介將現(xiàn)有的XSS攻擊大致分為基于Web應(yīng)用程序的XSS攻擊和基于第三方的XSS攻擊、基于協(xié)同的XSS攻擊。表1總結(jié)了XSS攻擊的類(lèi)型。
1.1.1 基于Web應(yīng)用程序的XSS攻擊
基于Web應(yīng)用程序的XSS攻擊是由攻擊者向Web應(yīng)用程序注入惡意script代碼,針對(duì)Web應(yīng)用程序自身的漏洞而進(jìn)行的攻擊,通常是編寫(xiě)該應(yīng)用程序的開(kāi)發(fā)人員由于沒(méi)有進(jìn)行防范措施而出現(xiàn)的代碼型漏洞。在已有的研究中,有以下五種攻擊屬于這一類(lèi)別:
a)反射型XSS攻擊(RXSS)。通常攻擊者會(huì)將惡意的script代碼注入到URL中,通過(guò)某種方式由用戶接收并點(diǎn)擊惡意URL;此時(shí)用戶的瀏覽器向攻擊者的服務(wù)器發(fā)起請(qǐng)求,服務(wù)器收到并作出響應(yīng)。將惡意script代碼返回到用戶瀏覽器經(jīng)由瀏覽器解析后,RXSS[15]攻擊成功。
b)存儲(chǔ)型XSS攻擊(SXSS)。首先是由攻擊者將惡意script代碼上傳到易受攻擊的Web網(wǎng)站的服務(wù)器中,服務(wù)器會(huì)將惡意的script代碼永久地保存,由用戶無(wú)限次進(jìn)行觸發(fā)。每當(dāng)用戶在易受攻擊的Web網(wǎng)頁(yè)上點(diǎn)擊時(shí),瀏覽器會(huì)向服務(wù)器發(fā)起請(qǐng)求,服務(wù)器響應(yīng)后瀏覽器解析執(zhí)行,SXSS[15]攻擊完成。
c)DOM型XSS攻擊(DXSS)。主要針對(duì)本身存在DOM[16]漏洞的易受攻擊的Web頁(yè)面。攻擊者會(huì)將惡意的script代碼注入到URL中,通過(guò)某種方式由用戶接收并點(diǎn)擊惡意URL;瀏覽器收到響應(yīng)解析執(zhí)行后由前端JavaScript取出惡意script代碼并反饋給瀏覽器執(zhí)行,因此DXSS也是一種特殊的反射型XSS攻擊。與RXSS和SXSS不同,DXSS[15]不經(jīng)過(guò)服務(wù)器,是前端的漏洞。
d)JavaScript型XSS攻擊(JSM-XSS)。JSM-XSS是一種新型的腳本模仿的XSS攻擊。攻擊者通過(guò)Web應(yīng)用程序,利用在程序上已經(jīng)執(zhí)行的腳本發(fā)起JSM-XSS。研究表明,在應(yīng)用程序注入合法的腳本也可能是對(duì)Web應(yīng)用程序有害的行為[17],且這種行為難以被檢測(cè)工具檢測(cè)。
e)XSS蠕蟲(chóng)(WXSS)。WXSS是一種新型的具有強(qiáng)大自我復(fù)制能力的蠕蟲(chóng)型XSS攻擊。XSS蠕蟲(chóng)具有廣泛傳播的能力,可以通過(guò)Web應(yīng)用程序在用戶之間傳來(lái)傳去,在未被檢測(cè)到消滅之前它會(huì)一直傳播,因此對(duì)于用戶它更加危險(xiǎn)。XSS蠕蟲(chóng)危險(xiǎn)且十分隱蔽,在2005年發(fā)現(xiàn)的Samy蠕蟲(chóng)就是XSS蠕蟲(chóng),在被發(fā)現(xiàn)之前的一天時(shí)間里便傳播了100多萬(wàn)人[18]。中國(guó)社交網(wǎng)絡(luò)新浪微博也曾遭受過(guò)XSS蠕蟲(chóng)的攻擊,遭受XSS蠕蟲(chóng)攻擊的用戶會(huì)自動(dòng)地向其他用戶發(fā)送毒私信,在用戶之間進(jìn)行相互傳播,短短1 h之內(nèi)就有三萬(wàn)多名用戶的信息遭到竊?。?9]。
1.1.2 基于第三方的XSS攻擊
基于第三方的XSS攻擊主要利用瀏覽器上的第三方擴(kuò)展以及Web應(yīng)用程序的第三方框架的漏洞實(shí)施攻擊,而不針對(duì)Web應(yīng)用程序本身。這一類(lèi)別包括:
a)腳本小工具型XSS攻擊(CR-XSS)。這種XSS攻擊于2013年被Lekies等人[20]發(fā)現(xiàn),攻擊者通常在攻擊前會(huì)提前了解Web應(yīng)用程序上的第三方腳本小工具,通過(guò)向目標(biāo)應(yīng)用程序注入HTML標(biāo)記引發(fā)腳本小工具的執(zhí)行來(lái)實(shí)現(xiàn)CR-XSS。
b)通用XSS攻擊(UXSS)。UXSS是一種通過(guò)瀏覽器或者瀏覽器擴(kuò)展的漏洞向Web頁(yè)面注入惡意代碼的XSS攻擊[21]。UXSS不需要Web頁(yè)面具有XSS攻擊漏洞,它可以滲透到?jīng)]有安全問(wèn)題的Web頁(yè)面去創(chuàng)造漏洞,而原先的Web頁(yè)面是不具備XSS攻擊漏洞的,這使得UXSS成為XSS攻擊中危害性最大的攻擊類(lèi)型之一。
1.1.3 基于協(xié)同的XSS攻擊
基于協(xié)同的XSS攻擊需要同時(shí)滿足在Web應(yīng)用程序和第三方均存在漏洞的情況下攻擊者才會(huì)攻擊成功,如果有任一方?jīng)]有存在漏洞,攻擊者就會(huì)攻擊失敗。這一類(lèi)別包括:
a)跨API腳本(XAS)。XAS最早在2013年被發(fā)現(xiàn),由Zhang等人[22]在2015年提出。XAS主要針對(duì)Web應(yīng)用程序,這些易受攻擊的Web應(yīng)用程序會(huì)向第三方開(kāi)發(fā)人員提供restful API。攻擊者向Web應(yīng)用程序注入惡意的script代碼,并通過(guò)調(diào)用API訪問(wèn)Web應(yīng)用程序用戶數(shù)據(jù)信息。惡意script代碼通過(guò)瀏覽器被用戶觸發(fā)并執(zhí)行,XAS便攻擊成功。
b)變異的XSS攻擊(MXSS)。在2013年,Heiderich等人[23]首次提出MXSS這種變異的XSS攻擊,它是由攻擊者向用戶瀏覽器注入惡意數(shù)據(jù)與易受攻擊的Web應(yīng)用程序中的innerHTML屬性進(jìn)行關(guān)聯(lián)后插入瀏覽器中的DOM進(jìn)而實(shí)施攻擊。任何服務(wù)器端和客戶端的檢測(cè)工具都無(wú)法檢測(cè)到這種惡意數(shù)據(jù),因?yàn)闄z測(cè)工具主要是檢測(cè)惡意script代碼,而此惡意數(shù)據(jù)不包含任何可執(zhí)行的代碼,所以會(huì)被檢測(cè)工具忽略而攻擊成功。
c)內(nèi)容嗅探XSS攻擊(CS-XSS)。CS-XSS是攻擊者通過(guò)利用瀏覽器對(duì)文件內(nèi)容產(chǎn)生誤解,在訪問(wèn)者的瀏覽器上運(yùn)行JavaScript代碼發(fā)起的XSS攻擊。由于JavaScript的同源策略,CS-XSS將使用Web應(yīng)用程序的特權(quán)運(yùn)行。
1.2 XSS攻擊特征
在XSS攻擊檢測(cè)任務(wù)流程中,XSS攻擊特征的重要性不可忽視,機(jī)器學(xué)習(xí)根據(jù)特征對(duì)數(shù)據(jù)樣本進(jìn)行分類(lèi),沒(méi)有提取到的特征將逃避攻擊檢測(cè)。在XSS攻擊檢測(cè)的研究中,XSS攻擊特征呈現(xiàn)出多樣性,對(duì)XSS攻擊數(shù)據(jù)集進(jìn)行特征提取的類(lèi)型大致可以分為基于URL、基于HTML、基于JavaScript、基于SNS、XSS攻擊有效載荷和XSS攻擊流量幾種。其中,研究者主要針對(duì)基于URL、基于HTML、基于JavaScript、XSS攻擊有效載荷和XSS攻擊流量的特征進(jìn)行深入研究,其表現(xiàn)的XSS攻擊類(lèi)型是OWASP報(bào)告的反射型XSS攻擊(RXSS)、存儲(chǔ)型XSS攻擊(SXSS)、DOM型XSS攻擊(DXSS)三種基本的XSS攻擊。對(duì)于新型XSS攻擊,基于SNS的攻擊特征為XSS蠕蟲(chóng)的專屬特征。關(guān)于XSS攻擊特征類(lèi)型總結(jié)如表2所示。
1.3 基于機(jī)器學(xué)習(xí)的XSS攻擊檢測(cè)任務(wù)流程
基于機(jī)器學(xué)習(xí)的XSS攻擊檢測(cè)任務(wù)流程一般為準(zhǔn)備XSS攻擊數(shù)據(jù)集、進(jìn)行特征處理、模型訓(xùn)練和類(lèi)別判定。
a)數(shù)據(jù)集。機(jī)器學(xué)習(xí)算法的表現(xiàn)與使用數(shù)據(jù)集的質(zhì)量息息相關(guān),在XSS攻擊檢測(cè)的研究中存在標(biāo)準(zhǔn)數(shù)據(jù)集和合成數(shù)據(jù)集兩類(lèi)數(shù)據(jù)集。標(biāo)準(zhǔn)數(shù)據(jù)集是由國(guó)際公認(rèn)的安全研究組織發(fā)布的數(shù)據(jù)集,如加拿大網(wǎng)絡(luò)安全研究所的CICIDS系列數(shù)據(jù)集,但此數(shù)據(jù)集有關(guān)XSS攻擊的數(shù)量十分有限且數(shù)據(jù)存在嚴(yán)重的類(lèi)別不平衡現(xiàn)象;合成數(shù)據(jù)集一般是由研究者自己在網(wǎng)站搜集然后組合,研究者從GitHub、Kaggle、XSSed等網(wǎng)站搜集XSS攻擊和正常的樣本,通過(guò)組合搜集樣本來(lái)構(gòu)成實(shí)驗(yàn)所用數(shù)據(jù)集。研究者的XSS攻擊數(shù)據(jù)集來(lái)源如表3所示。其中,M表示惡意的,B表示良性的,MB表示混合的。
b)特征處理。特征決定了機(jī)器學(xué)習(xí)模型的性能上限,處理好XSS攻擊特征對(duì)于機(jī)器學(xué)習(xí)檢測(cè)模型至關(guān)重要。在XSS攻擊的檢測(cè)中,攻擊流量數(shù)據(jù)集存在嚴(yán)重的類(lèi)別不平衡現(xiàn)象,因此需要通過(guò)采樣方法對(duì)數(shù)據(jù)進(jìn)行處理。對(duì)于XSS攻擊有效載荷形式數(shù)據(jù)集,攻擊者會(huì)對(duì)其進(jìn)行編碼來(lái)躲避檢測(cè),所以要先對(duì)有效載荷進(jìn)行解碼;其次,有效載荷中的數(shù)字、域名等信息不影響檢測(cè),需要對(duì)其進(jìn)行泛化;最后,由于有效載荷是文本形式,需要運(yùn)用自然語(yǔ)言處理方法將其分詞然后轉(zhuǎn)換為向量。但是可能轉(zhuǎn)換后特征維度過(guò)大,導(dǎo)致計(jì)算量大,出現(xiàn)訓(xùn)練時(shí)間長(zhǎng)的問(wèn)題,因此降低特征維度也是必不可少的。
c)模型訓(xùn)練。使用學(xué)習(xí)算法學(xué)習(xí)一個(gè)能夠很好刻畫(huà)訓(xùn)練數(shù)據(jù)分布的模型。在訓(xùn)練階段,對(duì)給定的XSS攻擊數(shù)據(jù)集進(jìn)行特征清洗、預(yù)處理得到其特征表示,然后建立模型對(duì)數(shù)據(jù)樣本的分布進(jìn)行學(xué)習(xí);在測(cè)試階段,將測(cè)試數(shù)據(jù)的特征輸入到模型中,然后模型對(duì)其進(jìn)行類(lèi)別判定。
2 XSS攻擊檢測(cè)技術(shù)
傳統(tǒng)的XSS攻擊檢測(cè)方法在檢測(cè)過(guò)程中對(duì)未知的XSS攻擊無(wú)法很好決策,導(dǎo)致較高的漏報(bào)率。因此,研究者使用基于機(jī)器學(xué)習(xí)的XSS攻擊檢測(cè)方法來(lái)彌補(bǔ)傳統(tǒng)檢測(cè)方法的不足。根據(jù)XSS攻擊是否具有隱蔽性,本文將機(jī)器學(xué)習(xí)的檢測(cè)方法分為基于非對(duì)抗性XSS攻擊和基于對(duì)抗性XSS攻擊兩類(lèi)。
2.1 基于非對(duì)抗性XSS攻擊
2.1.1 單一機(jī)器學(xué)習(xí)方法
單一機(jī)器學(xué)習(xí)是指使用一種機(jī)器學(xué)習(xí)方法完成XSS攻擊的檢測(cè),這種方法適用于通過(guò)注入惡意JavaScript代碼實(shí)現(xiàn)的XSS攻擊。代表性的方法如下:
Goswami等人[24]基于屬性聚類(lèi)提出了一種基于K-means的無(wú)監(jiān)督方法At-Attribute聚類(lèi)用于在客戶端和服務(wù)器端體系結(jié)構(gòu)中檢測(cè)基于JavaScript的XSS攻擊。該算法通過(guò)將帶有類(lèi)標(biāo)簽的XSS攻擊數(shù)據(jù)集應(yīng)用于信息增益和卡方檢驗(yàn)等不同的特征選擇算法中,選出與XSS攻擊最相關(guān)的攻擊特征,之后使用基于K-means的At-Attribute聚類(lèi)算法對(duì)最終的特征進(jìn)行屬性聚類(lèi)。該算法比較容易實(shí)現(xiàn),僅需要很少的知識(shí)就可以高精度地檢測(cè)XSS攻擊。
文獻(xiàn)[25]將決策樹(shù)算法應(yīng)用于XSS攻擊檢測(cè)中,提高對(duì)基于JavaScript代碼的可視化內(nèi)容的XSS攻擊檢測(cè)準(zhǔn)確率。該方法從獲取的可視化內(nèi)容的請(qǐng)求代碼中提取惡意XSS攻擊的特征向量,通過(guò)最大化獲取每個(gè)點(diǎn)上所獲得維度的隨機(jī)子樣本之間的信息,將葉子節(jié)點(diǎn)的數(shù)據(jù)劃分到正確的類(lèi)別中。使用決策樹(shù)算法,可以通過(guò)數(shù)據(jù)集標(biāo)簽檢測(cè)到那些利用可視標(biāo)簽進(jìn)行攻擊的XSS攻擊,并且該算法強(qiáng)大的可解釋性對(duì)XSS攻擊檢測(cè)技術(shù)的發(fā)展有著重要意義。
傳統(tǒng)的機(jī)器學(xué)習(xí)方法無(wú)法檢測(cè)到XSS攻擊的微小突變體,而深度神經(jīng)網(wǎng)絡(luò)在數(shù)據(jù)發(fā)生微小變化的情況下也能學(xué)習(xí)到XSS攻擊的真實(shí)面貌。為此,Mokbal等人[26]提出了一種基于人工神經(jīng)網(wǎng)絡(luò)(ANN)的多層感知器(MLP)深度學(xué)習(xí)模型MLPXSS。該模型在特征提取上,使用BeautifulSoup庫(kù)與HTML5Lib庫(kù),將XSS攻擊的HTML、JavaScript和URL特征轉(zhuǎn)換成數(shù)字特征后傳入MLPXSS中,使用網(wǎng)格搜索法中的10倍交叉驗(yàn)證的方法對(duì)模型的超參數(shù)進(jìn)行優(yōu)化,從淺層的MLP模型到深層的MLP模型設(shè)置不同的隱藏層神經(jīng)元數(shù)量、數(shù)據(jù)批量大小以及優(yōu)化器,以求最優(yōu)的模型。使用不同的數(shù)據(jù)集與不同的機(jī)器學(xué)習(xí)算法進(jìn)行比較后,證明MLP模型的泛化性能有一定提高。
Mereani等人[27]致力于可解釋人工智能(XAI)[28]的研究,提出了一種從KNN分類(lèi)器中提取規(guī)則的技術(shù)。由于每一個(gè)KNN分類(lèi)器輸入和輸出的特征值都是布爾類(lèi)型,所以該技術(shù)將訓(xùn)練好的KNN分類(lèi)器定義成一個(gè)布爾函數(shù),提取的規(guī)則是布爾函數(shù),每個(gè)布爾變量對(duì)應(yīng)XSS攻擊數(shù)據(jù)集中的一個(gè)特征,這些規(guī)則是清晰可解釋的。該方法利用布爾函數(shù)的可解釋性解釋KNN檢測(cè)模型,并且與傳統(tǒng)KNN檢測(cè)模型相比檢測(cè)時(shí)間縮短且性能相差不大。
為了改善機(jī)器學(xué)習(xí)檢測(cè)模型難以從用戶正常輸入的數(shù)據(jù)中獲取特征的問(wèn)題,顧兆軍等人[29]基于一類(lèi)樣本提出了一種新的單分類(lèi)支持向量機(jī)檢測(cè)方法OCSVM。首先,該方法使用n-gram對(duì)XSS攻擊載荷進(jìn)行分詞,然后使用TF-IDF算法對(duì)分詞集合里的詞進(jìn)行向量化,最后選擇適當(dāng)?shù)腟VM核函數(shù)和優(yōu)化參數(shù)來(lái)構(gòu)建檢測(cè)模型,通過(guò)對(duì)模型進(jìn)行參數(shù)優(yōu)化達(dá)到最優(yōu)的檢測(cè)模型。該方法結(jié)合n-gram和TF-IDF算法對(duì)特征進(jìn)行向量化,提升了相較于傳統(tǒng)文本使用TF-IDF分詞方法的分詞效率,并且該方法無(wú)須對(duì)樣本進(jìn)行標(biāo)記便能很好地解決單類(lèi)樣本分類(lèi)問(wèn)題。
為了改善在XSS攻擊檢測(cè)中假陽(yáng)性率和假陰性率高的問(wèn)題,Mokbal等人[30]將自然語(yǔ)言處理中的平均詞嵌入技術(shù)用于SVM檢測(cè)模型中,提出了一種基于平均詞嵌入的檢測(cè)方法NLP-SVM。該方法使用詞嵌入技術(shù),將XSS攻擊有效載荷中的每個(gè)詞轉(zhuǎn)換成數(shù)字形式,以便得到每個(gè)詞的向量;之后,對(duì)每個(gè)XSS攻擊有效載荷中每個(gè)詞的向量進(jìn)行平均后輸入到SVM模型中。相比于傳統(tǒng)SVM使用10倍交叉驗(yàn)證獲取最優(yōu)參數(shù)的方法,NLP-SVM模型對(duì)XSS攻擊具有更強(qiáng)的檢測(cè)能力。
2.1.2 基于特征融合的深度學(xué)習(xí)方法
單一機(jī)器學(xué)習(xí)經(jīng)由研究者對(duì)特征進(jìn)行分析選擇,將信息量大的特征輸入到計(jì)算機(jī)由人工進(jìn)行數(shù)據(jù)預(yù)處理,需要較高的先驗(yàn)知識(shí)量,檢測(cè)效果在很大程度上依賴于預(yù)定義特征的準(zhǔn)確性,具有很強(qiáng)的主觀性。深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)能更加智能地學(xué)習(xí)與XSS攻擊相關(guān)的抽象特征,在一定程度上選擇了與XSS攻擊相關(guān)性高的特征。為了挖掘XSS攻擊的相關(guān)特征,研究者將長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、門(mén)控循環(huán)單元(GRU)、圖卷積網(wǎng)絡(luò)(GCN)以及殘差網(wǎng)絡(luò)(ResNet)各自組合在一起形成深度學(xué)習(xí)融合模型,在特征提取上進(jìn)行更加深入的研究。深度學(xué)習(xí)融合模型能夠融合各自提取的特征,更加有效地學(xué)習(xí)XSS攻擊特征的時(shí)空依賴性[31]。
為了解決XSS攻擊檢測(cè)中小樣本問(wèn)題,Liu等人[32]受到使用半監(jiān)督的圖卷積網(wǎng)絡(luò)可以有效提取圖數(shù)據(jù)的特征[33]以及容易從模糊的相鄰詞中找到特征信息的啟發(fā),將圖卷積網(wǎng)絡(luò)和殘差網(wǎng)絡(luò)結(jié)合起來(lái),提出了一種基于圖卷積網(wǎng)絡(luò)的XSS攻擊檢測(cè)方法GraphXSS。該方法通過(guò)改進(jìn)傳統(tǒng)的圖卷積網(wǎng)絡(luò),在原本兩三層的圖卷積網(wǎng)絡(luò)增加一個(gè)殘差網(wǎng)絡(luò)隱藏層,將殘差網(wǎng)絡(luò)隱藏層的前一層輸出的特征矩陣和之后層輸出的特征矩陣相加作為新的特征矩陣傳遞到第三層進(jìn)行計(jì)算,形成了更優(yōu)的特征提取策略。該算法利用圖卷積網(wǎng)絡(luò)對(duì)小樣本下的XSS攻擊載荷進(jìn)行快速識(shí)別。Kadhim等人[34]將CNN與LSTM相結(jié)合來(lái)檢測(cè)XSS攻擊。該方法將三個(gè)CNN進(jìn)行串聯(lián),用以提高CNN在CNN-LSTM網(wǎng)絡(luò)體系中特征提取精度;然后將提取到的特征信息輸入到LSTM網(wǎng)絡(luò)中,學(xué)習(xí)XSS攻擊特征相關(guān)的上下文信息。其優(yōu)點(diǎn)是將兩者提取到的特征相結(jié)合形成更高階的特征,進(jìn)而提高對(duì)XSS攻擊的檢測(cè)能力。
由于LSTM在訓(xùn)練時(shí)參數(shù)量過(guò)于龐大,訓(xùn)練所需時(shí)間和內(nèi)存消耗都十分巨大。Yang等人[35]提出了一種基于CNN的CGRU神經(jīng)網(wǎng)絡(luò)模型,該模型針對(duì)由惡意URL造成的Web攻擊進(jìn)行檢測(cè)。首先,CGRU模型使用CNN提取URL中特有的惡意關(guān)鍵字特征,并用GRU將CNN中的池化層進(jìn)行替換,GRU保證了上層卷積神經(jīng)網(wǎng)絡(luò)處理過(guò)的高階特征中的上下文關(guān)系不丟失,也進(jìn)一步從高階特征中提取具有代表性的基于時(shí)間序列的特征。與CNN-LSTM[33]將兩類(lèi)網(wǎng)絡(luò)進(jìn)行串聯(lián)不同,CGRU模型通過(guò)在CNN中嵌入GRU模塊替代原本的池化層以進(jìn)一步加強(qiáng)XSS攻擊數(shù)據(jù)高階特征。
傳統(tǒng)的CNN使用全連通層來(lái)把握XSS攻擊數(shù)據(jù)的URL全局特征,且參數(shù)較多會(huì)導(dǎo)致模型的復(fù)雜度上升,訓(xùn)練時(shí)間也會(huì)相應(yīng)增加。為此,Yan等人[36]對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行改進(jìn),將殘差網(wǎng)絡(luò)與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出了MRBN-CNN模型來(lái)檢測(cè)XSS攻擊。該方法將ResNet中的殘差塊MRB組合到NIN型卷積神經(jīng)網(wǎng)絡(luò)中,該模型由五個(gè)使用不同卷積核的MRB并聯(lián)和代替全連接層的兩個(gè)1×1卷積層串聯(lián)組成,MRB用來(lái)分析XSS攻擊URL特征中單詞的語(yǔ)義及位置關(guān)系,更加全面地提取了XSS攻擊的全局特征,而1×1卷積層在一定程度上減少了參數(shù)。該模型的復(fù)雜度較低,對(duì)特征的提取更加全面,提升了檢測(cè)XSS攻擊的準(zhǔn)確性和效率。為了解決單一深度學(xué)習(xí)方法提取XSS攻擊數(shù)據(jù)時(shí)空特征不全面的問(wèn)題,林雍博等人[37]提出一種基于CNN和GRU的深度學(xué)習(xí)融合模型ResNet_GRU,其建立了一個(gè)字符級(jí)字典對(duì)XSS攻擊有效載荷進(jìn)行編碼,極大地保留了樣本的初始特征信息;然后利用CNN和GRU分別提取XSS攻擊序列的時(shí)間和空間特征,同時(shí)引入殘差框架加快網(wǎng)絡(luò)收斂和緩解梯度彌散問(wèn)題。該模型有效挖掘了XSS攻擊數(shù)據(jù)的時(shí)空特征,提升了XSS攻擊的檢測(cè)準(zhǔn)確率。
由于XSS攻擊數(shù)據(jù)可以看做是序列數(shù)據(jù),XSS攻擊序列前后具有很強(qiáng)的關(guān)聯(lián)性。而普通單向神經(jīng)網(wǎng)絡(luò)只能提取從前往后的XSS攻擊數(shù)據(jù)特征信息,這意味著它只能處理XSS攻擊的單向依賴,從而忽略了XSS攻擊序列的前后語(yǔ)義信息。為了解決這個(gè)問(wèn)題,研究者使用雙向神經(jīng)網(wǎng)絡(luò),從前后兩個(gè)方向提取XSS攻擊的語(yǔ)義特征,進(jìn)一步挖掘了XSS攻擊相關(guān)特征。
在電子郵件場(chǎng)景下的XSS攻擊極難被檢測(cè)且影響巨大,F(xiàn)ang等人[38]基于注意力機(jī)制和雙向循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)提出了一種用來(lái)檢測(cè)電子郵件中XSS攻擊的深度學(xué)習(xí)方法。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)之間神經(jīng)元不能相互傳遞信息,而RNN上一個(gè)神經(jīng)元可以向下一個(gè)神經(jīng)元傳遞,Bi-RNN在此基礎(chǔ)上加入了一個(gè)可以反向傳播的機(jī)制。該算法由兩個(gè)RNN組成,不僅從前往后保留了XSS攻擊預(yù)測(cè)詞的上文信息,而且從后往前提取了預(yù)測(cè)詞的下文信息,并通過(guò)全局注意力機(jī)制幫助模型更好地優(yōu)化權(quán)重參數(shù),使其達(dá)到最優(yōu)的模型。該方法使用雙向RNN更好地提取了XSS攻擊特征之間的關(guān)聯(lián)特征,使提取到的特征更優(yōu),而注意力機(jī)制則是使模型更優(yōu)。
傳統(tǒng)的檢測(cè)方法依賴于專家知識(shí)確定Script代碼是否惡意,容易出錯(cuò)且十分耗時(shí)。為此,Song等人[39]提出了基于雙向長(zhǎng)短期記憶網(wǎng)絡(luò)Bi-LSTM的XSS攻擊檢測(cè)模型。該模型通過(guò)構(gòu)造程序依賴圖(PDG)獲取XSS攻擊等惡意JavaScript攻擊代碼的語(yǔ)義信息,并通過(guò)一系列JavaScript去模糊工具對(duì)數(shù)據(jù)進(jìn)行去模糊處理;然后使用正向和反向兩個(gè)LSTM提取XSS攻擊的上下文信息,充分保留了XSS攻擊的前后信息,以更優(yōu)的特征來(lái)提高Bi-LSTM模型的檢測(cè)準(zhǔn)確率。JavaScript去模糊處理會(huì)篩選那些由攻擊者制造的偽裝成正常JavaScript代碼的惡意攻擊代碼,降低了模型的漏檢率。
Bi-LSTM在檢測(cè)XSS攻擊時(shí)存在長(zhǎng)期語(yǔ)義依賴問(wèn)題,即一個(gè)標(biāo)記的XSS攻擊信息的上下文表示在很大程度上受到句子中靠近它的標(biāo)記的影響。Hu等人[40]將自注意力機(jī)制應(yīng)用于Bi-LSTM中,提出了一種多通道特征融合的XSS攻擊檢測(cè)模型C-BLA。該模型融合兩個(gè)通道提取的特征,最后再進(jìn)行分類(lèi)。通道1使用不同卷積核大小的CNN對(duì)XSS攻擊的局部特征進(jìn)行提取,通道2使用Bi-LSTM從前向和后向兩個(gè)方向?qū)SS攻擊上下文信息進(jìn)行充分提取,并結(jié)合自注意力機(jī)制對(duì)Bi-LSTM在XSS攻擊檢測(cè)中存在的語(yǔ)義長(zhǎng)期依賴問(wèn)題加以改善。
2.1.3 基于集成體系的集成學(xué)習(xí)方法
單一機(jī)器學(xué)習(xí)方法自身都有著不可避免的缺陷,并且在檢測(cè)XSS攻擊的過(guò)程中這些方法無(wú)法適應(yīng)不斷進(jìn)化且復(fù)雜多變XSS攻擊,檢測(cè)精度也不穩(wěn)定[41]。研究者通過(guò)實(shí)驗(yàn)證明,一階段的分類(lèi)器并不能很好地區(qū)分純文本[42]或者不能搜集更多的證據(jù)。而Web應(yīng)用程序的輸入可以是文本或腳本,且不同Web階段也可以再產(chǎn)生不同的特征。單一機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法都不能很好地處理這些情況,為此,研究者對(duì)集成學(xué)習(xí)技術(shù)進(jìn)行深入研究。
隨著社交網(wǎng)絡(luò)服務(wù)(SNS)的興起,XSS攻擊對(duì)其威脅也與日俱增,由此出現(xiàn)了一種在社交網(wǎng)站網(wǎng)頁(yè)上的新型XSS攻擊——XSS蠕蟲(chóng)。Rathore等人[43]針對(duì)基于SNS網(wǎng)頁(yè)的XSS蠕蟲(chóng)進(jìn)行深入研究,使用了一種集成學(xué)習(xí)方法XSS-Classifier對(duì)XSS蠕蟲(chóng)檢測(cè),該方法對(duì)XSS攻擊的URL、HTML以及XSS蠕蟲(chóng)獨(dú)有的SNS特征進(jìn)行提取,并利用10個(gè)分類(lèi)器對(duì)XSS攻擊數(shù)據(jù)進(jìn)行模型的訓(xùn)練,在有XSS蠕蟲(chóng)攻擊特征的加入下,集成學(xué)習(xí)方法random forest和ADTree獲得了比其他單一機(jī)器學(xué)習(xí)分類(lèi)器更好的性能。
為了挖掘XSS攻擊相關(guān)特征,研究者通過(guò)組合多個(gè)分類(lèi)器來(lái)構(gòu)建比單一機(jī)器學(xué)習(xí)更穩(wěn)定的XSS攻擊檢測(cè)體系,利用集成體系對(duì)XSS攻擊進(jìn)行多次特征提取,通過(guò)組合不同分類(lèi)器提取的XSS攻擊特征既可以整體把握XSS攻擊特征,也可以處理XSS攻擊數(shù)據(jù)集不平衡的問(wèn)題。
Mereani等人[42]以結(jié)合各個(gè)分類(lèi)器的優(yōu)點(diǎn)提升對(duì)XSS攻擊的檢測(cè)精度為目的,構(gòu)造了一個(gè)用于檢測(cè)XSS攻擊的集成系統(tǒng),該系統(tǒng)使用級(jí)聯(lián)的思想,將系統(tǒng)第一與二階段進(jìn)行聯(lián)動(dòng),第一階段的輸出作為第二階段的輸入。決策樹(shù)作為系統(tǒng)的第一階段,通過(guò)該階段來(lái)區(qū)分輸入系統(tǒng)的XSS攻擊數(shù)據(jù)是文本還是腳本;在第二階段使用多種分類(lèi)器組成堆疊體系對(duì)來(lái)自第一階段的基于腳本特征的XSS攻擊數(shù)據(jù)進(jìn)行特征提取,并選擇經(jīng)過(guò)實(shí)驗(yàn)比較后性能最好的多項(xiàng)式核支持向量機(jī)(SVM-P)作為元分類(lèi)器對(duì)來(lái)自堆疊體系的XSS攻擊特征進(jìn)行訓(xùn)練。該系統(tǒng)通過(guò)堆疊體系來(lái)提升對(duì)XSS攻擊的特征提取,這種組合分類(lèi)器思想提升了對(duì)XSS攻擊特征的整體把握。
現(xiàn)有的XSS攻擊檢測(cè)方法一般對(duì)Web請(qǐng)求和響應(yīng)兩個(gè)階段其中一個(gè)進(jìn)行提取特征,如果這一階段提供的特征不夠充分,就可能識(shí)別不出XSS攻擊。為此,Zhang等人[44]提出了一種集成學(xué)習(xí)方法來(lái)檢測(cè)XSS攻擊,該方法將兩個(gè)高斯混合模型(GMM)進(jìn)行集成,分別用于訓(xùn)練請(qǐng)求、響應(yīng)中的XSS攻擊有效載荷和正常的有效載荷。然后,兩個(gè)GMM模型同時(shí)在包含XSS攻擊數(shù)據(jù)和正常數(shù)據(jù)的同一數(shù)據(jù)集上進(jìn)行訓(xùn)練,形成對(duì)照。如果結(jié)果相同則表示該兩個(gè)GMM模型有一個(gè)識(shí)別錯(cuò)誤,此操作可有效減少對(duì)XSS攻擊的漏檢,該模型基于兩個(gè)階段對(duì)XSS攻擊進(jìn)行檢測(cè),通過(guò)挖掘響應(yīng)中的信息來(lái)解決Web請(qǐng)求數(shù)據(jù)特征信息不全面的局限。
與以上研究者對(duì)特征處理的方法不同,其他研究者結(jié)合真實(shí)世界信息如威脅情報(bào)來(lái)對(duì)XSS攻擊的特征進(jìn)行補(bǔ)充,以此來(lái)檢測(cè)隱藏的XSS攻擊;或者在特征提取上使用融合特征選擇方法來(lái)選擇最優(yōu)的XSS攻擊特征。
現(xiàn)有XSS攻擊檢測(cè)模型缺乏對(duì)結(jié)果的解釋,而貝葉斯網(wǎng)絡(luò)模型對(duì)結(jié)果有良好的可解釋性,但傳統(tǒng)的貝葉斯網(wǎng)絡(luò)需要大量高質(zhì)量的數(shù)據(jù)來(lái)對(duì)貝葉斯網(wǎng)絡(luò)進(jìn)行結(jié)構(gòu)學(xué)習(xí),而在XSS攻擊場(chǎng)景下很難滿足此條件。為此,Zhou等人[45]提出了基于貝葉斯網(wǎng)絡(luò)組合領(lǐng)域知識(shí)和威脅情報(bào)(ENSEM-BLE)進(jìn)行推理的集成學(xué)習(xí)方法。該方法使用重采樣的技術(shù)學(xué)習(xí)多個(gè)貝葉斯網(wǎng)絡(luò)基分類(lèi)器,在推理中融合基于威脅情報(bào)的補(bǔ)償規(guī)則進(jìn)行決策,降低了誤報(bào)率;最后根據(jù)貝葉斯網(wǎng)絡(luò)中節(jié)點(diǎn)對(duì)輸出節(jié)點(diǎn)的影響進(jìn)行重要性排序,依據(jù)該順序面向用戶對(duì)預(yù)測(cè)結(jié)果作出解釋。
在現(xiàn)有的XSS攻擊檢測(cè)中,針對(duì)假陽(yáng)性率研究較多而對(duì)假陰性率研究甚少。為降低對(duì)XSS攻擊的漏檢,提高對(duì)XSS攻擊的檢測(cè)率,Mokbal等人[46]基于極端梯度Boosting提出了一種用于檢測(cè)XSS攻擊的集成學(xué)習(xí)方法XGBXSS。該方法采用Boosting學(xué)習(xí)的思想,選擇決策樹(shù)作為基本分類(lèi)器,各個(gè)分類(lèi)樹(shù)排列有序,每棵樹(shù)都向之前的樹(shù)學(xué)習(xí)以縮小前一棵決策樹(shù)在檢測(cè)XSS攻擊可能犯下的錯(cuò)誤,從而降低對(duì)XSS攻擊的漏檢。在特征提取上使用基于信息增益(IG)和翹曲方法(SBS)的混合特征選擇來(lái)對(duì)大型XSS攻擊數(shù)據(jù)集進(jìn)行特征維數(shù)約減,從而選擇最優(yōu)特征子集,此操作解決了數(shù)據(jù)集存在數(shù)據(jù)維度過(guò)大導(dǎo)致模型復(fù)雜度上升、訓(xùn)練時(shí)間過(guò)長(zhǎng)的問(wèn)題。根據(jù)以上研究對(duì)基于非對(duì)抗性XSS攻擊檢測(cè)方法總結(jié)如表4所示。
2.2 基于對(duì)抗性XSS攻擊
攻擊者通過(guò)向原始XSS攻擊數(shù)據(jù)加入察覺(jué)不到的數(shù)據(jù)以欺騙機(jī)器學(xué)習(xí)分類(lèi)器,這些XSS攻擊對(duì)抗樣本人眼無(wú)法分辨[47],以上基于機(jī)器學(xué)習(xí)檢測(cè)XSS攻擊的方法容易受到XSS對(duì)抗攻擊的影響,不能夠?qū)SS攻擊作出正確的決策。為了避免XSS對(duì)抗攻擊對(duì)XSS攻擊檢測(cè)模型的影響,研究者針對(duì)對(duì)抗性XSS攻擊作了深入研究。一般采用強(qiáng)化學(xué)習(xí)的方法,利用其試錯(cuò)策略識(shí)別或生成XSS對(duì)抗攻擊。
研究者通過(guò)強(qiáng)化學(xué)習(xí)有效挖掘?qū)箻颖?,并將?duì)抗樣本標(biāo)記為惡意樣本對(duì)XSS攻擊檢測(cè)模型進(jìn)行優(yōu)化,進(jìn)而壓縮檢測(cè)模型的對(duì)抗樣本空間,提高對(duì)XSS攻擊的檢測(cè)精度。Fang等人[48]提出了一種基于強(qiáng)化學(xué)習(xí)檢測(cè)XSS對(duì)抗攻擊的方法RLXSS,該方法包括對(duì)抗攻擊模型和再訓(xùn)練模型。首先,對(duì)抗攻擊模型中的黑白盒檢測(cè)模型通過(guò)調(diào)用網(wǎng)頁(yè)檢測(cè)API,對(duì)XSS對(duì)抗攻擊進(jìn)行識(shí)別,逃過(guò)黑白盒檢測(cè)模型的樣本將傳輸給基于DDQN的學(xué)習(xí)代理,并根據(jù)環(huán)境狀態(tài)選擇最優(yōu)的逃逸行為;其次,修改后的樣本將其重新輸入黑白盒模型進(jìn)行檢測(cè),根據(jù)是否逃逸成功來(lái)給予獎(jiǎng)勵(lì),否則繼續(xù)尋找最優(yōu)逃逸策略,逃逸成功的保存為XSS對(duì)抗攻擊樣本;最后,通過(guò)將對(duì)抗樣本標(biāo)記為惡意樣本,重新訓(xùn)練檢測(cè)模型。交替訓(xùn)練檢測(cè)模型和對(duì)抗攻擊模型,在檢測(cè)模型保持良好檢測(cè)能力的同時(shí)不斷提高對(duì)對(duì)抗攻擊的防御能力,此方法可以挖掘到逃脫黑白盒模型檢測(cè)的XSS對(duì)抗攻擊,并用其來(lái)優(yōu)化XSS攻擊檢測(cè)模型。
Zhang等人[49]基于蒙特卡羅樹(shù)搜索算法(MCTS)提出了一種可以生成XSS攻擊對(duì)抗樣本的方法MCTS-T,該方法提出改進(jìn)蒙特卡羅樹(shù)搜索算法中的UCB算法選擇XSS攻擊的最佳動(dòng)作序列來(lái)生成XSS攻擊對(duì)抗樣本,并使用GAN對(duì)機(jī)器學(xué)習(xí)檢測(cè)模型LSTM和XGBoost進(jìn)行優(yōu)化。在GAN中通過(guò)MCTS-T提供的最佳動(dòng)作序列生成XSS對(duì)抗樣本,將它們標(biāo)記為XSS攻擊,分別對(duì)LSTM和XGBoost模型進(jìn)行訓(xùn)練;重復(fù)生成和訓(xùn)練的過(guò)程,直到XSS攻擊檢測(cè)模型能檢測(cè)到XSS對(duì)抗攻擊為止。使用該方法的XSS攻擊檢測(cè)模型能夠獲得適應(yīng)XSS對(duì)抗攻擊的最優(yōu)模型結(jié)構(gòu),并成功抵御XSS對(duì)抗攻擊。
與以上研究不同,下列研究著重關(guān)注生成XSS攻擊對(duì)抗樣本。通過(guò)改進(jìn)相應(yīng)的繞過(guò)策略來(lái)提升XSS攻擊的逃逸率,以提高對(duì)抗攻擊模型對(duì)抗樣本的生成質(zhì)量。
為了提高惡意樣本的置信度以及用更多策略生成XSS對(duì)抗攻擊樣本,Wang等人[50]利用軟Q學(xué)習(xí)算法構(gòu)建XSS對(duì)抗攻擊模型,該模型針對(duì)XSS攻擊的JavaScript和HTML特征分別制定了相應(yīng)的轉(zhuǎn)義策略。首先,XSS攻擊載荷依次放入基于HTML和JavaScript特征的對(duì)抗攻擊模型中,由XSS攻擊檢測(cè)環(huán)境識(shí)別XSS攻擊樣本的HTML或JavaScript部分;然后將獎(jiǎng)勵(lì)和狀態(tài)輸出到軟Q學(xué)習(xí)HTML轉(zhuǎn)義代理或JavaScript代理,軟Q學(xué)習(xí)轉(zhuǎn)義代理根據(jù)狀態(tài)選擇轉(zhuǎn)義動(dòng)作,并根據(jù)XSS攻擊檢測(cè)環(huán)境輸出的獎(jiǎng)賞反饋進(jìn)行學(xué)習(xí)。
為了解決現(xiàn)有生成XSS攻擊對(duì)抗樣本轉(zhuǎn)義率低的問(wèn)題,Chen等人[51]提出基于soft actor-critic(SAC)的強(qiáng)化學(xué)習(xí)框架來(lái)生成XSS對(duì)抗攻擊樣本。該框架由對(duì)抗攻擊模型和檢測(cè)模型構(gòu)成,對(duì)抗攻擊模型使用基于SAC的強(qiáng)化學(xué)習(xí)代理,檢測(cè)模型使用CNN、MLP和LSTM網(wǎng)絡(luò)。首先,對(duì)XSS攻擊向量設(shè)計(jì)了不同的變異機(jī)制以此來(lái)提高逃逸率,將XSS攻擊樣本輸入檢測(cè)模型中進(jìn)行判斷,如果是XSS攻擊則交給對(duì)抗攻擊模型;然后由智能體根據(jù)檢測(cè)模型的反饋選擇合適的逃逸策略,直到繞過(guò)檢測(cè)模型。該框架使用SAC避免了軟Q學(xué)習(xí)算法的復(fù)雜性,大大提升了生成XSS對(duì)抗攻擊的效率,并且逃逸率也是目前為止最高的。
根據(jù)以上研究,對(duì)上述基于對(duì)抗性XSS攻擊的檢測(cè)方法總結(jié)如表5所示。
2.3 小結(jié)
對(duì)于非對(duì)抗性XSS攻擊,單一機(jī)器學(xué)習(xí)方法使用一種學(xué)習(xí)方法從數(shù)據(jù)中構(gòu)建決策模型來(lái)完成XSS攻擊的檢測(cè),這種方法適用于注入惡意JavaScript代碼的XSS攻擊;深度學(xué)習(xí)憑借自動(dòng)學(xué)習(xí)數(shù)據(jù)特征的能力,通過(guò)深度學(xué)習(xí)模型之間的不同組合,形成擁有更好的特征提取機(jī)制的深度學(xué)習(xí)融合模型來(lái)挖掘XSS攻擊的相關(guān)特征,改善了單一機(jī)器學(xué)習(xí)方法由于特征提取性能低導(dǎo)致決策模型檢測(cè)精度不高的問(wèn)題;而集成學(xué)習(xí)方法通過(guò)組合多個(gè)分類(lèi)器來(lái)構(gòu)建更穩(wěn)定的XSS攻擊檢測(cè)體系,解決了基于單一機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法的一階段分類(lèi)器不能很好區(qū)分純文本或者不能搜集更多證據(jù)的問(wèn)題。
對(duì)于對(duì)抗性XSS攻擊一般采用強(qiáng)化學(xué)習(xí)的方法,利用其試錯(cuò)策略來(lái)識(shí)別或生成XSS對(duì)抗攻擊樣本,基于這些樣本對(duì)XSS攻擊檢測(cè)模型進(jìn)行再訓(xùn)練,壓縮了檢測(cè)模型的對(duì)抗樣本空間,提高了對(duì)XSS攻擊的檢測(cè)精度。
根據(jù)XSS攻擊是否具有隱蔽性,表6對(duì)上述基于機(jī)器學(xué)習(xí)的XSS攻擊檢測(cè)方法進(jìn)行了總結(jié)。
3 XSS攻擊防御技術(shù)
XSS攻擊檢測(cè)技術(shù)旨在XSS攻擊發(fā)生時(shí)通過(guò)機(jī)器學(xué)習(xí)方法檢測(cè)出XSS攻擊,而XSS攻擊防御技術(shù)作為解決XSS攻擊的方法,是指使用一定的規(guī)則或策略阻止XSS攻擊腳本的注入和傳播,保護(hù)系統(tǒng)免受實(shí)時(shí)的XSS攻擊?,F(xiàn)有的XSS攻擊防御技術(shù)主要針對(duì)非對(duì)抗性XSS攻擊進(jìn)行防御,關(guān)于XSS攻擊防御技術(shù)大致可分為規(guī)則過(guò)濾、移動(dòng)目標(biāo)防御(MTD)和隔離沙箱三類(lèi)。
3.1 基于規(guī)則過(guò)濾
規(guī)則過(guò)濾是防止包括XSS攻擊在內(nèi)的網(wǎng)絡(luò)攻擊的一種常見(jiàn)的方法,該方法簡(jiǎn)單且容易實(shí)現(xiàn)。通過(guò)建立XSS攻擊規(guī)則庫(kù),與規(guī)則庫(kù)進(jìn)行匹配分析來(lái)防止XSS攻擊。在現(xiàn)有的XSS攻擊防御中,基于規(guī)則過(guò)濾的方法大致有黑名單或白名單的過(guò)濾、正則表達(dá)式的過(guò)濾、內(nèi)容安全策略的過(guò)濾和上傳過(guò)濾。
3.1.1 基于黑名單或白名單過(guò)濾
基于黑名單或白名單的過(guò)濾是通過(guò)設(shè)置黑名單列表,在黑名單列表里面的腳本將被阻止執(zhí)行;或設(shè)置白名單列表,不在列表里的腳本將被阻止執(zhí)行。
動(dòng)態(tài)代碼生成技術(shù)會(huì)使XSS攻擊語(yǔ)法發(fā)生微小變化,從而引起對(duì)XSS攻擊的誤判。Mitropoulos等人[52]提出了一種基于上下文指紋的腳本白名單XSS攻擊客戶端防御方法,該方法在瀏覽器的JavaScript引擎中部署了一層腳本攔截層,將每一個(gè)到達(dá)瀏覽器的腳本與被訪問(wèn)的Web網(wǎng)站或頁(yè)面的有效腳本白名單列表進(jìn)行對(duì)比,不在白名單列表中的腳本將被阻止執(zhí)行。當(dāng)需要在服務(wù)器端添加或修改腳本元素時(shí),有一個(gè)新的指紋生成階段,與指紋不匹配的腳本將被阻止執(zhí)行。該方法使用指紋可以很容易地為腳本添加新的元素,具有很強(qiáng)的魯棒性,并且開(kāi)發(fā)人員無(wú)須修改Web應(yīng)用程序的代碼來(lái)支持該方法的執(zhí)行。
Gupta等人[53]提出了一種基于黑名單的可以自動(dòng)發(fā)現(xiàn)XSS攻擊向量的服務(wù)器端XSS攻擊防御框架XSS-explorer。XSS-explorer構(gòu)建了與Web應(yīng)用程序每個(gè)腳本注入點(diǎn)相關(guān)的XSS攻擊向量庫(kù),并使用混合分析查找XSS攻擊,先靜態(tài)分析文件的所有注入點(diǎn),再使用動(dòng)態(tài)分析注入惡意向量并觀察導(dǎo)致的行為。服務(wù)器會(huì)分析包含有效負(fù)載的HTTP請(qǐng)求,并與XSS攻擊向量庫(kù)進(jìn)行匹配,匹配成功的請(qǐng)求將被阻止。該框架加快了XSS攻擊向量的發(fā)現(xiàn)頻率,并且向量庫(kù)會(huì)隨著XSS攻擊向量的發(fā)現(xiàn)而不斷更新。Chaudhary等人[54]提出了一種基于黑名單防御社交網(wǎng)絡(luò)平臺(tái)上XSS攻擊的方法XSSPro,該方法將JavaScript代碼隔離在單獨(dú)的文件中進(jìn)行操作,然后通過(guò)Levenshtein距離相似度算法對(duì)JavaScript腳本代碼進(jìn)行解碼,最后將提取的腳本與XSS攻擊向量庫(kù)進(jìn)行匹配。如果匹配成功就使用XSS過(guò)濾API對(duì)腳本進(jìn)行消毒,安全的腳本將被保留并傳遞給用戶。此方法能夠有效抵御使用內(nèi)置代碼語(yǔ)言新特性所導(dǎo)致的XSS攻擊,且誤報(bào)率較低。
為了解決開(kāi)發(fā)人員不具備必要的專業(yè)知識(shí)和充足的資源從XSS攻擊的源頭對(duì)XSS攻擊進(jìn)行防御的問(wèn)題,Pazos等人[55]提出了一種基于黑名單的Firefox客戶端防御擴(kuò)展XSnare,該擴(kuò)展構(gòu)建了一個(gè)簽名庫(kù),當(dāng)瀏覽器擴(kuò)展接收到HTTP響應(yīng)后,XSnare會(huì)分析潛在的惡意文檔,然后擴(kuò)展從客戶端本地?cái)?shù)據(jù)庫(kù)加載簽名到其檢測(cè)器;檢測(cè)器分析來(lái)自Web網(wǎng)頁(yè)的HTML字符串,并匹配適用于文檔的簽名。這些簽名在文檔中指定一個(gè)或多個(gè)“注入點(diǎn)”,這些“注入點(diǎn)”對(duì)應(yīng)于DOM中可能注入有害內(nèi)容的區(qū)域;然后該擴(kuò)展對(duì)其中的惡意內(nèi)容進(jìn)行消毒,并將干凈的HTML文檔呈現(xiàn)在瀏覽器上,該擴(kuò)展使用的簽名庫(kù)減少了從發(fā)生零日攻擊到開(kāi)發(fā)人員將補(bǔ)丁應(yīng)用到瀏覽器上的時(shí)間。
3.1.2 基于正則表達(dá)式過(guò)濾
由于在防御XSS攻擊的實(shí)際應(yīng)用場(chǎng)景中不可能列出所有良性腳本和XSS攻擊腳本,基于黑名單或白名單的過(guò)濾方法不是一個(gè)很好的XSS攻擊解決方案,在防御XSS攻擊的過(guò)程中難以被有效使用。基于正則表達(dá)式的過(guò)濾是使用正則表達(dá)式來(lái)描述XSS攻擊,而不是設(shè)置黑名單或白名單來(lái)阻止或識(shí)別列表里的XSS攻擊,基于此方法的過(guò)濾器一般部署在服務(wù)器端或客戶端。
為了防止CS-XSS,Gebre等人[56]基于內(nèi)容嗅探算法的多樣性設(shè)計(jì)了一個(gè)服務(wù)器端的過(guò)濾器。該過(guò)濾器將能夠進(jìn)行XSS攻擊的HTML元素和屬性進(jìn)行精準(zhǔn)識(shí)別,并用正則表達(dá)式的方式表現(xiàn)出它們的序列,憑借正則表達(dá)式提出了自動(dòng)匹配輸入文本中正則表達(dá)式的策略。過(guò)濾器根據(jù)其策略來(lái)檢查用戶上傳的文件,以阻止帶有CS-XSS的文件上傳至服務(wù)器中,以此來(lái)保護(hù)可能將非HTML文件視為HTML文件的瀏覽器。
在XSS攻擊防御方法的研究中,缺乏對(duì)移動(dòng)Web應(yīng)用程序的研究。為了減少移動(dòng)設(shè)備Web應(yīng)用程序中易被忽視的XSS攻擊,Javed等人[57]提出了一種部署在移動(dòng)客戶端的基于正則表達(dá)式的過(guò)濾器,通過(guò)對(duì)文獻(xiàn)[58]的正則表達(dá)式進(jìn)行三處改進(jìn)提出一種新的正則表達(dá)式過(guò)濾策略:使用腳本標(biāo)記處理XSS向量、使用onerror、onload等事件處理程序?qū)SS向量進(jìn)行處理和使用JavaScript URL匹配XSS向量。其正則表達(dá)式策略既可以部署在服務(wù)器端的防火墻中,又可以作為客戶端的JavaScript函數(shù)。應(yīng)用新的正則表達(dá)式過(guò)濾策略的過(guò)濾器計(jì)算速度更快、易于維護(hù),并且可以處理代碼混淆技術(shù)生成的XSS攻擊,大大加強(qiáng)了移動(dòng)設(shè)備防御XSS攻擊的能力。
3.1.3 基于內(nèi)容安全策略過(guò)濾
內(nèi)容安全策略(CSP)[59]是一個(gè)新增的安全層,其具有許多策略指令,可以幫助檢查和減輕XSS攻擊及其他數(shù)據(jù)注入攻擊。CSP允許服務(wù)器管理員按照既定的規(guī)則執(zhí)行腳本,從而減少甚至消除攻擊向量。帶有CSP的瀏覽器將只執(zhí)行從白名單域中接收到的文件的腳本,不執(zhí)行其他腳本。
瀏覽器的算法和內(nèi)容具有多樣性,使得Web站點(diǎn)過(guò)濾異常困難。為此,Jim等人[60]提出了一種瀏覽器強(qiáng)制策略BEEP來(lái)防止腳本注入,其本質(zhì)是一種基于白名單的過(guò)濾,網(wǎng)站在Web頁(yè)面嵌入策略,該策略只執(zhí)行白名單列表中的腳本;該策略容易執(zhí)行,不會(huì)產(chǎn)生誤報(bào),瀏覽器支持Beep只需要進(jìn)行很小的本地化修改。
由于不安全的服務(wù)器端JavaScript的生成和攻擊者對(duì)腳本源的控制可能會(huì)導(dǎo)致XSS攻擊,這種情況CSP無(wú)法很好解決,為此,Johns等人[61]提出了一種對(duì)CSP擴(kuò)展的方案PreparedJS。該方案提出了腳本模板和腳本校驗(yàn)和,通過(guò)腳本模板,數(shù)據(jù)的占位符用特定的語(yǔ)法標(biāo)記;腳本校驗(yàn)和是在腳本模板上計(jì)算的一個(gè)加密哈希,對(duì)于瀏覽器接收到的每個(gè)腳本,瀏覽器計(jì)算相應(yīng)腳本模板的校驗(yàn)和,如果校驗(yàn)和包含在策略允許的腳本校驗(yàn)和集合中便允許執(zhí)行。該方案能夠有效緩解XSS攻擊,且開(kāi)銷(xiāo)較低。
為了防止DXSS,Iqbal等人[62]提出了一種基于瀏覽器和策略混合的保護(hù)機(jī)制PoliDOM,它可以防止對(duì)瀏覽器生成的DOM對(duì)象進(jìn)行非法更改。PoliDOM由DOM安全策略(DSP)和DOM監(jiān)控模塊(DMM)組成。DSP允許應(yīng)用開(kāi)發(fā)人員在HTML上指定安全策略來(lái)提供服務(wù)器端控制,通過(guò)HTTP頭傳遞到Web瀏覽器,由安裝在瀏覽器中的DOM監(jiān)控模塊強(qiáng)制執(zhí)行。DMM分析每個(gè)傳入的DOM修改請(qǐng)求,并根據(jù)開(kāi)發(fā)人員設(shè)定的安全策略允許或阻止請(qǐng)求。由DMM監(jiān)控DOM的變化解決了傳統(tǒng)依賴JavaScript代碼監(jiān)控代碼易被混淆的問(wèn)題。
在當(dāng)前XSS攻擊防御的研究中,CSP因其魯棒性和強(qiáng)大被研究者廣泛關(guān)注。以上的研究,CSP依賴于安全人員的手動(dòng)生成,因而存在人為主觀因素導(dǎo)致的潛在錯(cuò)誤。為了解決這個(gè)問(wèn)題,研究者將目光關(guān)注到自動(dòng)生成CSP的技術(shù)中。
簡(jiǎn)單地為Web應(yīng)用程序啟用CSP會(huì)影響Web應(yīng)用程序的行為,并可能破壞其功能。為了解決這個(gè)問(wèn)題,F(xiàn)azzini等人[63]提出了一種自動(dòng)為Web應(yīng)用程序添加CSP的自動(dòng)化技術(shù)AutoCSP,通過(guò)動(dòng)態(tài)污染分析來(lái)確定被允許加載到Web應(yīng)用程序的動(dòng)態(tài)生成的HTML頁(yè)面上的內(nèi)容,并推斷出一個(gè)策略,該策略會(huì)阻止?jié)撛诘牟豢尚旁囟试S可信元素。最后,它會(huì)自動(dòng)修改Web應(yīng)用程序的服務(wù)器端代碼,以便使用適當(dāng)?shù)腃SP生成Web頁(yè)面。此方案能夠自動(dòng)生成CSP,且具有較低的開(kāi)銷(xiāo)。
為了解決現(xiàn)有XSS攻擊防御中在服務(wù)器端采用CSP較少的問(wèn)題,Pan等人[64]提出了一種可以同時(shí)部署在客戶端和服務(wù)器端的自動(dòng)化方案CSPAutoGen。CSPAutoGen為每個(gè)域訓(xùn)練模板,并根據(jù)模板自動(dòng)生成CSP;然后動(dòng)態(tài)地重寫(xiě)傳入的網(wǎng)頁(yè)以應(yīng)用那些生成的CSP,將重寫(xiě)的網(wǎng)頁(yè)提供給客戶端瀏覽器;最后,在客戶端運(yùn)行階段,由瀏覽器強(qiáng)制執(zhí)行CSP,以確保不執(zhí)行惡意腳本。CSPAutoGen設(shè)計(jì)了一個(gè)模板機(jī)制用以區(qū)分正常和異常的腳本,并且可以處理所有的內(nèi)聯(lián)和動(dòng)態(tài)腳本,具有較低的誤報(bào)。
為了解決CSP低可擴(kuò)展性的問(wèn)題,Xu等人[65]提出了一種基于JavaScript和CSP的自動(dòng)化JSCSP。JSCSP通過(guò)分析用戶實(shí)時(shí)訪問(wèn)的頁(yè)面自動(dòng)生成相應(yīng)的安全策略,然后實(shí)施該策略。實(shí)施時(shí)會(huì)暫時(shí)阻止接收到頁(yè)面的DOM,生成更安全的DOM,并檢查策略規(guī)則防止Web網(wǎng)頁(yè)在客戶端執(zhí)行注入的惡意代碼,然后啟用原始DOM。JSCSP能夠自動(dòng)生成策略,并且可以防御MXSS和UXSS等新型XSS攻擊。
3.1.4 基于上傳過(guò)濾
當(dāng)下隨著社交網(wǎng)絡(luò)的興起,具有上傳功能的Web應(yīng)用程序也日益增多。上傳過(guò)濾是一種針對(duì)Web應(yīng)用程序上傳功能來(lái)防御CS-XSS攻擊的方法,被部署在服務(wù)器端,當(dāng)有文件上傳到服務(wù)器中,它會(huì)掃描文件判斷是否具有惡意腳本,檢查到惡意腳本就清除,或者直接拒絕文件的上傳。
XSS攻擊防御通常關(guān)注HTML文檔而忽略了攻擊者可能利用瀏覽器中的內(nèi)容嗅探算法來(lái)發(fā)動(dòng)CS-XSS。為此,Barth等人[66]提出了一種基于內(nèi)容嗅探算法的上傳過(guò)濾器。通過(guò)將Internet Explorer 7、Firefox 3、Safari 3.1和谷歌Chrome四種瀏覽器使用的內(nèi)容嗅探算法進(jìn)行比較發(fā)現(xiàn),HTML簽名對(duì)構(gòu)造CS-XSS至關(guān)重要,進(jìn)而實(shí)現(xiàn)了一個(gè)由HTML簽名組成的上傳過(guò)濾器。上傳文件時(shí),將文件內(nèi)容與簽名進(jìn)行匹配,然后服務(wù)器會(huì)阻止匹配成功的文件進(jìn)行上傳。
Barth等人實(shí)現(xiàn)的過(guò)濾器只分析文件的初始字節(jié),然而攻擊的有效負(fù)載可能存在于文件中的任何位置。為此,Barua等人[67]提出了一種基于HTML和JavaScript解析器的服務(wù)器端內(nèi)容嗅探攻擊檢測(cè)機(jī)制。其中的MIME解析器對(duì)文件中的MIME類(lèi)型進(jìn)行檢測(cè),上傳策略檢查器對(duì)檢測(cè)結(jié)果進(jìn)行決策,如果無(wú)法檢測(cè)到MIME類(lèi)型或者不在白名單的列表中,則拒絕文件的上傳。為了避免誤報(bào),對(duì)上傳策略檢查器決策出的正常文件使用HTML和JavaScript解析器對(duì)文件內(nèi)容進(jìn)行分析。HTML解析器分析文件內(nèi)容并進(jìn)行標(biāo)記,出現(xiàn)標(biāo)記表明該文件可能包含惡意內(nèi)容。然后,JavaScript解析器檢查標(biāo)記中是否存在惡意的JavaScript代碼,若存在則阻止文件的上傳。
3.2 基于移動(dòng)目標(biāo)防御
移動(dòng)目標(biāo)防御(MTD)是一種新興的保護(hù)傳統(tǒng)信息技術(shù)系統(tǒng)的防御策略[68],與過(guò)濾方法阻止XSS攻擊進(jìn)行攻擊不同,MTD更多地關(guān)注通過(guò)其隨機(jī)性降低受到XSS攻擊的風(fēng)險(xiǎn)。通過(guò)不斷改變Web應(yīng)用程序的配置參數(shù)來(lái)減少攻擊者獲得的知識(shí),利用多樣性策略來(lái)防止攻擊者設(shè)計(jì)新的XSS攻擊向量。
為了解決可疑數(shù)據(jù)在Web應(yīng)用程序運(yùn)行時(shí)改變可信代碼結(jié)構(gòu)的問(wèn)題,Nadji等人[69]提出了一種可以在瀏覽器中實(shí)現(xiàn)的客戶端-服務(wù)器端的方案,在服務(wù)器端,通過(guò)Web服務(wù)器使用隨機(jī)化的標(biāo)記方法將不信任的數(shù)據(jù)與受信任的Web應(yīng)用程序代碼分開(kāi);在瀏覽器端,對(duì)文檔的結(jié)構(gòu)進(jìn)行重構(gòu),然后瀏覽器將Web網(wǎng)頁(yè)解析為它的初始解析樹(shù),并強(qiáng)制解析樹(shù)以識(shí)別文檔結(jié)構(gòu)中的不可信數(shù)據(jù)。一旦識(shí)別出可疑數(shù)據(jù),就初始化隔離數(shù)據(jù)并進(jìn)行動(dòng)態(tài)跟蹤,該方案通過(guò)對(duì)可疑數(shù)據(jù)進(jìn)行隔離來(lái)防御XSS攻擊,具有較低的誤報(bào)率。
為了解決使用白名單策略無(wú)法防止針對(duì)白名單的攻擊問(wèn)題,Athanasopoulos等人[70]提出了基于指令集隨機(jī)化的XSS攻擊防御框架xJS。其主要思想是在運(yùn)行時(shí)將JavaScript代碼進(jìn)行轉(zhuǎn)換,然后在瀏覽器上再轉(zhuǎn)回原本的代碼。他們使用異或操作來(lái)轉(zhuǎn)換靜態(tài)HTML文檔中的JavaScript代碼,在請(qǐng)求HTML文檔時(shí),Web頁(yè)面上的每個(gè)代碼都帶有一個(gè)解密密鑰;然后通過(guò)HTTP響應(yīng)頭傳回客戶端。在客戶端瀏覽器上,加密的代碼將再次與傳輸?shù)拿荑€進(jìn)行異或運(yùn)算,以還原成初始代碼。xJS通過(guò)將客戶端代碼與攻擊者注入的可疑代碼進(jìn)行分隔來(lái)達(dá)到防御XSS攻擊的目的,具有較小的計(jì)算開(kāi)銷(xiāo)。
現(xiàn)有的防御策略使用同源策略對(duì)多個(gè)Web應(yīng)用程序進(jìn)行隔離,但從可信服務(wù)器接收到的惡意內(nèi)容會(huì)被當(dāng)成可信內(nèi)容,并允許惡意代碼訪問(wèn)。為此,Van Gundy等人[71]提出了一種基于MTD隨機(jī)化的解決方案Noncspaces,其核心思想是,通過(guò)服務(wù)器準(zhǔn)確識(shí)別和標(biāo)記不受信任的內(nèi)容,客戶端實(shí)施相應(yīng)策略來(lái)防止XSS攻擊。首先,服務(wù)器使用一個(gè)函數(shù)隨機(jī)生成字符串作為HTML標(biāo)記的前綴,以響應(yīng)每個(gè)HTTP請(qǐng)求,使得每個(gè)注入的內(nèi)容將很容易被瀏覽器識(shí)別;其經(jīng)由服務(wù)器傳輸,并通過(guò)瀏覽器的安全策略對(duì)惡意內(nèi)容進(jìn)行阻止。該方案實(shí)現(xiàn)簡(jiǎn)單,不易產(chǎn)生假陽(yáng)性。
針對(duì)現(xiàn)有XSS攻擊防御方法中需要修改瀏覽器代碼或兼容性不足的問(wèn)題,Niakanlahiji等人[72]提出了一種主動(dòng)的移動(dòng)目標(biāo)防御機(jī)制WebMTD。該機(jī)制使用runtimeId屬性標(biāo)記Web應(yīng)用程序中所有的HTML元素,并向Web應(yīng)用程序添加兩個(gè)用JavaScript編寫(xiě)的安全檢查。瀏覽器通過(guò)調(diào)用這些檢查來(lái)驗(yàn)證添加的標(biāo)記,沒(méi)有runtimeId屬性或具有不同runtimeId值的新添加元素被認(rèn)為是惡意的,并被自動(dòng)刪除。該機(jī)制依靠現(xiàn)代瀏覽器的內(nèi)置特性,隨機(jī)分配runtimeId屬性的值以區(qū)分應(yīng)用程序代碼和注入代碼。該方案無(wú)須Web開(kāi)發(fā)人員參與或修改瀏覽器代碼即可完成,且不會(huì)產(chǎn)生誤報(bào)。
3.3 基于隔離沙箱
沙箱是一種防御XSS攻擊的隔離技術(shù),通過(guò)建立一個(gè)虛擬的空間將運(yùn)行中的Web應(yīng)用程序進(jìn)行隔離,以防止XSS攻擊的相互傳播。
為了防范WXSS,Cao等人[73]提出了一種基于沙箱技術(shù)的方法PathCutter,通過(guò)阻止WXSS經(jīng)由DOM訪問(wèn)不同的視圖和對(duì)服務(wù)器的未經(jīng)授權(quán)的HTTP請(qǐng)求這兩種傳播途徑來(lái)防御WXSS。首先,將每個(gè)Web應(yīng)用程序的內(nèi)容按照特定的規(guī)則將其劃分成不同且獨(dú)立的視圖;然后,將視圖封裝在一個(gè)偽域中,通過(guò)兩個(gè)域名實(shí)現(xiàn)隔離。由于同源策略的原因,攻擊者在獲得了一個(gè)視圖的控制后就不能訪問(wèn)另一個(gè)視圖。
根據(jù)以上研究,對(duì)XSS攻擊防御方法總結(jié)如表7所示。
4 結(jié)束語(yǔ)
由于攻擊策略的快速發(fā)展,傳統(tǒng)的檢測(cè)和防御方法不再有效。本文對(duì)近年來(lái)XSS攻擊檢測(cè)和防御技術(shù)進(jìn)行了全面的調(diào)研和回顧,針對(duì)XSS攻擊檢測(cè)技術(shù)各類(lèi)機(jī)器學(xué)習(xí)代表性方法和XSS攻擊防御技術(shù)各類(lèi)防范XSS攻擊方法的使用動(dòng)機(jī)、優(yōu)勢(shì)、局限性進(jìn)行了深入的探討。
在XSS攻擊檢測(cè)和防御技術(shù)的研究中,本文分別從樣本特征、模型特點(diǎn)和CSP的局限性、上傳功能的廣泛性等方面提出了XSS攻擊檢測(cè)和防御未來(lái)需要考慮的問(wèn)題,為XSS攻擊檢測(cè)和防御進(jìn)一步研究提供參考。
4.1 XSS攻擊檢測(cè)未來(lái)研究方向
4.1.1 基于XSS攻擊檢測(cè)模型
a)有限且不平衡的數(shù)據(jù)集。在現(xiàn)有公開(kāi)的XSS攻擊數(shù)據(jù)源中,數(shù)據(jù)集十分有限且數(shù)據(jù)存在嚴(yán)重的類(lèi)別不平衡現(xiàn)象。不平衡的數(shù)據(jù)會(huì)導(dǎo)致模型過(guò)分?jǐn)M合于樣本量大的數(shù)據(jù),從而大大降低了XSS攻擊檢測(cè)的準(zhǔn)確率。為此,可以使用數(shù)據(jù)增強(qiáng)的方法來(lái)對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的擴(kuò)充,從而降低數(shù)據(jù)類(lèi)別的不平衡性,也可以嘗試使用對(duì)過(guò)多類(lèi)別的數(shù)據(jù)進(jìn)行欠采樣、對(duì)過(guò)少類(lèi)別進(jìn)行過(guò)采樣的方法以及使用機(jī)器學(xué)習(xí)中的遷移學(xué)習(xí)等用于XSS攻擊數(shù)據(jù)集來(lái)改善模型的檢測(cè)性能也是未來(lái)的研究熱點(diǎn)。
b)模型的可解釋性。機(jī)器學(xué)習(xí)算法的目的是為了提升模型的泛化性能,模型的可解釋性有助于更深入地了解模型,在面對(duì)新的數(shù)據(jù)和樣本時(shí)有更好的泛化性能。在XSS攻擊檢測(cè)技術(shù)的研究中,對(duì)模型的可解釋性進(jìn)行研究的文獻(xiàn)很少。為此,應(yīng)在模型的可解釋性方面進(jìn)行深入研究,可以采用特征降維的方法來(lái)增強(qiáng)對(duì)數(shù)據(jù)的可解釋性,也可以嘗試將因果推理、對(duì)比學(xué)習(xí)等加入XSS攻擊檢測(cè)模型中來(lái)增強(qiáng)模型的可解釋性也是未來(lái)的研究熱點(diǎn)。
c)對(duì)抗魯棒性。研究者通過(guò)有效地挖掘?qū)箻颖静?duì)抗樣本標(biāo)記為惡意樣本,對(duì)XSS攻擊檢測(cè)模型進(jìn)行再訓(xùn)練。但經(jīng)過(guò)對(duì)抗訓(xùn)練的網(wǎng)絡(luò)輸出往往是相對(duì)置信度的,這種網(wǎng)絡(luò)對(duì)于正常樣本的性能往往是更差的。所以,在未來(lái)的XSS攻擊檢測(cè)研究中,如何平衡模型的對(duì)抗魯棒性和模型的泛化性能是重要的研究關(guān)注點(diǎn)??梢試L試將數(shù)據(jù)增強(qiáng)、集成學(xué)習(xí)等加入XSS對(duì)抗攻擊檢測(cè)中也是未來(lái)的研究熱點(diǎn)。
4.1.2 基于XSS攻擊類(lèi)型
a)對(duì)抗性XSS攻擊。機(jī)器學(xué)習(xí)檢測(cè)XSS攻擊的方法容易受到XSS對(duì)抗攻擊的影響,從而造成對(duì)XSS攻擊的漏檢。黑客尋找XSS攻擊對(duì)抗樣本的目的是為了攻擊XSS攻擊檢測(cè)模型,而白客則旨在發(fā)現(xiàn)和修補(bǔ)檢測(cè)模型的缺陷。因此,探索XSS對(duì)抗攻擊無(wú)論是對(duì)攻擊者還是防御者都意義重大。而研究者針對(duì)XSS對(duì)抗攻擊的研究較少,未來(lái)可對(duì)XSS對(duì)抗攻擊進(jìn)行深入研究。
b)新型XSS攻擊。近年來(lái),隨著Web技術(shù)的不斷革新,出現(xiàn)JavaScript型XSS攻擊、XSS蠕蟲(chóng)等新型XSS攻擊。其中對(duì)人們危害較大的是XSS蠕蟲(chóng),通過(guò)其自我復(fù)制的能力在用戶之間相互傳播。而在現(xiàn)有的XSS攻擊檢測(cè)中,研究者對(duì)三種基本類(lèi)型的XSS攻擊異?!捌珢?ài)”,所以未來(lái)可針對(duì)新型XSS攻擊進(jìn)行深入研究。
4.2 XSS攻擊防御未來(lái)研究方向
a)更加理想的CSP。在當(dāng)前XSS攻擊防御的研究中,CSP因其魯棒性和強(qiáng)大被研究者廣泛關(guān)注。但在大多數(shù)防御的研究中,CSP依賴于安全人員的手動(dòng)生成,因而存在人為主觀因素導(dǎo)致的潛在錯(cuò)誤;另外CSP的有效性受到挑戰(zhàn),它們?nèi)菀资艿紺R-XSS的攻擊。因此,為了達(dá)到更好的XSS攻擊防御效果,可利用在線學(xué)習(xí)實(shí)時(shí)調(diào)整CSP以應(yīng)對(duì)環(huán)境的變化,也可引入MTD技術(shù)的隨機(jī)性對(duì)CSP進(jìn)行更多改進(jìn)來(lái)達(dá)到更加理想的CSP。
b)更多的上傳過(guò)濾技術(shù)。當(dāng)下,隨著社交網(wǎng)絡(luò)的興起,具有上傳功能的Web應(yīng)用程序也日益增多,然而研究者對(duì)基于上傳功能的XSS攻擊防御技術(shù)上傳過(guò)濾關(guān)注較少。為此,可探索更多的基于機(jī)器學(xué)習(xí)的自適應(yīng)上傳過(guò)濾技術(shù)來(lái)防御XSS攻擊。
c)新型XSS攻擊。由于攻擊策略的快速發(fā)展,新型XSS攻擊涌現(xiàn)。在當(dāng)前XSS攻擊防御的研究中,只有少數(shù)研究者對(duì)新型XSS攻擊CS-XSS、WXSS進(jìn)行防御研究。所以,未來(lái)可探索更多針對(duì)新型XSS攻擊的防御技術(shù)。
d)對(duì)抗性XSS攻擊。由于對(duì)抗攻擊是針對(duì)檢測(cè)模型進(jìn)行的攻擊,并使用了欺騙和誘導(dǎo)的技術(shù),防御對(duì)抗攻擊存在一定難度。就筆者所知,在現(xiàn)有XSS攻擊防御研究中,尚未發(fā)現(xiàn)針對(duì)對(duì)抗攻擊的研究。為此,可以嘗試將知識(shí)遷移和降噪技術(shù)運(yùn)用于對(duì)抗攻擊防御中來(lái)提升模型的泛化性能和抗干擾能力也是未來(lái)的研究熱點(diǎn)。
參考文獻(xiàn):
[1]OWASP.Top 10 Web application security risks[EB/OL].[2023-04-15].https://owasp.org/www-project-top-ten/.
[2]Rodríguez G E,Torres J G,F(xiàn)lores p,et al.Cross-site scripting(XSS) attacks and mitigation:a survey[J].Computer Networks,2020,166(1):106960.
[3]Al-Mekhlafi Z G,Mohammed B A.Using genetic algorithms to optimized stacking ensemble model for phishing websites detection[C]//Proc of the 3rd International Conference on Advances in Cyber Security.Singapore:Springer,2021:447-456.
[4]Barde S.Blockchain-based cyber security[M]//Agrawal R,Gupta N.Transforming Cybersecurity Solutions Using Blockchain.Singapore:Springer,2021:55-69.
[5]Gupta M K,Govil M C,Singh G.Predicting cross-site scripting(XSS) security vulnerabilities in Web applications[C]//Proc of the 12th International Joint Conference on Computer Science and Software Engineering.Piscataway,NJ:IEEE Press,2015:162-167.
[6]Sarmah U,Bhattacharyya D K,Kalita J K.A survey of detection me-thods for XSS attacks[J].Journal of Network and Computer Applications,2018,118(9):113-143.
[7]Gupta S,Gupta B B.XSS-secure as a service for the platforms of online social network-based multimedia Web applications in cloud[J].Multimedia Tools and Applications,2018,77(2):4829-4861.
[8]Mohammadi M,Chu B,Lipford H R.Detecting cross-site scripting vulnerabilities through automated unit testing[C]//Proc of IEEE International Conference on Software Quality,Reliability and Security.Piscataway,NJ:IEEE Press,2017:364-373.
[9]Liu Miao,Zhang Boyu,Chen Wenbin,et al.A survey of exploitation and detection methods of XSS vulnerabilities[J].IEEE Access,2019,7:182004-182016.
[10]Wang Ran,Xu Guangquan,Zeng Xianjiao,et al.TT-XSS:a novel taint tracking based dynamic detection framework for DOM cross-site scripting[J].Journal of Parallel and Distributed Computing,2018,118(8):100-106.
[11]Liu Miao,Wang Bin.A Web second-order vulnerabilities detection method[J].IEEE Access,2018,6:70983-70988.
[12]Chen XiaoLong,Li Mohan,Jiang Yu,et al.A comparison of machine learning algorithms for detecting XSS attacks[C]//Proc of the 5th International Conference on Artificial Intelligence and Security.Cham:Springer,2019:214-224.
[13]Stency V S,Mohanasundaram N.A study on XSS attacks:intelligent detection methods[J].Journal of Physics:Conference Series.IOP Publishing,2021,1767:012047-012056.
[14]Vijayalakshmi K,Syed Mohamed E.Case study:extenuation of XSS attacks through various detecting and defending techniques[J].Journal of Applied Security Research,2021,16(1):91-126.
[15]OWASP.Types of XSS[EB/OL].[2023-04-15].https://owasp.org/www-community/Types_of_Cross-Site_Scripting#Types_of_Cross-Site_Scripting.
[16]Da Rocha H.Learn Chart.js:create interactive visualizations for the Web with Chart.js 2[M].Birmingham:Packt Publishing,2019.
[17]Wagner D,Soto P.Mimicry attacks on host-based intrusion detection systems[C]//Proc of the 9th ACM Conference on Computer and Communications Security.New York:ACM Press,2002:255-264.
[18]Gupta S,Gupta B B.Cross-site scripting(XSS) attacks and defense mechanisms:classification and state-of-the-art[J].International Journal of System Assurance Engineering and Management,2017,8:512-530.
[19]IT168.新浪微博遭遇跨站攻擊蠕蟲(chóng)侵襲[EB/OL].(2011-06-29)[2023-04-15].https://safe.it168.com/a2011/0629/1210/000001210645.shtml.(IT168.Sina Weibo suffers XSS worm attack[EB/OL].(2011-06-29)[2023-04-15].https://safe.it168.com/a2011/0629/1210/000001210645.shtml.)
[20]Lekies S,Kotowicz K,GROβ S,et al.Code-reuse attacks for the Web:breaking cross-site scripting mitigations via script gadgets[C]//Proc of ACM SIGSAC Conference on Computer and Communications Secu-rity.New York:ACM Press,2017:1709-1723.
[21]Fooying.通用跨站腳本攻擊(UXSS)[EB/OL].(2014-09-02).https://www.fooying.com/uxssl.(Fooying.Universal cross-site scripting(UXSS)[EB/OL].(2014-09-02).https://www.fooying.com/uxssl.)
[22]Zhang Yuqing,Liu Qixu,Luo Qihan,et al.XAS:cross-API scripting attacks in social ecosystems[J].Science China Information Sciences,2015,58:1-14.
[23]Heiderich M,Schwenk J,F(xiàn)rosch T,et al.mXSS attacks:attacking well-secured Web-applications by using innerHTML mutations[C]//Proc of ACM SIGSAC Conference on Computer & Communications Security.New York:ACM Press,2013:777-788.
[24]Goswami S,Hoque N,Bhattacharyya D K,et al.An unsupervised method for detection of XSS attack[J].International Journal of Network Security,2017,19(5):761-775.
[25]Kas?m .Malicious XSS code detection with decision tree[J/OL].Journal of Polytechnic,2020,23(1).https://www.doi.ory/10.2339/politeknik.470332.
[26]Mokbal F M M,Dan W,Imran A,et al.MLPXSS:an integrated XSS-based attack detection scheme in Web applications using multilayer perceptron technique[J].IEEE Access,2019,7:100567-100580.
[27]Mereani F A,Howe J M.Rule extraction from neural networks and other classifiers applied to XSS detection[C]//Proc of the 11th International Joint Conference Computational Intelligence.Cham:Springer,2021:359-386.
[28]Buijsman S.Defining explanation and explanatory depth in XAI[J].Minds and Machines,2022,32(3):563-584.
[29]顧兆軍,李志平,張禮哲.基于單分類(lèi)支持向量機(jī)的XSS攻擊檢測(cè)研究[J].計(jì)算機(jī)應(yīng)用與軟件,2021,38(6):299-305.(Gu Zhaojun,Li Zhiping,Zhang Lizhe.XSS attack detection based on OCSVM[J].Computer Applications and Software,2021,38(6):299-305.)
[30]Mokbal F M M,Wang Dan,Wang Xiaoxi.Detect cross-site scripting attacks using average word embedding and support vector machine[J].International Journal of Network Security,2022,4(1):20-28.
[31]Hwang Y M,Park S,LEE H O,et al.Deep learning for human activity recognition based on causality feature extraction[J].IEEE Access,2021,9:112257-112275.
[32]Liu Zhonglin,F(xiàn)ang Yong,Huang Cheng,et al.GraphXSS:an efficient XSS payload detection approach based on graph convolutional network[J].Computers & Security,2022,114(3):102597-102607.
[33]Marcheggiani D,Titov I.Encoding sentences with graph convolutional networks for semantic role labeling[C]//Proc of Conference on Empirical Methods in Natural Language Processing.Stroudsburg,PA:Association for Computational Linguistics,2017:1506-1515.
[34]Kadhim R W,Gaata M T.A hybrid of CNN and LSTM methods for securing Web application against cross-site scripting attack[J].Indonesian Journal of Electrical Engineering and Computer Science,2021,21(2):1022-1029.
[35]Yang Wenchuan,Zuo Wen,Cui Baojiang.Detecting malicious URLs via a keyword-based convolutional gated-recurrent-unit neural network[J].IEEE Access,2019,7:29891-29900.
[36]Yan Huyong,F(xiàn)eng Li,Yu You,et al.Cross-site scripting attack detection based on a modified convolution neural network[J].Frontiers in Computational Neuroscience,2022,16:981739.
[37]林雍博,凌捷.基于殘差網(wǎng)絡(luò)和GRU的XSS攻擊檢測(cè)方法[J].計(jì)算機(jī)工程與應(yīng)用,2022,58(10):101-107.(Lin Yongbo,Ling Jie.XSS attack detection method based on residual network and GRU[J].Computer Engineering and Applications,2022,58(10):101-107.)
[38]Fang Yong,Xu Yijia,Jia Peng,et al.Providing email privacy by preventing Webmail from loading malicious XSS payloads[J].Applied Sciences,2020,10(13):4425.
[39]Song Xuyan,Chen Chen,Cui Baojiang,et al.Malicious JavaScript detection based on bidirectional LSTM model[J].Applied Sciences,2020,10(10):3440.
[40]Hu Tianle,Xu Chonghai,Zhang Shenwen,et al.Cross-site scripting detection with two-channel feature fusion embedded in self-attention mechanism[J].Computers & Security,2023,124(1):102990.
[41]Li Xinghua,Zhu Mengyao,Yang L T,et al.Sustainable ensemble learning driving intrusion detection model[J].IEEE Trans on Dependable and Secure Computing,2021,18(4):1591-1604.
[42]Mereani F A,Howe J M.Preventing cross-site scripting attacks by combining classifiers[C]//Proc of the 10th International Joint Conference on Computational Intelligence.San Francisco:SCITEPRESS,2018:135-143.
[43]Rathore S,Sharma P K,Park J H.XSSClassifier:an efficient XSS attack detection approach based on machine learning classifier on SNSs[J].Journal of Information Processing Systems,2017,13(4):1014-1028.
[44]Zhang Jingchi,Jou Y T,Li Xiangyang.Cross-site scripting(XSS) detection integrating evidences in multiple stages[C]//Proc of the 52nd Hawaii International Conference on System Sciences.2019:7166-7175.
[45]Zhou Yun,Wang Peichao.An ensemble learning approach for XSS attack detection with domain knowledge and threat intelligence[J].Computers & Security,2019,82(5):261-269.
[46]Mokbal F M M,Wang Dan,Wang Xiaoxi,et al.XGBXSS:an extreme gradient boosting detection framework for cross-site scripting attacks based on hybrid feature selection approach and parameters optimization[J].Journal of Information Security and Applications,2021,58(5):102813.
[47]Li Yao,Cheng Minhao,Hsieh C J,et al.A review of adversarial attack and defense for classification methods[J].The American Statistician,2022,76(4):329-345.
[48]Fang Yong,Huang Cheng,Xu Yijia,et al.RLXSS:optimizing XSS detection model to defend against adversarial attacks based on reinforcement learning[J].Future Internet,2019,11(8):177-189.
[49]Zhang Xueqin,Zhou Yue,Pei Songwen,et al.Adversarial examples detection for XSS attacks based on generative adversarial networks[J].IEEE Access,2020,8:10989-10996.
[50]Wang Qiuhua,Yang Hui,Wu Guohua,et al.Black-box adversarial attacks on XSS attack detection model[J].Computers & Security,2022,113(2):102554.
[51]Chen Li,Tang Cong,He Junjiang,et al.XSS adversarial example attacks based on deep reinforcement learning[J].Computers & Security,2022,120(9):102831.
[52]Mitropoulos D,Stroggylos K,Spinellis D,et al.How to train your browser:preventing XSS attacks using contextual script fingerprints[J].ACM Trans on Privacy and Security,2016,19(1):article No.2.
[53]Gupta S,Gupta B B.Robust injection point-based framework for modern applications against XSS vulnerabilities in online social networks[J].International Journal of Information and Computer Security,2018,10(2-3):170-200.
[54]Chaudhary P,Gupta B B,Choi C,et al.XSSPro:XSS attack detection proxy to defend social networking platforms[C]//Proc of the 9th International Conference on Computational Data and Social Networks.Cham:Springer,2020:411-422.
[55]Pazos J C,LéGaré J S,Beschastnikh I.XSnare:application-specific client-side cross-site scripting protection[J].Empirical Software Engineering,2023,28(5):1-37.
[56]Gebre M T,Lhee K S,Hong M P.A robust defense against content-sniffing xss attacks[C]//Proc of the 6th International Conference on Digital Content,Multimedia Technology and Its Applications.Pisca-taway,NJ:IEEE Press,2010:315-320.
[57]Javed A,Schwenk J.Towards elimination of cross-site scripting on mobile versions of Web applications[C]//Proc of the 14th International Workshop on Information Security Application.Cham:Springer,2014:103-123.
[58]Wassermann G,Su Zhendong.Static detection of cross-site scripting vulnerabilities[C]//Proc of the 30th International Conference on Software Engineering.New York:ACM Press,2008:171-180.
[59]Stamm S,Sterne B,Markham G.Reining in the Web with content security policy[C]//Proc of the 19th International Conference on World Wide Web.New York:ACM Press,2010:921-930.
[60]Jim T,Swamy N,Hicks M.Defeating script injection attacks with browser-enforced embedded policies[C]//Proc of the 16th International Confe-rence on World Wide Web.New York:ACM Press,2007:601-610.
[61]Johns M.Script-templates for the content security policy[J].Journal of Information Security and Applications,2014,19(3):209-223.
[62]Iqbal J,Kaur R,Stakhanova N.PoliDOM:mitigation of DOM-XSS by detection and prevention of unauthorized DOM tampering[C]//Proc of the 14th International Conference on Availability,Reliability and Security.New York:ACM Press,2019:article No.17.
[63]Fazzini M,Saxena P,Orso A.AutoCSP:automatically retrofitting CSP to Web applications[C]//Proc of the 37th International Conference on Software Engineering.Piscataway,NJ:IEEE Press,2015:336-346.
[64]Pan Xiang,Cao Yinzhi,Liu Shuangping,et al.CSPAutOGen:black-box enforcement of content security policy upon real-world websites[C]//Proc of ACM SIGSAC Conference on Computer and Communications Security.New York:ACM Press,2016:653-665.
[65]Xu Guangquan,Xie Xiaofei,Huang Shuhan,et al.JSCSP:a novel policy-based XSS defense mechanism for browsers[J].IEEE Trans on Dependable and Secure Computing,2020,19(2):862-878.
[66]Barth A,Caballero J,Song D.Secure content sniffing for Web brow-sers,or how to stop papers from reviewing themselves[C]//Proc of the 30th IEEE Symposium on Security and Privacy.Piscataway,NJ:IEEE Press,2009:360-371.
[67]Barua A,Shahriar H,Zulkernine M.Server side detection of content sniffing attacks[C]//Proc of the 22nd IEEE International Symposium on Software Reliability Engineering.Piscataway,NJ:IEEE Press,2011:20-29.
[68]Potteiger B,Zhang Zhenkai,Cheng Long,et al.A tutorial on moving target defense approaches within automotive cyber-physical systems[J/OL].Frontiers in Future Transportation,2022.https:www.doi.org/10.3389/ffutr.2021.792573.
[69]Nadji Y,Saxena P,Song D.Document structure integrity:a robust basis for cross-site scripting defense[C]//Proc of the 16th Annual Network and Distributed System Security Symposium.San Diego:Internet Society,2009.
[70]Athanasopoulos E,Pappas V,Krithinakis A,et al.xJS:practical XSS prevention for Web application development[C]//Proc of USENIX Conference on Web Application Development.Berkeley,CA:USENIX Association,2010:1-13.
[71]Van Gundy M,Chen Hao.Noncespaces:using randomization to defeat cross-site scripting attacks[J].Computers & Security,2012,31(4):612-628.
[72]Niakanlahiji A,Jafarian J H.WebMTD:defeating cross-site scripting attacks using moving target defense[J].Security and Communication Networks,2019,2019:article ID 2156906.
[73]Cao Yinzhi,Yegneswaran V,Porras P A,et al.PathCutter:severing the self-propagation path of XSS JavaScript worms in social Web networks[C]//Proc of the 19th Annual Network & Distributed System Security Symposium.San Diego:Internet Society,2012:1-14.