国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

跨站腳本攻擊檢測與防御技術綜述

2024-05-24 10:07:02王鈴銅王慧玲徐苗綦小龍
計算機應用研究 2024年3期
關鍵詞:機器學習

王鈴銅 王慧玲 徐苗 綦小龍

摘 要:跨站腳本(cross site scripting,XSS)攻擊是Web安全中最嚴重的風險之一。隨著Web服務、API等Web技術的廣泛使用,以及AJAX、CSS和HTML5等新編程風格的出現(xiàn),XSS攻擊的威脅變得更加嚴重,因此如何處理XSS攻擊安全風險已成為Web安全研究的重要關注點。通過對近年來XSS攻擊檢測和防御技術的調(diào)研,根據(jù)XSS攻擊是否具有隱蔽性,首次從非對抗和對抗兩個角度綜述了XSS攻擊檢測和防御的最新技術。首先,從非對抗攻擊檢測和對抗攻擊檢測兩個方面探討分析了基于機器學習從數(shù)據(jù)中學習攻擊特征、預測攻擊的方法,以及基于強化學習識別或生成對抗樣本策略來優(yōu)化檢測模型的方法;其次,闡述了非對抗攻擊防御基于規(guī)則過濾XSS攻擊、基于移動目標防御(MTD)隨機性降低攻擊成功率和基于隔離沙箱防止XSS攻擊傳播的方法;最后,分別從樣本特征、模型特點和CSP的局限性、上傳功能的廣泛性等方面提出了XSS攻擊檢測和防御未來需要考慮的問題并作出展望。

關鍵詞:XSS攻擊;機器學習;非對抗攻擊檢測;對抗攻擊檢測;非對抗攻擊防御

中圖分類號:TP393.08?? 文獻標志碼:A

文章編號: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ù)庫與安全研究組織(Open Web Applications Security Project,OWASP)報告的一種針對用戶層面的惡意代碼注入型攻擊。XSS攻擊是由攻擊者向用戶的Web頁面植入惡意的script代碼,當用戶點擊該頁面后達到攻擊用戶的目的。在OWASP每四年報告的年度十大Web應用程序安全漏洞中,XSS攻擊都位于前十,其中在2021年OWASP公布的最新top10榜單中位列第三位[1]。XSS攻擊一旦攻擊成功,就會作出竊取cookie[2,3]、植入木馬[4]、直接獲取用戶信息[5]等危害用戶的行為。

為此,如何有效防范XSS攻擊備受研究者的關注。當前,XSS處理技術主要有XSS檢測技術和XSS攻擊防御技術,XSS檢測技術主要有XSS漏洞檢測技術和XSS攻擊檢測技術。其中,漏洞檢測技術旨在從源頭上檢測XSS攻擊;攻擊檢測技術旨在捕獲漏洞檢測不完備時的攻擊,是檢測的最后一道防線?,F(xiàn)有的XSS攻擊檢測研究主要有兩條路線:a)面向Web頁面的漏洞進行檢測,判斷其是否存在XSS攻擊漏洞;b)面向攻擊行為進行檢測,通過機器學習方法檢測當前的用戶特征是否為XSS攻擊。

XSS漏洞檢測技術是指使用合適的方法或工具通過檢查Web應用程序的源代碼,檢測Web安全編碼在實際使用過程中是否存在漏洞,研究者一般將XSS漏洞檢測技術分為三大類[6]:

a)靜態(tài)分析。該方法在用戶使用Web應用程序前,通過Web源代碼與XSS安全漏洞特征庫的匹配分析判斷其是否存在漏洞。當檢測到XSS攻擊漏洞風險時,靜態(tài)分析工具報告異常行為以供開發(fā)人員查看和修復。靜態(tài)分析方法中最具代表性的是XSS-secure XSS檢測框架[7]和基于單元測試的檢測工具[8],這類靜態(tài)分析方法可以有效檢測出異常代碼片段的位置,極大提高了XSS攻擊漏洞的檢測率。然而,該方法也存在許多局限性:由于靜態(tài)分析需要檢查并分析Web程序的源代碼,而大多數(shù)Web應用程序的制造公司是不愿意將源代碼分享出來的,這就為靜態(tài)分析造成了很大阻礙[9]。靜態(tài)代碼分析工具也無法處理一些網(wǎng)站在加載時出現(xiàn)的動態(tài)代碼,同時在服務器上的靜態(tài)分析工具并沒有辦法分析存在于客戶端的DOM型XSS攻擊代碼。

b)動態(tài)分析。該方法著重在Web應用程序運行時動態(tài)分析從程序中提取的實時數(shù)據(jù),向服務器發(fā)送相應請求從而檢查并分析程序是否具有XSS攻擊漏洞。動態(tài)分析方法最具代表性的有基于動態(tài)污染分析的TT-XSS檢測框架[10]和基于兩次爬山掃描的XSS攻擊檢測系統(tǒng)[11],這類分析方法的優(yōu)勢是不需要像靜態(tài)分析那樣提前知道Web應用程序的源代碼就可以檢測出XSS攻擊的漏洞。動態(tài)代碼分析工具也可以分析網(wǎng)頁中的動態(tài)代碼,進一步優(yōu)化了靜態(tài)分析工具檢測XSS攻擊漏洞的弊端。但動態(tài)分析也存在一些問題:由于是在運行時分析應用程序的實時數(shù)據(jù),隨著XSS有效負載越來越多,動態(tài)分析的方法檢測的時間就會大大增加,使得這些工具在實際的應用場景中難以被有效使用。

c)混合分析方法。該方法利用動態(tài)分析方法和靜態(tài)分析方法各自的優(yōu)點,先靜態(tài)分析Web應用程序,檢測出XSS攻擊漏洞,然后動態(tài)分析對漏洞進行驗證,通過兩者的結(jié)合降低了XSS攻擊漏洞的漏報率。總的來說,這種混合分析方法不僅可以檢測到網(wǎng)站的動態(tài)代碼,還可以在網(wǎng)站XSS負載加大時極大地減少檢測XSS攻擊漏洞的時間,提升了XSS攻擊漏洞的檢測效率。但其中一些混合分析方法僅適用于單一語言,而XSS攻擊可用多種語言實現(xiàn)代碼的注入,使得混合分析方法在實際應用過程中難以有效使用。

雖然這些方法在防范XSS攻擊上取得了一定的成績,但這三種檢測XSS攻擊的方法都存在各自不可避免的缺陷,同時漏洞檢測技術在檢測未知的XSS攻擊漏洞時性能表現(xiàn)不佳;此外,代碼混淆、動態(tài)代碼生成等技術也為漏洞檢測造成了阻礙。XSS攻擊防御也面臨同樣的問題:由于攻擊策略的快速發(fā)展,傳統(tǒng)的基于黑白名單、正則表達式的方法已經(jīng)不能有效防御所有XSS攻擊。

為此,研究者將能進行自我學習的機器學習技術應用到了包括XSS攻擊檢測的網(wǎng)絡安全任務中以改善漏洞檢測的不足。通過增量式學習、持續(xù)學習等機器學習技術從數(shù)據(jù)中構(gòu)建自適應決策模型,大大提升了對未知和新型XSS攻擊檢測的能力。同時,研究者將CSP、MTD等新興技術用于XSS攻擊防御任務中以解決傳統(tǒng)方法不能有效防御所有XSS攻擊的問題。

目前,XSS攻擊檢測和防御領域主要有以下綜述文獻:Sarmah等人[6]綜述的傳統(tǒng)XSS攻擊檢測方法,根據(jù)檢測機制,主要闡述了基于傳統(tǒng)檢測方法部署點的分類模型;Chen等人[12]根據(jù)XSS攻擊識別策略對多種機器學習算法進行了相應的闡述和比較,闡述了其優(yōu)勢以及在實際XSS攻擊檢測中面臨的問題;Stency等人[13]從各種性能指標上分析了基于深度學習的XSS攻擊檢測方法,通過對比得出了每種深度學習檢測方法的局限性,并指出使用基于深度學習技術的人工智能方法在開發(fā)高效的XSS入侵檢測上意義重大。

Vijayalakshmi等人[14]根據(jù)XSS攻擊檢測和防御方法的部署點對XSS攻擊檢測和防御技術做了一個系統(tǒng)的綜述,主要對客戶端和服務器端使用的基于靜態(tài)分析以及動態(tài)分析的XSS攻擊檢測方法作了詳細介紹,并闡述了服務器端和客戶端的XSS攻擊防御方法。

