999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于隱馬爾可夫模型的反射型XSS檢測技術

2019-06-11 08:18:52
浙江工業大學學報 2019年4期
關鍵詞:詞匯變形檢測

(1.浙江工業大學 經濟學院,浙江 杭州 310023;2.浙江工業大學 信息工程學院,浙江 杭州310023)

自從進入Web 2.0時代以來,用戶成為網站內容的貢獻者,大量交互產生在客戶端,同時也產生了大量的Web漏洞,對Web應用的安全構成了嚴重的威脅??缯灸_本攻擊(Cross-site scripting,XSS)是一種危害嚴重的Web漏洞,其常年位居開放Web應用安全項目組Top10漏洞的前3 名。其中,反射型XSS攻擊危害最為廣泛,其危害主要有盜取用戶Cookie、會話劫持和網絡釣魚等。在防御反射型XSS攻擊時,最直接的方法是使用跨站腳本過濾器XSS-filter對用戶提交的輸入進行過濾,XSS-filter使用黑名單策略,能夠對黑名單中的字符串進行過濾,然而黑名單策略是靜態防御,只能利用已有的規則進行攔截,對于未知的反射型XSS檢測效果并不理想。針對XSS攻擊的檢測,已經有相關工作者研究并設計了XSS檢測方案,儲澤楠等[1]提出使用k均值算法實現聚類并計算后驗概率,以此初始化隱馬爾可夫模型(Hidden Markov model,HMM)參數,生成具有更高檢測率HMM網絡入侵檢測模型。Gputa等[2]提出在線和離線相結合的方法檢測XSS攻擊,對于移動云上的XSS檢測有良好效果。Salas等[3]提出使用滲透測試的方法檢測XSS漏洞,對于XML格式的跨站腳本攻擊有較好檢測效果,但是其他格式的跨站腳本攻擊設計較少。林冬茂[4]提出對監控對服務器“寫”操作的數據流,與規則庫對比,以此判斷是否為遭到入侵,此方法受到規則庫的限制,只能攔截數據庫中已有的攻擊規則。

在研究了當前各種XSS攻擊檢測技術的基礎上,針對現有反射型XSS攻擊檢測技術只能集中在特定領域或常見類型的不足,鑒于HMM具有強大的統計學基礎與高效的數據處理能力,筆者改進了基于HMM的反射型XSS攻擊檢測技術,充分研究反射型XSS以及變形反射型XSS的構造原理,使用詞集模型對樣本進行詞匯分割并序列化作為觀察序列,進行HMM訓練并生成檢測模型,能夠改善基于規則的檢測器對于未知的和變形的反射型XSS的檢測效果[5]。

1 XSS的分類和變形XSS

1.1 XSS的分類及特點

XSS根據利用手法不同可以分為反射型XSS和存儲型XSS。

反射型XSS也稱作非持久型XSS,攻擊者構造一個含有惡意代碼的URL,然后誘騙用戶點擊此URL,用戶點擊URL后,惡意JavaScript代碼就會在用戶的客戶端執行,惡意JavaScript代碼只在用戶點擊URL鏈接時觸發,只執行一次,所以被稱作反射型XSS。

存儲型XSS也稱作持久型XSS,存儲型XSS不需要用戶點擊特定URL就能進行攻擊,攻擊者將含有惡意代碼的頁面上傳到服務器上,然后用戶在瀏覽包含惡意代碼的網站就會執行JavaScript代碼,一般出現在網站評論和轉發處[6]。

在兩種類型中,反射型XSS更為普遍,因為其構造簡便,且變化形式較為豐富,反射型XSS能夠直接在URL的參數中構造,可以利用規則進行過濾,或用機器學習的方法進行識別,而存儲型XSS的URL中不一定含有攻擊代碼,目前還沒有非常有效的方法對存儲型XSS進行檢測[7-8]。

1.2 變形XSS構造方式

