專利名稱:為網(wǎng)絡(luò)服務(wù)器的防火墻產(chǎn)生規(guī)則文件的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)安全領(lǐng)域,特別涉及用于為網(wǎng)絡(luò)服務(wù)器的防火 墻產(chǎn)生規(guī)則文件的方法和系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)和互聯(lián)網(wǎng)技術(shù)的iOL諸如網(wǎng)上購(gòu)物、網(wǎng)上銀行等網(wǎng)絡(luò)應(yīng) 用日益普及.但是在過(guò)去十年針對(duì)網(wǎng)絡(luò)應(yīng)用的攻擊也已成為一大威脅。因 為即使防火墻具有強(qiáng)大的規(guī)則集,服務(wù)器也經(jīng)常及時(shí)安裝補(bǔ)丁,但如果網(wǎng) 絡(luò)應(yīng)用的開(kāi)發(fā)人員沒(méi)有遵循安全編碼實(shí)踐,攻擊者可通過(guò)端口 80輕而易
舉地進(jìn)入系統(tǒng)。最為流行的兩種攻擊是SQL注入和XSS (跨站點(diǎn)腳本)。 通過(guò)SQL注入可能盜取數(shù)據(jù)庫(kù)中的數(shù)據(jù),甚至可能傾空整個(gè)數(shù)據(jù)庫(kù),這 會(huì)給某些應(yīng)用帶來(lái)災(zāi)難。通過(guò)XSS還可能盜取普通用戶的秘密數(shù)據(jù)(例 如他們的用戶標(biāo)識(shí)或會(huì)話標(biāo)識(shí))。
大部分網(wǎng)絡(luò)應(yīng)用漏洞是由于服務(wù)器站點(diǎn)未對(duì)提交的值進(jìn)行再次檢驗(yàn) 而導(dǎo)致的。例如開(kāi)發(fā)者僅^ML客戶站點(diǎn)使用腳本文件檢驗(yàn)用戶的輸入,但 未在服務(wù)器站點(diǎn)再次檢驗(yàn)。這種情況下,惡意用戶可能通過(guò)攻擊客戶站點(diǎn) html文檔或直接使用工具構(gòu)建請(qǐng)求來(lái)繞開(kāi)客戶站點(diǎn)腳本文件的校驗(yàn),因 此由于缺乏服務(wù)器站點(diǎn)的再次檢驗(yàn),惡意用戶的輸入可能會(huì)導(dǎo)致SQL或 XSS攻擊。
目前WAF (網(wǎng)絡(luò)應(yīng)用防火墻)是抵御SQL或XSS攻擊的一種方法, 用于在應(yīng)用服務(wù)器之前過(guò)濾惡意請(qǐng)求。WAF的優(yōu)點(diǎn)在于無(wú)需獲得和更 改源代碼,即可使過(guò)濾規(guī)則在應(yīng)用運(yùn)行時(shí)得到更新,因此當(dāng)新的漏洞^Jt 現(xiàn)時(shí),該應(yīng)用無(wú)需被再部署。
為使用WAF,需要管理員手動(dòng)配置請(qǐng)求中表項(xiàng)的正向和反向安全模 型。然而,由于大部分應(yīng)用具有許多表,每個(gè)表又具有許多表項(xiàng),并且每 個(gè)表項(xiàng)的正向安全模型又通常不同,因此對(duì)整個(gè)應(yīng)用配置正向安全模型非 常耗時(shí)。另外,由于WAF管理員可能不熟悉該應(yīng)用,因此在不進(jìn)行M 向檢測(cè)或假正向檢測(cè)的情況下很難給出準(zhǔn)確的正向安全模型配置。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種新穎的用于為網(wǎng)絡(luò)服務(wù)器的防火墻產(chǎn)生規(guī) 則文件的方法和系統(tǒng),旨在減小網(wǎng)絡(luò)應(yīng)用漏洞,避免或者至少減輕手工配 置表項(xiàng)的正向和/或反向安全模型的負(fù)擔(dān)。
根據(jù)本發(fā)明的一個(gè)方面,一種用于為網(wǎng)絡(luò)服務(wù)器的防火墻產(chǎn)生規(guī)則文
件的方法,包括
攔截由所述網(wǎng)絡(luò)月艮務(wù)器的網(wǎng)絡(luò)應(yīng)用為瀏覽器構(gòu)建的響應(yīng);
通過(guò)添加用于在被執(zhí)行時(shí)捕獲已嵌入在所述響應(yīng)中的正則表達(dá)式及 其相關(guān)的參數(shù)值的捕獲代碼來(lái)修改所述響應(yīng);
將l務(wù)改后的響應(yīng)發(fā)送至所述瀏覽器;
接收所述瀏覽器提交的請(qǐng)求以及由所述捕獲代碼捕獲的至少一個(gè)正 則表達(dá)式及其相關(guān)的^值;以及
根據(jù)接收的所述請(qǐng)求中包含的至少一個(gè)參數(shù)名及其相關(guān)的參數(shù)值以 及接收的所述至少一個(gè)正則表達(dá)式及其相關(guān)的參數(shù)值,確定與同一個(gè)M 值相關(guān)的所述>#^和所述正則表達(dá)式,并且通過(guò)使用所確定的彼此相關(guān)文件。
本發(fā)明提出了使用客戶站點(diǎn)腳本代碼中的正則表達(dá)式來(lái)自動(dòng)定義 WAF上的正向和/或反向安全模型。如上所述,通常客戶站點(diǎn)腳本代碼使 用正則表達(dá)式匹配來(lái)檢驗(yàn)用戶輸入,本發(fā)明通過(guò)插入捕獲代碼用于在瀏覽 器端執(zhí)行修改后的腳本代碼時(shí)捕獲與參數(shù)值相關(guān)的正則表達(dá)式,來(lái)確定正 則表達(dá)式和特定的參數(shù)值之間的相關(guān)性;并且確定特定的^lt值和^^U 之間的相關(guān)性,由此判斷與同一個(gè)M值相關(guān)的M名和正則表達(dá)式,從
述防火墻的規(guī)則文件。
這樣在運(yùn)行時(shí),用戶的請(qǐng)求在被遞交到應(yīng)用服務(wù)器之前首先經(jīng)過(guò) WAF, WAF利用其規(guī)則文件中的與^lt名和正則表達(dá)式相關(guān)的規(guī)則iM^ 查用戶請(qǐng)求中的與每一項(xiàng)參數(shù)名相對(duì)應(yīng)的參數(shù)值以驗(yàn)證其是否符合正向 安全模型和反向安全模型。如果請(qǐng)求中的表項(xiàng)不符合其中的安全模型,則 拒絕該請(qǐng)求或記錄該請(qǐng)求。根據(jù)本發(fā)明的另 一方面, 一種用于為網(wǎng)絡(luò)服務(wù)器的防火墻產(chǎn)生規(guī)則文
件的系統(tǒng),包括
攔截裝置,被配置成攔截由所述網(wǎng)絡(luò)服務(wù)器的網(wǎng)絡(luò)應(yīng)用為瀏覽器構(gòu)建 的響應(yīng);
修改裝置,被配置成通過(guò)添加用于在被執(zhí)行時(shí)捕獲已嵌入在所述響應(yīng) 中的正則表達(dá)式及其相關(guān)的M值的捕獲代碼來(lái)修改所述響應(yīng);
發(fā)送裝置,被配置成將修改后的響應(yīng)發(fā)送至所述瀏覽器;
接收裝置,被配置成接收所述瀏覽器提交的請(qǐng)求以及由所述捕獲代碼 捕獲的至少一個(gè)正則表達(dá)式及其相關(guān)的參數(shù)值;以及
規(guī)則確定裝置,被配置成根據(jù)接收的所述請(qǐng)求中包含的至少一個(gè)M 名及其相關(guān)的參數(shù)值以及接收的所述至少 一個(gè)正則表達(dá)式及其相關(guān)的參 數(shù)值,確定與同一個(gè)#4^值相關(guān)的所述>|^名和所述正則表達(dá)式,并且通
來(lái)配置所述防火墻的規(guī)則文件。
與現(xiàn)有技術(shù)的技術(shù)方案相比,4吏用本發(fā)明,在大多情況下均無(wú)需手動(dòng) 配置,即可自動(dòng)挖掘出針對(duì)每個(gè)表項(xiàng)的正則表達(dá)式,自動(dòng)或半自動(dòng)地完成 對(duì)正向和/或反向安全模型的配置,由此減輕了 WAF管理員對(duì)表項(xiàng)的正向 和/或反向安全模型進(jìn)行配置的負(fù)擔(dān)并且避免了例如手工配置可能帶來(lái)的 絲。
參照下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的說(shuō)明,會(huì)更加容易地理解本發(fā)明 的以上和其它目的、特點(diǎn)和優(yōu)點(diǎn)。在附圖中,相同的或?qū)?yīng)的技術(shù)特征或 部件將采用相同或?qū)?yīng)的附圖標(biāo)記來(lái)表示。
圖l是示出可實(shí)現(xiàn)本發(fā)明的分布式數(shù)據(jù)處理系統(tǒng)的框圖。
圖2是應(yīng)用了本發(fā)明優(yōu)選實(shí)施例的防火墻配置系統(tǒng)的示意圖。
圖3是^^據(jù)本發(fā)明優(yōu)選實(shí)施例的防火墻配置系統(tǒng)的系統(tǒng)框圖。
圖4是根據(jù)本發(fā)明優(yōu)選實(shí)施例的方法的i^圖。
具體實(shí)施方式
下面參照附圖來(lái)說(shuō)明本發(fā)明的實(shí)施例。應(yīng)當(dāng)注意,為了清楚的目的, 附圖和說(shuō)明中省略了與本發(fā)明無(wú)關(guān)的、本領(lǐng)域普通技術(shù)人員已知的部件和 處理的表示和描述。
系統(tǒng)體系
現(xiàn)在參考附圖,特別是圖l,描述了可實(shí)現(xiàn)本發(fā)明的分布式數(shù)據(jù)處理
系統(tǒng)的框圖。分布式數(shù)據(jù)處理系統(tǒng)100是可實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)網(wǎng)絡(luò)。分 布式數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡(luò)102,網(wǎng)絡(luò)102是用于在不同的設(shè)備和分 布式數(shù)據(jù)處理系統(tǒng)100內(nèi)連接到一起的計(jì)算機(jī)之間提供通信鏈接的媒介。
在所描述的例子中,服務(wù)器104與存儲(chǔ)器106 —起連接到網(wǎng)絡(luò)102。 此外,例如工作站、個(gè)人計(jì)算機(jī)、手機(jī)、pda等的客戶端108、 110和112 也被連接到網(wǎng)絡(luò)102。在所描述的例子中,服務(wù)器104向客戶端108、 110 和112提供如引導(dǎo)文件的數(shù)據(jù)、操作系統(tǒng)以及應(yīng)用程序。分布式泰:據(jù)處理 系統(tǒng)100可包括另外的服務(wù)器、客戶端以及其它未顯示的設(shè)備。在所描述 的例子中,分布式數(shù)據(jù)處理系統(tǒng)100是因特網(wǎng),網(wǎng)絡(luò)102表示對(duì)使用
tcp/ip協(xié)議^NUft:此通信的網(wǎng)絡(luò)以及網(wǎng)關(guān)的集合。當(dāng)然,分布式數(shù)據(jù)
處理系統(tǒng)100還可被實(shí)現(xiàn)為不同類型的網(wǎng)絡(luò)。
企圖將圖l作為例子,而不是作為本發(fā)明所述過(guò)程的結(jié)構(gòu)限制。在不 偏離本發(fā)明精神和范圍的務(wù)ft下,可對(duì)圖l所示系統(tǒng)作出許多更改。
本發(fā)明可實(shí)現(xiàn)為如圖1所示的服務(wù)器104的數(shù)據(jù)處理系統(tǒng)。該數(shù)據(jù)處 理系統(tǒng)可以是包括連接到系統(tǒng)總線的多個(gè)處理器的對(duì)稱對(duì)處理器(smp) 系統(tǒng)。亦可使用單處理器系統(tǒng)。本發(fā)明還可實(shí)現(xiàn)為圖1中客戶端計(jì)算機(jī)的 數(shù)據(jù)處理系統(tǒng)。
優(yōu)選實(shí)施例
以下結(jié)合圖2和圖3對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)說(shuō)明。圖2 M 用了本發(fā)明優(yōu)選實(shí)施例的防火墻配置系統(tǒng)的示意圖;圖3是根據(jù)本發(fā)明優(yōu) 選實(shí)施例的系統(tǒng)框圖。
瀏覽器模擬器220用于模擬用戶瀏覽器來(lái)執(zhí)行正則表達(dá)式匹配命令 以及提交表單,可選擇地還可以模擬用戶瀏覽器來(lái)填寫表單中的參數(shù)值。
首先,瀏覽器模擬器220模擬瀏覽器打開(kāi)網(wǎng)絡(luò)文件或者^(guò)v url輸 入文件請(qǐng)求或者點(diǎn)擊超文本鏈接,以構(gòu)建http請(qǐng)求。瀏覽器模擬器此時(shí) 作為網(wǎng)絡(luò)應(yīng)用的客戶端通過(guò)建立與遠(yuǎn)程主機(jī)的特定端口的tcp/ip連接發(fā)起請(qǐng)求。監(jiān)視該端口的HTTP服務(wù)器230等待客戶端發(fā)送請(qǐng)求串。 一旦接 收到請(qǐng)求串(以及可能的消息),服務(wù)器230可以通過(guò)發(fā)回響應(yīng)串來(lái)完成 協(xié)議。
如圖2的附圖標(biāo)記1所示,在服務(wù)器230的網(wǎng)絡(luò)應(yīng)用構(gòu)建響應(yīng)之后向 瀏覽器模擬器220發(fā)送響應(yīng),該響應(yīng)例如為基于html頁(yè)面的響應(yīng)文檔, 在該優(yōu)選實(shí)施例中該html頁(yè)面的響應(yīng)文檔包含了如下的請(qǐng)求信息嵌入 了用于檢查用戶輸入的正則表達(dá)式的例如Javascript等的腳本(Fimcti。n vaiidateF。rmo),其中定義了變量userID和正則表達(dá)式(regex)并要求返回匹配
命令( return regex.test(userID); );表單提交動(dòng)作( <form action="..,, onsubmit= "return validateFormO;"> );以及^^t名及類型(<inPutid="userID,,naine="userro"type="text,,>X
<Script〉
Function validateForm() {
var user工D = document.getElementBy工d( "user工D").value; var regex =、、八[a-Za-z] { 6,10 } $〃; return regex.test (userID)'-
</Script>
<form action=、、..〃 onsubmit= 、、return validateForm ()〃> <input id=、、userID〃 name=、、userID〃 type=、、text〃>
然而,本領(lǐng)域普通技術(shù)人員可以了解,該響應(yīng)亦可以是支持網(wǎng)絡(luò)應(yīng)用 的其它類型的響應(yīng)。
如圖2所示,該響應(yīng)將首先經(jīng)過(guò)才艮據(jù)本發(fā)明的用于在服務(wù)器230和瀏 覽器模擬器220之間的防火墻配置系統(tǒng)200。根據(jù)優(yōu)選實(shí)施例,本發(fā)明的 防火墻配置系統(tǒng)200位于所^JJ艮務(wù)器230和所述瀏覽器模擬器220之間, 例如在服務(wù)器之前的代理服務(wù)器,可替代地本發(fā)明的防火墻配置系統(tǒng)亦可 布署在所iO艮務(wù)器230,例如是^AJ艮務(wù)器230的插件(例如WAS服務(wù) 器或Apache服務(wù)器的插件)。
本發(fā)明的防火墻配置系統(tǒng)200將對(duì)響應(yīng)文檔進(jìn)行解析和修改,圖2 的附圖標(biāo)記2示出了修^L^的響應(yīng)文檔。
在修改后響應(yīng)文檔中,所有的(或者選定的)正則表達(dá)式匹配命令(例 如".test", ".match"等,在此是 regex.test )都包裝了用于捕獲上述匹配命 令的參數(shù)(正則表達(dá)式和匹配的值 rcgcx, value )并發(fā)送所捕獲的參數(shù)
(AjaxSendBack(regex, value))的函數(shù)和/或4戈碼。即^"^L^的響應(yīng)文檔添加了用 于捕獲已嵌入響應(yīng)文檔中用來(lái)在執(zhí)行時(shí)檢查用戶輸入的正則表達(dá)式的函 數(shù)和/或代碼(在此實(shí)例中是 fonction wrapper(regex, value))。</Script>
function wrapper(regex, value) { AjaxS節(jié)dBack (r*egex, value) i:etui:n regex. test (value)
function validateForra() {
var user工D = document. getEleinentBy工d (、、user工D") . value,, var regex = 、、" [A-Za-z] { 6,10 } $〃; return wrapper (iregex, userID),.
</Sci:ipt>
<form action=、、..〃 onsubmit= 、、return validateForm () "〉 <input id=、、name" naiue=、、nuserID〃 type=、、text" value=、、testl">
如本領(lǐng)域普通技術(shù)人員所知,正則表達(dá)式就是記錄文本規(guī)則的代碼, 網(wǎng)絡(luò)應(yīng)用產(chǎn)生的響應(yīng)文檔(的腳本)中"了用于檢查用戶輸入是否合法 的正則表達(dá)式,用于僅在客戶端在用戶輸入時(shí)進(jìn)行字符串模式-匹配和/或 字符串模式-替換的檢查。
在以上實(shí)例的腳本中用語(yǔ)句return wrapper(regex, userID)替換原響 應(yīng)文檔中的return regex.test(userID),該return wrapper(regex, userID) 用于在執(zhí)行時(shí)調(diào)用 function wrapper(regex, value)函數(shù),function wrapper(regex, value)函數(shù)用于在執(zhí)行時(shí)使用Ajax方法(或其它方法)將 捕獲到的正則表達(dá)式和相關(guān)的參數(shù)值發(fā)送回防火墻配置系統(tǒng) (AjaxSendBack(regex, value))并且執(zhí)行正常表達(dá)式與相關(guān)參數(shù)值之間的 匹配(regex.test(value) X
優(yōu)選地,由防火墻配置系統(tǒng)200在配置級(jí)自動(dòng)地為所有表單的輸入框 填入特征參數(shù)值(value="testl ),如圖2的附圖標(biāo)記2所示。這樣瀏覽器 模擬器220就只需執(zhí)行正常表達(dá)式與相關(guān)參數(shù)值之間的匹配命令 (regex.test(value))而無(wú)需再由管理員為各^lt名輸入特征^lt值。當(dāng)然 本發(fā)明也可采用由瀏覽器模擬器220自動(dòng)地或者由管理員在瀏覽器模擬 器220手動(dòng)地為各輸入框輸入特征^^lt值,然后再執(zhí)行正常表達(dá)式與相關(guān) 1^It值之間的匹配命令。
如圖2的附圖標(biāo)記3所示,在修改后的響應(yīng)文檔發(fā)送到瀏覽器模擬器 220之后,WAF管理員會(huì)直接按壓提交^&,或在檢查自動(dòng)填寫的特征值
10后按壓提交^L。
隨后,在瀏覽器模擬器220借助"onsubmit"方法對(duì)^值進(jìn)行檢查。 如上戶斤述,當(dāng)執(zhí)行添加的包裝函數(shù)(function wrapper(regex, value))時(shí)通 過(guò)Ajax (或其它方法)將與正則表達(dá)式匹配命令相關(guān)的正則表達(dá)式和待 匹配的字符串(即參數(shù)值)發(fā)回至防火墻配置系統(tǒng)200,如圖2的附圖標(biāo) 記4所示(AJAXregex: "A[A-Za-z{6,10}$" value: "testl")。
同時(shí)瀏覽器模擬器220完成的請(qǐng)求表單也被發(fā)送至防火墻配置系統(tǒng) 200,如圖2的附圖標(biāo)記5所示(POST: userID-testl )。
如圖2的附圖標(biāo)記6所示,防火墻配置系統(tǒng)200即可基于與正則表達(dá) 式匹配命令相關(guān)的正則表達(dá)式和待匹配的字符串(即^值)確定正則表 達(dá)式和特定^ft值之間的相關(guān)性,并基于提交的請(qǐng)求表單確定特定參lt值 和^名(在本實(shí)例中為userID)之間的相關(guān)性,由此即可確定與同一參 數(shù)值相關(guān)的正則表達(dá)式和M名(即確定userID而非其它^^lt名與該正 則表達(dá)式"A[A-Za-z{6,10}$"相關(guān)),由此通過(guò)使用所確定的彼jM目關(guān)的 M名和正則表達(dá)式作為過(guò)濾規(guī)則,獲得了作為網(wǎng)絡(luò)防火墻的規(guī)則文件的 正向安全模型(即白名單,通常用于定義每個(gè)^lt值的有效格式的正則表 達(dá)式)。
這樣在運(yùn)行時(shí),用戶的請(qǐng)求在被遞交到應(yīng)用服務(wù)器之前要首先經(jīng)過(guò) WAF, WAF利用其規(guī)則文件中的與M名和正則表達(dá)式相關(guān)的規(guī)則iM^ 查用戶請(qǐng)求中的與每一項(xiàng)參數(shù)名相對(duì)應(yīng)的參數(shù)值以驗(yàn)證其是否包含了非 法內(nèi)容即是否符合安全模型。如果請(qǐng)求中的表項(xiàng)不符合其中的安全模型, 則拒絕該請(qǐng)求或記錄該請(qǐng)求。
由于正則表達(dá)式同樣可以用于構(gòu)建黑名單,即反向安全模型(通常用 于定義每個(gè)參數(shù)值的無(wú)效格式的正則表達(dá)式),因此以上實(shí)例還可用于構(gòu) 先良向安全模型,只要可以捕獲到所述正則表達(dá)式和相關(guān)^lt值并且瀏覽 器mi通過(guò)該相關(guān)^lt值并提交表單即可。
另外,以上的實(shí)例提出了在瀏覽器模擬器執(zhí)行匹配命令 (regex.test(userID))之前使用單獨(dú)的方法發(fā)送正則表達(dá)式和參數(shù)值 (AjaxSendBack(regex, value)),這樣如果該參數(shù)值與正則表達(dá)式并不匹 配,則需在瀏覽器模擬器220記錄失效的表單并由管理員在瀏覽器模擬器 自動(dòng)或手動(dòng)輸入新的參數(shù)值。由于重新輸入后會(huì)再次激活"onsubmit"方法,捕獲代碼新捕獲的正則表達(dá)式和新^lt值會(huì)再發(fā)送給防火墻配置系統(tǒng)
200,從而丟棄了原正則表達(dá)式和M值??商娲兀谠揯值與正則 表達(dá)式不匹配的情況下,也可由瀏覽器模擬器向防火墻配置系統(tǒng)200發(fā)送 自動(dòng)提交失敗的通知,由防火墻配置系統(tǒng)200丟棄了原正則表達(dá)式和^lt 值,甚至還可允許防火墻配置系統(tǒng)200重新再指定新的特征值。
當(dāng)然本領(lǐng)域普通技術(shù)人員可設(shè)想到其它的實(shí)現(xiàn)方式,例如優(yōu)選地可由 瀏覽器模擬器220在執(zhí)行匹配命令(regex.test(userID))并且判定參數(shù)值 與正則表達(dá)式匹配的前提下再發(fā)送正則表達(dá)式和參數(shù)值 (AjaxSendBack(regex, value))。這樣可選擇地,防火墻配置系統(tǒng)200可 以分別地先接收正則表達(dá)式和參數(shù)值后接收所述瀏覽器模擬器提交的表 單,或者相反先接收所述瀏覽器模擬器提交的表單。甚至可以在所述瀏覽 器模擬器提交表單的同時(shí)發(fā)送正則表達(dá)式和參數(shù)值,在此情況下可無(wú)需使 用Ajax或其它單獨(dú)的方法。
參考圖3,該防火墻配置系統(tǒng)300的攔截裝置301攔截網(wǎng)絡(luò)服務(wù)器330 中某個(gè)網(wǎng)絡(luò)應(yīng)用331構(gòu)建的響應(yīng)文檔(如圖2的附圖標(biāo)記1所示),并由 諸如html解析器的解析裝置302將響應(yīng)文檔解析為包含例如普通html對(duì) 象等文本對(duì)象和腳本對(duì)象的DOM樹(shù)。修改裝置303(優(yōu)選為html處理器) 對(duì)解析后的響應(yīng)文檔進(jìn)行修改,添加捕獲代碼,具體地是對(duì)所述經(jīng)解析的 響應(yīng)中的選定的正則表達(dá)式匹配命令包裝所述用于捕獲與所述正則表達(dá) 式匹配命令相關(guān)的正則表達(dá)式和參數(shù)值的捕獲代碼。所述修改裝置303還 可被配置成為響應(yīng)文檔中的輸入框自動(dòng)填寫特征^lt值。修改后的響應(yīng)文 檔如圖2的附圖標(biāo)記2所示,由發(fā)送裝置304發(fā)送到瀏覽器模擬器320。
瀏覽器模擬器320執(zhí)行修改后的響應(yīng)中的腳本文件,包括執(zhí)行匹配命 令和捕獲代碼。接收裝置305分別地或者同時(shí)地接收由所述修改后的響應(yīng) 中的捕獲代碼捕獲的正則表達(dá)式和相關(guān)的參數(shù)值(如圖2的附圖標(biāo)記4 所示)以及所述瀏覽器模擬器320提交的請(qǐng)擬如圖2的附圖標(biāo)記5所示)。 規(guī)則確定裝置306即可基于以上所述正則表達(dá)式和參數(shù)值的相關(guān)性以及 所述請(qǐng)求中包含的參數(shù)名和參數(shù)值之間的相關(guān)性來(lái)判斷與同 一參數(shù)值相 關(guān)的正則表達(dá)式和^^lt名(如圖2的附圖標(biāo)記6所示),并且通過(guò)使用所
則文件。盡管沒(méi)有示出,防火墻配置系統(tǒng)300還包括規(guī)則文件數(shù)據(jù)庫(kù)以及 應(yīng)用該規(guī)則文件的過(guò)濾裝置。在以上實(shí)例中瀏覽器模擬器320用于模擬用戶瀏覽器來(lái)執(zhí)行正則表 達(dá)式匹配命令以及提交表單,并且還可以模擬用戶瀏覽器來(lái)填寫表單中的 >#^1值。然而在本發(fā)明中瀏覽器模擬器320當(dāng)然也可以由普通的客戶端瀏 覽器來(lái)代替,利用本發(fā)明針對(duì)不同網(wǎng)絡(luò)應(yīng)用以及不同表單的不同表項(xiàng)請(qǐng)求 逐一地完成防火墻過(guò)濾規(guī)則的配置。在實(shí)踐中甚至可以通過(guò)判斷普通的客 戶端用戶是否是第一次請(qǐng)求新表單(或其表項(xiàng))來(lái)啟動(dòng)本發(fā)明的防火墻規(guī) 則文件配置,由此可實(shí)時(shí)地進(jìn)行過(guò)濾規(guī)則文件的配置。例如通過(guò)將攔截裝 置配置成判斷服務(wù)器的響應(yīng)是否是涉及新表單(或其表項(xiàng))來(lái)確定是否啟 動(dòng)本發(fā)明。
本發(fā)明的方法
根據(jù)本發(fā)明的用于為網(wǎng)絡(luò)服務(wù)器的防火墻產(chǎn)生規(guī)則文件的方法,包 括攔截由所述網(wǎng)絡(luò)服務(wù)器的網(wǎng)絡(luò)應(yīng)用為瀏覽器構(gòu)建的響應(yīng);通過(guò)添加用 于在被執(zhí)行時(shí)捕獲已嵌入在所述響應(yīng)中的正則表達(dá)式及其相關(guān)的參數(shù)值 的捕獲代碼來(lái)修改所述響應(yīng);將修改后的響應(yīng)發(fā)送至所述瀏覽器;接收所 述瀏覽器提交的請(qǐng)求以及由所述捕獲代碼捕獲的至少一個(gè)正則表達(dá)式及 其相關(guān)的參數(shù)值;以及根據(jù)接收的所述請(qǐng)求中包含的至少一個(gè)^lt名及其 相關(guān)的W:值以及接收的所述至少 一個(gè)正則表達(dá)式及其相關(guān)的M值,確 定與同 一個(gè)參數(shù)值相關(guān)的所述M名和所述正則表達(dá)式,并且通過(guò)使用所
述防火墻的規(guī)則文件。
下面結(jié)合圖4的流程圖對(duì)根據(jù)本發(fā)明優(yōu)選實(shí)施例的用于為網(wǎng)絡(luò)服務(wù) 器的防火墻產(chǎn)生規(guī)則文件的方法400。
在步猓S401開(kāi)始后,瀏覽器模擬器探查頁(yè)面結(jié)構(gòu)樹(shù)并向服務(wù)器請(qǐng)求 新表單(步驟S402);防火墻配置系統(tǒng)攔截服務(wù)器的響應(yīng),并插入用于捕 獲并發(fā)送正則表達(dá)式和相關(guān)的參數(shù)值的捕獲代碼(步驟S403 ),可選地防 火墻系統(tǒng)還可自動(dòng)地為表單的^f^t名填寫特征^^:值。在步驟S404,瀏 覽器模擬器直接按壓提交按鈕或者在檢查自動(dòng)填寫的參數(shù)值后按壓提交
瀏覽器模擬器例如通過(guò)Ajax將正則表達(dá)式和相關(guān)的^lt值發(fā)送至防 火墻配置系統(tǒng)(步驟S405);瀏覽器模擬器執(zhí)行正則表達(dá)式匹配命令并將 驗(yàn)汪通過(guò)的M名和參數(shù)值發(fā)送至防火墻配置系統(tǒng),或者瀏覽器模擬器發(fā) 送至服務(wù)器的參數(shù)名和參數(shù)值將被防火墻配置系統(tǒng)攔截(步驟S406和 S407)??蛇x擇地,在瀏覽器模擬器執(zhí)行正則表達(dá)式匹配命令并J3Hi通過(guò)
13^flt值的情況下再發(fā)送正則表達(dá)式和相關(guān)的M值,因此步驟S405與步 驟S406和S407的次序可以調(diào)換,即在步驟S407之后進(jìn)行步驟S405。甚 至步驟S405可以與步驟S406和S407同時(shí)進(jìn)行,例如可以將正則表達(dá)式 和相關(guān)的參數(shù)值在與瀏覽器模擬器提交表單的同時(shí)(例如附加在表單之 后)發(fā)送至防火墻配置系統(tǒng)。
在步驟S409通過(guò)基于以上所述正則表達(dá)式和參數(shù)值的相關(guān)性以及所 述參數(shù)名和參數(shù)值之間的相關(guān)性來(lái)判斷與同 一參數(shù)值相關(guān)的正則表達(dá)式 和^lt名,并通過(guò)使用所確定的彼此相關(guān)的M名和正則表達(dá)式作為過(guò)濾 規(guī)則來(lái)配置防火墻的規(guī)則文件。在步驟S410判斷是否結(jié)束流程,如果還 需要對(duì)同一應(yīng)用的其它(表單)請(qǐng)求或者其它應(yīng)用配置安全模型,則返回 步驟S402;如果無(wú)需再進(jìn)一步進(jìn)行配置則結(jié)束流程(步驟S4U)。
在步驟S406,如果^名和參數(shù)值未通過(guò)正則表達(dá)式匹配命令的驗(yàn) 證并因此無(wú)法提交請(qǐng)求,則需在瀏覽器模擬器220記錄失效的表單并由管 理員在瀏覽器模擬器側(cè)手動(dòng)輸入新的^lt值(步驟S408),之后繼續(xù)進(jìn)行 步驟S406來(lái)執(zhí)行正則表達(dá)式匹配命令。
其它實(shí)施例
對(duì)本領(lǐng)域的普通技術(shù)人員而言,能夠理解本發(fā)明的方法和裝置的全部 或者任何步驟或者部件,可以在任何計(jì)算設(shè)備(包括處理器、存儲(chǔ)介質(zhì)等) 或者計(jì)算i殳備的網(wǎng)絡(luò)中,以硬件、固件、軟件或者它們的組合加以實(shí)現(xiàn), 這是本領(lǐng)域普通技術(shù)人員在閱讀了本發(fā)明的說(shuō)明的情況下運(yùn)用他們的基 本編程技能就能實(shí)現(xiàn)的,因此在這里省略了詳細(xì)"^兌明。
因此,基于上述理解,本發(fā)明的目的還可以通it^任何信息處理設(shè)備 上運(yùn)行一個(gè)程序或者一組程序來(lái)實(shí)現(xiàn)。所述信息處理設(shè)備可以是公知的通 用設(shè)備。因此,本發(fā)明的目的也可以僅M過(guò)提供包含實(shí)現(xiàn)所述方法或者 設(shè)備的程序代碼的程序產(chǎn)品來(lái)實(shí)現(xiàn)。也就是說(shuō),這樣的程序產(chǎn)品也構(gòu)成本 發(fā)明,并,儲(chǔ)有,樣的程序產(chǎn)品的存儲(chǔ)介質(zhì)也構(gòu)成本發(fā)明。顯,,所述
質(zhì),因此也沒(méi)有必要在此對(duì)各種存儲(chǔ)介質(zhì)一一列舉。
在本發(fā)明的系統(tǒng)和方法中,顯然,各部件或步驟是可以分解和/或重 新組合的。這些分解和/或重新組合應(yīng)視為本發(fā)明的等效方案。并且,執(zhí) 行上述系列處理的步驟可以自然地按照說(shuō)明的順序按時(shí)間順序執(zhí)行,但是 并不需要一定按照時(shí)間順序執(zhí)行。某些步驟可以并行或彼此獨(dú)立地執(zhí)行。以上描述了本發(fā)明的優(yōu)選實(shí)施方式。本領(lǐng)域的普通技術(shù)人員知道,本 發(fā)明的保護(hù)范圍不限于這里所^S開(kāi)的具體細(xì)節(jié),而可以具有在本發(fā)明的精 神實(shí)質(zhì)范圍內(nèi)的各種變化和等效方案。
權(quán)利要求
1.一種用于為網(wǎng)絡(luò)服務(wù)器的防火墻產(chǎn)生規(guī)則文件的方法,包括攔截由所述網(wǎng)絡(luò)服務(wù)器的網(wǎng)絡(luò)應(yīng)用為瀏覽器構(gòu)建的響應(yīng);通過(guò)添加用于在被執(zhí)行時(shí)捕獲已嵌入在所述響應(yīng)中的正則表達(dá)式及其相關(guān)的參數(shù)值的捕獲代碼來(lái)修改所述響應(yīng);將修改后的響應(yīng)發(fā)送至所述瀏覽器;接收所述瀏覽器提交的請(qǐng)求以及由所述捕獲代碼捕獲的至少一個(gè)正則表達(dá)式及其相關(guān)的參數(shù)值;以及根據(jù)接收的所述請(qǐng)求中包含的至少一個(gè)參數(shù)名及其相關(guān)的參數(shù)值以及接收的所述至少一個(gè)正則表達(dá)式及其相關(guān)的參數(shù)值,確定與同一個(gè)參數(shù)值相關(guān)的所述參數(shù)名和所述正則表達(dá)式,并且通過(guò)使用所確定的彼此相關(guān)的所述參數(shù)名和所述正則表達(dá)式作為過(guò)濾規(guī)則來(lái)配置所述防火墻的規(guī)則文件。
2. 根據(jù)權(quán)利要求1所述的方法,其中所述瀏覽器是普通的客戶端瀏 覽器或者用于模擬普通客戶端瀏覽器的瀏覽器模擬器。
3. 根據(jù)權(quán)利要求1所述的方法,其中所述通過(guò)添加捕獲代碼來(lái)修改 所述響應(yīng)的步驟進(jìn)一步包括解析所述響應(yīng);以及對(duì)所述響應(yīng)中的選定的 正則表達(dá)式匹配命令包裝所述用于捕獲與所述正則表達(dá)式匹配命令相關(guān) 的正則表達(dá)式和參數(shù)值的捕獲代碼。
4. 根據(jù)權(quán)利要求1所述的方法,其中所述通過(guò)添加捕獲代碼來(lái)修改 所述響應(yīng)的步驟還包括為所述響應(yīng)中的至少 一個(gè)M名填寫所^f目關(guān)的 錄值。
5. 根據(jù)權(quán)利要求1所述的方法,其中所i^目關(guān)的參數(shù)值是在所述將 修改后的響應(yīng)發(fā)送至所述瀏覽器的步驟之后在所述瀏覽器側(cè)填寫的。
6. 根據(jù)權(quán)利要求1所述的方法,其中所勤目關(guān)的參數(shù)值是在所述瀏 覽器無(wú)法發(fā)汪通過(guò)原先的參數(shù)值并因此無(wú)法提交請(qǐng)求之后在所述瀏覽器 側(cè)重新填寫的。
7. 根據(jù)權(quán)利要求1所述的方法,其中所述捕獲代碼還用于在執(zhí)行時(shí) 發(fā)送所述正則表達(dá)式及其相關(guān)的參數(shù)值。
8. 根據(jù)權(quán)利要求7所述的方法,其中接收所述瀏覽器提交的請(qǐng)求以及由所述捕獲代碼捕獲的至少 一個(gè)正則表達(dá)式及其相關(guān)的參數(shù)值的步驟進(jìn)一步包括分別接收所述瀏覽器提交的請(qǐng)求以及由所述捕獲代碼捕獲的正則表 達(dá)式及其相關(guān)的參數(shù)值。
9. 根據(jù)權(quán)利要求1的方法,其中接收所述瀏覽器提交的請(qǐng)求以及由 所述捕獲代碼捕獲的至少 一個(gè)正則表達(dá)式及其相關(guān)的參數(shù)值的步驟進(jìn)一 步包括接收所述瀏覽器提交的請(qǐng)求以及與所述瀏覽器提交的請(qǐng)求一起提交 的由所述捕獲代碼捕獲的正則表達(dá)式及其相關(guān)的參數(shù)值。
10. —種用于為網(wǎng)絡(luò)服務(wù)器的防火墻產(chǎn)生規(guī)則文件的系統(tǒng),包括攔截裝置,被配置成攔截由所述網(wǎng)絡(luò)服務(wù)器的網(wǎng)絡(luò)應(yīng)用為瀏覽器構(gòu)建 的響應(yīng);修改裝置,被配置成通過(guò)添加用于在被執(zhí)行時(shí)捕獲已"在所述響應(yīng) 中的正則表達(dá)式及其相關(guān)的參數(shù)值的捕獲代碼來(lái)修改所述響應(yīng);發(fā)送裝置,被配置成將修改后的響應(yīng)發(fā)送至所述瀏覽器;接收裝置,被配置成接收所述瀏覽器提交的請(qǐng)求以及由所述捕獲代碼 捕獲的至少一個(gè)正則表達(dá)式及其相關(guān)的參數(shù)值;以及規(guī)則確定裝置,被配置成根據(jù)接收的所述請(qǐng)求中包含的至少一個(gè)M 名及其相關(guān)的參數(shù)值以及接收的所述至少 一個(gè)正則表達(dá)式及其相關(guān)的參 數(shù)值,確定與同一個(gè)M值相關(guān)的所述^lt名和所述正則表達(dá)式,并且通來(lái)配置所述防火墻的規(guī)則文件。
11. 根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述瀏覽器是普通的客戶端 瀏覽器或者用于模擬普通客戶端瀏覽器的瀏覽器模擬器。
12. 根據(jù)權(quán)利要求10所述的系統(tǒng),其中還包括被配置成解析所述被 攔截的響應(yīng)的解析裝置;所述修改裝置還被配置成對(duì)所述經(jīng)解析的響應(yīng)中的選定的正則表達(dá) 式匹配命令包裝所述用于捕獲與所述正則表達(dá)式匹配命令相關(guān)的正則表 達(dá)式和參數(shù)值的捕獲代碼。
13. 根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述修改裝置還被配置成為所述響應(yīng)中的M名填寫所i^目關(guān)的參lt值。
14. 根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述捕獲代碼還用于在執(zhí)行 時(shí)發(fā)送所述正則表達(dá)式及其相關(guān)的參數(shù)值。
15. 根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述接收裝置還被配置成分 別接收所述瀏覽器提交的請(qǐng)求以及由所述捕獲代碼捕獲的正則表達(dá)式及 其相關(guān)的^t值。
16. 根據(jù)權(quán)利要求10的系統(tǒng),其中所述接收裝置還被配置成接收所 述瀏覽器提交的請(qǐng)求以及與所述瀏覽器提交的請(qǐng)求一起提交的由所述捕 獲代碼捕獲的正則表達(dá)式及其相關(guān)的參數(shù)值。
全文摘要
本發(fā)明公開(kāi)了一種為網(wǎng)絡(luò)服務(wù)器的防火墻產(chǎn)生規(guī)則文件的方法和系統(tǒng),所述方法包括攔截由所述網(wǎng)絡(luò)服務(wù)器的網(wǎng)絡(luò)應(yīng)用為瀏覽器構(gòu)建的響應(yīng);通過(guò)添加用于在被執(zhí)行時(shí)捕獲已嵌入在所述響應(yīng)中的正則表達(dá)式及其相關(guān)的參數(shù)值的捕獲代碼來(lái)修改所述響應(yīng);將修改后的響應(yīng)發(fā)送至所述瀏覽器;接收所述瀏覽器提交的請(qǐng)求以及由所述捕獲代碼捕獲的至少一個(gè)正則表達(dá)式及其相關(guān)的參數(shù)值;根據(jù)接收的所述請(qǐng)求中包含的至少一個(gè)參數(shù)名及其相關(guān)的參數(shù)值以及接收的所述至少一個(gè)正則表達(dá)式及其相關(guān)的參數(shù)值,確定與同一個(gè)參數(shù)值相關(guān)的所述參數(shù)名和所述正則表達(dá)式,并且通過(guò)使用所確定的彼此相關(guān)的所述參數(shù)名和所述正則表達(dá)式作為過(guò)濾規(guī)則來(lái)配置防火墻的規(guī)則文件。
文檔編號(hào)H04L29/06GK101631108SQ20081013245
公開(kāi)日2010年1月20日 申請(qǐng)日期2008年7月16日 優(yōu)先權(quán)日2008年7月16日
發(fā)明者煜 張, 曄 王, 琳 羅, 郝大明 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司