上述綜述都是從非對抗XSS攻擊角度考慮,分別闡述了傳統(tǒng)XSS攻擊檢測方法和智能XSS攻擊檢測方法,對XSS攻擊防御方法提及較少,且沒有整體對最新XSS攻擊檢測與防御技術進行系統(tǒng)的闡述;并且就筆者所知,當前沒有相關文獻闡述XSS對抗攻擊的檢測技術。為此,本文根據(jù)XSS攻擊是否具有隱蔽性,從非對抗和對抗兩個角度對新興的XSS攻擊檢測和防御技術進行全面和系統(tǒng)的綜述。本文主要貢獻如下:a)對XSS攻擊進行全面的回顧(包括新型XSS攻擊),并根據(jù)其攻擊媒介對XSS攻擊進行分類總結(jié);b)從非對抗和對抗兩個角度闡述了最新的基于機器學習的XSS攻擊檢測方法,并根據(jù)其使用動機、特征提取的類別、優(yōu)勢和局限性進行了系統(tǒng)的綜述;c)從非對抗攻擊防御角度出發(fā),根據(jù)其研究動機、優(yōu)勢和局限性對基于CSP、MTD等最新防御XSS攻擊的方法進行了全面的分析和對比;d)分別從樣本特征、模型特點和CSP的局限性、上傳功能的廣泛性等方面提出了XSS攻擊檢測和防御未來需要考慮的問題,為XSS攻擊檢測和防御的進一步研究提供參考。

1 XSS攻擊概述

基于機器學習的XSS攻擊檢測技術面向攻擊行為進行檢測,通過使用機器學習方法來分析用戶的特征,進而判定是否為XSS攻擊。在這個任務流程中,XSS攻擊特征的重要性不可忽視,攻擊特征影響檢測任務的性能。由于XSS攻擊存在多種類型,可以使用不同的編碼方式和惡意代碼注入點來實現(xiàn)惡意代碼的注入。所以一種類型的XSS攻擊特征并不能代表全部類型的XSS攻擊,不同的XSS攻擊特征表現(xiàn)也存在多樣性。

1.1 XSS攻擊的類型

隨著Web技術的快速發(fā)展,出現(xiàn)了越來越多的新型XSS攻擊,JavaScript型XSS攻擊(JSM-XSS)、XSS蠕蟲(WXSS)以及變異的XSS攻擊(MXSS)等新型XSS攻擊相繼被研究者發(fā)現(xiàn);同時XSS攻擊的攻擊媒介也呈現(xiàn)出多樣性,如Web應用程序、瀏覽器第三方擴展和Web應用程序的第三方框架等。本文根據(jù)XSS攻擊的攻擊媒介將現(xiàn)有的XSS攻擊大致分為基于Web應用程序的XSS攻擊和基于第三方的XSS攻擊、基于協(xié)同的XSS攻擊。表1總結(jié)了XSS攻擊的類型。

1.1.1 基于Web應用程序的XSS攻擊

基于Web應用程序的XSS攻擊是由攻擊者向Web應用程序注入惡意script代碼,針對Web應用程序自身的漏洞而進行的攻擊,通常是編寫該應用程序的開發(fā)人員由于沒有進行防范措施而出現(xiàn)的代碼型漏洞。在已有的研究中,有以下五種攻擊屬于這一類別:

a)反射型XSS攻擊(RXSS)。通常攻擊者會將惡意的script代碼注入到URL中,通過某種方式由用戶接收并點擊惡意URL;此時用戶的瀏覽器向攻擊者的服務器發(fā)起請求,服務器收到并作出響應。將惡意script代碼返回到用戶瀏覽器經(jīng)由瀏覽器解析后,RXSS[15]攻擊成功。

b)存儲型XSS攻擊(SXSS)。首先是由攻擊者將惡意script代碼上傳到易受攻擊的Web網(wǎng)站的服務器中,服務器會將惡意的script代碼永久地保存,由用戶無限次進行觸發(fā)。每當用戶在易受攻擊的Web網(wǎng)頁上點擊時,瀏覽器會向服務器發(fā)起請求,服務器響應后瀏覽器解析執(zhí)行,SXSS[15]攻擊完成。

c)DOM型XSS攻擊(DXSS)。主要針對本身存在DOM[16]漏洞的易受攻擊的Web頁面。攻擊者會將惡意的script代碼注入到URL中,通過某種方式由用戶接收并點擊惡意URL;瀏覽器收到響應解析執(zhí)行后由前端JavaScript取出惡意script代碼并反饋給瀏覽器執(zhí)行,因此DXSS也是一種特殊的反射型XSS攻擊。與RXSS和SXSS不同,DXSS[15]不經(jīng)過服務器,是前端的漏洞。

d)JavaScript型XSS攻擊(JSM-XSS)。JSM-XSS是一種新型的腳本模仿的XSS攻擊。攻擊者通過Web應用程序,利用在程序上已經(jīng)執(zhí)行的腳本發(fā)起JSM-XSS。研究表明,在應用程序注入合法的腳本也可能是對Web應用程序有害的行為[17],且這種行為難以被檢測工具檢測。

e)XSS蠕蟲(WXSS)。WXSS是一種新型的具有強大自我復制能力的蠕蟲型XSS攻擊。XSS蠕蟲具有廣泛傳播的能力,可以通過Web應用程序在用戶之間傳來傳去,在未被檢測到消滅之前它會一直傳播,因此對于用戶它更加危險。XSS蠕蟲危險且十分隱蔽,在2005年發(fā)現(xiàn)的Samy蠕蟲就是XSS蠕蟲,在被發(fā)現(xiàn)之前的一天時間里便傳播了100多萬人[18]。中國社交網(wǎng)絡新浪微博也曾遭受過XSS蠕蟲的攻擊,遭受XSS蠕蟲攻擊的用戶會自動地向其他用戶發(fā)送毒私信,在用戶之間進行相互傳播,短短1 h之內(nèi)就有三萬多名用戶的信息遭到竊?。?9]。

1.1.2 基于第三方的XSS攻擊

基于第三方的XSS攻擊主要利用瀏覽器上的第三方擴展以及Web應用程序的第三方框架的漏洞實施攻擊,而不針對Web應用程序本身。這一類別包括:

a)腳本小工具型XSS攻擊(CR-XSS)。這種XSS攻擊于2013年被Lekies等人[20]發(fā)現(xiàn),攻擊者通常在攻擊前會提前了解Web應用程序上的第三方腳本小工具,通過向目標應用程序注入HTML標記引發(fā)腳本小工具的執(zhí)行來實現(xiàn)CR-XSS。

b)通用XSS攻擊(UXSS)。UXSS是一種通過瀏覽器或者瀏覽器擴展的漏洞向Web頁面注入惡意代碼的XSS攻擊[21]。UXSS不需要Web頁面具有XSS攻擊漏洞,它可以滲透到?jīng)]有安全問題的Web頁面去創(chuàng)造漏洞,而原先的Web頁面是不具備XSS攻擊漏洞的,這使得UXSS成為XSS攻擊中危害性最大的攻擊類型之一。

1.1.3 基于協(xié)同的XSS攻擊

基于協(xié)同的XSS攻擊需要同時滿足在Web應用程序和第三方均存在漏洞的情況下攻擊者才會攻擊成功,如果有任一方?jīng)]有存在漏洞,攻擊者就會攻擊失敗。這一類別包括:

a)跨API腳本(XAS)。XAS最早在2013年被發(fā)現(xiàn),由Zhang等人[22]在2015年提出。XAS主要針對Web應用程序,這些易受攻擊的Web應用程序會向第三方開發(fā)人員提供restful API。攻擊者向Web應用程序注入惡意的script代碼,并通過調(diào)用API訪問Web應用程序用戶數(shù)據(jù)信息。惡意script代碼通過瀏覽器被用戶觸發(fā)并執(zhí)行,XAS便攻擊成功。

b)變異的XSS攻擊(MXSS)。在2013年,Heiderich等人[23]首次提出MXSS這種變異的XSS攻擊,它是由攻擊者向用戶瀏覽器注入惡意數(shù)據(jù)與易受攻擊的Web應用程序中的innerHTML屬性進行關聯(lián)后插入瀏覽器中的DOM進而實施攻擊。任何服務器端和客戶端的檢測工具都無法檢測到這種惡意數(shù)據(jù),因為檢測工具主要是檢測惡意script代碼,而此惡意數(shù)據(jù)不包含任何可執(zhí)行的代碼,所以會被檢測工具忽略而攻擊成功。

c)內(nèi)容嗅探XSS攻擊(CS-XSS)。CS-XSS是攻擊者通過利用瀏覽器對文件內(nèi)容產(chǎn)生誤解,在訪問者的瀏覽器上運行JavaScript代碼發(fā)起的XSS攻擊。由于JavaScript的同源策略,CS-XSS將使用Web應用程序的特權(quán)運行。

1.2 XSS攻擊特征

在XSS攻擊檢測任務流程中,XSS攻擊特征的重要性不可忽視,機器學習根據(jù)特征對數(shù)據(jù)樣本進行分類,沒有提取到的特征將逃避攻擊檢測。在XSS攻擊檢測的研究中,XSS攻擊特征呈現(xiàn)出多樣性,對XSS攻擊數(shù)據(jù)集進行特征提取的類型大致可以分為基于URL、基于HTML、基于JavaScript、基于SNS、XSS攻擊有效載荷和XSS攻擊流量幾種。其中,研究者主要針對基于URL、基于HTML、基于JavaScript、XSS攻擊有效載荷和XSS攻擊流量的特征進行深入研究,其表現(xiàn)的XSS攻擊類型是OWASP報告的反射型XSS攻擊(RXSS)、存儲型XSS攻擊(SXSS)、DOM型XSS攻擊(DXSS)三種基本的XSS攻擊。對于新型XSS攻擊,基于SNS的攻擊特征為XSS蠕蟲的專屬特征。關于XSS攻擊特征類型總結(jié)如表2所示。