普通的反射型XSS容易被XSS-filter檢測,攻擊者通過構造變形XSS來繞過檢測,例如利用空格來分離敏感詞:對于JavaScript而言,可以構造如下變形攻擊載荷:,其中用空格鍵將javascript隔開,可以繞過XSS-filter。利用大小寫混淆來構造變形XSS:,如果黑名單中沒有對大小寫過濾,那么這種方式就可以繞過XSS-filter,還有其他變形XSS攻擊構造方法,例如對標簽屬性值進行ASCII轉碼,將URL中的關鍵詞轉化為URL編碼等手段來繞過檢測[9]。

基于規則的XSS檢測器的黑名單機制難以應對變形的反射型XSS攻擊,基于HMM的檢測器在處理XSS攻擊樣本時,對攻擊樣本從整體結構上進行分詞并提取特征,形成的檢測模型能更全面地檢測XSS攻擊。

2 基于HMM的反射型XSS檢測器設計

HMM是一種應用廣泛的機器學習技術,它提供一種基于數據訓練的概率識別系統,借助于現有模型訓練和評估算法,能夠良好地應用于模式識別領域。HMM已成功地應用于語音識別、文本抽取和入侵檢測等領域,筆者正是利用具有良好的文本數據處理能力,結合反射型XSS攻擊的樣本特征,對攻擊樣本進行特征提取加入HMM模型訓練,生成基于HMM的反射型XSS檢測器。

2.1 反射型XSS檢測方案設計

基于HMM的反射型XSS檢測器設計主要分為HMM模型訓練和HMM模型驗證兩個部分,如圖1所示。HMM模型訓練階段的目的是生成HMM攻擊檢測模型,模型訓練中最重要的一部分是觀察序列的生成,觀察序列由反射型XSS攻擊訓練樣本經過處理得到,先進行數據清洗,然后進行詞匯分割并對每部分進行詞集編碼,編碼之后進行序列化作為HMM模型的觀察序列,用觀察序列訓練HMM檢測模型。模型驗證部分是用訓練得到的HMM檢測模型對測試樣本進行評估,以驗證模型的識別效果。

圖1 HMM檢測系統結構圖Fig.1 HMM detection system structure chart

2.2 特征選擇與提取

2.2.1 數據清洗

模型訓練需要先將攻擊載荷進行序列化作為觀察序列,而反射型XSS攻擊載荷中包含有函數體、攻擊關鍵詞等,攻擊載荷的元素較多,在特征提取之前需要進行樣本數據處理。在樣本處理時應先進行數據清洗,數據清洗應先剔除掉樣本中非關鍵因素。一個完整的URL請求包括協議、域名、端口、虛擬目錄、文件名和參數,實際上XSS攻擊樣本和正常樣本的區別主要在于虛擬目錄、文件名和參數等部分,因此只需保留虛擬目錄、文件名和參數。

由于部分攻擊載荷為了躲避檢測進行了編碼,主要有HTML編碼和URL編碼,因此在詞法分割之前需要進行相應的解碼。以攻擊載荷%3Cscript%3Ealert%28/42873/%29%3C/script%3E為例,這段字符串進行了URL編碼,需要將其解碼為。

為了減少特征空間,剔除掉非關鍵元素之后需要將參數的某些部分范化,主要包括參數中的超鏈接和數字,將超鏈接范化為"http://u"的形式,將所有數字范化為數字0,將超鏈接和數字范化對攻擊樣本的特征提取沒有影響。將正常樣本和反射型XSS攻擊樣本分別進行數據清洗,得到兩種數據清洗后的樣本。

1) 數據清洗后的正常樣本為

/qte_web.php?qte_web_path=@rfiurl?qte_web_path=@rfiurl?

/environment.php?dir_prefix=http://u?

/examples/jsp/jsp0/jspx/infosrch.cgi?cmd=getdoc&db=man&fname=|/bin/id

2) 反射型XSS攻擊樣本為

/0_0/api.php?op=map&maptype=0&city=test

/mobile/goods_list.php?type=1&sonmouse-over=alert(/0/)

/include/dialog/templets.php?adminDir-Hand="/>

2.2.2 詞匯分割與編碼

樣本數據清洗之后需要進行詞匯分割,詞匯分割有詞集模型和詞袋模型兩種,詞集模型規定每個詞匯只能存在出現或者不出現兩種形式,而詞袋模型規定出現0 次或多次,并統計每個詞匯出現次數。對于本模型,不需要統計其次數,只需要判斷詞匯的有無,因此選用詞集模型即可。

