專利名稱:一種實時檢測網(wǎng)頁跨域請求的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種互聯(lián)網(wǎng)安全檢測方法,一種實時檢測網(wǎng)頁跨域請求的方法和裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,現(xiàn)在的網(wǎng)站包含大量的動態(tài)內(nèi)容以提高用戶體驗,比過去要復(fù)雜得多。所謂動態(tài)內(nèi)容,就是根據(jù)用戶輸入,WEB應(yīng)用程序能夠輸出相應(yīng)的內(nèi)容。這種動態(tài)站點會受到一種名為“跨站腳本攻擊”(Cross Site Scripting,通常將其所寫成XSS) 的威脅??缯灸_本攻擊一旦成功,能夠從網(wǎng)站用戶那里惡意盜取信息,特別是存儲型跨站腳本危害更大。在網(wǎng)站動態(tài)內(nèi)容日益復(fù)雜化的今天,跨站腳本攻擊方式也越來越多樣。越來 越多的攻擊針對WEB應(yīng)用程序的漏洞、瀏覽器漏洞、瀏覽器漏洞結(jié)合WEB應(yīng)用程序的漏洞。由于WEB應(yīng)用程序和瀏覽器的多樣性,這使得傳統(tǒng)的防護和檢測方法有一定的局限性,這也成為了計算機網(wǎng)絡(luò)安全日益嚴(yán)峻的問題。
發(fā)明內(nèi)容
本發(fā)明提供了一種實時檢測網(wǎng)頁跨域請求的方法,包括對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,捕獲頁面資源地址域名,和/或捕獲頁面元素行為產(chǎn)生的新域名;根據(jù)提取的域名進行異常域名鑒別;如果域名為異常域名,獲取異常域名頁面信息,阻止應(yīng)用程序訪問該域名。優(yōu)選地,所述對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,捕獲頁面資源地址域名,進一步為對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,捕獲當(dāng)前頁面引用的外部資源地址域名。優(yōu)選地,所述對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,捕獲頁面資源地址域名,和/或捕獲頁面元素行為產(chǎn)生的新域名中,進一步為監(jiān)測當(dāng)前頁面是否發(fā)生跳轉(zhuǎn),在當(dāng)前頁面發(fā)生跳轉(zhuǎn)時,捕獲跳轉(zhuǎn)后的新域名;或監(jiān)測當(dāng)前頁面中動態(tài)生成頁面元素的腳本行為,判斷動態(tài)生成頁面元素是否加載外部資源,并在加載外部資源時捕獲外部資源地址域名。優(yōu)選地,所述根據(jù)提取的域名進行異常域名鑒別具體為根據(jù)捕獲到的域名,匹配白名單里的合法域名,如未能匹配到,則判斷該域名為異常域名。 優(yōu)選地,所述如果域名為異常域名,獲取異常域名頁面信息,阻止應(yīng)用程序訪問該域名包括阻止瀏覽器訪問異常域名。本發(fā)明還公開了一種實時檢測網(wǎng)頁跨域請求的裝置,包括監(jiān)測模塊、鑒別模塊、阻止模塊;所述監(jiān)測模塊,與鑒別模塊和阻止模塊相連,用于實現(xiàn)對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,并提取頁面資源地址域名,和/或頁面元素行為產(chǎn)生的新域名;所述鑒別模塊,與所述監(jiān)測模塊和所述阻止模塊相連,用于根據(jù)監(jiān)測模塊所提取的域名進行鑒別,如果域名為異常域名,則獲取異常域名頁面信息,發(fā)送給阻止模塊;所述阻止模塊,與所述鑒別模塊相連,用于根據(jù)鑒別模塊提供的異常域名信息,阻止應(yīng)用程序訪問異常域名。優(yōu)選地,所述監(jiān)測模塊包括資源域名獲取單元、存儲單元、跳轉(zhuǎn)監(jiān)測單元、動態(tài)頁面監(jiān)測單元;其中·
所述資源域名獲取單元,與跳轉(zhuǎn)監(jiān)測單元、動態(tài)頁面監(jiān)測單元分別相連,用于捕獲當(dāng)前頁面引用的外部資源地址,和/或所述獲取跳轉(zhuǎn)監(jiān)測單元監(jiān)測到的當(dāng)前頁面跳轉(zhuǎn)到的新域名,和/或所述動態(tài)頁面監(jiān)測單元監(jiān)測到的當(dāng)前頁面中動態(tài)生成頁面元素所加載的外部資源地址域名;所述存儲單元,與資源域名獲取單元相連,用于存儲資源域名獲取單元獲取到的域名;跳轉(zhuǎn)監(jiān)測單元,與所述資源域名獲取單元相連,用于監(jiān)測當(dāng)前頁面的域名是否發(fā)生跳轉(zhuǎn),并在發(fā)生跳轉(zhuǎn)時通知資源域名獲取單元獲取跳轉(zhuǎn)后的地址域名;動態(tài)頁面監(jiān)測單元,與資源域名獲取單元相連,用于監(jiān)測當(dāng)前頁面中動態(tài)生成頁面元素的腳本行為,判斷動態(tài)生成頁面元素是否加載外部資源,并在動態(tài)生成頁面元素有加載外部資源時通知資源域名獲取單元獲取外部資源地址域名。優(yōu)選地,所述鑒別模塊具體包括白名單單元和匹配單元,其中所述白名單單元,用于存儲合法的域名;所述匹配單元,與白名單單元相連,根據(jù)所述監(jiān)測模塊所提取的資源地址域名,匹配白名單單元中的合法域名,在未能匹配到時獲取該域名頁面信息,發(fā)送給所述阻止模塊。優(yōu)選地,所述阻止單元包括域名訪問阻止單元和信息發(fā)送單元,其中所述域名訪問阻止單元,用于根據(jù)所述鑒別模塊提供的異常域名信息,阻止應(yīng)用程序訪問該異常域名;所述信息發(fā)送單元,與所示域名訪問阻止單元相連,用于把域名訪問阻止單元阻止域名訪問的情況通知應(yīng)用層。本發(fā)明基于檢測客戶端瀏覽器是否存在跨域引用未知資源的行為來判斷惡意代碼是否存在,而不是由服務(wù)端檢測注入代碼本身,因此無需漏洞檢測庫與關(guān)鍵字過濾,實時性高,代價小,不易察覺與繞過,能夠及時獲取、預(yù)防與分析。
圖1是本發(fā)明一種實時檢測網(wǎng)頁跨域請求的方法的流程圖;圖2是本發(fā)明捕獲當(dāng)前頁面引用的外部資源地址的流程圖;圖3是本發(fā)明捕獲跳轉(zhuǎn)后的新域名的流程圖;圖4是本發(fā)明監(jiān)測當(dāng)前頁面中動態(tài)生成頁面元素的腳本行為的流程圖;圖5是本發(fā)明一種實時檢測網(wǎng)頁跨域請求的裝置結(jié)構(gòu)圖。
具體實施例方式本發(fā)明的第一個實施例公開了一種實時檢測網(wǎng)頁跨域請求的方法。如圖1所示,包括步驟1,對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,捕獲頁面資源地址域名,和/或頁面元素行為產(chǎn)生的新域名。本步驟可利用客戶端瀏覽器JAVASCRIPT腳本實現(xiàn)對頁面元素以及行為的監(jiān)測。頁面元素即HTML頁面中的DOM節(jié)點。HTML以閉合標(biāo)簽表示節(jié)點元素類型(如〈scriptsrc = Tittp://localhost/a. js^X/script),即稱作該標(biāo)簽 src 弓丨用了外部資源。如〈imgsrc =,,,f onerror =”alert(l),,>,即稱作該標(biāo)簽的 onerror 觸發(fā)了 js 行為)。具體包括I)捕獲當(dāng)前頁面引用的外部資源地址(這里的地址以域名的形式表示)。
這里,可利用瀏覽器JAVASCRIPT腳本捕獲頁面加載的〈iframe〉、〈script〉、〈style〉等元素,獲取其資源地址的域名。具體流程如圖2所示2)監(jiān)測當(dāng)前頁面是否發(fā)生跳轉(zhuǎn),在當(dāng)前頁面發(fā)生跳轉(zhuǎn)時,捕獲跳轉(zhuǎn)后的新域名;這里,可利用JAVASCRIPT腳本監(jiān)測瀏覽器地址是否被惡意跳轉(zhuǎn)。首先獲取對象top.1oaction的值,監(jiān)測該對象的值是否變化。一旦該對象的值被javascript腳本修改,保存原有的值,并獲取新值域名。具體流程如圖3所示3)監(jiān)測當(dāng)前頁面中動態(tài)生成頁面元素的腳本行為,判斷動態(tài)生成頁面元素是否加載外部資源,并在加載外部資源時捕獲外部資源地址域名。這里,可用JAVASCRIPT腳本監(jiān)測動態(tài)生成頁面元素的腳本行為(如createElement、document, write、appendChild 等);利用 javascript 的 Hook 技術(shù),重載這類函數(shù)。新函數(shù)在執(zhí)行原函數(shù)功能之前判斷該元素是否加載外部資源,如果是,獲取該元素的資源地址域名。具體流程如圖4所示4)存儲所捕獲到的域名。步驟2,根據(jù)提取的域名進行異常域名鑒別。本步驟中,根據(jù)捕獲到的域名,匹配白名單里的合法域名,如未能匹配到,則判斷該域名為異常域名。主要包括建立白名單定義一個數(shù)組存儲信任域名的正則匹配表達式。Var white_list =[“*· domain, com”, ” *· white, cn” ]?;蛘邔Π酌麊呜K剡M行加密保護。Var white_list=[“,,]。監(jiān)測該數(shù)組是否被惡意改動
window, watch ("white.1 is t", function (id, oldval, newval) {
//被篡改,處理代碼 alert (newval);
return ;
});
3)對步驟I中的輸出域名進行加密(MD5或者其他)。與白名單中的加密字符竄逐一對比。相同則為合法域名,不同則判斷為異常域名。步驟3,如果域名為異常域名,獲取異常域名頁面信息,阻止應(yīng)用程序訪問該域名。如,瀏覽器訪問異常域名。本方法通過監(jiān)測外部資源引用異常、地址跳轉(zhuǎn)異常、動態(tài)頁面腳本行為異常等,有效監(jiān)測惡意跨域行為。本發(fā)明第二個實施例公開了一種實時檢測網(wǎng)頁跨域請求的裝置。如圖5所示,包括監(jiān)測模塊1、鑒別模塊2、阻止模塊3。監(jiān)測模塊1,與鑒別模塊2和阻止模塊3相連。用于實現(xiàn)對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,并提取頁面資源地址域名和頁面元素行為產(chǎn)生的新域 名。具體包括資源域名獲取單元101、存儲單元102、跳轉(zhuǎn)監(jiān)測單元103、動態(tài)頁面監(jiān)測單元104。其中資源域名獲取單元101,與跳轉(zhuǎn)監(jiān)測單元103、動態(tài)頁面監(jiān)測單元104分別相連,用于捕獲當(dāng)前頁面引用的外部資源地址(這里的地址以域名的形式表示),以及獲取跳轉(zhuǎn)監(jiān)測單元103監(jiān)測到的當(dāng)前頁面跳轉(zhuǎn)到的新域名和動態(tài)頁面監(jiān)測單元104監(jiān)測到的當(dāng)前頁面中動態(tài)生成頁面元素所加載的外部資源地址域名。存儲單元102,與資源域名獲取單元101相連,用于存儲資源域名獲取單元101獲取到的域名。跳轉(zhuǎn)監(jiān)測單元103,與資源域名獲取單元101相連,用于監(jiān)測當(dāng)前頁面的域名是否發(fā)生跳轉(zhuǎn),并在發(fā)生跳轉(zhuǎn)時通知資源域名獲取單元101獲取跳轉(zhuǎn)后的地址域名。動態(tài)頁面監(jiān)測單元104,與資源域名獲取單元101相連,用于監(jiān)測當(dāng)前頁面中動態(tài)生成頁面元素的腳本行為,判斷動態(tài)生成頁面元素是否加載外部資源,并在動態(tài)生成頁面元素有加載外部資源時通知資源域名獲取單元101獲取外部資源地址域名。鑒別模塊2,與阻止模塊3相連,用于根據(jù)監(jiān)測模塊I所提取的域名進行鑒別,如果域名為異常域名,則獲取異常域名頁面信息,發(fā)送給阻止模塊3。鑒別模塊2具體包括白名單單元201和匹配單元202。其中白名單單元201,用于存儲合法的域名。匹配單元202,與白名單單元201相連,根據(jù)監(jiān)測模塊I所提取的資源地址域名,匹配白名單單元201中的合法域名,在未能匹配到時獲取該域名頁面信息,發(fā)送給阻止模塊3。阻止模塊3,與鑒別模塊2相連,用于根據(jù)鑒別模塊2提供的異常域名信息,阻止應(yīng)用程序(比如瀏覽器)訪問異常域名。具體包括域名訪問阻止單元301、信息發(fā)送單元302。其中域名訪問阻止單元301,用于根據(jù)鑒別模塊2提供的異常域名信息,阻止應(yīng)用程序(比如瀏覽器)訪問該異常域名。信息發(fā)送單元302,與所示域名訪問阻止單元301相連,用于把域名訪問阻止單元301阻止域名訪問的情況通知應(yīng)用層。綜上所述,本發(fā)明基于檢測客戶端瀏覽器是否存在跨域引用未知資源的行為來判斷惡意代碼是否存在,而不是由服務(wù)端檢測注入代碼本身,因此無需漏洞檢測庫與關(guān)鍵字過濾,實時性高,代價小,不易察覺與繞過,能夠及時獲取、預(yù)防與分析。以上對本發(fā)明所提供的方法和裝置進行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及 其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種實時檢測網(wǎng)頁跨域請求的方法,其特征在于,包括 對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,捕獲頁面資源地址域名,和/或捕獲頁面元素行為產(chǎn)生的新域名; 根據(jù)提取的域名進行異常域名鑒別; 如果域名為異常域名,獲取異常域名頁面信息,阻止應(yīng)用程序訪問該域名。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于 所述對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,捕獲頁面資源地址域名,進一步為 對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,捕獲當(dāng)前頁面引用的外部資源地址域名。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于 所述對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,捕獲頁面資源地址域名,和/或捕獲頁面元素行為產(chǎn)生的新域名中,進一步為 監(jiān)測當(dāng)前頁面是否發(fā)生跳轉(zhuǎn),在當(dāng)前頁面發(fā)生跳轉(zhuǎn)時,捕獲跳轉(zhuǎn)后的新域名;或監(jiān)測當(dāng)前頁面中動態(tài)生成頁面元素的腳本行為,判斷動態(tài)生成頁面元素是否加載外部資源,并在加載外部資源時捕獲外部資源地址域名。
4.根據(jù)權(quán)利要求1-3中任一權(quán)利要求所述的方法,還包括存儲所捕獲到的域名。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)提取的域名進行異常域名鑒別具體為根據(jù)捕獲到的域名,匹配白名單里的合法域名,如未能匹配到,則判斷該域名為異常域名。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述如果域名為異常域名,獲取異常域名頁面信息,阻止應(yīng)用程序訪問該域名包括阻止瀏覽器訪問異常域名。
7.一種實時檢測網(wǎng)頁跨域請求的裝置,其特征在于,包括監(jiān)測模塊、鑒別模塊、阻止模塊; 所述監(jiān)測模塊,與鑒別模塊和阻止模塊相連,用于實現(xiàn)對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,并提取頁面資源地址域名,和/或頁面元素行為產(chǎn)生的新域名; 所述鑒別模塊,與所述監(jiān)測模塊和所述阻止模塊相連,用于根據(jù)監(jiān)測模塊所提取的域名進行鑒別,如果域名為異常域名,則獲取異常域名頁面信息,發(fā)送給阻止模塊; 所述阻止模塊,與所述鑒別模塊相連,用于根據(jù)鑒別模塊提供的異常域名信息,阻止應(yīng)用程序訪問異常域名。
8.根據(jù)權(quán)利要求7所述的一種實時檢測網(wǎng)頁跨域請求的裝置,其特征在于,所述監(jiān)測模塊包括資源域名獲取單元、存儲單元、跳轉(zhuǎn)監(jiān)測單元、動態(tài)頁面監(jiān)測單元;其中 所述資源域名獲取單元,與跳轉(zhuǎn)監(jiān)測單元、動態(tài)頁面監(jiān)測單元分別相連,用于捕獲當(dāng)前頁面引用的外部資源地址,和/或所述獲取跳轉(zhuǎn)監(jiān)測單元監(jiān)測到的當(dāng)前頁面跳轉(zhuǎn)到的新域名,和/或所述動態(tài)頁面監(jiān)測單元監(jiān)測到的當(dāng)前頁面中動態(tài)生成頁面元素所加載的外部資源地址域名; 所述存儲單元,與資源域名獲取單元相連,用于存儲資源域名獲取單元獲取到的域名;跳轉(zhuǎn)監(jiān)測單元,與所述資源域名獲取單元相連,用于監(jiān)測當(dāng)前頁面的域名是否發(fā)生跳轉(zhuǎn),并在發(fā)生跳轉(zhuǎn)時通知資源域名獲取單元獲取跳轉(zhuǎn)后的地址域名; 動態(tài)頁面監(jiān)測單元,與資源域名獲取單元相連,用于監(jiān)測當(dāng)前頁面中動態(tài)生成頁面元素的腳本行為,判斷動態(tài)生成頁面元素是否加載外部資源,并在動態(tài)生成頁面元素有加載外部資源時通知資源域名獲取單元獲取外部資源地址域名。
9.根據(jù)權(quán)利要求7所述的一種實時檢測網(wǎng)頁跨域請求的裝置,其特征在于,所述鑒別模塊具體包括白名單單元和匹配單元,其中 所述白名單單元,用于存儲合法的域名; 所述匹配單元,與白名單單元相連,根據(jù)所述監(jiān)測模塊所提取的資源地址域名,匹配白名單單元中的合法域名,在未能匹配到時獲取該域名頁面信息,發(fā)送給所述阻止模塊。
10.根據(jù)權(quán)利要求7所述的一種實時檢測網(wǎng)頁跨域請求的裝置,其特征在于,所述阻止單元包括域名訪問阻止單元和信息發(fā)送單元,其中 所述域名訪問阻止單元,用于根據(jù)所述鑒別模塊提供的異常域名信息,阻止應(yīng)用程序訪問該異常域名; 所述信息發(fā)送單元,與所示域名訪問阻止單元相連,用于把域名訪問阻止單元阻止域名訪問的情況通知應(yīng)用層。
全文摘要
本發(fā)明公開了一種實時檢測網(wǎng)頁跨域請求的方法,包括對網(wǎng)頁中標(biāo)示網(wǎng)頁頁面資源的頁面元素及其行為進行監(jiān)測,捕獲頁面資源地址域名,和/或捕獲頁面元素行為產(chǎn)生的新域名;根據(jù)提取的域名進行異常域名鑒別;如果域名為異常域名,獲取異常域名頁面信息,阻止應(yīng)用程序訪問該域名。本發(fā)明基于檢測客戶端瀏覽器是否存在跨域引用未知資源的行為來判斷惡意代碼是否存在,而不是由服務(wù)端檢測注入代碼本身,因此無需漏洞檢測庫與關(guān)鍵字過濾,實時性高,代價小,不易察覺與繞過,能夠及時獲取、預(yù)防與分析。
文檔編號H04L29/06GK103001817SQ201110275500
公開日2013年3月27日 申請日期2011年9月16日 優(yōu)先權(quán)日2011年9月16日
發(fā)明者盧文浩, 羅佳 申請人:廈門市美亞柏科信息股份有限公司