1.3 基于機器學習的XSS攻擊檢測任務流程

基于機器學習的XSS攻擊檢測任務流程一般為準備XSS攻擊數(shù)據(jù)集、進行特征處理、模型訓練和類別判定。

a)數(shù)據(jù)集。機器學習算法的表現(xiàn)與使用數(shù)據(jù)集的質(zhì)量息息相關,在XSS攻擊檢測的研究中存在標準數(shù)據(jù)集和合成數(shù)據(jù)集兩類數(shù)據(jù)集。標準數(shù)據(jù)集是由國際公認的安全研究組織發(fā)布的數(shù)據(jù)集,如加拿大網(wǎng)絡安全研究所的CICIDS系列數(shù)據(jù)集,但此數(shù)據(jù)集有關XSS攻擊的數(shù)量十分有限且數(shù)據(jù)存在嚴重的類別不平衡現(xiàn)象;合成數(shù)據(jù)集一般是由研究者自己在網(wǎng)站搜集然后組合,研究者從GitHub、Kaggle、XSSed等網(wǎng)站搜集XSS攻擊和正常的樣本,通過組合搜集樣本來構(gòu)成實驗所用數(shù)據(jù)集。研究者的XSS攻擊數(shù)據(jù)集來源如表3所示。其中,M表示惡意的,B表示良性的,MB表示混合的。

b)特征處理。特征決定了機器學習模型的性能上限,處理好XSS攻擊特征對于機器學習檢測模型至關重要。在XSS攻擊的檢測中,攻擊流量數(shù)據(jù)集存在嚴重的類別不平衡現(xiàn)象,因此需要通過采樣方法對數(shù)據(jù)進行處理。對于XSS攻擊有效載荷形式數(shù)據(jù)集,攻擊者會對其進行編碼來躲避檢測,所以要先對有效載荷進行解碼;其次,有效載荷中的數(shù)字、域名等信息不影響檢測,需要對其進行泛化;最后,由于有效載荷是文本形式,需要運用自然語言處理方法將其分詞然后轉(zhuǎn)換為向量。但是可能轉(zhuǎn)換后特征維度過大,導致計算量大,出現(xiàn)訓練時間長的問題,因此降低特征維度也是必不可少的。

c)模型訓練。使用學習算法學習一個能夠很好刻畫訓練數(shù)據(jù)分布的模型。在訓練階段,對給定的XSS攻擊數(shù)據(jù)集進行特征清洗、預處理得到其特征表示,然后建立模型對數(shù)據(jù)樣本的分布進行學習;在測試階段,將測試數(shù)據(jù)的特征輸入到模型中,然后模型對其進行類別判定。

2 XSS攻擊檢測技術

傳統(tǒng)的XSS攻擊檢測方法在檢測過程中對未知的XSS攻擊無法很好決策,導致較高的漏報率。因此,研究者使用基于機器學習的XSS攻擊檢測方法來彌補傳統(tǒng)檢測方法的不足。根據(jù)XSS攻擊是否具有隱蔽性,本文將機器學習的檢測方法分為基于非對抗性XSS攻擊和基于對抗性XSS攻擊兩類。

2.1 基于非對抗性XSS攻擊

2.1.1 單一機器學習方法

單一機器學習是指使用一種機器學習方法完成XSS攻擊的檢測,這種方法適用于通過注入惡意JavaScript代碼實現(xiàn)的XSS攻擊。代表性的方法如下:

Goswami等人[24]基于屬性聚類提出了一種基于K-means的無監(jiān)督方法At-Attribute聚類用于在客戶端和服務器端體系結(jié)構(gòu)中檢測基于JavaScript的XSS攻擊。該算法通過將帶有類標簽的XSS攻擊數(shù)據(jù)集應用于信息增益和卡方檢驗等不同的特征選擇算法中,選出與XSS攻擊最相關的攻擊特征,之后使用基于K-means的At-Attribute聚類算法對最終的特征進行屬性聚類。該算法比較容易實現(xiàn),僅需要很少的知識就可以高精度地檢測XSS攻擊。

文獻[25]將決策樹算法應用于XSS攻擊檢測中,提高對基于JavaScript代碼的可視化內(nèi)容的XSS攻擊檢測準確率。該方法從獲取的可視化內(nèi)容的請求代碼中提取惡意XSS攻擊的特征向量,通過最大化獲取每個點上所獲得維度的隨機子樣本之間的信息,將葉子節(jié)點的數(shù)據(jù)劃分到正確的類別中。使用決策樹算法,可以通過數(shù)據(jù)集標簽檢測到那些利用可視標簽進行攻擊的XSS攻擊,并且該算法強大的可解釋性對XSS攻擊檢測技術的發(fā)展有著重要意義。

傳統(tǒng)的機器學習方法無法檢測到XSS攻擊的微小突變體,而深度神經(jīng)網(wǎng)絡在數(shù)據(jù)發(fā)生微小變化的情況下也能學習到XSS攻擊的真實面貌。為此,Mokbal等人[26]提出了一種基于人工神經(jīng)網(wǎng)絡(ANN)的多層感知器(MLP)深度學習模型MLPXSS。該模型在特征提取上,使用BeautifulSoup庫與HTML5Lib庫,將XSS攻擊的HTML、JavaScript和URL特征轉(zhuǎn)換成數(shù)字特征后傳入MLPXSS中,使用網(wǎng)格搜索法中的10倍交叉驗證的方法對模型的超參數(shù)進行優(yōu)化,從淺層的MLP模型到深層的MLP模型設置不同的隱藏層神經(jīng)元數(shù)量、數(shù)據(jù)批量大小以及優(yōu)化器,以求最優(yōu)的模型。使用不同的數(shù)據(jù)集與不同的機器學習算法進行比較后,證明MLP模型的泛化性能有一定提高。

Mereani等人[27]致力于可解釋人工智能(XAI)[28]的研究,提出了一種從KNN分類器中提取規(guī)則的技術。由于每一個KNN分類器輸入和輸出的特征值都是布爾類型,所以該技術將訓練好的KNN分類器定義成一個布爾函數(shù),提取的規(guī)則是布爾函數(shù),每個布爾變量對應XSS攻擊數(shù)據(jù)集中的一個特征,這些規(guī)則是清晰可解釋的。該方法利用布爾函數(shù)的可解釋性解釋KNN檢測模型,并且與傳統(tǒng)KNN檢測模型相比檢測時間縮短且性能相差不大。

為了改善機器學習檢測模型難以從用戶正常輸入的數(shù)據(jù)中獲取特征的問題,顧兆軍等人[29]基于一類樣本提出了一種新的單分類支持向量機檢測方法OCSVM。首先,該方法使用n-gram對XSS攻擊載荷進行分詞,然后使用TF-IDF算法對分詞集合里的詞進行向量化,最后選擇適當?shù)腟VM核函數(shù)和優(yōu)化參數(shù)來構(gòu)建檢測模型,通過對模型進行參數(shù)優(yōu)化達到最優(yōu)的檢測模型。該方法結(jié)合n-gram和TF-IDF算法對特征進行向量化,提升了相較于傳統(tǒng)文本使用TF-IDF分詞方法的分詞效率,并且該方法無須對樣本進行標記便能很好地解決單類樣本分類問題。

為了改善在XSS攻擊檢測中假陽性率和假陰性率高的問題,Mokbal等人[30]將自然語言處理中的平均詞嵌入技術用于SVM檢測模型中,提出了一種基于平均詞嵌入的檢測方法NLP-SVM。該方法使用詞嵌入技術,將XSS攻擊有效載荷中的每個詞轉(zhuǎn)換成數(shù)字形式,以便得到每個詞的向量;之后,對每個XSS攻擊有效載荷中每個詞的向量進行平均后輸入到SVM模型中。相比于傳統(tǒng)SVM使用10倍交叉驗證獲取最優(yōu)參數(shù)的方法,NLP-SVM模型對XSS攻擊具有更強的檢測能力。

2.1.2 基于特征融合的深度學習方法

單一機器學習經(jīng)由研究者對特征進行分析選擇,將信息量大的特征輸入到計算機由人工進行數(shù)據(jù)預處理,需要較高的先驗知識量,檢測效果在很大程度上依賴于預定義特征的準確性,具有很強的主觀性。深度學習神經(jīng)網(wǎng)絡能更加智能地學習與XSS攻擊相關的抽象特征,在一定程度上選擇了與XSS攻擊相關性高的特征。為了挖掘XSS攻擊的相關特征,研究者將長短期記憶網(wǎng)絡(LSTM)、卷積神經(jīng)網(wǎng)絡(CNN)、門控循環(huán)單元(GRU)、圖卷積網(wǎng)絡(GCN)以及殘差網(wǎng)絡(ResNet)各自組合在一起形成深度學習融合模型,在特征提取上進行更加深入的研究。深度學習融合模型能夠融合各自提取的特征,更加有效地學習XSS攻擊特征的時空依賴性[31]。