1) 第三方鏈接:有相當部分攻擊樣本中含有第三方域名作為攻擊者服務器,其作用是接收并存儲盜取的客戶端信息,第三方鏈接作為一個獨立的部分,明顯區別于URL中其他部分,因此http/https需要單獨作為一類詞匯。

2) 屬性標簽:反射型XSS攻擊需要在URL中執行JavaScript攻擊代碼,常見的onload屬性就是負責在頁面加載執行一段代碼,例如onload="alert(′XSS′)就代表執行alert函數。Onerror屬性是負責在錯誤發生時執行一段代碼,當然還有其他屬性。屬性標簽的特征是屬性加等號的形式。

3) JavaScript函數:反射型XSS會調用一些危險函數完成攻擊,例如alert( )函數常用于彈出對話框并顯示參數里的內容,使用彈窗本身沒有問題,但是如果攻擊者借助document屬性,例如alert(document.cookie),就能夠盜取客戶端cookie,類似的函數還有很多,將這些JavaScript函數分為一類詞匯。

4) < >標簽:< >標簽主要有等。< >以及其里面的內容作為一個整體劃分為一類詞匯。

5) 單雙引號:以alert('XSS')和alert("XSS")為例,前者是用單引號中包含攻擊代碼,后者是用雙引號包含攻擊代碼,單雙引號一般用于將函數參數或屬性值包含在內,以區別于其他字符。

6) <和>:<和>是2 個標簽,不同于完整的< >標簽,兩者中左尖括號代表標簽開頭,右尖括號代表結尾。例如

(41)世祿權臣不信,非毀玄帝降言誠訓。(《太上說玄天大聖真武本傳神呪妙經註》卷六,《中華道藏》30/579)

具體詞匯分割規則如表1所示,在詞匯分割之后需要進行編碼,按照詞匯分割規則,對被分割的詞匯依次進行編碼,每個詞匯都有一一對應的編碼,然后序列化作為觀察序列進行輸入,進行HMM模型訓練。

表1 詞匯分割規則表Table 1 Table of vocabulary segmentation rules

2.3 HMM模型訓練與模型驗證

HMM包含兩層:觀察層和隱藏層。觀察層是待識別的觀察序列,隱藏層是一個馬爾可夫過程。

HMM將一個隨機過程稱作一系列狀態的轉移,狀態集為S={s1,s2,…sN},t時刻的狀態用qt表示,并滿足qt∈S={s1,s2,…sN},狀態能被觀察到的叫作觀察值,表示為ot,ot是觀察集合V={v1,v2,…vM}的一種。

2.3.1HMM參數

HMM參數[10]由3 部分組成:

1) 轉移概率矩陣A為

式中aij為從狀態si轉移到sj的轉移概率。

2) 觀察概率矩陣B為

式中bjk為在狀態sj下產生vk的概率。

3) 初始狀態概率π為

π={πi=P(q1=si)},1≤i≤j

式中πi為第1 個狀態q1取si的概率。

因此可以用參數λ=(N,M,A,B,π)來表示HMM。HMM主要解決3 個問題:評估問題、解碼問題和學習問題,本模型使用到評估問題和學習問題。

圖2 HMM模型訓練過程圖Fig.2 HMM model detection flow chart

2.3.2 訓練過程

HMM具體訓練過程如下:

1) 將反射型XSS訓練樣本進行數據清洗后,提取詞集并序列化生成觀察序列O={o1,o2,…oT}。

2) 使用前向 - 后向算法計算觀察序列概率P(o|λ)。

3) 使用Baum-Welch算法對模型參數A,B,π重估計。

HMM模型驗證需要解決的問題:將測試樣本提取詞集并序列化,作為觀察序列O={o1,o2,…,oT},已知HMM模型參數λ=(N,M,A,B,π),求模型產生觀察序列的概率P(o|λ),屬于HMM評估問題的范疇,將得到的概率值取自然對數Ln(P(o|λ))并與閾值比較,比閾值小的為攻擊樣本,比閾值大的為正常樣本。

