• 
    

    
    

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

      一種基于攻擊向量自動(dòng)生成的XSS漏洞滲透測(cè)試方法

      2016-05-14 09:09:49顧明昌王丹趙文兵付利華
      軟件導(dǎo)刊 2016年7期
      關(guān)鍵詞:機(jī)器學(xué)習(xí)

      顧明昌 王丹 趙文兵 付利華

      摘要:針對(duì)XSS漏洞自動(dòng)化檢測(cè)方法在檢測(cè)效率方面的不足,研究了改進(jìn)的基于滲透測(cè)試的檢測(cè)方法。提出一種攻擊向量自動(dòng)化生成方法,同時(shí)使用機(jī)器學(xué)習(xí)算法對(duì)生成的攻擊向量進(jìn)行優(yōu)化和分類(lèi),提高漏洞檢測(cè)效率。在使用攻擊向量進(jìn)行滲透測(cè)試前,使用探子算法去除一部分不存在XSS漏洞的頁(yè)面,以減少測(cè)試階段與Web服務(wù)器的交互次數(shù)。此外,還對(duì)獲取的注入點(diǎn)進(jìn)行去重處理,以避免重復(fù)檢測(cè)不同頁(yè)面中相同的注入點(diǎn)。實(shí)驗(yàn)結(jié)果表明,該方法能夠有效改善XSS漏洞檢測(cè)效率。

      關(guān)鍵詞關(guān)鍵詞:XSS漏洞;滲透測(cè)試;機(jī)器學(xué)習(xí);攻擊向量

      DOIDOI:10.11907/rjdk.161321

      中圖分類(lèi)號(hào):TP309文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào)文章編號(hào):16727800(2016)007017305

      0引言

      近年來(lái),隨著互聯(lián)網(wǎng)的飛速發(fā)展,Web應(yīng)用越來(lái)越豐富,網(wǎng)上購(gòu)物、社交網(wǎng)站等Web應(yīng)用在現(xiàn)實(shí)生活中的使用也更加廣泛。然而另一方面,Web安全問(wèn)題不斷出現(xiàn),隨著越來(lái)越多網(wǎng)絡(luò)攻擊發(fā)生在身邊,Web應(yīng)用的安全性也受到更多關(guān)注。根據(jù)最新的OWASP統(tǒng)計(jì),XSS漏洞依然是Web應(yīng)用漏洞的前三名。XSS漏洞的產(chǎn)生是由于攻擊者向Web應(yīng)用程序頁(yè)面中嵌入惡意腳本代碼,當(dāng)普通用戶瀏覽相關(guān)頁(yè)面時(shí),這些惡意腳本代碼會(huì)在瀏覽器端執(zhí)行,從而使普通用戶受到攻擊,竊取用戶敏感信息,損害用戶利益。因此,進(jìn)行XSS漏洞檢測(cè)十分必要。

      XSS漏洞主要分為3類(lèi):存儲(chǔ)型、反射型和DOM型。存儲(chǔ)型XSS漏洞即Stored XSS,假如Web服務(wù)器端并未過(guò)濾掉該數(shù)據(jù),用戶瀏覽相關(guān)頁(yè)面時(shí),即可能觸發(fā)這種類(lèi)型的漏洞;反射型XSS漏洞即Reflected XSS,用戶提交的數(shù)據(jù)立即被服務(wù)器端處理并返回一個(gè)響應(yīng)頁(yè)面,如果用戶提交的數(shù)據(jù)包含未經(jīng)檢驗(yàn)的數(shù)據(jù),則會(huì)發(fā)生該類(lèi)型的漏洞;基于DOM的XSS漏洞即DOMbased XSS,惡意腳本代碼并非由Web服務(wù)器注入到網(wǎng)頁(yè)中,而是在瀏覽器接收到HTML代碼之后,由瀏覽器在網(wǎng)頁(yè)中嵌入該惡意腳本代碼并執(zhí)行。

      目前,檢測(cè)XSS漏洞的方法和自動(dòng)化工具有很多,主要有3種:靜態(tài)分析、動(dòng)態(tài)分析和動(dòng)靜態(tài)混合檢測(cè)方法。靜態(tài)分析是指對(duì)應(yīng)用程序的源碼進(jìn)行分析,通過(guò)分析源碼來(lái)發(fā)掘可能存在的漏洞,相關(guān)的自動(dòng)化檢測(cè)工具有Fortify SCA、XSSDetect、Pixy等\[3,4\],這類(lèi)檢測(cè)工具或方法可以實(shí)現(xiàn)高效自動(dòng)的檢測(cè)。但靜態(tài)分析具有一定局限性,如很難獲取目標(biāo)站點(diǎn)的源碼;動(dòng)態(tài)分析是在Web站點(diǎn)運(yùn)行過(guò)程中,根據(jù)運(yùn)行結(jié)果推測(cè)Web站點(diǎn)中可能存在的漏洞,是一種黑盒測(cè)試技術(shù),其中滲透測(cè)試是動(dòng)態(tài)檢測(cè)方法中具有代表性的漏洞檢測(cè)方法。滲透測(cè)試指通過(guò)模擬攻擊者攻擊Web站點(diǎn)的過(guò)程,發(fā)現(xiàn)Web站點(diǎn)中可能存在的漏洞。運(yùn)用該方法檢測(cè)Web漏洞的工具和方法很多,如XSSer、Burp Suite等\[5,6\],它們主要是通過(guò)模擬用戶攻擊過(guò)程,嘗試向Web網(wǎng)頁(yè)中存在的相關(guān)注入點(diǎn)注入攻擊向量,根據(jù)服務(wù)器返回的對(duì)應(yīng)響應(yīng)頁(yè)面信息來(lái)分析判斷目標(biāo)站點(diǎn)中是否有漏洞存在,如果返回頁(yè)面中含有注入的攻擊向量,說(shuō)明該站點(diǎn)可能會(huì)遭受XSS攻擊,反之則認(rèn)為XSS漏洞不存在。動(dòng)態(tài)檢測(cè)方法主要具有準(zhǔn)確率高、針對(duì)性強(qiáng)和無(wú)需程序源代碼3方面優(yōu)勢(shì),其不足之處在于不當(dāng)?shù)墓粝蛄靠赡茉斐奢^高的漏報(bào)率,因此要求XSS攻擊向量樣本的選取既要足夠大,以此降低檢測(cè)結(jié)果的漏報(bào)率,但同時(shí)過(guò)大的樣本又會(huì)造成檢測(cè)效率低下。

      本文研究了基于攻擊向量自動(dòng)生成的XSS漏洞滲透測(cè)試方法,提出了一種攻擊向量自動(dòng)化生成方法,同時(shí)使用機(jī)器學(xué)習(xí)算法對(duì)生成的攻擊向量進(jìn)行分類(lèi)和優(yōu)化,以提高XSS漏洞檢測(cè)效率。在使用攻擊向量進(jìn)行滲透測(cè)試前,使用探子算法去除一部分不存在XSS漏洞的頁(yè)面,以減少測(cè)試階段與Web服務(wù)器的交互次數(shù)。同時(shí),分析記錄探子算法檢測(cè)響應(yīng)頁(yè)面的DOM路徑用于測(cè)試時(shí)的響應(yīng)結(jié)果分析,以提高結(jié)果分析效率。此外,對(duì)獲取的注入點(diǎn)進(jìn)行去重處理,避免重復(fù)檢測(cè)不同頁(yè)面中相同的注入點(diǎn)。

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

      滲透測(cè)試中重要的一步是逐條使用攻擊向量對(duì)注入點(diǎn)進(jìn)行注入式攻擊檢測(cè),因此攻擊向量的選取將直接關(guān)系到檢測(cè)方法的性能。攻擊向量選取不足或者不完備,將會(huì)導(dǎo)致檢測(cè)結(jié)果漏報(bào)率很高,但過(guò)量的攻擊向量會(huì)嚴(yán)重降低檢測(cè)效率。本文提出一種攻擊向量的自動(dòng)化生成方法,并使用機(jī)器學(xué)習(xí)算法建立優(yōu)化模型,以減少攻擊向量的條數(shù)。

      1.1攻擊向量生成

      XSS攻擊向量有很多種,只用單一的某個(gè)特征無(wú)法概括所有種類(lèi)的攻擊向量。但是攻擊向量本身也有一定組成規(guī)則,表現(xiàn)在以下3方面:①攻擊向量中包含的惡意腳本能夠達(dá)到在瀏覽器端加載執(zhí)行的功能;②攻擊向量能夠執(zhí)行特定的攻擊動(dòng)作,以達(dá)到攻擊者的某種目的;③攻擊向量嵌入到Web頁(yè)面,必須符合HTML語(yǔ)義邏輯。本文將攻擊向量的語(yǔ)法規(guī)則分為3部分:備選符號(hào)集、攻擊向量形式說(shuō)明、變化規(guī)則說(shuō)明,具體如下:

      (1) 符號(hào)集描述了攻擊向量中可能出現(xiàn)的語(yǔ)法符號(hào),如HTML標(biāo)簽、JavaScript敏感詞和CSS敏感符號(hào)。經(jīng)過(guò)查閱和整理相關(guān)文獻(xiàn),本文將攻擊向量符號(hào)集分為3部分:HTML備選字符集、惡意功能符號(hào)集和分隔符集。符號(hào)集分類(lèi)如表1所示。

      (3)變化規(guī)則是指初步生成的攻擊向量通常為了繞過(guò)代碼凈化過(guò)濾器所要做的諸如編碼、大小寫(xiě)混編、嵌入空白字符等常規(guī)處理。在攻擊向量生成之后,自動(dòng)生成變異的攻擊向量可以使用變化規(guī)則繞過(guò)Web站點(diǎn)中的過(guò)濾器。

      目前,一般的動(dòng)態(tài)檢測(cè)方法均是通過(guò)依次對(duì)某Web應(yīng)用頁(yè)面的XSS注入點(diǎn)使用所有的攻擊向量來(lái)檢測(cè),而每提交一條攻擊向量就會(huì)與服務(wù)器交互一次,從而造成大量客戶端和服務(wù)器的交互,嚴(yán)重影響檢測(cè)效率。本文采用一種有效辦法來(lái)減少檢測(cè)過(guò)程中攻擊向量的使用。該方法是根據(jù)合法向量在頁(yè)面中的輸出位置對(duì)攻擊向量進(jìn)行分類(lèi),然后根據(jù)輸出點(diǎn)的類(lèi)型選擇不同類(lèi)型的攻擊向量,從而大量減少了與服務(wù)器的交互次數(shù)。本文對(duì)輸出點(diǎn)的分類(lèi)如下:

      (2)HTML特殊標(biāo)簽之間。這種類(lèi)型的標(biāo)簽主要在title、iframe、textarea、plaintext、noscript等標(biāo)簽中,因?yàn)檫@類(lèi)標(biāo)簽之間無(wú)法執(zhí)行腳本,采用的攻擊向量需引入HTML標(biāo)簽使相關(guān)屬性閉合,例如:

      (3)HTML標(biāo)簽之內(nèi)。輸出點(diǎn)在HTML標(biāo)簽之內(nèi)的類(lèi)型主要是某些標(biāo)簽中的值屬性,如input標(biāo)簽中的value屬性、img和a標(biāo)簽中的src/href屬性等,可采用如下類(lèi)型的攻擊向量:

      (4)作為JS的一部分。有時(shí)用戶的輸入將作為JS的一部分,這時(shí)輸出點(diǎn)在JS內(nèi)。如。該類(lèi)型采用的攻擊向量如下:

      (5)作為CSS的一部分。CSS用來(lái)定義展示HTML元素的樣式,有兩種方法可以對(duì)其注入惡意的JS腳本代碼。一種是以style標(biāo)簽作為屬性注入,另一種是直接為標(biāo)簽

      (2)分析探子請(qǐng)求響應(yīng)頁(yè)面,使用DOM路徑定位技術(shù)分析其輸出點(diǎn)類(lèi)型。

      (3)從生成的相應(yīng)類(lèi)型攻擊向量庫(kù)中取出一條攻擊向量對(duì)注入點(diǎn)進(jìn)行檢測(cè)。

      (4)最后,根據(jù)響應(yīng)頁(yè)面是否存在與攻擊向量相同的字符串來(lái)確定是否存在XSS漏洞攻擊,如果發(fā)現(xiàn)響應(yīng)頁(yè)面存在該攻擊向量,則認(rèn)為存在XSS漏洞,記錄相關(guān)的檢測(cè)點(diǎn)和攻擊向量信息,結(jié)束對(duì)該注入點(diǎn)的檢測(cè);否則,如果該攻擊向量庫(kù)中還有攻擊向量沒(méi)有被注入分析,則繼續(xù)對(duì)該檢測(cè)點(diǎn)進(jìn)行注入檢測(cè);如果最終攻擊向量庫(kù)的所有攻擊向量都逐步被分析檢測(cè)完畢,則本注入點(diǎn)檢測(cè)結(jié)束,認(rèn)為XSS漏洞不存在。

      對(duì)于存儲(chǔ)型XSS,由于注入數(shù)據(jù)后,其輸出不一定在響應(yīng)頁(yè)面中,也可能在站點(diǎn)的其它頁(yè)面中,故使用探子向量后,如果在響應(yīng)頁(yè)面里并不存在探子向量,則要分析注入點(diǎn)是否為Form表單,若是,則進(jìn)行存儲(chǔ)型XSS攻擊檢測(cè)。圖4為Form表單的存儲(chǔ)型XSS檢測(cè)過(guò)程。

      對(duì)Form表單的存儲(chǔ)型XSS檢測(cè)中,首先要進(jìn)行Form表單提交后的響應(yīng)頁(yè)面定位,需要遍歷所有的頁(yè)面。如果每次檢測(cè)都這樣做,將嚴(yán)重影響檢測(cè)效率。本文采用的方案是,對(duì)Formstored隊(duì)列中的每一個(gè)Form表單采用一個(gè)唯一的合法向量進(jìn)行探子請(qǐng)求,各個(gè)注入點(diǎn)的唯一合法向量采用Java中的java.util.UUID類(lèi)的randomUUID()方法來(lái)生成。UUID指通用唯一識(shí)別碼,是一個(gè)128位長(zhǎng)的數(shù)字,使用16進(jìn)制表示。它是結(jié)合以太網(wǎng)卡地址、納秒級(jí)時(shí)間、隨機(jī)數(shù)字等生成的,以保證每次生成的識(shí)別碼的唯一性,為后續(xù)的漏洞檢測(cè)工作提供支持。探子探測(cè)執(zhí)行完畢后,到hash值發(fā)生變化的文件中查找對(duì)應(yīng)的合法向量。然后,根據(jù)合法向量和Form表單的對(duì)應(yīng)關(guān)系,生成Form表單和其提交后的響應(yīng)頁(yè)面的對(duì)應(yīng)集合,從而完成了Form表單和其響應(yīng)頁(yè)面的定位。最后,對(duì)每個(gè)Form表單依次提交攻擊向量進(jìn)行滲透測(cè)試,測(cè)試方法如前文所示。

      為了驗(yàn)證本文提出的方法在檢測(cè)XSS漏洞方面的有效性和檢測(cè)效率,本文實(shí)現(xiàn)了一個(gè)XSS漏洞檢測(cè)的原型系統(tǒng),并對(duì)該系統(tǒng)進(jìn)行了性能測(cè)試。本文采用4個(gè)性能分析指標(biāo),包括:檢測(cè)到的漏洞個(gè)數(shù)、漏報(bào)率、誤報(bào)率和響應(yīng)時(shí)間。誤報(bào)率指原本不存在XSS漏洞而使用本系統(tǒng)檢測(cè)時(shí)被判定為存在XSS漏洞的數(shù)量與正常樣本數(shù)量的比率;漏報(bào)率指本來(lái)存在XSS漏洞而使用本系統(tǒng)檢測(cè)時(shí)被判定為不存在XSS漏洞的數(shù)量與實(shí)際漏洞數(shù)量的比率;響應(yīng)時(shí)間定義為一個(gè)站點(diǎn)的全部頁(yè)面檢測(cè)完成所耗費(fèi)的時(shí)間。在檢測(cè)性能分析時(shí),為使檢測(cè)性能評(píng)估更加客觀,采用各個(gè)系統(tǒng)獨(dú)立對(duì)一個(gè)站點(diǎn)檢測(cè)5次,計(jì)算其平均響應(yīng)時(shí)間作為最終響應(yīng)時(shí)間。理論上,誤報(bào)率、漏報(bào)率及響應(yīng)時(shí)間相比于其它檢測(cè)工具,其結(jié)果數(shù)值越小,說(shuō)明檢測(cè)效果越好。對(duì)于Web站點(diǎn)的檢測(cè),采用同一站點(diǎn)所有網(wǎng)頁(yè)檢測(cè)出的XSS漏洞個(gè)數(shù)和響應(yīng)時(shí)間作為評(píng)估標(biāo)準(zhǔn)。其中對(duì)于開(kāi)源系統(tǒng),為了獲得更詳細(xì)的測(cè)試數(shù)據(jù),采用Apache服務(wù)器搭建本地系統(tǒng)環(huán)境,進(jìn)行檢測(cè)結(jié)果比對(duì)。而為了分析本文方法的誤報(bào)率和漏報(bào)率性能指標(biāo),需要預(yù)先了解待檢測(cè)樣本的XSS漏洞存在情況。

      本文選擇使用OWASP開(kāi)源項(xiàng)目以及XSSed.com網(wǎng)站上發(fā)布的存在XSS漏洞且尚未修復(fù)的網(wǎng)站進(jìn)行測(cè)試。參與檢測(cè)的系統(tǒng)或工具有Paros Proxy、XSSer和本文實(shí)現(xiàn)的檢測(cè)系統(tǒng)。Paros Proxy是基于滲透測(cè)試方法設(shè)計(jì)的一個(gè)Web應(yīng)用程序漏洞評(píng)估的代理程序,它擁有一個(gè)可用于測(cè)試網(wǎng)站攻擊的掃描器,可以同時(shí)實(shí)現(xiàn)對(duì)XSS漏洞和SQL注入的檢測(cè);XSSer同樣是基于滲透測(cè)試方法而設(shè)計(jì)的工具,專(zhuān)門(mén)用來(lái)檢測(cè)XSS漏洞。它可以繞過(guò)某些過(guò)濾器,實(shí)現(xiàn)對(duì)Web網(wǎng)站中XSS漏洞的安全檢測(cè);本文實(shí)現(xiàn)的檢測(cè)系統(tǒng)的開(kāi)發(fā)環(huán)境為Window 7 操作系統(tǒng),使用Java作為開(kāi)發(fā)語(yǔ)言,并采用MySQL數(shù)據(jù)庫(kù)。以下是3種方法檢測(cè)結(jié)果的比對(duì),如表4所示。為評(píng)估漏報(bào)率和誤報(bào)率,檢測(cè)樣本是從XSSed.com網(wǎng)站上選取的100個(gè)最近發(fā)布的存在XSS漏洞且未被修復(fù)的樣本,同時(shí)選取50個(gè)已經(jīng)修復(fù)漏洞的樣本。而對(duì)于Web網(wǎng)站的檢測(cè),評(píng)估結(jié)果采用檢測(cè)的漏洞數(shù)和響應(yīng)時(shí)間進(jìn)行比對(duì),檢測(cè)OWASP項(xiàng)目WebGoat-6.0.1站點(diǎn)的比對(duì)結(jié)果如表5所示。

      4結(jié)語(yǔ)

      本文通過(guò)對(duì)Web中存在的XSS漏洞的產(chǎn)生、利用和檢測(cè)相關(guān)技術(shù)的研究,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)安全檢測(cè)XSS漏洞的系統(tǒng)。該系統(tǒng)采用動(dòng)態(tài)測(cè)試技術(shù)的滲透測(cè)試方法,在該方法基礎(chǔ)上,針對(duì)原有動(dòng)態(tài)測(cè)試技術(shù)中手動(dòng)收集攻擊向量導(dǎo)致的攻擊向量不足、檢測(cè)效率較低的問(wèn)題,提出一種攻擊向量自動(dòng)化生成方法,同時(shí)使用機(jī)器學(xué)習(xí)算法對(duì)生成的攻擊向量進(jìn)行優(yōu)化和分類(lèi),以改善滲透測(cè)試系統(tǒng)的檢測(cè)效率。同時(shí),在動(dòng)態(tài)測(cè)試過(guò)程中,采用探子請(qǐng)求技術(shù)來(lái)減少與服務(wù)器的交互次數(shù)。另外,通過(guò)對(duì)注入點(diǎn)和攻擊向量的分類(lèi),使提高檢測(cè)結(jié)果的分析效率成為可能。實(shí)驗(yàn)證明,本文方法可以提高Web應(yīng)用程序中XSS漏洞的檢測(cè)效率。

      參考文獻(xiàn):

      OWASP T.Top 102013the ten most critical web application security risks\[Z\].The Open Web Application Security Project,2013.

      張哲.Web應(yīng)用中安全漏洞檢測(cè)技術(shù)的研究.西安:西安電子科技大學(xué),2011.

      SHAR L K,TAN H B K.Automated removal of cross site scripting vulnerabilities in web applications[J].Information and Software Technology,2012,54(5): 467478.

      NENAD JOVANOVIC,CHRISTOPHER KRUEGEL,ENGIN KIRDA.Pixy:a static analysis tool for detecting web application vulnerabilities.Proceedings of the 2006 IEEE Symposium on Security and Privacy,2006: 258263.

      沈忠濤,張玉清.基于爬蟲(chóng)的XSS漏洞檢測(cè)工具設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2009,35(21):151154.

      猜你喜歡
      機(jī)器學(xué)習(xí)
      基于詞典與機(jī)器學(xué)習(xí)的中文微博情感分析
      基于機(jī)器學(xué)習(xí)的圖像特征提取技術(shù)在圖像版權(quán)保護(hù)中的應(yīng)用
      基于網(wǎng)絡(luò)搜索數(shù)據(jù)的平遙旅游客流量預(yù)測(cè)分析
      前綴字母為特征在維吾爾語(yǔ)文本情感分類(lèi)中的研究
      下一代廣播電視網(wǎng)中“人工智能”的應(yīng)用
      活力(2016年8期)2016-11-12 17:30:08
      基于支持向量機(jī)的金融數(shù)據(jù)分析研究
      基于Spark的大數(shù)據(jù)計(jì)算模型
      基于樸素貝葉斯算法的垃圾短信智能識(shí)別系統(tǒng)
      基于圖的半監(jiān)督學(xué)習(xí)方法綜述
      機(jī)器學(xué)習(xí)理論在高中自主學(xué)習(xí)中的應(yīng)用
      庐江县| 称多县| 得荣县| 筠连县| 米泉市| 赣榆县| 星子县| 广南县| 东乡| 琼中| 盱眙县| 平原县| 永吉县| 呼图壁县| 昌吉市| 麦盖提县| 宜君县| 延长县| 华宁县| 隆昌县| 平邑县| 巴楚县| 齐河县| 嘉黎县| 博湖县| 漠河县| 迁西县| 无为县| 布尔津县| 古丈县| 虹口区| 宁化县| 滕州市| 隆子县| 尼勒克县| 开原市| 贵德县| 平泉县| 顺昌县| 汶上县| 汪清县|