為了解決XSS攻擊檢測中小樣本問題,Liu等人[32]受到使用半監(jiān)督的圖卷積網(wǎng)絡可以有效提取圖數(shù)據(jù)的特征[33]以及容易從模糊的相鄰詞中找到特征信息的啟發(fā),將圖卷積網(wǎng)絡和殘差網(wǎng)絡結(jié)合起來,提出了一種基于圖卷積網(wǎng)絡的XSS攻擊檢測方法GraphXSS。該方法通過改進傳統(tǒng)的圖卷積網(wǎng)絡,在原本兩三層的圖卷積網(wǎng)絡增加一個殘差網(wǎng)絡隱藏層,將殘差網(wǎng)絡隱藏層的前一層輸出的特征矩陣和之后層輸出的特征矩陣相加作為新的特征矩陣傳遞到第三層進行計算,形成了更優(yōu)的特征提取策略。該算法利用圖卷積網(wǎng)絡對小樣本下的XSS攻擊載荷進行快速識別。Kadhim等人[34]將CNN與LSTM相結(jié)合來檢測XSS攻擊。該方法將三個CNN進行串聯(lián),用以提高CNN在CNN-LSTM網(wǎng)絡體系中特征提取精度;然后將提取到的特征信息輸入到LSTM網(wǎng)絡中,學習XSS攻擊特征相關的上下文信息。其優(yōu)點是將兩者提取到的特征相結(jié)合形成更高階的特征,進而提高對XSS攻擊的檢測能力。

由于LSTM在訓練時參數(shù)量過于龐大,訓練所需時間和內(nèi)存消耗都十分巨大。Yang等人[35]提出了一種基于CNN的CGRU神經(jīng)網(wǎng)絡模型,該模型針對由惡意URL造成的Web攻擊進行檢測。首先,CGRU模型使用CNN提取URL中特有的惡意關鍵字特征,并用GRU將CNN中的池化層進行替換,GRU保證了上層卷積神經(jīng)網(wǎng)絡處理過的高階特征中的上下文關系不丟失,也進一步從高階特征中提取具有代表性的基于時間序列的特征。與CNN-LSTM[33]將兩類網(wǎng)絡進行串聯(lián)不同,CGRU模型通過在CNN中嵌入GRU模塊替代原本的池化層以進一步加強XSS攻擊數(shù)據(jù)高階特征。

傳統(tǒng)的CNN使用全連通層來把握XSS攻擊數(shù)據(jù)的URL全局特征,且參數(shù)較多會導致模型的復雜度上升,訓練時間也會相應增加。為此,Yan等人[36]對卷積神經(jīng)網(wǎng)絡進行改進,將殘差網(wǎng)絡與卷積神經(jīng)網(wǎng)絡相結(jié)合,提出了MRBN-CNN模型來檢測XSS攻擊。該方法將ResNet中的殘差塊MRB組合到NIN型卷積神經(jīng)網(wǎng)絡中,該模型由五個使用不同卷積核的MRB并聯(lián)和代替全連接層的兩個1×1卷積層串聯(lián)組成,MRB用來分析XSS攻擊URL特征中單詞的語義及位置關系,更加全面地提取了XSS攻擊的全局特征,而1×1卷積層在一定程度上減少了參數(shù)。該模型的復雜度較低,對特征的提取更加全面,提升了檢測XSS攻擊的準確性和效率。為了解決單一深度學習方法提取XSS攻擊數(shù)據(jù)時空特征不全面的問題,林雍博等人[37]提出一種基于CNN和GRU的深度學習融合模型ResNet_GRU,其建立了一個字符級字典對XSS攻擊有效載荷進行編碼,極大地保留了樣本的初始特征信息;然后利用CNN和GRU分別提取XSS攻擊序列的時間和空間特征,同時引入殘差框架加快網(wǎng)絡收斂和緩解梯度彌散問題。該模型有效挖掘了XSS攻擊數(shù)據(jù)的時空特征,提升了XSS攻擊的檢測準確率。

由于XSS攻擊數(shù)據(jù)可以看做是序列數(shù)據(jù),XSS攻擊序列前后具有很強的關聯(lián)性。而普通單向神經(jīng)網(wǎng)絡只能提取從前往后的XSS攻擊數(shù)據(jù)特征信息,這意味著它只能處理XSS攻擊的單向依賴,從而忽略了XSS攻擊序列的前后語義信息。為了解決這個問題,研究者使用雙向神經(jīng)網(wǎng)絡,從前后兩個方向提取XSS攻擊的語義特征,進一步挖掘了XSS攻擊相關特征。

在電子郵件場景下的XSS攻擊極難被檢測且影響巨大,F(xiàn)ang等人[38]基于注意力機制和雙向循環(huán)神經(jīng)網(wǎng)絡(RNN)提出了一種用來檢測電子郵件中XSS攻擊的深度學習方法。傳統(tǒng)的神經(jīng)網(wǎng)絡之間神經(jīng)元不能相互傳遞信息,而RNN上一個神經(jīng)元可以向下一個神經(jīng)元傳遞,Bi-RNN在此基礎上加入了一個可以反向傳播的機制。該算法由兩個RNN組成,不僅從前往后保留了XSS攻擊預測詞的上文信息,而且從后往前提取了預測詞的下文信息,并通過全局注意力機制幫助模型更好地優(yōu)化權(quán)重參數(shù),使其達到最優(yōu)的模型。該方法使用雙向RNN更好地提取了XSS攻擊特征之間的關聯(lián)特征,使提取到的特征更優(yōu),而注意力機制則是使模型更優(yōu)。

傳統(tǒng)的檢測方法依賴于專家知識確定Script代碼是否惡意,容易出錯且十分耗時。為此,Song等人[39]提出了基于雙向長短期記憶網(wǎng)絡Bi-LSTM的XSS攻擊檢測模型。該模型通過構(gòu)造程序依賴圖(PDG)獲取XSS攻擊等惡意JavaScript攻擊代碼的語義信息,并通過一系列JavaScript去模糊工具對數(shù)據(jù)進行去模糊處理;然后使用正向和反向兩個LSTM提取XSS攻擊的上下文信息,充分保留了XSS攻擊的前后信息,以更優(yōu)的特征來提高Bi-LSTM模型的檢測準確率。JavaScript去模糊處理會篩選那些由攻擊者制造的偽裝成正常JavaScript代碼的惡意攻擊代碼,降低了模型的漏檢率。

Bi-LSTM在檢測XSS攻擊時存在長期語義依賴問題,即一個標記的XSS攻擊信息的上下文表示在很大程度上受到句子中靠近它的標記的影響。Hu等人[40]將自注意力機制應用于Bi-LSTM中,提出了一種多通道特征融合的XSS攻擊檢測模型C-BLA。該模型融合兩個通道提取的特征,最后再進行分類。通道1使用不同卷積核大小的CNN對XSS攻擊的局部特征進行提取,通道2使用Bi-LSTM從前向和后向兩個方向?qū)SS攻擊上下文信息進行充分提取,并結(jié)合自注意力機制對Bi-LSTM在XSS攻擊檢測中存在的語義長期依賴問題加以改善。

2.1.3 基于集成體系的集成學習方法

單一機器學習方法自身都有著不可避免的缺陷,并且在檢測XSS攻擊的過程中這些方法無法適應不斷進化且復雜多變XSS攻擊,檢測精度也不穩(wěn)定[41]。研究者通過實驗證明,一階段的分類器并不能很好地區(qū)分純文本[42]或者不能搜集更多的證據(jù)。而Web應用程序的輸入可以是文本或腳本,且不同Web階段也可以再產(chǎn)生不同的特征。單一機器學習方法和深度學習方法都不能很好地處理這些情況,為此,研究者對集成學習技術進行深入研究。

隨著社交網(wǎng)絡服務(SNS)的興起,XSS攻擊對其威脅也與日俱增,由此出現(xiàn)了一種在社交網(wǎng)站網(wǎng)頁上的新型XSS攻擊——XSS蠕蟲。Rathore等人[43]針對基于SNS網(wǎng)頁的XSS蠕蟲進行深入研究,使用了一種集成學習方法XSS-Classifier對XSS蠕蟲檢測,該方法對XSS攻擊的URL、HTML以及XSS蠕蟲獨有的SNS特征進行提取,并利用10個分類器對XSS攻擊數(shù)據(jù)進行模型的訓練,在有XSS蠕蟲攻擊特征的加入下,集成學習方法random forest和ADTree獲得了比其他單一機器學習分類器更好的性能。

