專(zhuān)利名稱(chēng):一種腳本注入事件處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明信息安全領(lǐng)域,具體涉及一種腳本注入事件處理方法和系統(tǒng)。
背景技術(shù):
隨著計(jì)算技術(shù)的發(fā)展,計(jì)算機(jī)軟件和硬件的功能變得越來(lái)越強(qiáng)大。而
Web服務(wù)則日益成為人們網(wǎng)絡(luò)生活中不可或缺的內(nèi)容。然后伴隨著Web服務(wù)增 加和功能的日臻完美,各種相關(guān)的安全問(wèn)題也逐漸成為黑客利用和攻擊的熱 點(diǎn)。這些安全問(wèn)題包括威脅到Web客戶端安全的腳本注入攻擊等安全事件,其 發(fā)生頻率正呈逐年增長(zhǎng)趨勢(shì)。
針對(duì)腳本注入攻擊這一安全問(wèn)題,在發(fā)明"一種腳本注入攻擊檢測(cè)方法 和系統(tǒng)"(申請(qǐng)?zhí)枮?00710179538.3)己提出了相應(yīng)的檢測(cè)方法。該發(fā)明 "一種腳本注入攻擊檢測(cè)方法和系統(tǒng)",包括HTTP請(qǐng)求獲取、從HTTP請(qǐng)求中 提取用戶輸入數(shù)據(jù)、對(duì)用戶輸入數(shù)據(jù)進(jìn)行腳本注入攻擊檢測(cè)和腳本注入攻擊 事件報(bào)警的步驟。其中,對(duì)用戶輸入數(shù)據(jù)進(jìn)行腳本注入攻擊檢測(cè)的步驟包括 用戶輸入數(shù)據(jù)解碼、文檔對(duì)象模型結(jié)構(gòu)分析、從文檔對(duì)象模型樹(shù)中提取腳本 和對(duì)提取的腳本進(jìn)行語(yǔ)法檢測(cè)等步驟,只要從用戶輸入數(shù)據(jù)中提取到至少一 段語(yǔ)法正確的腳本就產(chǎn)生腳本注入攻擊報(bào)警。
在發(fā)明"一種腳本注入攻擊檢測(cè)方法和系統(tǒng)"中,所述的腳本注入攻擊 檢測(cè)方法中的用戶輸入數(shù)據(jù)解碼步驟包括基于HTTP編碼規(guī)范的解碼步驟和基 于HTML編碼規(guī)范的解碼步驟。
在發(fā)明"一種腳本注入攻擊檢測(cè)方法和系統(tǒng)"中,所述的腳本注入攻擊檢測(cè)方法之文檔對(duì)象模型結(jié)構(gòu)分析步驟為將解碼后的用戶輸入數(shù)據(jù)看成是
一段HTML格式的內(nèi)容,按照HTML文檔對(duì)象模型規(guī)范將解碼后的用戶輸入數(shù)據(jù) 轉(zhuǎn)換為一個(gè)符合HTML文檔對(duì)象模型的文檔對(duì)象模型樹(shù)。
在發(fā)明"一種腳本注入攻擊檢測(cè)方法和系統(tǒng)"中,所述的腳本注入攻擊 檢測(cè)方法之從文檔對(duì)象模型樹(shù)中提取的腳本包括JavaScript腳本和VBScript
在發(fā)明"一種腳本注入攻擊檢測(cè)方法和系統(tǒng)"中,所述的腳本注入攻擊 檢測(cè)方法之從文檔對(duì)象模型樹(shù)中提取腳本的步驟為以下5種腳本提取方法的任 意組合
A) 從文檔對(duì)象模型樹(shù)各〈script〉標(biāo)簽中提取Javascript/VBScript腳本;
B) 從文檔對(duì)象模型樹(shù)各HTML標(biāo)簽的事件驅(qū)動(dòng)函數(shù)中提取 Javascript/VBScript腳本
C) 從文檔對(duì)象模型樹(shù)各HTML標(biāo)簽的特定屬性值中提取 Javascript/VBScript腳本;
D) 從文檔對(duì)象模型樹(shù)各〈STYLE〉標(biāo)簽定義的樣式表中提取 Javascript/VBScript腳本5
E) 從文檔對(duì)象模型樹(shù)各HTML標(biāo)簽的Style屬性引入的樣式表中提取 JavaScript/VBScript腳本。
在發(fā)明"一種腳本注入攻擊檢測(cè)方法和系統(tǒng)"中,所述的腳本注入攻擊 檢測(cè)方法之對(duì)提取的腳本進(jìn)行語(yǔ)法檢測(cè)步驟為如果提取的腳本為 Javascript腳本,則采用標(biāo)準(zhǔn)Javascript語(yǔ)法規(guī)范對(duì)提取的JavaScript腳本 進(jìn)行語(yǔ)法檢測(cè);如果提取的腳本類(lèi)型為VBScript,則采用標(biāo)準(zhǔn)VBScript語(yǔ)法規(guī)范對(duì)提取的VBScript腳本進(jìn)行語(yǔ)法檢測(cè)。
發(fā)明"一種腳本注入攻擊檢測(cè)方法和系統(tǒng)",屬于Web服務(wù)端解決方 案,它保留了Web服務(wù)端模式腳本注入攻擊檢測(cè)方法和系統(tǒng)在部署和實(shí)施上的 優(yōu)勢(shì),同時(shí)利用用戶輸入數(shù)據(jù)解碼、文檔對(duì)象模型分析、文檔對(duì)象模型腳本 提取和腳本語(yǔ)法檢測(cè)等技術(shù),從而發(fā)現(xiàn)一個(gè)Web請(qǐng)求中包含腳本注入事件,預(yù) 示著可能存在的腳本注入攻擊。然而,當(dāng)發(fā)現(xiàn)腳本注入后,這個(gè)腳本注入事 件是否是一次有效的XSS (跨站腳本)攻擊倘待做進(jìn)一步的判斷處理。
本發(fā)明針對(duì)上述問(wèn)題,通過(guò)對(duì)腳本事件中的敏感域的檢測(cè)以及域中的腳 本標(biāo)志(關(guān)鍵詞)的檢査,來(lái)確定一個(gè)腳本事件中存在XSS攻擊的可能性,并通 過(guò)賦值的方法進(jìn)行量化,來(lái)標(biāo)示其存在XSS攻擊的可能性程度。使用本發(fā)明可 以使用戶進(jìn)一歩對(duì)腳本事件中存在XSS攻擊的可能性程度進(jìn)行判斷,也為不同 腳本事件安全性的比較提供了量化的方法,從而為進(jìn)一步的動(dòng)作提供確定性 的參考。
發(fā)明內(nèi)容
所要解決的技術(shù)問(wèn)題發(fā)明"一種腳本注入攻擊檢測(cè)方法和系統(tǒng)"能夠
檢測(cè)出一個(gè)HTTP請(qǐng)求是否含有腳本注入,而對(duì)于注入的腳本是否包含XSS 攻擊未做進(jìn)一步的處理。本發(fā)明針對(duì)腳本注入攻擊檢査系統(tǒng)輸出的腳本事 件,進(jìn)一步確定所指的腳本事件存在XSS攻擊的可能性程度。 具體的發(fā)明內(nèi)容如下
一種腳本注入事件處理方法,所述方法包括 接收并解析腳本注入檢測(cè)系統(tǒng)輸出的腳本事件的步驟; 檢測(cè)腳本事件中是否包含XSS攻擊行為的步驟;輸出檢測(cè)結(jié)果,以供其它程序或算法使用的歩驟。 對(duì)接收到的腳本事件進(jìn)行解析,解析出包括以下的內(nèi)容 完整的HTTP請(qǐng)求; 各個(gè)HTTP域的類(lèi)型和位置;
檢測(cè)腳本事件是否包含XSS攻擊行為,其方法是判定HTTP請(qǐng)求中是否含 有XSS攻擊行為,并根據(jù)其可能性程度所對(duì)應(yīng)的分值,對(duì)腳本事件累加賦
值。這些攻擊行為包括 訪問(wèn)敏感數(shù)據(jù); 傳輸敏感信息; 訪問(wèn)敏感函數(shù)。
輸出結(jié)果,其方法是將腳本事件累加賦值的結(jié)果輸出,以表示該腳本事
件的存在xss攻擊的可能性程度。在輸出的分值中,o分表示沒(méi)有xss攻擊; 分值越大,表示存在xss攻擊的可能性越高。
一種腳本事件處理系統(tǒng)(如圖2),其功能是接收如腳本注入檢測(cè)系統(tǒng)輸出 的腳本事件,檢測(cè)并輸出該腳本事件是否存在XSS攻擊。該系統(tǒng)包含以下功 能模塊
腳本事件接收模塊201,其功能是接收并解析如腳本注入檢測(cè)系統(tǒng)輸出的 腳本事件;
與腳本事件接收模塊通信的XSS攻擊檢測(cè)模塊202,其功能是對(duì)一個(gè)腳本 事件的是否存在XSS攻擊行為進(jìn)行檢測(cè)和評(píng)估。
與XSS攻擊檢測(cè)模塊通信的結(jié)果輸出模塊203。其功能是輸出對(duì)腳本事件 檢測(cè)結(jié)果,以供其它程序或算法使用。在腳本事件接收模塊中,接收事件腳本并用解析出包括以下的內(nèi)容 完整的HTTP請(qǐng)求;
各HTTP域的類(lèi)型和位置。
在XSS攻擊檢測(cè)模塊中包含以下功能模塊 與腳本事件接收模塊通信的關(guān)鍵詞檢查模塊301,根據(jù)提供的腳本關(guān)鍵 詞檢測(cè)是否存在XSS攻擊;
與關(guān)鍵詞檢査模塊通信的分值累加器302,其初始值為O,每匹配成功一 個(gè)關(guān)鍵詞,將其累加相應(yīng)的分值。
在結(jié)果輸出模塊中,將分值累加器的終值輸出,以表示該腳本事件的存 在XSS攻擊的可能性程度。在輸出的分值中,O分表示沒(méi)有XSS攻擊;分值越 大,表示存在XSS攻擊的可能性越高。
系統(tǒng)工作流程圖4。如圖4所示。
效益/效果
由以上本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明通過(guò)對(duì)腳本事件中XSS 攻擊特征的檢査,來(lái)確定存在XSS攻擊的可能性,并通過(guò)賦值的方法進(jìn)行量
化,使用戶對(duì)腳本事件的xss攻擊有個(gè)直觀的了解,也為不同腳本事件的安全
性比較提供了量化的方法,從而為進(jìn)一步的動(dòng)作提供確定性的參考。
圖l、是HTTP請(qǐng)求中包含的域示意圖2、是系統(tǒng)組成結(jié)構(gòu)示意圖,包括腳本事件接收模塊201, XSS攻擊檢測(cè) 模塊202,以及結(jié)果輸出模塊203;
圖3、是XSS攻擊檢測(cè)模塊202的組成示意圖,其中包括關(guān)鍵詞檢查模塊301和分值累加器302;
圖4、是XSS攻擊檢測(cè)模塊工作流程圖,包括分值累加器置0的步驟401, 敏感域檢測(cè)步驟402,關(guān)鍵詞檢測(cè)步驟403和分值累加歩驟404。
具體實(shí)施例方式
下面結(jié)合附圖,說(shuō)明本發(fā)明的實(shí)施方法。
實(shí)施例l, 一種腳本注入事件處理方法中接收并解析腳本事件模塊201的
實(shí)施。定義其輸入?yún)?shù)如下
1. HTTP請(qǐng)求指針,指向腳本檢測(cè)系統(tǒng)輸出的完整的HTTP請(qǐng)求;
2. HTTP域數(shù)組,指向各個(gè)域的類(lèi)型(如frame, input等)和位置(地 址)。
在收到輸入?yún)?shù)后,自然就解析出完整的HTTP請(qǐng)求以及各個(gè)域的類(lèi)型和位置。
實(shí)施例2, 一種腳本注入事件處理方法中XSS攻擊檢測(cè)模塊202的實(shí)施。含 有步驟如下
步驟l、 301將分值累加器的值置為0。
步驟2、 302敏感域檢査。HTTP請(qǐng)求的域中有些域經(jīng)常會(huì)被黑客用來(lái)進(jìn)行 腳本攻擊,這些域應(yīng)該成為重點(diǎn)檢査對(duì)象。比如要檢査是否含有下面類(lèi)型的 域。如果有,則說(shuō)明可能存在XSS攻擊,需進(jìn)行下一步操作。
〈script〉標(biāo)簽;
HTML標(biāo)簽;
HTML標(biāo)簽屬性值;〈STYLE〉標(biāo)簽; HTML標(biāo)簽中使用Style。
步驟3、 303對(duì)每個(gè)檢查的HTTP域,依次檢測(cè)是否存在可能的攻擊腳 本。 一般情況下,攻擊腳本都有一些特殊的標(biāo)志(即關(guān)鍵詞),如果存在, 則進(jìn)行下一步操作。比如在本步驟中,可考慮以下標(biāo)志
document, cookie (對(duì)cookie進(jìn)行操作);
innerHTML =(對(duì)HTML頁(yè)面操作);
Eval (進(jìn)行函數(shù)操作);
document, body. innerHTML/contentWindow. body. innerHTML (對(duì)HTML頁(yè) 面操作);
Document, write ()(對(duì)HTML頁(yè)面操作); Window, frame (對(duì)窗口框架操作); Window, open ()(對(duì)窗口操作); Object, src =(對(duì)href引用操作);
Object. setAttribute( 'src, , url)(對(duì)href弓l用操作); Document. Location, hash (對(duì)頁(yè)面弓l用操作); String. fromCharCode (對(duì)字符轉(zhuǎn)義操作); Document. Location, href (對(duì)href弓l用操作); Document, onkeydown (對(duì)用戶鍵盤(pán)操作引用); window, frame, event. keyCode (對(duì)用戶鍵盤(pán)操作引用)。 步驟4、 304在以上標(biāo)志檢測(cè)中,每發(fā)現(xiàn)一個(gè)標(biāo)志,就按該標(biāo)志出現(xiàn)攻擊 的可能性程度賦一個(gè)相應(yīng)的分值。最高分值為100,表示存在XSS攻擊的可能性程度最高;最低分值為0,表示沒(méi)有攻擊的可能性。在本例中,可按下面的
規(guī)則對(duì)檢測(cè)到的標(biāo)志賦值,并將分值累加器增加相應(yīng)的分值
document, cookie (對(duì)cookie進(jìn)行操作)70 —80; innerHTML =(對(duì)HTML頁(yè)面操作)70_80; Eval (進(jìn)行函數(shù)操作)70 — 80;
document, body. innerHTML/contentWindow. body. innerHTML (對(duì)HTML頁(yè) 面操作)50 — 60;
Document, write ()(對(duì)腿L頁(yè)面操作):50_60; Window, frame (對(duì)窗口框架操作):50 — 60; Window, open()(對(duì)窗口操作):50 — 60; Object, src =(對(duì)href引用操作)50—60;
Object. setAttribute( 'src, , url)(對(duì)href弓l用操作)50 — 60;
Document. Location, hash (對(duì)頁(yè)面引用操作)10 — 20;
String. fromCharCode (對(duì)字符轉(zhuǎn)義操作)10 — 20;
Document. Location, href (對(duì)href引用操作)10 — 20;
Document, onkeydown (對(duì)用戶鍵盤(pán)操作引用)10 — 20;
window, frame, event. keyCode (對(duì)用戶鍵盤(pán)操作引用)10 — 20。
步驟5、重復(fù)以上步驟2—4的步驟,直到所有域都檢測(cè)完畢。最后將分 值累加器的終值輸出到輸出模塊。這個(gè)分值表示了腳本存在XSS攻擊的可能 性程度,最低分值為0,表示沒(méi)有攻擊。分值越高,表示存在XSS攻擊的程度 越高。
權(quán)利要求
1、一種腳本注入事件處理方法,其特征在于包含以下步驟接收并解析腳本事件的步驟,該腳本事件是腳本注入檢測(cè)系統(tǒng)的輸出;XSS攻擊檢測(cè)的步驟,以確定接收到的腳本事件是否包含有XSS攻擊;結(jié)果輸出步驟,對(duì)收到的腳本事件產(chǎn)生一個(gè)評(píng)價(jià)結(jié)果,以供其它程序或算法使用。
2、 如權(quán)利要求1所述的一種腳本注入事件處理方法,其特征在于接收 并解析腳本事件的步驟接收腳本事件的輸入,并解析出包括以下的內(nèi)容完整的HTTP請(qǐng)求; 各個(gè)HTTP域的類(lèi)型和位置。
3、 如權(quán)利要求1所述的一種腳本注入事件處理方法,其特征在于XSS 攻擊檢測(cè)步驟按HTTP請(qǐng)求中是否存在特定的攻擊行為,來(lái)判定是否存在 XSS攻擊,這些行為包括訪問(wèn)敏感數(shù)據(jù); 傳輸敏感信息; 訪問(wèn)敏感函數(shù)。
4、 如權(quán)利要求1所述的一種腳本注入事件處理方法,其特征在于XSS 攻擊檢測(cè)步驟根據(jù)特定的腳本關(guān)鍵詞來(lái)判定是否存在XSS攻擊行為,并根 據(jù)這些關(guān)鍵詞給腳本事件累加賦值。
5、 如權(quán)利要求1所述的一種腳本注入事件處理方法,其特征在于結(jié)果 輸出步驟把腳本事件的最終分值輸出作為腳本事件的檢測(cè)評(píng)估結(jié)果。
6、 一種腳本注入事件處理系統(tǒng),其特征在于包含以下功能模塊一個(gè)腳本事件接收模塊,接收從腳本注入檢測(cè)系統(tǒng)輸出的腳本事件;一個(gè)與腳本事件接收模塊通信的XSS攻擊檢測(cè)模塊,對(duì)一個(gè)腳本事件 是否存在XSS攻擊進(jìn)行檢測(cè)和評(píng)估;一個(gè)XSS攻擊檢測(cè)模塊通信的結(jié)果輸出模塊,輸出對(duì)腳本事件檢測(cè)和 評(píng)估的結(jié)果,以供其它程序或算法使用。
7、 如權(quán)利要求6所述的一種腳本注入事件處理系統(tǒng),其特征在于腳本 事件接收模塊接收腳本注入檢測(cè)系統(tǒng)輸出的腳本事件,并解析出包括以下 的內(nèi)容完整的HTTP請(qǐng)求; 各HTTP域的類(lèi)型和位置。
8、 如權(quán)利要求6所述一種腳本注入事件處理系統(tǒng),其特征在于XSS攻擊檢測(cè)模塊進(jìn)一步包含以下功能模塊與腳本事件接收模塊通信的關(guān)鍵詞檢査模塊,檢査腳本事件是否包含標(biāo)識(shí)XSS攻擊行為的關(guān)鍵詞;與關(guān)鍵詞檢查模塊通信的分值累加器,其初始值為0,然后根據(jù)每次匹 配成功的關(guān)鍵詞,累加相應(yīng)的分值。
9、如權(quán)利要求6所述的一種腳本注入事件處理系統(tǒng),其特征在于結(jié)果 輸出模塊將分值累加器的終值輸出。
全文摘要
本發(fā)明公開(kāi)了一種腳本注入事件處理方法和系統(tǒng),所述方法包括接收從腳本注入檢測(cè)系統(tǒng)輸出的腳本事件,檢測(cè)并評(píng)估腳本事件的中是否存在XSS攻擊行為,并以量化形式將結(jié)果輸出。本發(fā)明為XSS攻擊的檢測(cè)提供了處理方法,為進(jìn)一步的動(dòng)作提供確定性的參考。
文檔編號(hào)H04L9/36GK101471781SQ20071030398
公開(kāi)日2009年7月1日 申請(qǐng)日期2007年12月24日 優(yōu)先權(quán)日2007年12月24日
發(fā)明者葉潤(rùn)國(guó), 朱錢(qián)杭, 博 李, 胡振宇, 駱擁政 申請(qǐng)人:北京啟明星辰信息技術(shù)股份有限公司