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