為了挖掘XSS攻擊相關特征,研究者通過組合多個分類器來構(gòu)建比單一機器學習更穩(wěn)定的XSS攻擊檢測體系,利用集成體系對XSS攻擊進行多次特征提取,通過組合不同分類器提取的XSS攻擊特征既可以整體把握XSS攻擊特征,也可以處理XSS攻擊數(shù)據(jù)集不平衡的問題。

Mereani等人[42]以結(jié)合各個分類器的優(yōu)點提升對XSS攻擊的檢測精度為目的,構(gòu)造了一個用于檢測XSS攻擊的集成系統(tǒng),該系統(tǒng)使用級聯(lián)的思想,將系統(tǒng)第一與二階段進行聯(lián)動,第一階段的輸出作為第二階段的輸入。決策樹作為系統(tǒng)的第一階段,通過該階段來區(qū)分輸入系統(tǒng)的XSS攻擊數(shù)據(jù)是文本還是腳本;在第二階段使用多種分類器組成堆疊體系對來自第一階段的基于腳本特征的XSS攻擊數(shù)據(jù)進行特征提取,并選擇經(jīng)過實驗比較后性能最好的多項式核支持向量機(SVM-P)作為元分類器對來自堆疊體系的XSS攻擊特征進行訓練。該系統(tǒng)通過堆疊體系來提升對XSS攻擊的特征提取,這種組合分類器思想提升了對XSS攻擊特征的整體把握。

現(xiàn)有的XSS攻擊檢測方法一般對Web請求和響應兩個階段其中一個進行提取特征,如果這一階段提供的特征不夠充分,就可能識別不出XSS攻擊。為此,Zhang等人[44]提出了一種集成學習方法來檢測XSS攻擊,該方法將兩個高斯混合模型(GMM)進行集成,分別用于訓練請求、響應中的XSS攻擊有效載荷和正常的有效載荷。然后,兩個GMM模型同時在包含XSS攻擊數(shù)據(jù)和正常數(shù)據(jù)的同一數(shù)據(jù)集上進行訓練,形成對照。如果結(jié)果相同則表示該兩個GMM模型有一個識別錯誤,此操作可有效減少對XSS攻擊的漏檢,該模型基于兩個階段對XSS攻擊進行檢測,通過挖掘響應中的信息來解決Web請求數(shù)據(jù)特征信息不全面的局限。

與以上研究者對特征處理的方法不同,其他研究者結(jié)合真實世界信息如威脅情報來對XSS攻擊的特征進行補充,以此來檢測隱藏的XSS攻擊;或者在特征提取上使用融合特征選擇方法來選擇最優(yōu)的XSS攻擊特征。

現(xiàn)有XSS攻擊檢測模型缺乏對結(jié)果的解釋,而貝葉斯網(wǎng)絡模型對結(jié)果有良好的可解釋性,但傳統(tǒng)的貝葉斯網(wǎng)絡需要大量高質(zhì)量的數(shù)據(jù)來對貝葉斯網(wǎng)絡進行結(jié)構(gòu)學習,而在XSS攻擊場景下很難滿足此條件。為此,Zhou等人[45]提出了基于貝葉斯網(wǎng)絡組合領域知識和威脅情報(ENSEM-BLE)進行推理的集成學習方法。該方法使用重采樣的技術學習多個貝葉斯網(wǎng)絡基分類器,在推理中融合基于威脅情報的補償規(guī)則進行決策,降低了誤報率;最后根據(jù)貝葉斯網(wǎng)絡中節(jié)點對輸出節(jié)點的影響進行重要性排序,依據(jù)該順序面向用戶對預測結(jié)果作出解釋。

在現(xiàn)有的XSS攻擊檢測中,針對假陽性率研究較多而對假陰性率研究甚少。為降低對XSS攻擊的漏檢,提高對XSS攻擊的檢測率,Mokbal等人[46]基于極端梯度Boosting提出了一種用于檢測XSS攻擊的集成學習方法XGBXSS。該方法采用Boosting學習的思想,選擇決策樹作為基本分類器,各個分類樹排列有序,每棵樹都向之前的樹學習以縮小前一棵決策樹在檢測XSS攻擊可能犯下的錯誤,從而降低對XSS攻擊的漏檢。在特征提取上使用基于信息增益(IG)和翹曲方法(SBS)的混合特征選擇來對大型XSS攻擊數(shù)據(jù)集進行特征維數(shù)約減,從而選擇最優(yōu)特征子集,此操作解決了數(shù)據(jù)集存在數(shù)據(jù)維度過大導致模型復雜度上升、訓練時間過長的問題。根據(jù)以上研究對基于非對抗性XSS攻擊檢測方法總結(jié)如表4所示。

2.2 基于對抗性XSS攻擊

攻擊者通過向原始XSS攻擊數(shù)據(jù)加入察覺不到的數(shù)據(jù)以欺騙機器學習分類器,這些XSS攻擊對抗樣本人眼無法分辨[47],以上基于機器學習檢測XSS攻擊的方法容易受到XSS對抗攻擊的影響,不能夠?qū)SS攻擊作出正確的決策。為了避免XSS對抗攻擊對XSS攻擊檢測模型的影響,研究者針對對抗性XSS攻擊作了深入研究。一般采用強化學習的方法,利用其試錯策略識別或生成XSS對抗攻擊。

研究者通過強化學習有效挖掘?qū)箻颖?,并將對抗樣本標記為惡意樣本對XSS攻擊檢測模型進行優(yōu)化,進而壓縮檢測模型的對抗樣本空間,提高對XSS攻擊的檢測精度。Fang等人[48]提出了一種基于強化學習檢測XSS對抗攻擊的方法RLXSS,該方法包括對抗攻擊模型和再訓練模型。首先,對抗攻擊模型中的黑白盒檢測模型通過調(diào)用網(wǎng)頁檢測API,對XSS對抗攻擊進行識別,逃過黑白盒檢測模型的樣本將傳輸給基于DDQN的學習代理,并根據(jù)環(huán)境狀態(tài)選擇最優(yōu)的逃逸行為;其次,修改后的樣本將其重新輸入黑白盒模型進行檢測,根據(jù)是否逃逸成功來給予獎勵,否則繼續(xù)尋找最優(yōu)逃逸策略,逃逸成功的保存為XSS對抗攻擊樣本;最后,通過將對抗樣本標記為惡意樣本,重新訓練檢測模型。交替訓練檢測模型和對抗攻擊模型,在檢測模型保持良好檢測能力的同時不斷提高對對抗攻擊的防御能力,此方法可以挖掘到逃脫黑白盒模型檢測的XSS對抗攻擊,并用其來優(yōu)化XSS攻擊檢測模型。

Zhang等人[49]基于蒙特卡羅樹搜索算法(MCTS)提出了一種可以生成XSS攻擊對抗樣本的方法MCTS-T,該方法提出改進蒙特卡羅樹搜索算法中的UCB算法選擇XSS攻擊的最佳動作序列來生成XSS攻擊對抗樣本,并使用GAN對機器學習檢測模型LSTM和XGBoost進行優(yōu)化。在GAN中通過MCTS-T提供的最佳動作序列生成XSS對抗樣本,將它們標記為XSS攻擊,分別對LSTM和XGBoost模型進行訓練;重復生成和訓練的過程,直到XSS攻擊檢測模型能檢測到XSS對抗攻擊為止。使用該方法的XSS攻擊檢測模型能夠獲得適應XSS對抗攻擊的最優(yōu)模型結(jié)構(gòu),并成功抵御XSS對抗攻擊。

與以上研究不同,下列研究著重關注生成XSS攻擊對抗樣本。通過改進相應的繞過策略來提升XSS攻擊的逃逸率,以提高對抗攻擊模型對抗樣本的生成質(zhì)量。

為了提高惡意樣本的置信度以及用更多策略生成XSS對抗攻擊樣本,Wang等人[50]利用軟Q學習算法構(gòu)建XSS對抗攻擊模型,該模型針對XSS攻擊的JavaScript和HTML特征分別制定了相應的轉(zhuǎn)義策略。首先,XSS攻擊載荷依次放入基于HTML和JavaScript特征的對抗攻擊模型中,由XSS攻擊檢測環(huán)境識別XSS攻擊樣本的HTML或JavaScript部分;然后將獎勵和狀態(tài)輸出到軟Q學習HTML轉(zhuǎn)義代理或JavaScript代理,軟Q學習轉(zhuǎn)義代理根據(jù)狀態(tài)選擇轉(zhuǎn)義動作,并根據(jù)XSS攻擊檢測環(huán)境輸出的獎賞反饋進行學習。

為了解決現(xiàn)有生成XSS攻擊對抗樣本轉(zhuǎn)義率低的問題,Chen等人[51]提出基于soft actor-critic(SAC)的強化學習框架來生成XSS對抗攻擊樣本。該框架由對抗攻擊模型和檢測模型構(gòu)成,對抗攻擊模型使用基于SAC的強化學習代理,檢測模型使用CNN、MLP和LSTM網(wǎng)絡。首先,對XSS攻擊向量設計了不同的變異機制以此來提高逃逸率,將XSS攻擊樣本輸入檢測模型中進行判斷,如果是XSS攻擊則交給對抗攻擊模型;然后由智能體根據(jù)檢測模型的反饋選擇合適的逃逸策略,直到繞過檢測模型。該框架使用SAC避免了軟Q學習算法的復雜性,大大提升了生成XSS對抗攻擊的效率,并且逃逸率也是目前為止最高的。

