一種網(wǎng)絡(luò)信息處理方法及防火墻裝置、系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例提供一種網(wǎng)絡(luò)信息處理方法及防火墻裝置、系統(tǒng),所述方法包括:當(dāng)需要防護(hù)的頁(yè)面在客戶端瀏覽器被加載時(shí),客戶端瀏覽器腳本啟用所述頁(yè)面中的防護(hù)腳本;所述防護(hù)腳本捕獲所述頁(yè)面的頁(yè)面信息;所述防護(hù)腳本將捕獲的頁(yè)面信息與預(yù)先設(shè)置的防護(hù)規(guī)則相比較,如果符合所述防護(hù)規(guī)則,則執(zhí)行相應(yīng)處理。所述頁(yè)面信息包括靜態(tài)模塊和動(dòng)態(tài)模塊,防護(hù)腳本捕獲頁(yè)面信息包括:通過(guò)安裝內(nèi)聯(lián)事件實(shí)現(xiàn)靜態(tài)模塊的捕獲;和/或,通過(guò)重寫(xiě)原生應(yīng)用程序編程接口API實(shí)現(xiàn)動(dòng)態(tài)模塊的捕獲。本發(fā)明能夠靈活的利用客戶端瀏覽器腳本來(lái)觀察注入腳本并做出攔截或者預(yù)警,便于安全人員能夠在第一時(shí)間找到問(wèn)題所在,減少用戶所受的危害。
【專(zhuān)利說(shuō)明】一種網(wǎng)絡(luò)信息處理方法及防火墻裝置、系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,尤其涉及一種網(wǎng)絡(luò)信息處理方法及防火墻裝置、系統(tǒng)。
【背景技術(shù)】
[0002]Cross Site Scripting (CSS 又叫 XSS,跨站腳本攻擊),是指攻擊者往 Web (WorldWide Web,萬(wàn)維網(wǎng))頁(yè)面插入惡意的腳本代碼,當(dāng)用戶啟用瀏覽器訪問(wèn)該頁(yè)面時(shí),惡意的腳本代碼會(huì)被執(zhí)行并攻擊用戶。為了防止跨站腳本對(duì)用戶瀏覽器所訪問(wèn)頁(yè)面的攻擊,出現(xiàn)了Content Security Policy (CSP,內(nèi)容安全策略),CSP主要是用來(lái)定義頁(yè)面可以加載哪些資源。CSP旨在減少一種內(nèi)容注入,這種內(nèi)容比如說(shuō)XSS跨站腳本。CSP是一種由開(kāi)發(fā)者定義的公開(kāi)的安全性策略申明。簡(jiǎn)單來(lái)說(shuō),CSP所約束的規(guī)則可以指定可信的來(lái)源內(nèi)容,如腳本、圖片、iframe(內(nèi)聯(lián)框架元素)、style (樣式)等可能的遠(yuǎn)程資源。
[0003]在Web上,CSP策略是通過(guò)HTTP(超文本傳輸協(xié)議)Header(頭)元素或者HTML((Hyper Text Mark-up Language,超文本標(biāo)記語(yǔ)言或超文本鏈接標(biāo)示語(yǔ)言)Meta(元)元素定義的。HTTP Header是在Response Header中增加一個(gè)Header來(lái)指定,而HTML Meta則是由Meta標(biāo)簽來(lái)指定。
[0004]HTTP Header:
[0005]u Content-Security-PoI icy ^:策略
[0006]“Content-Security-Policy-Report-Only”:策略
[0007]Content-Security-Policy頭部可以指定一個(gè)或多個(gè)資源是安全的,而Content-Security-Policy-Report-Only則是允許服務(wù)器檢查(非強(qiáng)制)一個(gè)策略。多個(gè)頭的策略定義優(yōu)先米用最先定義的。
[0008]HTML Meta所用的Meta標(biāo)簽與HTML Header的作用是一樣的,都是優(yōu)先采用最先定義的策略,只是形式不同而已。如果HTTP Header和HTML Meta同時(shí)指定,則采用HTTPHeader中定義的策略。如果用戶瀏覽器已經(jīng)為當(dāng)前文檔執(zhí)行了一個(gè)CSP策略,則會(huì)跳過(guò)Meta的定義。如果Meta標(biāo)簽缺少CSP策略同樣也會(huì)跳過(guò)。為了防止人為的CSP策略注入,應(yīng)該將Meta元素放在文檔的開(kāi)始位置來(lái)使策略生效。
[0009]CSP能在一定程度上防止普通的內(nèi)容注入漏洞,但是并不能完全杜絕這類(lèi)漏洞。
[0010]CSP防御策略還在逐漸完善中,暴露出來(lái)的缺點(diǎn)也是顯而易見(jiàn)的:一,主要通過(guò)HTTP Header或HTML Meta來(lái)實(shí)現(xiàn),策略的配置都必須在服務(wù)器端部署,修改策略都需要重啟服務(wù)器,維護(hù)起來(lái)會(huì)比較麻煩;二,由于內(nèi)容策略都是一些公開(kāi)的策略,會(huì)有一定的局限性,不夠靈活,不能設(shè)置一些自定義的規(guī)則;三,盡管目前主流瀏覽器都能夠支持CSP,而IElOUl部分支持。但是對(duì)于IElO之前的瀏覽器,就無(wú)法適用了。
[0011]Web應(yīng)用防火墻,是通過(guò)執(zhí)行一系列針對(duì)HTTP/HTTPS的安全策略來(lái)專(zhuān)門(mén)為Web應(yīng)用提供保護(hù)的一款產(chǎn)品。Web應(yīng)用防火墻就是通過(guò)分析應(yīng)用層用戶的http請(qǐng)求數(shù)據(jù),包括URL (Universal Resource Locator,統(tǒng)一資源定位符)、參數(shù)、Cookie (臨時(shí)文件)、Headers、請(qǐng)求實(shí)體等,來(lái)識(shí)別惡意用戶的攻擊行為,并對(duì)惡意行為進(jìn)行實(shí)時(shí)防御或者報(bào)警。
[0012]Web應(yīng)用防火墻能夠?qū)Π_本注入等一些常見(jiàn)的針對(duì)應(yīng)用層漏洞的攻擊進(jìn)行有效的防范。常見(jiàn)的Web應(yīng)用防火墻在安全防護(hù)體系中的位置和作用如圖1所示。如圖1可知,現(xiàn)有的Web應(yīng)用防火墻的處理方法包括以下步驟:
[0013]101、客戶端發(fā)送HTTP請(qǐng)求到服務(wù)器;
[0014]102、服務(wù)器將請(qǐng)求分發(fā)到防火墻引擎;
[0015]103、防火墻會(huì)根據(jù)預(yù)先設(shè)置好的攻擊行為的規(guī)則去匹配這個(gè)請(qǐng)求,如果匹配上,則執(zhí)行步驟104,沒(méi)有匹配上,則執(zhí)行步驟105 ;
[0016]104、認(rèn)為是攻擊行為,會(huì)進(jìn)行攔截或者報(bào)警處理,結(jié)束;
[0017]105、交由Web服務(wù)器正常處理,結(jié)束。
[0018]盡管Web應(yīng)用防火墻如此強(qiáng)大,但是還是不可避免有一些缺點(diǎn)。一,匹配規(guī)則不好定,太少的話會(huì)有漏報(bào),太多的話又會(huì)影響服務(wù)器性能;二,部署麻煩,一旦修改規(guī)則就需要重啟服務(wù)器,維護(hù)起來(lái)不太方便;在防護(hù)XSS方面,只能夠防護(hù)反射型XSS,對(duì)于存儲(chǔ)型XSS就無(wú)能為力了。并且由于Web應(yīng)用防火墻是基于字符特征的,防護(hù)準(zhǔn)確率不高。
[0019]由上可知,現(xiàn)有技術(shù)在防護(hù)XSS方面還不盡如人意,因此如何設(shè)置出新的防護(hù)裝置和防護(hù)方法,成為技術(shù)人員需要考慮的問(wèn)題。
【發(fā)明內(nèi)容】
[0020]本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種網(wǎng)絡(luò)信息處理方法及防火墻裝置、系統(tǒng),更好地降低跨站腳本攻擊的可能性。
[0021]為了解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)施例提供一種網(wǎng)絡(luò)信息處理方法,所述方法包括:
[0022]當(dāng)需要防護(hù)的頁(yè)面在客戶端瀏覽器被加載時(shí),客戶端瀏覽器腳本啟用所述頁(yè)面中的防護(hù)腳本;
[0023]所述防護(hù)腳本捕獲所述頁(yè)面的頁(yè)面信息;
[0024]所述防護(hù)腳本將捕獲的頁(yè)面信息與預(yù)先設(shè)置的防護(hù)規(guī)則相比較,如果符合所述防護(hù)規(guī)則,則執(zhí)行相應(yīng)處理。
[0025]另一方面,本發(fā)明實(shí)施例提供一種防火墻裝置,所述裝置包括:
[0026]客戶端瀏覽器腳本和防護(hù)腳本,其中:
[0027]所述客戶端瀏覽器腳本,用于當(dāng)需要防護(hù)的頁(yè)面在客戶端瀏覽器被加載時(shí),啟用所述頁(yè)面中的防護(hù)腳本;
[0028]所述防護(hù)腳本,用于捕獲所述頁(yè)面的頁(yè)面信息;以及將捕獲的頁(yè)面信息與預(yù)先設(shè)置的防護(hù)規(guī)則相比較,如果符合所述防護(hù)規(guī)則,則執(zhí)行相應(yīng)處理。
[0029]另一個(gè)方面,本發(fā)明實(shí)施例還提供一種防火墻系統(tǒng),所述系統(tǒng)包括:
[0030]設(shè)置在服務(wù)器端的服務(wù)器插入腳本,以及設(shè)置在客戶端的客戶端瀏覽器腳本和防護(hù)腳本,其中:
[0031]所述服務(wù)器插入腳本,用于在需要防護(hù)的頁(yè)面中的客戶端瀏覽器腳本中插入防護(hù)腳本;
[0032]所述客戶端瀏覽器腳本,用于當(dāng)需要防護(hù)的頁(yè)面在客戶端瀏覽器被加載時(shí),啟用所述頁(yè)面中的防護(hù)腳本;
[0033]所述防護(hù)腳本,用于捕獲所述頁(yè)面的頁(yè)面信息;以及將捕獲的頁(yè)面信息與預(yù)先設(shè)置的防護(hù)規(guī)則相比較,如果符合所述防護(hù)規(guī)則,則執(zhí)行相應(yīng)處理。
[0034]上述技術(shù)方案具有如下有益效果:由于XSS跨站腳本注入的攻擊主要是出現(xiàn)在客戶端瀏覽器上,利用的是客戶端瀏覽器腳本,現(xiàn)有的相關(guān)技術(shù)手段在自定義實(shí)現(xiàn)以及部署維護(hù)上不夠靈活,而本發(fā)明基于客戶端瀏覽器腳本的防火墻裝置及網(wǎng)絡(luò)信息處理方法能夠靈活的利用客戶端瀏覽器腳本來(lái)觀察注入腳本并做出攔截或者預(yù)警,便于安全人員能夠在第一時(shí)間找到問(wèn)題所在,減少用戶所受的危害。并且本發(fā)明在實(shí)際使用及維護(hù)過(guò)程中不需要重啟服務(wù)器,維護(hù)起來(lái)更加方便。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0035]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0036]圖1為現(xiàn)有技術(shù)中Web防火墻工作原理示意圖;
[0037]圖2為本發(fā)明實(shí)施例一種網(wǎng)絡(luò)信息處理方法流程圖;
[0038]圖3為本發(fā)明實(shí)施例一種防火墻裝置結(jié)構(gòu)示意圖;
[0039]圖4為本發(fā)明實(shí)施例一種防火墻系統(tǒng)結(jié)構(gòu)示意圖;
[0040]圖5為本發(fā)明實(shí)施例一種具體的防火墻處理網(wǎng)絡(luò)信息的方法流程圖。
【具體實(shí)施方式】
[0041]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0042]本發(fā)明的主要思想是通過(guò)客戶端瀏覽器腳本進(jìn)行XSS的防護(hù),而區(qū)別于以往的基于服務(wù)器配置的防火墻裝置。
[0043]如圖2所示,為本發(fā)明實(shí)施例一種網(wǎng)絡(luò)信息處理方法流程圖,所述方法包括:
[0044]203、當(dāng)需要防護(hù)的頁(yè)面在客戶端瀏覽器被加載時(shí),客戶端瀏覽器腳本啟用所述頁(yè)面中的防護(hù)腳本;
[0045]204、所述防護(hù)腳本捕獲所述頁(yè)面的頁(yè)面信息;
[0046]205、所述防護(hù)腳本將捕獲的頁(yè)面信息與預(yù)先設(shè)置的防護(hù)規(guī)則相比較,如果符合所述防護(hù)規(guī)則,則執(zhí)行相應(yīng)處理。
[0047]在本發(fā)明的一個(gè)實(shí)施例中,在步驟203之前,還包括:在需要防護(hù)的頁(yè)面中的客戶端瀏覽器腳本中插入防護(hù)腳本。
[0048]優(yōu)選的,在本發(fā)明的一個(gè)實(shí)施例中,步驟204中所述頁(yè)面信息包括靜態(tài)模塊和動(dòng)態(tài)模塊,所述防護(hù)腳本捕獲所述頁(yè)面的頁(yè)面信息包括:通過(guò)安裝內(nèi)聯(lián)事件實(shí)現(xiàn)靜態(tài)模塊的捕獲;和/或,通過(guò)重寫(xiě)原生應(yīng)用程序編程接口 API實(shí)現(xiàn)動(dòng)態(tài)模塊的捕獲;其中,所述靜態(tài)模塊是服務(wù)器直接向客戶端瀏覽器返回的頁(yè)面信息,所述動(dòng)態(tài)模塊是通過(guò)外部腳本在客戶端瀏覽器中動(dòng)態(tài)生成的頁(yè)面信息。
[0049]當(dāng)然,也可以通過(guò)其他方式捕獲當(dāng)前頁(yè)面信息,本領(lǐng)域技術(shù)人員不需要?jiǎng)?chuàng)造性勞動(dòng)就可以想到的其他的捕獲頁(yè)面信息的方法,也在本發(fā)明的保護(hù)范圍之內(nèi)。
[0050]優(yōu)選的,在本發(fā)明的一個(gè)實(shí)施例中,步驟205中,對(duì)于靜態(tài)模塊,所述防護(hù)規(guī)則包括:頁(yè)面信息中存在惡意代碼;所述執(zhí)行相應(yīng)處理包括:攔截惡意代碼的執(zhí)行;以及對(duì)于動(dòng)態(tài)模塊,所述防護(hù)規(guī)則包括:頁(yè)面信息對(duì)應(yīng)的腳本為外部腳本;所述執(zhí)行相應(yīng)處理包括:禁止外部腳本的加載。當(dāng)然實(shí)際使用中也可以根據(jù)需要設(shè)置其他的防護(hù)規(guī)則。
[0051]為了實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù),優(yōu)選的,在本發(fā)明的一個(gè)實(shí)施例中,步驟205中所述執(zhí)行相應(yīng)處理還包括:所述防護(hù)腳本向后臺(tái)監(jiān)控服務(wù)器發(fā)送監(jiān)控信息,提供給安全人員分析定位存在XSS漏洞的出處。
[0052]具體來(lái)說(shuō),安裝內(nèi)聯(lián)事件:其實(shí)是對(duì)當(dāng)前頁(yè)面所有元素進(jìn)行內(nèi)聯(lián)事件的監(jiān)控。內(nèi)聯(lián)事件即onlick, onload之類(lèi)的on開(kāi)頭的頁(yè)面元素的屬性,大部分的dom元素(頁(yè)面元素)都有這些屬性,這些屬性后面的值是javascript代碼。認(rèn)為xss的利用可能會(huì)在這些屬性后面植入,所以會(huì)對(duì)當(dāng)前頁(yè)面元素進(jìn)行這些內(nèi)聯(lián)事件的監(jiān)控,掃描屬性值中的javascript代碼是否存在惡意代碼。若發(fā)現(xiàn)惡意代碼,可以執(zhí)行攔截處理,不讓惡意代碼執(zhí)行,同時(shí)將當(dāng)前頁(yè)面及出現(xiàn)惡意代碼的位置等信息發(fā)到后臺(tái);在本發(fā)明另外的實(shí)施例中,也可以對(duì)發(fā)現(xiàn)的惡意代碼不進(jìn)行攔截處理,僅將當(dāng)前頁(yè)面及出現(xiàn)惡意代碼的位置等信息發(fā)到后臺(tái)監(jiān)控服務(wù)器。
[0053]重寫(xiě)原生API (應(yīng)用程序編程接口):原生的API在一些頁(yè)面元素加載的時(shí)候javascript會(huì)自動(dòng)調(diào)用執(zhí)行。我們通過(guò)代碼重新定義這些API,可以在不影響該API原有邏輯的情況下,額外的插入我們想要執(zhí)行的代碼來(lái)作一些監(jiān)控,比如發(fā)現(xiàn)當(dāng)前頁(yè)面引入的腳本是否為外部腳本。若判定為外部腳本,非本站白名單內(nèi)的腳本,可以執(zhí)行攔截處理,就是禁止所述外部腳本加載,并將外部腳本相關(guān)信息發(fā)送到后臺(tái)監(jiān)控服務(wù)器;在本發(fā)明另外的實(shí)施例中,也可以不執(zhí)行攔截處理,僅將外部腳本相關(guān)信息發(fā)到后臺(tái)監(jiān)控服務(wù)器。
[0054]在本發(fā)明另外的實(shí)施例中,步驟203之前還包括以下步驟:
[0055]202、確定需要防護(hù)的頁(yè)面,在所述需要防護(hù)的頁(yè)面中的客戶端瀏覽器腳本中插入所述防護(hù)腳本;
[0056]需要說(shuō)明的是,在步驟202中,可以根據(jù)實(shí)際使用需求確定需要防護(hù)的頁(yè)面,比如,如果判斷到頁(yè)面可能會(huì)受到攻擊,則確定該頁(yè)面為需要進(jìn)行防護(hù)的頁(yè)面。優(yōu)選的,在本發(fā)明的一個(gè)實(shí)施例中,步驟202中在所述需要防護(hù)的頁(yè)面中插入所述防護(hù)腳本,包括:在頁(yè)面文檔的head標(biāo)簽內(nèi)引入所述防護(hù)腳本。當(dāng)然也可以通過(guò)其他方式引入所述防護(hù)腳本,本發(fā)明對(duì)此不加以限定。
[0057]在本發(fā)明另外的實(shí)施例中,步驟202之前還包括以下步驟:
[0058]201、設(shè)置防護(hù)規(guī)則并設(shè)置防護(hù)腳本。
[0059]所述防護(hù)規(guī)則和防護(hù)腳本可以根據(jù)實(shí)際使用需求進(jìn)行調(diào)整,本發(fā)明對(duì)此不加以限定。
[0060]參照如圖3所示,為本發(fā)明實(shí)施例一種防火墻裝置結(jié)構(gòu)示意圖,所述裝置設(shè)置在客戶端,包括:
[0061]客戶端瀏覽器腳本303,用于當(dāng)需要防護(hù)的頁(yè)面在客戶端瀏覽器被加載時(shí),客戶端瀏覽器腳本啟用防護(hù)腳本;
[0062]防護(hù)腳本304,用于捕獲所述頁(yè)面的頁(yè)面信息;以及將捕獲的頁(yè)面信息與預(yù)先設(shè)置的防護(hù)規(guī)則相比較,如果符合所述防護(hù)規(guī)則,則執(zhí)行相應(yīng)處理。
[0063]優(yōu)選的,在本發(fā)明的一個(gè)實(shí)施例中,所述防護(hù)腳本304,,用于通過(guò)安裝內(nèi)聯(lián)事件捕獲靜態(tài)模塊,和/或通過(guò)重寫(xiě)原生API捕獲動(dòng)態(tài)模塊。所述靜態(tài)模塊是服務(wù)器直接返回的頁(yè)面信息,所述動(dòng)態(tài)模塊是通過(guò)外部腳本動(dòng)態(tài)生成的頁(yè)面信息。當(dāng)然,也可以通過(guò)其他方式捕獲當(dāng)前頁(yè)面信息,本領(lǐng)域技術(shù)人員不需要?jiǎng)?chuàng)造性勞動(dòng)就可以想到的其他的捕獲頁(yè)面信息的方法,也在本發(fā)明的保護(hù)范圍之內(nèi)。
[0064]優(yōu)選的,在本發(fā)明的一個(gè)實(shí)施例中,所述防護(hù)腳本304,,用于判斷捕獲的靜態(tài)模塊的頁(yè)面信息中是否存在惡意代碼;并攔截惡意代碼的執(zhí)行;和/或判斷捕獲的動(dòng)態(tài)模塊的頁(yè)面信息對(duì)應(yīng)的腳本是否為外部腳本,并禁止外部腳本的加載。
[0065]為了實(shí)現(xiàn)數(shù)據(jù)監(jiān)控,在本發(fā)明的一個(gè)實(shí)施例中,設(shè)置后臺(tái)監(jiān)控服務(wù)器,所述防護(hù)腳本304,用于向后臺(tái)監(jiān)控服務(wù)器發(fā)送監(jiān)控信息,所述監(jiān)控信息為實(shí)時(shí)數(shù)據(jù),由后臺(tái)監(jiān)控服務(wù)器收集防護(hù)腳本發(fā)送的一些監(jiān)控信息,比如存在惡意代碼的內(nèi)聯(lián)事件或者外部腳本的相關(guān)信息,或者存在可疑代碼的相關(guān)信息,提供給安全人員來(lái)分析定位存在XSS漏洞的出處。
[0066]參照?qǐng)D4所示,在本發(fā)明的另一個(gè)實(shí)施例中,可以提供一種防火墻系統(tǒng),包括如圖3所示的設(shè)置在客戶端的客戶端瀏覽器腳本303和防護(hù)腳本304,還包括設(shè)置在服務(wù)端的服務(wù)器插入腳本302:用于確定需要防護(hù)的頁(yè)面,在所述需要防護(hù)的頁(yè)面中的客戶端瀏覽器腳本中插入所述防護(hù)腳本;
[0067]優(yōu)選的,在本發(fā)明的一個(gè)實(shí)施例中,所述服務(wù)器插入腳本302用于在頁(yè)面文檔的head標(biāo)簽內(nèi)引入所述防護(hù)腳本。當(dāng)然,也可以通過(guò)其他的方式引入所述防護(hù)腳本,本發(fā)明對(duì)此不加以限定。
[0068]優(yōu)選的,在本發(fā)明的另一個(gè)實(shí)施例中,上述的防火墻系統(tǒng),還包括:
[0069]設(shè)置腳本301,用于設(shè)置防護(hù)規(guī)則并設(shè)置防護(hù)腳本。
[0070]在實(shí)際使用中可以根據(jù)需要對(duì)防護(hù)規(guī)則和防護(hù)腳本進(jìn)行設(shè)置。
[0071]下面通過(guò)一個(gè)具體的實(shí)例來(lái)對(duì)本發(fā)明技術(shù)方案進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。
[0072]參照如圖5所示,為本發(fā)明實(shí)施例一種具體的防火墻處理網(wǎng)絡(luò)信息的方法流程圖。在本實(shí)施例中,工作流程如下:
[0073]步驟401、頁(yè)面元素加載;
[0074]步驟402、載入防護(hù)腳本;
[0075]步驟403、靜態(tài)模塊和/或動(dòng)態(tài)模塊掃描;如果掃描到惡意代碼,執(zhí)行步驟404 ;如果掃描到可疑代碼,執(zhí)行步驟405 ;
[0076]步驟404、直接攔截,執(zhí)行步驟405 ;
[0077]步驟405、發(fā)送消息到后臺(tái)監(jiān)控服務(wù)器。
[0078]具體來(lái)說(shuō),如果一個(gè)頁(yè)面存在XSS漏洞,攻擊者在發(fā)現(xiàn)這個(gè)漏洞的過(guò)程中,或者利用這個(gè)漏洞的時(shí)候,往往會(huì)構(gòu)造一系列惡意代碼試圖去嵌入當(dāng)前頁(yè)面。攻擊者一般通過(guò)構(gòu)造javascript ( —種直譯式腳本語(yǔ)言,為瀏覽器的一部分,廣泛用于客戶端的腳本語(yǔ)言,主要在HTML網(wǎng)頁(yè)上使用,用來(lái)給HTML網(wǎng)頁(yè)增加動(dòng)態(tài)功能)內(nèi)聯(lián)事件或者引入外部腳本來(lái)執(zhí)行自己的惡意代碼,來(lái)達(dá)到攻擊受害者的目的。
[0079]概括來(lái)說(shuō),在實(shí)現(xiàn)上,本發(fā)明基于客戶端瀏覽器腳本的防火墻裝置及系統(tǒng)會(huì)提供一個(gè)javascript防護(hù)腳本,在需要進(jìn)行防護(hù)的頁(yè)面中插入這段腳本,可以通過(guò)〈scriptsrc =””X/script>的形式在文檔的head標(biāo)簽內(nèi)引入。作為另外的實(shí)施方式,也可以通過(guò)js (javascript)動(dòng)態(tài)加載防護(hù)腳本。
[0080]網(wǎng)絡(luò)瀏覽器向服務(wù)器發(fā)起頁(yè)面訪問(wèn)請(qǐng)求,頁(yè)面開(kāi)始加載,防護(hù)腳本引入之后,當(dāng)前頁(yè)面的所有內(nèi)聯(lián)事件以及引入外部模塊的API (Applicat1n Program Interface,應(yīng)用程序編程接口)都處于被監(jiān)控狀態(tài)。防護(hù)腳本通過(guò)重寫(xiě)javascript原生的類(lèi)或方法,在瀏覽器頁(yè)面可以監(jiān)控引入外部模塊的行為,如通過(guò)src (source,來(lái)源)引入或Ajax (異步JavaScript及可擴(kuò)展標(biāo)記語(yǔ)言)引入等。如果監(jiān)控到的內(nèi)容有匹配的信息,防護(hù)腳本認(rèn)為當(dāng)前頁(yè)面被嵌入了惡意或可疑代碼,存在XSS漏洞,根據(jù)設(shè)定的規(guī)則會(huì)攔截內(nèi)聯(lián)事件或者來(lái)自客戶端瀏覽器外部腳本的執(zhí)行,并將相關(guān)信息發(fā)送到后臺(tái)監(jiān)控服務(wù)器實(shí)施預(yù)警。
[0081]具體來(lái)說(shuō),當(dāng)頁(yè)面開(kāi)始加載,防護(hù)腳本載入之后,防護(hù)腳本捕獲當(dāng)前頁(yè)面信息,包括:防護(hù)腳本會(huì)根據(jù)指定的很多規(guī)則去捕獲當(dāng)前頁(yè)面信息,在本實(shí)施例中,主要分兩類(lèi)捕獲,靜態(tài)模塊的捕獲和動(dòng)態(tài)模塊的捕獲。靜態(tài)模塊就是服務(wù)器直接返回的頁(yè)面信息,動(dòng)態(tài)模塊就是通過(guò)javascript腳本動(dòng)態(tài)生成的頁(yè)面信息。對(duì)于靜態(tài)模塊,防護(hù)腳本會(huì)遍歷所有的內(nèi)聯(lián)事件,如onload(加載)、onclick(點(diǎn)擊觸發(fā))等,以及利用javascript自帶的Mutat1nObserver類(lèi)來(lái)捕獲能夠引入外部腳本的元素,如script (腳本)、iframe、embed(嵌入)等,然后對(duì)獲取的信息進(jìn)行一定規(guī)則的匹配。
[0082]動(dòng)態(tài)模塊可以通過(guò)javascript動(dòng)態(tài)創(chuàng)建一個(gè)標(biāo)簽,定義src (source,來(lái)源)屬性,然后再添加到當(dāng)前頁(yè)面中來(lái)引入外部腳本。當(dāng)設(shè)置src屬性時(shí),HTMLScriptElement.prototype, src這個(gè)訪問(wèn)器會(huì)被調(diào)用。防護(hù)腳本會(huì)重寫(xiě)這個(gè)訪問(wèn)器,使得外部腳本被引入之前就能檢測(cè)到并攔截和預(yù)警。當(dāng)然,動(dòng)態(tài)模塊還有可能通過(guò)Ajax (異步JavaScript及可擴(kuò)展標(biāo)記語(yǔ)言)、WebSocket協(xié)議、EventSource (事件源)等javascript的類(lèi)或方法來(lái)引入外部腳本,防護(hù)腳本重寫(xiě)這些類(lèi)或方法來(lái)監(jiān)控具體操作。
[0083]本發(fā)明防護(hù)腳本是通過(guò)安裝各種內(nèi)聯(lián)事件和重寫(xiě)原生API來(lái)實(shí)現(xiàn)的,可能會(huì)引起一些性能耗損,必須通過(guò)一個(gè)后臺(tái)監(jiān)控服務(wù)器來(lái)觀察數(shù)據(jù),而且后臺(tái)監(jiān)控服務(wù)器還可以用來(lái)收集防護(hù)腳本發(fā)送的一些監(jiān)控信息,提供給安全人員來(lái)分析定位存在XSS漏洞的出處。
[0084]由于采用了本發(fā)明這種基于客戶端瀏覽器腳本的防火墻裝置、方法及系統(tǒng),使得XSS漏洞的觸發(fā)以及產(chǎn)生的危害能夠被攔截和預(yù)警,因而可以有效減緩XSS漏洞的危害以及預(yù)警XSS漏洞的出處,便于開(kāi)發(fā)人員及時(shí)修改漏洞。
[0085]本領(lǐng)域技術(shù)人員還可以了解到本發(fā)明實(shí)施例列出的各種說(shuō)明性邏輯塊(illustrative logical block),單元,和步驟可以通過(guò)電子硬件、電腦軟件,或兩者的結(jié)合進(jìn)行實(shí)現(xiàn)。為清楚展示硬件和軟件的可替換性(interchangeability),上述的各種說(shuō)明性部件(illustrative components),單元和步驟已經(jīng)通用地描述了它們的功能。這樣的功能是通過(guò)硬件還是軟件來(lái)實(shí)現(xiàn)取決于特定的應(yīng)用和整個(gè)系統(tǒng)的設(shè)計(jì)要求。本領(lǐng)域技術(shù)人員可以對(duì)于每種特定的應(yīng)用,可以使用各種方法實(shí)現(xiàn)所述的功能,但這種實(shí)現(xiàn)不應(yīng)被理解為超出本發(fā)明實(shí)施例保護(hù)的范圍。
[0086]本發(fā)明實(shí)施例中所描述的各種說(shuō)明性的邏輯塊,或單元都可以通過(guò)通用處理器,數(shù)字信號(hào)處理器,專(zhuān)用集成電路(ASIC),現(xiàn)場(chǎng)可編程門(mén)陣列或其它可編程邏輯裝置,離散門(mén)或晶體管邏輯,離散硬件部件,或上述任何組合的設(shè)計(jì)來(lái)實(shí)現(xiàn)或操作所描述的功能。通用處理器可以為微處理器,可選地,該通用處理器也可以為任何傳統(tǒng)的處理器、控制器、微控制器或狀態(tài)機(jī)。處理器也可以通過(guò)計(jì)算裝置的組合來(lái)實(shí)現(xiàn),例如數(shù)字信號(hào)處理器和微處理器,多個(gè)微處理器,一個(gè)或多個(gè)微處理器聯(lián)合一個(gè)數(shù)字信號(hào)處理器核,或任何其它類(lèi)似的配置來(lái)實(shí)現(xiàn)。
[0087]本發(fā)明實(shí)施例中所描述的方法或算法的步驟可以直接嵌入硬件、處理器執(zhí)行的軟件模塊或腳本、或者這兩者的結(jié)合。軟件模塊或腳本可以為存儲(chǔ)于RAM存儲(chǔ)器、閃存、ROM存儲(chǔ)器、EPROM存儲(chǔ)器、EEPROM存儲(chǔ)器、寄存器、硬盤(pán)、可移動(dòng)磁盤(pán)、CD-ROM或本領(lǐng)域中其它任意形式的存儲(chǔ)媒介中。示例性地,存儲(chǔ)媒介可以與處理器連接,以使得處理器可以從存儲(chǔ)媒介中讀取信息,并可以向存儲(chǔ)媒介存寫(xiě)信息??蛇x地,存儲(chǔ)媒介還可以集成到處理器中。處理器和存儲(chǔ)媒介可以設(shè)置于ASIC中,ASIC可以設(shè)置于用戶終端中??蛇x地,處理器和存儲(chǔ)媒介也可以設(shè)置于用戶終端中的不同的部件中。
[0088]在一個(gè)或多個(gè)示例性的設(shè)計(jì)中,本發(fā)明實(shí)施例所描述的上述功能可以在硬件、軟件、固件或這三者的任意組合來(lái)實(shí)現(xiàn)。如果在軟件中實(shí)現(xiàn),這些功能可以存儲(chǔ)與電腦可讀的媒介上,或以一個(gè)或多個(gè)指令或代碼形式傳輸于電腦可讀的媒介上。電腦可讀媒介包括電腦存儲(chǔ)媒介和便于使得讓電腦程序從一個(gè)地方轉(zhuǎn)移到其它地方的通信媒介。存儲(chǔ)媒介可以是任何通用或特殊電腦可以接入訪問(wèn)的可用媒體。例如,這樣的電腦可讀媒體可以包括但不限于RAM、ROM、EEPROM、CD-ROM或其它光盤(pán)存儲(chǔ)、磁盤(pán)存儲(chǔ)或其它磁性存儲(chǔ)裝置,或其它任何可以用于承載或存儲(chǔ)以指令或數(shù)據(jù)結(jié)構(gòu)和其它可被通用或特殊電腦、或通用或特殊處理器讀取形式的程序代碼的媒介。此外,任何連接都可以被適當(dāng)?shù)囟x為電腦可讀媒介,例如,如果軟件是從一個(gè)網(wǎng)站站點(diǎn)、服務(wù)器或其它遠(yuǎn)程資源通過(guò)一個(gè)同軸電纜、光纖電纜、雙絞線、數(shù)字用戶線(DSL)或以例如紅外、無(wú)線和微波等無(wú)線方式傳輸?shù)囊脖话谒x的電腦可讀媒介中。所述的碟片(disk)和磁盤(pán)(disc)包括壓縮磁盤(pán)、鐳射盤(pán)、光盤(pán)、DVD、軟盤(pán)和藍(lán)光光盤(pán),磁盤(pán)通常以磁性復(fù)制數(shù)據(jù),而碟片通常以激光進(jìn)行光學(xué)復(fù)制數(shù)據(jù)。上述的組合也可以包含在電腦可讀媒介中。
[0089]以上所述的【具體實(shí)施方式】,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的【具體實(shí)施方式】而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種網(wǎng)絡(luò)信息處理方法,其特征在于,所述方法包括: 當(dāng)需要防護(hù)的頁(yè)面在客戶端瀏覽器被加載時(shí),客戶端瀏覽器腳本啟用所述頁(yè)面中的防護(hù)腳本; 所述防護(hù)腳本捕獲所述頁(yè)面的頁(yè)面信息; 所述防護(hù)腳本將捕獲的頁(yè)面信息與預(yù)先設(shè)置的防護(hù)規(guī)則相比較,如果符合所述防護(hù)規(guī)貝1J,則執(zhí)行相應(yīng)處理。
2.如權(quán)利要求1所述方法,其特征在于,在所述需要防護(hù)的頁(yè)面在客戶端瀏覽器被加載的步驟之前,還包括:在需要防護(hù)的頁(yè)面中的客戶端瀏覽器腳本中插入防護(hù)腳本。
3.如權(quán)利要求1所述方法,其特征在于,所述頁(yè)面信息包括靜態(tài)模塊和動(dòng)態(tài)模塊,所述防護(hù)腳本捕獲所述頁(yè)面的頁(yè)面信息包括: 通過(guò)安裝內(nèi)聯(lián)事件實(shí)現(xiàn)靜態(tài)模塊的捕獲; 和/或,通過(guò)重寫(xiě)原生應(yīng)用程序編程接口 API實(shí)現(xiàn)動(dòng)態(tài)模塊的捕獲; 其中,所述靜態(tài)模塊是服務(wù)器直接向客戶端瀏覽器返回的頁(yè)面信息,所述動(dòng)態(tài)模塊是通過(guò)外部腳本在客戶端瀏覽器中動(dòng)態(tài)生成的頁(yè)面信息。
4.如權(quán)利要求3所述方法,其特征在于, 對(duì)于靜態(tài)模塊,所述防護(hù)規(guī)則包括:頁(yè)面信息中存在惡意代碼;所述執(zhí)行相應(yīng)處理包括:攔截惡意代碼的執(zhí)行;以及 對(duì)于動(dòng)態(tài)模塊,所述防護(hù)規(guī)則包括:頁(yè)面信息對(duì)應(yīng)的腳本為外部腳本;所述執(zhí)行相應(yīng)處理包括:禁止外部腳本的加載。
5.如權(quán)利要求1所述方法,其特征在于,所述執(zhí)行相應(yīng)處理包括:所述防護(hù)腳本向后臺(tái)監(jiān)控服務(wù)器發(fā)送監(jiān)控信息。
6.一種防火墻裝置,其特征在于,所述裝置包括客戶端瀏覽器腳本和防護(hù)腳本,其中: 所述客戶端瀏覽器腳本,用于當(dāng)需要防護(hù)的頁(yè)面在客戶端瀏覽器被加載時(shí),啟用所述頁(yè)面中的防護(hù)腳本; 所述防護(hù)腳本,用于捕獲所述頁(yè)面的頁(yè)面信息;以及將捕獲的頁(yè)面信息與預(yù)先設(shè)置的防護(hù)規(guī)則相比較,如果符合所述防護(hù)規(guī)則,則執(zhí)行相應(yīng)處理。
7.如權(quán)利要求6所述裝置,其特征在于,所述防護(hù)腳本,具體用于通過(guò)安裝內(nèi)聯(lián)事件捕獲靜態(tài)模塊;和/或,通過(guò)重寫(xiě)原生應(yīng)用程序編程接口 API捕獲動(dòng)態(tài)模塊; 其中,所述靜態(tài)模塊是服務(wù)器直接向客戶端瀏覽器返回的頁(yè)面信息,所述動(dòng)態(tài)模塊是通過(guò)外部腳本在客戶端瀏覽器中動(dòng)態(tài)生成的頁(yè)面信息。
8.如權(quán)利要求7所述裝置,其特征在于,所述防護(hù)腳本,具體用于判斷捕獲的靜態(tài)模塊的頁(yè)面信息中是否存在惡意代碼,若是則攔截惡意代碼的執(zhí)行;判斷捕獲的動(dòng)態(tài)模塊的頁(yè)面信息對(duì)應(yīng)的腳本是否為外部腳本,若是則禁止外部腳本的加載。
9.如權(quán)利要求6所述裝置,其特征在于,所述防護(hù)腳本,具體用于如果符合所述防護(hù)規(guī)則,則向后臺(tái)監(jiān)控服務(wù)器發(fā)送監(jiān)控信息。
10.—種防火墻系統(tǒng),其特征在于,所述系統(tǒng)包括設(shè)置在服務(wù)器端的服務(wù)器插入腳本,以及設(shè)置在客戶端的客戶端瀏覽器腳本和防護(hù)腳本,其中: 所述服務(wù)器插入腳本,用于在需要防護(hù)的頁(yè)面中的客戶端瀏覽器腳本中插入防護(hù)腳本; 所述客戶端瀏覽器腳本,用于當(dāng)需要防護(hù)的頁(yè)面在客戶端瀏覽器被加載時(shí),啟用所述頁(yè)面中的防護(hù)腳本; 所述防護(hù)腳本,用于捕獲所述頁(yè)面的頁(yè)面信息;以及將捕獲的頁(yè)面信息與預(yù)先設(shè)置的防護(hù)規(guī)則相比較,如果符合所述防護(hù)規(guī)則,則執(zhí)行相應(yīng)處理。
【文檔編號(hào)】H04L29/06GK104468546SQ201410698691
【公開(kāi)日】2015年3月25日 申請(qǐng)日期:2014年11月27日 優(yōu)先權(quán)日:2014年11月27日
【發(fā)明者】謝作孟, 羅詩(shī)堯 申請(qǐng)人:微夢(mèng)創(chuàng)科網(wǎng)絡(luò)科技(中國(guó))有限公司