• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      跨站腳本漏洞滲透測試技術(shù)

      2017-12-06 06:46:42王丹顧明昌趙文兵
      哈爾濱工程大學(xué)學(xué)報 2017年11期
      關(guān)鍵詞:探子字符串表單

      王丹,顧明昌,趙文兵

      (北京工業(yè)大學(xué) 計算機學(xué)院, 北京 100124)

      跨站腳本漏洞滲透測試技術(shù)

      王丹,顧明昌,趙文兵

      (北京工業(yè)大學(xué) 計算機學(xué)院, 北京 100124)

      為提升跨站腳本(XSS)漏洞檢測方法的檢測效果,本文提出了基于隱馬爾科夫模型(HMM)的攻擊向量動態(tài)生成和優(yōu)化方法。采用決策樹模型和代碼混淆策略對攻擊向量進行分類和變形,獲得測試用攻擊向量。使用注入點去重處理和探子技術(shù)去除一部分不存在XSS漏洞的Web頁面,避免重復(fù)檢測不同Web頁面中相同的漏洞注入點,減少測試階段與Web服務(wù)器的交互次數(shù);進一步采用XPath路徑定位技術(shù)提高漏洞檢測結(jié)果分析的效率。對比實驗結(jié)果表明,本文提出的方法降低了響應(yīng)時間和漏報率,提高了檢測效率。

      跨站腳本漏洞; 滲透測試; 隱馬爾科夫模型; 攻擊向量; 注入點

      當(dāng)用戶訪問Web頁面時,如果瀏覽器執(zhí)行了攻擊者向Web頁面中插入的惡意腳本代碼時,就會引發(fā)跨站腳本(cross site script,XSS)漏洞攻擊,造成竊取用戶敏感信息、劫持用戶瀏覽器等安全問題[1-2]。XSS漏洞攻擊屬于代碼注入式漏洞攻擊,根據(jù)開放式Web應(yīng)用程序安全項目(open web application security project,OWASP)[3]發(fā)布的Web應(yīng)用安全漏洞統(tǒng)計,XSS漏洞已連續(xù)幾年均列十大安全漏洞前三名。目前,隨著JavaScript語言和Ajax技術(shù)的普遍使用,動態(tài)交互的網(wǎng)絡(luò)應(yīng)用在豐富網(wǎng)絡(luò)內(nèi)容、增加用戶體驗的同時,也容易引發(fā)較嚴重的網(wǎng)絡(luò)安全問題,因為任何能夠提供用戶信息交互的地方都可能成為XSS攻擊者提交惡意攻擊腳本的載體,成為漏洞的注入點[4]。如果Web應(yīng)用系統(tǒng)未對輸入的內(nèi)容進行有效驗證,也沒有嚴格的過濾機制對可能含有惡意腳本的內(nèi)容進行過濾,就可能引發(fā)XSS漏洞攻擊[5]。滲透測試技術(shù)通過模擬攻擊和對Web響應(yīng)進行分析來檢測安全漏洞,已成為動態(tài)發(fā)現(xiàn)Web漏洞的有效手段之一[6-7]。如何有效發(fā)現(xiàn)漏洞注入點、并構(gòu)造測試有效的攻擊向量以提升漏洞檢測效率和覆蓋率是滲透測試需要研究解決的關(guān)鍵問題之一,尤其是XSS漏洞攻擊本身具有復(fù)雜的攻擊方式,檢測效果在很大程度上依賴于漏洞注入點發(fā)現(xiàn)的全面性和漏洞攻擊向量設(shè)計的完整性。

      本文提出了基于隱馬爾科夫模型(hidden Markov model,HMM)的攻擊向量動態(tài)生成和優(yōu)化方法,并基于數(shù)據(jù)的輸出位置對攻擊向量進行了分類,設(shè)計并實現(xiàn)了基于滲透測試的XSS漏洞檢測的原型系統(tǒng)。

      1 攻擊向量生成及優(yōu)化

      1.1種子攻擊向量

      目前,在使用攻擊向量進行XSS漏洞動態(tài)檢測過程中,絕大多數(shù)都是使用基于XSS Cheat Sheet的攻擊向量集,并在此基礎(chǔ)上進行相關(guān)的變形,作為最后的攻擊向量。在此過程中,種子攻擊向量的選擇一般都來自現(xiàn)有的攻擊向量集合,包括XSS Cheat Sheet攻擊腳本,以及根據(jù)xssed網(wǎng)站中發(fā)布的XSS攻擊所采用的腳本。

      種子攻擊向量是對攻擊變量進行變形的基礎(chǔ),它被從攻擊向量隊列中讀出之后經(jīng)過如下幾種操作,如URL編碼、HTML實體替換、UTF-8編碼、Base64編碼、Hex編碼以及用String.fromCharCode()函數(shù)和插入特殊字符、隨機字符的大小寫變形等,產(chǎn)生多種變形后成為新的攻擊向量,隨后再經(jīng)過對重復(fù)的攻擊向量的篩除,繼續(xù)作為下一次攻擊向量種子,最后通過響應(yīng)函數(shù)prifix()函數(shù)引入的前綴符號,如 “;”、“〉”、“&”、“′〉”、“+〉”、“>”和“>”等,與Web頁面中的“<”,“+”閉合,使上述攻擊向量成為能夠被瀏覽器解析執(zhí)行的自由腳本。

      1.2攻擊向量結(jié)構(gòu)

      引發(fā)XSS攻擊的攻擊向量有很多種,它們本身有一定的組成規(guī)則:1)它所包含的惡意腳本被瀏覽器加載執(zhí)行;2)能夠執(zhí)行具有特定目的攻擊動作;3)符合HTML語義邏輯。本文基于語法規(guī)則,將攻擊向量的語法分為備選符號集、攻擊向量形式說明、變形規(guī)則說明三部分,分析如下。

      1)備選符號集。如HTML中標(biāo)簽、JavaScript的敏感詞和CSS的敏感符號,即可能出現(xiàn)于攻擊向量中的語法符號。參考并整理文獻[8-9],本文涉及的備選符號集分為如表1所示的三部分。

      表1 備選符號集分類

      2)攻擊向量形式說明。通過相關(guān)的文獻和收集的攻擊向量發(fā)現(xiàn):攻擊向量主要由分隔符、HTML標(biāo)簽、一個或者多個屬性的組合,表2給出部分示例。

      3)變形規(guī)則說明。通過編碼、混編大小寫、添加空白字符等變形操作而繞過代碼過濾,是攻擊向量常用的一種策略。攻擊向量的變異就是通過使用變形規(guī)則自動生成攻擊向量,達到繞過Web站點中過濾器的目的。

      表2 攻擊向量的組合形式

      1.3攻擊向量分類

      本文以合法請求向量在Web頁面中的輸出點為依據(jù),對攻擊向量進行分類,達到減少訪問XSS注入點、減少與服務(wù)器交互次數(shù)、提高效率的目的。輸出點分類如表3所示。

      1.4攻擊向量生成

      本文攻擊向量自動化生成方法的基本過程是:根據(jù)前文攻擊向量的結(jié)構(gòu)分析中選取一種攻擊向量的組合形式,然后從攻擊向量符號集中選擇一個備選字符集的值,并且隨機選取惡意符號功能集和分隔符集中的元素值,最后根據(jù)組合規(guī)則組合生成一個基本的攻擊向量。基本攻擊向量結(jié)構(gòu)定義如下:

      Class BasicAttackVector{

      String vectorType;//基本攻擊向量組合形式

      String vectorPattern; //攻擊向量符號集類型

      String vectorValue; //攻擊向量備選字符}

      下面給出一個攻擊向量生成實例:

      1)vectorType:基本攻擊向量組合形式。假設(shè)為。為了生成攻擊向量,首先選取該種攻擊向量的組合形式。

      2)vectorPattern:HTML備選字符集。以組合形式為基礎(chǔ),分別從HTML_TAG、HTML_EVENT集中選取HTML標(biāo)簽和事件屬性,并且從惡意功能符號集中選擇JS_S類型,組成基本的攻擊向量。

      3)vectorValue:備選符號集的值。根據(jù)步驟2)中的符號集,選取對應(yīng)符號集備選值中的任意一個,如