根據(jù)以上研究,對上述基于對抗性XSS攻擊的檢測方法總結(jié)如表5所示。

2.3 小結(jié)

對于非對抗性XSS攻擊,單一機器學習方法使用一種學習方法從數(shù)據(jù)中構(gòu)建決策模型來完成XSS攻擊的檢測,這種方法適用于注入惡意JavaScript代碼的XSS攻擊;深度學習憑借自動學習數(shù)據(jù)特征的能力,通過深度學習模型之間的不同組合,形成擁有更好的特征提取機制的深度學習融合模型來挖掘XSS攻擊的相關特征,改善了單一機器學習方法由于特征提取性能低導致決策模型檢測精度不高的問題;而集成學習方法通過組合多個分類器來構(gòu)建更穩(wěn)定的XSS攻擊檢測體系,解決了基于單一機器學習方法和深度學習方法的一階段分類器不能很好區(qū)分純文本或者不能搜集更多證據(jù)的問題。

對于對抗性XSS攻擊一般采用強化學習的方法,利用其試錯策略來識別或生成XSS對抗攻擊樣本,基于這些樣本對XSS攻擊檢測模型進行再訓練,壓縮了檢測模型的對抗樣本空間,提高了對XSS攻擊的檢測精度。

根據(jù)XSS攻擊是否具有隱蔽性,表6對上述基于機器學習的XSS攻擊檢測方法進行了總結(jié)。

3 XSS攻擊防御技術

XSS攻擊檢測技術旨在XSS攻擊發(fā)生時通過機器學習方法檢測出XSS攻擊,而XSS攻擊防御技術作為解決XSS攻擊的方法,是指使用一定的規(guī)則或策略阻止XSS攻擊腳本的注入和傳播,保護系統(tǒng)免受實時的XSS攻擊。現(xiàn)有的XSS攻擊防御技術主要針對非對抗性XSS攻擊進行防御,關于XSS攻擊防御技術大致可分為規(guī)則過濾、移動目標防御(MTD)和隔離沙箱三類。

3.1 基于規(guī)則過濾

規(guī)則過濾是防止包括XSS攻擊在內(nèi)的網(wǎng)絡攻擊的一種常見的方法,該方法簡單且容易實現(xiàn)。通過建立XSS攻擊規(guī)則庫,與規(guī)則庫進行匹配分析來防止XSS攻擊。在現(xiàn)有的XSS攻擊防御中,基于規(guī)則過濾的方法大致有黑名單或白名單的過濾、正則表達式的過濾、內(nèi)容安全策略的過濾和上傳過濾。

3.1.1 基于黑名單或白名單過濾

基于黑名單或白名單的過濾是通過設置黑名單列表,在黑名單列表里面的腳本將被阻止執(zhí)行;或設置白名單列表,不在列表里的腳本將被阻止執(zhí)行。

動態(tài)代碼生成技術會使XSS攻擊語法發(fā)生微小變化,從而引起對XSS攻擊的誤判。Mitropoulos等人[52]提出了一種基于上下文指紋的腳本白名單XSS攻擊客戶端防御方法,該方法在瀏覽器的JavaScript引擎中部署了一層腳本攔截層,將每一個到達瀏覽器的腳本與被訪問的Web網(wǎng)站或頁面的有效腳本白名單列表進行對比,不在白名單列表中的腳本將被阻止執(zhí)行。當需要在服務器端添加或修改腳本元素時,有一個新的指紋生成階段,與指紋不匹配的腳本將被阻止執(zhí)行。該方法使用指紋可以很容易地為腳本添加新的元素,具有很強的魯棒性,并且開發(fā)人員無須修改Web應用程序的代碼來支持該方法的執(zhí)行。

Gupta等人[53]提出了一種基于黑名單的可以自動發(fā)現(xiàn)XSS攻擊向量的服務器端XSS攻擊防御框架XSS-explorer。XSS-explorer構(gòu)建了與Web應用程序每個腳本注入點相關的XSS攻擊向量庫,并使用混合分析查找XSS攻擊,先靜態(tài)分析文件的所有注入點,再使用動態(tài)分析注入惡意向量并觀察導致的行為。服務器會分析包含有效負載的HTTP請求,并與XSS攻擊向量庫進行匹配,匹配成功的請求將被阻止。該框架加快了XSS攻擊向量的發(fā)現(xiàn)頻率,并且向量庫會隨著XSS攻擊向量的發(fā)現(xiàn)而不斷更新。Chaudhary等人[54]提出了一種基于黑名單防御社交網(wǎng)絡平臺上XSS攻擊的方法XSSPro,該方法將JavaScript代碼隔離在單獨的文件中進行操作,然后通過Levenshtein距離相似度算法對JavaScript腳本代碼進行解碼,最后將提取的腳本與XSS攻擊向量庫進行匹配。如果匹配成功就使用XSS過濾API對腳本進行消毒,安全的腳本將被保留并傳遞給用戶。此方法能夠有效抵御使用內(nèi)置代碼語言新特性所導致的XSS攻擊,且誤報率較低。

為了解決開發(fā)人員不具備必要的專業(yè)知識和充足的資源從XSS攻擊的源頭對XSS攻擊進行防御的問題,Pazos等人[55]提出了一種基于黑名單的Firefox客戶端防御擴展XSnare,該擴展構(gòu)建了一個簽名庫,當瀏覽器擴展接收到HTTP響應后,XSnare會分析潛在的惡意文檔,然后擴展從客戶端本地數(shù)據(jù)庫加載簽名到其檢測器;檢測器分析來自Web網(wǎng)頁的HTML字符串,并匹配適用于文檔的簽名。這些簽名在文檔中指定一個或多個“注入點”,這些“注入點”對應于DOM中可能注入有害內(nèi)容的區(qū)域;然后該擴展對其中的惡意內(nèi)容進行消毒,并將干凈的HTML文檔呈現(xiàn)在瀏覽器上,該擴展使用的簽名庫減少了從發(fā)生零日攻擊到開發(fā)人員將補丁應用到瀏覽器上的時間。

3.1.2 基于正則表達式過濾

由于在防御XSS攻擊的實際應用場景中不可能列出所有良性腳本和XSS攻擊腳本,基于黑名單或白名單的過濾方法不是一個很好的XSS攻擊解決方案,在防御XSS攻擊的過程中難以被有效使用?;谡齽t表達式的過濾是使用正則表達式來描述XSS攻擊,而不是設置黑名單或白名單來阻止或識別列表里的XSS攻擊,基于此方法的過濾器一般部署在服務器端或客戶端。

為了防止CS-XSS,Gebre等人[56]基于內(nèi)容嗅探算法的多樣性設計了一個服務器端的過濾器。該過濾器將能夠進行XSS攻擊的HTML元素和屬性進行精準識別,并用正則表達式的方式表現(xiàn)出它們的序列,憑借正則表達式提出了自動匹配輸入文本中正則表達式的策略。過濾器根據(jù)其策略來檢查用戶上傳的文件,以阻止帶有CS-XSS的文件上傳至服務器中,以此來保護可能將非HTML文件視為HTML文件的瀏覽器。

在XSS攻擊防御方法的研究中,缺乏對移動Web應用程序的研究。為了減少移動設備Web應用程序中易被忽視的XSS攻擊,Javed等人[57]提出了一種部署在移動客戶端的基于正則表達式的過濾器,通過對文獻[58]的正則表達式進行三處改進提出一種新的正則表達式過濾策略:使用腳本標記處理XSS向量、使用onerror、onload等事件處理程序?qū)SS向量進行處理和使用JavaScript URL匹配XSS向量。其正則表達式策略既可以部署在服務器端的防火墻中,又可以作為客戶端的JavaScript函數(shù)。應用新的正則表達式過濾策略的過濾器計算速度更快、易于維護,并且可以處理代碼混淆技術生成的XSS攻擊,大大加強了移動設備防御XSS攻擊的能力。

3.1.3 基于內(nèi)容安全策略過濾

內(nèi)容安全策略(CSP)[59]是一個新增的安全層,其具有許多策略指令,可以幫助檢查和減輕XSS攻擊及其他數(shù)據(jù)注入攻擊。CSP允許服務器管理員按照既定的規(guī)則執(zhí)行腳本,從而減少甚至消除攻擊向量。帶有CSP的瀏覽器將只執(zhí)行從白名單域中接收到的文件的腳本,不執(zhí)行其他腳本。