3 實驗與結果分析

實驗環境包括操作系統64 位Ubuntu 16.04,處理器英特爾酷睿i5 2467M,內存8 G,編程語言Python 3.5,預裝機器學習模塊HMMLearn。

訓練環節,反射型XSS攻擊樣本從漏洞提交網站exploit-db和XSS漏洞提交網站XSSed中獲取,挑選1 000 個典型的反射型XSS樣本作為訓練樣本,經過詞集模型處理后加入HMM模型訓練,形成HMM檢測模型,對攻擊樣本觀察序列概率值取自然對數,將最大值作為本模型的閾值。

驗證環節分兩個實驗,實驗1選取500 個反射型XSS樣本和500 個正常請求樣本,其中正常請求樣本從Web服務器日志中獲取,規定反射型XSS樣本為正樣本,正常請求樣本為負樣本。為了全面評價HMM檢測模型的效果,本實驗引入準確率、誤報率和漏報率等3 個評價指標[12]。

準確率表示分類的準確度,即

(1)

式中:FN為被錯誤判定為負樣本的正樣本的數量;FP為被錯誤判定為正樣本的負樣本數量;TN為被正確判定為負樣本的負樣本數量;TP為被正確判定為正樣本的正樣本數量。

誤報率表示錯判為正的負樣本占總的負樣本的比例,即

(2)

漏報率表示錯判為負的正樣本占總的正樣本的比例,即

(3)

將500 個反射型XSS樣本和500 個正常請求樣本作為測試樣本進行模型驗證,計算觀測序列概率值取自然對數Ln(P(o|λ)),為了直觀表示兩種樣本的輸出值Ln(P(o|λ))的分布區間,各取前50 個樣本繪制HMM模型檢測圖,圖3顯示了兩種樣本經過HMM模型計算的輸出值Ln(P(o|λ)),正常樣本輸出值大多數在0~30,而反射型XSS樣本的輸出值普遍高于這個區間,初步證明檢測模型具有良好的檢測能力。

圖3 HMM檢測圖Fig.3 HMM detection chart

將訓練樣本加入模型計算,取輸出概率的自然對數中最大值作為HMM檢測模型的閾值,基于此閾值的檢測效果如表2所示。

表2 HMM檢測模型的檢測數據Table 2 Detection data of HMM

WebKit內核集成有XSS-filter,而Chrome瀏覽器正是基于WebKit內核開發,Chrome瀏覽器中的XSS-filter也被稱為Chrome XSS-filter,這是一種典型的基于規則的XSS檢測器。為了對照,將同樣的攻擊樣本和正常樣本作為Chrome XSS-filter的測試樣本,測試結果如圖4所示,HMM檢測模型的準確率比Chrome XSS-filter要高,這代表著本模型對攻擊樣本和正常樣本的整體判別能力較強。盡管本模型的誤報率較低,但是改善幅度不大,這是因為正常樣本的構造較為簡單,基于規則的XSS-filter對于正常樣本的識別也有較高的能力。本模型漏報率的提升效果比較明顯,這是因為XSS-filter難以識別變形的或者復雜的反射型XSS攻擊,而本模型使用了詞集模型,從反射型XSS攻擊的整體結構進行特征提取,比XSS-filter黑名單模式更具有針對性。

圖4 2 種檢測器的準確率、誤報率和漏報率比較Fig.4 Comparison of the accuracy false alarm rate and missed alarm rate of two detectors

實驗2驗證本模型對變形反射型XSS的檢測效果,選取100 個變形反射型XSS攻擊樣本,變形反射型XSS包含編碼、大小寫混淆等多種變形方式,作為對照,使用Chrome XSS-filter檢測同樣的變形樣本,統計兩種檢測器的有效檢測數,實驗結果如圖5所示。本模型對變形反射型XSS的有效檢測數遠遠多于Chrome XSS-filter,這是因為Chrome XSS-filter的黑名單機制難以檢測出不在黑名單中的變形反射型XSS,而本模型對樣本詞法分割需要基于攻擊樣本的整體結構,將變形的反射型XSS也加入特征提取之中,形成的觀察序列更具有代表性。