瀏覽器的算法和內(nèi)容具有多樣性,使得Web站點過濾異常困難。為此,Jim等人[60]提出了一種瀏覽器強制策略BEEP來防止腳本注入,其本質(zhì)是一種基于白名單的過濾,網(wǎng)站在Web頁面嵌入策略,該策略只執(zhí)行白名單列表中的腳本;該策略容易執(zhí)行,不會產(chǎn)生誤報,瀏覽器支持Beep只需要進行很小的本地化修改。

由于不安全的服務器端JavaScript的生成和攻擊者對腳本源的控制可能會導致XSS攻擊,這種情況CSP無法很好解決,為此,Johns等人[61]提出了一種對CSP擴展的方案PreparedJS。該方案提出了腳本模板和腳本校驗和,通過腳本模板,數(shù)據(jù)的占位符用特定的語法標記;腳本校驗和是在腳本模板上計算的一個加密哈希,對于瀏覽器接收到的每個腳本,瀏覽器計算相應腳本模板的校驗和,如果校驗和包含在策略允許的腳本校驗和集合中便允許執(zhí)行。該方案能夠有效緩解XSS攻擊,且開銷較低。

為了防止DXSS,Iqbal等人[62]提出了一種基于瀏覽器和策略混合的保護機制PoliDOM,它可以防止對瀏覽器生成的DOM對象進行非法更改。PoliDOM由DOM安全策略(DSP)和DOM監(jiān)控模塊(DMM)組成。DSP允許應用開發(fā)人員在HTML上指定安全策略來提供服務器端控制,通過HTTP頭傳遞到Web瀏覽器,由安裝在瀏覽器中的DOM監(jiān)控模塊強制執(zhí)行。DMM分析每個傳入的DOM修改請求,并根據(jù)開發(fā)人員設定的安全策略允許或阻止請求。由DMM監(jiān)控DOM的變化解決了傳統(tǒng)依賴JavaScript代碼監(jiān)控代碼易被混淆的問題。

在當前XSS攻擊防御的研究中,CSP因其魯棒性和強大被研究者廣泛關注。以上的研究,CSP依賴于安全人員的手動生成,因而存在人為主觀因素導致的潛在錯誤。為了解決這個問題,研究者將目光關注到自動生成CSP的技術中。

簡單地為Web應用程序啟用CSP會影響Web應用程序的行為,并可能破壞其功能。為了解決這個問題,F(xiàn)azzini等人[63]提出了一種自動為Web應用程序添加CSP的自動化技術AutoCSP,通過動態(tài)污染分析來確定被允許加載到Web應用程序的動態(tài)生成的HTML頁面上的內(nèi)容,并推斷出一個策略,該策略會阻止?jié)撛诘牟豢尚旁囟试S可信元素。最后,它會自動修改Web應用程序的服務器端代碼,以便使用適當?shù)腃SP生成Web頁面。此方案能夠自動生成CSP,且具有較低的開銷。

為了解決現(xiàn)有XSS攻擊防御中在服務器端采用CSP較少的問題,Pan等人[64]提出了一種可以同時部署在客戶端和服務器端的自動化方案CSPAutoGen。CSPAutoGen為每個域訓練模板,并根據(jù)模板自動生成CSP;然后動態(tài)地重寫傳入的網(wǎng)頁以應用那些生成的CSP,將重寫的網(wǎng)頁提供給客戶端瀏覽器;最后,在客戶端運行階段,由瀏覽器強制執(zhí)行CSP,以確保不執(zhí)行惡意腳本。CSPAutoGen設計了一個模板機制用以區(qū)分正常和異常的腳本,并且可以處理所有的內(nèi)聯(lián)和動態(tài)腳本,具有較低的誤報。

為了解決CSP低可擴展性的問題,Xu等人[65]提出了一種基于JavaScript和CSP的自動化JSCSP。JSCSP通過分析用戶實時訪問的頁面自動生成相應的安全策略,然后實施該策略。實施時會暫時阻止接收到頁面的DOM,生成更安全的DOM,并檢查策略規(guī)則防止Web網(wǎng)頁在客戶端執(zhí)行注入的惡意代碼,然后啟用原始DOM。JSCSP能夠自動生成策略,并且可以防御MXSS和UXSS等新型XSS攻擊。

3.1.4 基于上傳過濾

當下隨著社交網(wǎng)絡的興起,具有上傳功能的Web應用程序也日益增多。上傳過濾是一種針對Web應用程序上傳功能來防御CS-XSS攻擊的方法,被部署在服務器端,當有文件上傳到服務器中,它會掃描文件判斷是否具有惡意腳本,檢查到惡意腳本就清除,或者直接拒絕文件的上傳。

XSS攻擊防御通常關注HTML文檔而忽略了攻擊者可能利用瀏覽器中的內(nèi)容嗅探算法來發(fā)動CS-XSS。為此,Barth等人[66]提出了一種基于內(nèi)容嗅探算法的上傳過濾器。通過將Internet Explorer 7、Firefox 3、Safari 3.1和谷歌Chrome四種瀏覽器使用的內(nèi)容嗅探算法進行比較發(fā)現(xiàn),HTML簽名對構(gòu)造CS-XSS至關重要,進而實現(xiàn)了一個由HTML簽名組成的上傳過濾器。上傳文件時,將文件內(nèi)容與簽名進行匹配,然后服務器會阻止匹配成功的文件進行上傳。

Barth等人實現(xiàn)的過濾器只分析文件的初始字節(jié),然而攻擊的有效負載可能存在于文件中的任何位置。為此,Barua等人[67]提出了一種基于HTML和JavaScript解析器的服務器端內(nèi)容嗅探攻擊檢測機制。其中的MIME解析器對文件中的MIME類型進行檢測,上傳策略檢查器對檢測結(jié)果進行決策,如果無法檢測到MIME類型或者不在白名單的列表中,則拒絕文件的上傳。為了避免誤報,對上傳策略檢查器決策出的正常文件使用HTML和JavaScript解析器對文件內(nèi)容進行分析。HTML解析器分析文件內(nèi)容并進行標記,出現(xiàn)標記表明該文件可能包含惡意內(nèi)容。然后,JavaScript解析器檢查標記中是否存在惡意的JavaScript代碼,若存在則阻止文件的上傳。

3.2 基于移動目標防御

移動目標防御(MTD)是一種新興的保護傳統(tǒng)信息技術系統(tǒng)的防御策略[68],與過濾方法阻止XSS攻擊進行攻擊不同,MTD更多地關注通過其隨機性降低受到XSS攻擊的風險。通過不斷改變Web應用程序的配置參數(shù)來減少攻擊者獲得的知識,利用多樣性策略來防止攻擊者設計新的XSS攻擊向量。

為了解決可疑數(shù)據(jù)在Web應用程序運行時改變可信代碼結(jié)構(gòu)的問題,Nadji等人[69]提出了一種可以在瀏覽器中實現(xiàn)的客戶端-服務器端的方案,在服務器端,通過Web服務器使用隨機化的標記方法將不信任的數(shù)據(jù)與受信任的Web應用程序代碼分開;在瀏覽器端,對文檔的結(jié)構(gòu)進行重構(gòu),然后瀏覽器將Web網(wǎng)頁解析為它的初始解析樹,并強制解析樹以識別文檔結(jié)構(gòu)中的不可信數(shù)據(jù)。一旦識別出可疑數(shù)據(jù),就初始化隔離數(shù)據(jù)并進行動態(tài)跟蹤,該方案通過對可疑數(shù)據(jù)進行隔離來防御XSS攻擊,具有較低的誤報率。

為了解決使用白名單策略無法防止針對白名單的攻擊問題,Athanasopoulos等人[70]提出了基于指令集隨機化的XSS攻擊防御框架xJS。其主要思想是在運行時將JavaScript代碼進行轉(zhuǎn)換,然后在瀏覽器上再轉(zhuǎn)回原本的代碼。他們使用異或操作來轉(zhuǎn)換靜態(tài)HTML文檔中的JavaScript代碼,在請求HTML文檔時,Web頁面上的每個代碼都帶有一個解密密鑰;然后通過HTTP響應頭傳回客戶端。在客戶端瀏覽器上,加密的代碼將再次與傳輸?shù)拿荑€進行異或運算,以還原成初始代碼。xJS通過將客戶端代碼與攻擊者注入的可疑代碼進行分隔來達到防御XSS攻擊的目的,具有較小的計算開銷。

現(xiàn)有的防御策略使用同源策略對多個Web應用程序進行隔離,但從可信服務器接收到的惡意內(nèi)容會被當成可信內(nèi)容,并允許惡意代碼訪問。為此,Van Gundy等人[71]提出了一種基于MTD隨機化的解決方案Noncspaces,其核心思想是,通過服務器準確識別和標記不受信任的內(nèi)容,客戶端實施相應策略來防止XSS攻擊。首先,服務器使用一個函數(shù)隨機生成字符串作為HTML標記的前綴,以響應每個HTTP請求,使得每個注入的內(nèi)容將很容易被瀏覽器識別;其經(jīng)由服務器傳輸,并通過瀏覽器的安全策略對惡意內(nèi)容進行阻止。該方案實現(xiàn)簡單,不易產(chǎn)生假陽性。

針對現(xiàn)有XSS攻擊防御方法中需要修改瀏覽器代碼或兼容性不足的問題,Niakanlahiji等人[72]提出了一種主動的移動目標防御機制WebMTD。該機制使用runtimeId屬性標記Web應用程序中所有的HTML元素,并向Web應用程序添加兩個用JavaScript編寫的安全檢查。瀏覽器通過調(diào)用這些檢查來驗證添加的標記,沒有runtimeId屬性或具有不同runtimeId值的新添加元素被認為是惡意的,并被自動刪除。該機制依靠現(xiàn)代瀏覽器的內(nèi)置特性,隨機分配runtimeId屬性的值以區(qū)分應用程序代碼和注入代碼。該方案無須Web開發(fā)人員參與或修改瀏覽器代碼即可完成,且不會產(chǎn)生誤報。

3.3 基于隔離沙箱

沙箱是一種防御XSS攻擊的隔離技術,通過建立一個虛擬的空間將運行中的Web應用程序進行隔離,以防止XSS攻擊的相互傳播。

為了防范WXSS,Cao等人[73]提出了一種基于沙箱技術的方法PathCutter,通過阻止WXSS經(jīng)由DOM訪問不同的視圖和對服務器的未經(jīng)授權(quán)的HTTP請求這兩種傳播途徑來防御WXSS。首先,將每個Web應用程序的內(nèi)容按照特定的規(guī)則將其劃分成不同且獨立的視圖;然后,將視圖封裝在一個偽域中,通過兩個域名實現(xiàn)隔離。由于同源策略的原因,攻擊者在獲得了一個視圖的控制后就不能訪問另一個視圖。

根據(jù)以上研究,對XSS攻擊防御方法總結(jié)如表7所示。

4 結(jié)束語

由于攻擊策略的快速發(fā)展,傳統(tǒng)的檢測和防御方法不再有效。本文對近年來XSS攻擊檢測和防御技術進行了全面的調(diào)研和回顧,針對XSS攻擊檢測技術各類機器學習代表性方法和XSS攻擊防御技術各類防范XSS攻擊方法的使用動機、優(yōu)勢、局限性進行了深入的探討。

在XSS攻擊檢測和防御技術的研究中,本文分別從樣本特征、模型特點和CSP的局限性、上傳功能的廣泛性等方面提出了XSS攻擊檢測和防御未來需要考慮的問題,為XSS攻擊檢測和防御進一步研究提供參考。

4.1 XSS攻擊檢測未來研究方向

4.1.1 基于XSS攻擊檢測模型

a)有限且不平衡的數(shù)據(jù)集。在現(xiàn)有公開的XSS攻擊數(shù)據(jù)源中,數(shù)據(jù)集十分有限且數(shù)據(jù)存在嚴重的類別不平衡現(xiàn)象。不平衡的數(shù)據(jù)會導致模型過分擬合于樣本量大的數(shù)據(jù),從而大大降低了XSS攻擊檢測的準確率。為此,可以使用數(shù)據(jù)增強的方法來對數(shù)據(jù)進行相應的擴充,從而降低數(shù)據(jù)類別的不平衡性,也可以嘗試使用對過多類別的數(shù)據(jù)進行欠采樣、對過少類別進行過采樣的方法以及使用機器學習中的遷移學習等用于XSS攻擊數(shù)據(jù)集來改善模型的檢測性能也是未來的研究熱點。

b)模型的可解釋性。機器學習算法的目的是為了提升模型的泛化性能,模型的可解釋性有助于更深入地了解模型,在面對新的數(shù)據(jù)和樣本時有更好的泛化性能。在XSS攻擊檢測技術的研究中,對模型的可解釋性進行研究的文獻很少。為此,應在模型的可解釋性方面進行深入研究,可以采用特征降維的方法來增強對數(shù)據(jù)的可解釋性,也可以嘗試將因果推理、對比學習等加入XSS攻擊檢測模型中來增強模型的可解釋性也是未來的研究熱點。

c)對抗魯棒性。研究者通過有效地挖掘?qū)箻颖静箻颖緲擞洖閻阂鈽颖?,對XSS攻擊檢測模型進行再訓練。但經(jīng)過對抗訓練的網(wǎng)絡輸出往往是相對置信度的,這種網(wǎng)絡對于正常樣本的性能往往是更差的。所以,在未來的XSS攻擊檢測研究中,如何平衡模型的對抗魯棒性和模型的泛化性能是重要的研究關注點??梢試L試將數(shù)據(jù)增強、集成學習等加入XSS對抗攻擊檢測中也是未來的研究熱點。

4.1.2 基于XSS攻擊類型

a)對抗性XSS攻擊。機器學習檢測XSS攻擊的方法容易受到XSS對抗攻擊的影響,從而造成對XSS攻擊的漏檢。黑客尋找XSS攻擊對抗樣本的目的是為了攻擊XSS攻擊檢測模型,而白客則旨在發(fā)現(xiàn)和修補檢測模型的缺陷。因此,探索XSS對抗攻擊無論是對攻擊者還是防御者都意義重大。而研究者針對XSS對抗攻擊的研究較少,未來可對XSS對抗攻擊進行深入研究。

b)新型XSS攻擊。近年來,隨著Web技術的不斷革新,出現(xiàn)JavaScript型XSS攻擊、XSS蠕蟲等新型XSS攻擊。其中對人們危害較大的是XSS蠕蟲,通過其自我復制的能力在用戶之間相互傳播。而在現(xiàn)有的XSS攻擊檢測中,研究者對三種基本類型的XSS攻擊異?!捌珢邸?,所以未來可針對新型XSS攻擊進行深入研究。

4.2 XSS攻擊防御未來研究方向

a)更加理想的CSP。在當前XSS攻擊防御的研究中,CSP因其魯棒性和強大被研究者廣泛關注。但在大多數(shù)防御的研究中,CSP依賴于安全人員的手動生成,因而存在人為主觀因素導致的潛在錯誤;另外CSP的有效性受到挑戰(zhàn),它們?nèi)菀资艿紺R-XSS的攻擊。因此,為了達到更好的XSS攻擊防御效果,可利用在線學習實時調(diào)整CSP以應對環(huán)境的變化,也可引入MTD技術的隨機性對CSP進行更多改進來達到更加理想的CSP。

b)更多的上傳過濾技術。當下,隨著社交網(wǎng)絡的興起,具有上傳功能的Web應用程序也日益增多,然而研究者對基于上傳功能的XSS攻擊防御技術上傳過濾關注較少。為此,可探索更多的基于機器學習的自適應上傳過濾技術來防御XSS攻擊。

c)新型XSS攻擊。由于攻擊策略的快速發(fā)展,新型XSS攻擊涌現(xiàn)。在當前XSS攻擊防御的研究中,只有少數(shù)研究者對新型XSS攻擊CS-XSS、WXSS進行防御研究。所以,未來可探索更多針對新型XSS攻擊的防御技術。

d)對抗性XSS攻擊。由于對抗攻擊是針對檢測模型進行的攻擊,并使用了欺騙和誘導的技術,防御對抗攻擊存在一定難度。就筆者所知,在現(xiàn)有XSS攻擊防御研究中,尚未發(fā)現(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.新浪微博遭遇跨站攻擊蠕蟲侵襲[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]顧兆軍,李志平,張禮哲.基于單分類支持向量機的XSS攻擊檢測研究[J].計算機應用與軟件,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)絡和GRU的XSS攻擊檢測方法[J].計算機工程與應用,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.

猜你喜歡
機器學習
基于詞典與機器學習的中文微博情感分析
基于機器學習的圖像特征提取技術在圖像版權(quán)保護中的應用
基于網(wǎng)絡搜索數(shù)據(jù)的平遙旅游客流量預測分析
時代金融(2016年27期)2016-11-25 17:51:36
前綴字母為特征在維吾爾語文本情感分類中的研究
科教導刊(2016年26期)2016-11-15 20:19:33
下一代廣播電視網(wǎng)中“人工智能”的應用
活力(2016年8期)2016-11-12 17:30:08
基于支持向量機的金融數(shù)據(jù)分析研究
基于Spark的大數(shù)據(jù)計算模型
基于樸素貝葉斯算法的垃圾短信智能識別系統(tǒng)
基于圖的半監(jiān)督學習方法綜述
機器學習理論在高中自主學習中的應用
鹤山市| 沅江市| 石渠县| 德格县| 金溪县| 徐汇区| 阳城县| 田阳县| 安平县| 眉山市| 高雄市| 徐州市| 石首市| 大荔县| 北川| 化隆| 北宁市| 全椒县| 襄城县| 湘潭县| 德保县| 湖南省| 铁岭市| 杂多县| 敦煌市| 岚皋县| 湘阴县| 赤壁市| 建阳市| 军事| 虞城县| 大安市| 正宁县| 方正县| 奎屯市| 山东省| 南开区| 东台市| 内丘县| 伽师县| 开阳县|