圖5 變形反射型XSS檢測效果比較Fig.5 Comparison of detection performance of variable reflected XSS

4 結 論

傳統的基于規則的XSS檢測器難以防御變形的和未知的反射型XSS攻擊,因此提出使用HMM用于反射型XSS攻擊檢測,運用詞集模型對樣本進行處理,將攻擊樣本和正常樣本進行詞匯分割并序列化作為觀察序列,經過HMM訓練和測試,達到了良好的準確率、誤報率和漏報率,驗證了HMM在反射型XSS攻擊檢測領域的可行性。將包含變形的反射型XSS攻擊的訓練樣本加入特征提取,生成的HMM檢測模型對于變形的反射型XSS檢測效果比Chrome XSS-filter更好。相對于基于規則的XSS檢測器,HMM檢測器對反射型XSS攻擊樣本的識別能力更強。實驗后續需要完善的地方是將最新的變形XSS攻擊樣本加入特征提取之中,以進一步提高HMM檢測模型的性能。

猜你喜歡
詞匯變形檢測
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
本刊可直接用縮寫的常用詞匯
一些常用詞匯可直接用縮寫
山東醫藥(2020年34期)2020-12-09 01:22:24
談詩的變形
中華詩詞(2020年1期)2020-09-21 09:24:52
本刊可直接用縮寫的常用詞匯
“我”的變形計
例談拼圖與整式變形
會變形的餅
主站蜘蛛池模板: 欧美成人区| 美女无遮挡免费视频网站| 99视频在线观看免费| 婷婷综合色| 亚洲AV电影不卡在线观看| 日韩在线欧美在线| 国产美女精品一区二区| 成人午夜免费观看| 国产中文一区a级毛片视频| 国产无码高清视频不卡| 在线观看91精品国产剧情免费| 第一页亚洲| 国产欧美高清| 超清人妻系列无码专区| 秋霞午夜国产精品成人片| 国产又色又刺激高潮免费看| 亚洲最新地址| 日本91视频| 国产美女91视频| 91福利免费视频| 亚洲人成高清| 精品一區二區久久久久久久網站 | 国产女人在线| 亚洲日本精品一区二区| 色吊丝av中文字幕| 成人免费午间影院在线观看| 天堂久久久久久中文字幕| 女人18毛片久久| 国产高清免费午夜在线视频| 四虎亚洲国产成人久久精品| 国产日韩AV高潮在线| 亚洲精品无码AV电影在线播放| 国禁国产you女视频网站| 欧美日韩久久综合| 91视频99| 日韩资源站| 91久久精品日日躁夜夜躁欧美| 久久精品一卡日本电影| 亚洲熟妇AV日韩熟妇在线| 久久久久亚洲精品成人网| 91无码视频在线观看| a级毛片免费播放| 无码aaa视频| 国产欧美亚洲精品第3页在线| 91外围女在线观看| 亚洲人成成无码网WWW| 毛片视频网址| 激情六月丁香婷婷四房播| 亚洲成人高清无码| 欧美日本在线观看| 99久久99这里只有免费的精品| 真实国产乱子伦视频| 欧美va亚洲va香蕉在线| 久久久久亚洲AV成人网站软件| 欧美日韩精品一区二区在线线| 无码久看视频| 国产9191精品免费观看| 亚洲欧美日本国产专区一区| 国产激爽大片高清在线观看| 国产精品30p| 国产男人天堂| 久久96热在精品国产高清| 日韩欧美国产另类| 多人乱p欧美在线观看| 国产欧美性爱网| 国产自在线播放| 高清无码一本到东京热| m男亚洲一区中文字幕| 无码专区在线观看| 日本精品视频一区二区| 国产精品久久久久无码网站| 91麻豆久久久| 人妻夜夜爽天天爽| 就去吻亚洲精品国产欧美| 欧美激情综合| 日本人真淫视频一区二区三区| 狠狠亚洲五月天| 欧美国产在线看| 丝袜亚洲综合| 国产青青草视频| 国产色网站| 高清精品美女在线播放|