CN101631108B - 为网络服务器的防火墙产生规则文件的方法和系统 - Google Patents
为网络服务器的防火墙产生规则文件的方法和系统 Download PDFInfo
- Publication number
- CN101631108B CN101631108B CN200810132452.XA CN200810132452A CN101631108B CN 101631108 B CN101631108 B CN 101631108B CN 200810132452 A CN200810132452 A CN 200810132452A CN 101631108 B CN101631108 B CN 101631108B
- Authority
- CN
- China
- Prior art keywords
- regular expression
- browser
- parameter value
- response
- relevant parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0245—Filtering by information in the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/564—Enhancement of application control based on intercepted application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种为网络服务器的防火墙产生规则文件的方法和系统,所述方法包括:拦截由所述网络服务器的网络应用为浏览器构建的响应;通过添加用于在被执行时捕获已嵌入在所述响应中的正则表达式及其相关的参数值的捕获代码来修改所述响应;将修改后的响应发送至所述浏览器;接收所述浏览器提交的请求以及由所述捕获代码捕获的至少一个正则表达式及其相关的参数值;根据接收的所述请求中包含的至少一个参数名及其相关的参数值以及接收的所述至少一个正则表达式及其相关的参数值,确定与同一个参数值相关的所述参数名和所述正则表达式,并且通过使用所确定的彼此相关的所述参数名和所述正则表达式作为过滤规则来配置防火墙的规则文件。
Description
技术领域
本发明涉及计算机网络安全领域,特别涉及用于为网络服务器的防火墙产生规则文件的方法和系统。
背景技术
随着计算机和互联网技术的发展,诸如网上购物、网上银行等网络应用日益普及。但是在过去十年针对网络应用的攻击也已成为一大威胁。因为即使防火墙具有强大的规则集,服务器也经常及时安装补丁,但如果网络应用的开发人员没有遵循安全编码实践,攻击者可通过端口80轻而易举地进入系统。最为流行的两种攻击是SQL注入和XSS(跨站点脚本)。通过SQL注入可能盗取数据库中的数据,甚至可能倾空整个数据库,这会给某些应用带来灾难。通过XSS还可能盗取普通用户的秘密数据(例如他们的用户标识或会话标识)。
大部分网络应用漏洞是由于服务器站点未对提交的值进行再次检验而导致的。例如开发者仅仅在客户站点使用脚本文件检验用户的输入,但未在服务器站点再次检验。这种情况下,恶意用户可能通过攻击客户站点html文档或直接使用工具构建请求来绕开客户站点脚本文件的校验,因此由于缺乏服务器站点的再次检验,恶意用户的输入可能会导致SQL或XSS攻击。
目前WAF(网络应用防火墙)是抵御SQL或XSS攻击的一种方法,用于在应用服务器之前过滤恶意请求。WAF的优点在于:无需获得和更改源代码,即可使过滤规则在应用运行时得到更新,因此当新的漏洞被发现时,该应用无需被再部署。
为使用WAF,需要管理员手动配置请求中表项的正向和反向安全模型。然而,由于大部分应用具有许多表,每个表又具有许多表项,并且每个表项的正向安全模型又通常不同,因此对整个应用配置正向安全模型非常耗时。另外,由于WAF管理员可能不熟悉该应用,因此在不进行假反向检测或假正向检测的情况下很难给出准确的正向安全模型配置。
发明内容
本发明的目的是提供一种新颖的用于为网络服务器的防火墙产生规则文件的方法和系统,旨在减小网络应用漏洞,避免或者至少减轻手工配置表项的正向和/或反向安全模型的负担。
根据本发明的一个方面,一种用于为网络服务器的防火墙产生规则文件的方法,包括:
拦截由所述网络服务器的网络应用为浏览器构建的响应;
通过添加用于在被执行时捕获已嵌入在所述响应中的正则表达式及其相关的参数值的捕获代码来修改所述响应;
将修改后的响应发送至所述浏览器;
接收所述浏览器提交的请求以及由所述捕获代码捕获的至少一个正则表达式及其相关的参数值;以及
根据接收的所述请求中包含的至少一个参数名及其相关的参数值以及接收的所述至少一个正则表达式及其相关的参数值,确定与同一个参数值相关的所述参数名和所述正则表达式,并且通过使用所确定的彼此相关的所述参数名和所述正则表达式作为过滤规则来配置所述防火墙的规则文件。
本发明提出了使用客户站点脚本代码中的正则表达式来自动定义WAF上的正向和/或反向安全模型。如上所述,通常客户站点脚本代码使用正则表达式匹配来检验用户输入,本发明通过插入捕获代码用于在浏览器端执行修改后的脚本代码时捕获与参数值相关的正则表达式,来确定正则表达式和特定的参数值之间的相关性;并且确定特定的参数值和参数名之间的相关性,由此判断与同一个参数值相关的参数名和正则表达式,从而使用所确定的彼此相关的参数名和正则表达式作为过滤规则来配置所述防火墙的规则文件。
这样在运行时,用户的请求在被递交到应用服务器之前首先经过WAF,WAF利用其规则文件中的与参数名和正则表达式相关的规则来检查用户请求中的与每一项参数名相对应的参数值以验证其是否符合正向安全模型和反向安全模型。如果请求中的表项不符合其中的安全模型,则拒绝该请求或记录该请求。
根据本发明的另一方面,一种用于为网络服务器的防火墙产生规则文件的系统,包括:
拦截装置,被配置成拦截由所述网络服务器的网络应用为浏览器构建的响应;
修改装置,被配置成通过添加用于在被执行时捕获已嵌入在所述响应中的正则表达式及其相关的参数值的捕获代码来修改所述响应;
发送装置,被配置成将修改后的响应发送至所述浏览器;
接收装置,被配置成接收所述浏览器提交的请求以及由所述捕获代码捕获的至少一个正则表达式及其相关的参数值;以及
规则确定装置,被配置成根据接收的所述请求中包含的至少一个参数名及其相关的参数值以及接收的所述至少一个正则表达式及其相关的参数值,确定与同一个微值相关的所述参数名和所述正则表达式,并且通过使用所确定的彼此相关的所述参数名和所述正则表达式作为过滤规则来配置所述防火墙的规则文件。
与现有技术的技术方案相比,使用本发明,在大多情况下均无需手动配置,即可自动挖掘出针对每个表项的正则表达式,自动或半自动地完成对正向和/或反向安全模型的配置,由此减轻了WAF管理员对表项的正向和/或反向安全模型进行配置的负担并且避免了例如手工配置可能带来的错误。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。在附图中,相同的或对应的技术特征或部件将采用相同或对应的附图标记来表示。
图1是示出可实现本发明的分布式数据处理系统的框图。
图2是应用了本发明优选实施例的防火墙配置系统的示意图。
图3是根据本发明优选实施例的防火墙配置系统的系统框图。
图4是根据本发明优选实施例的方法的流程图。
具体实施方式
下面参照附图来说明本发明的实施例。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
系统体系
现在参考附图,特别是图1,描述了可实现本发明的分布式数据处理系统的框图。分布式数据处理系统100是可实现本发明的计算机网络。分布式数据处理系统100包含网络102,网络102是用于在不同的设备和分布式数据处理系统100内连接到一起的计算机之间提供通信链接的媒介。
在所描述的例子中,服务器104与存储器106一起连接到网络102。此外,例如工作站、个人计算机、手机、PDA等的客户端108、110和112也被连接到网络102。在所描述的例子中,服务器104向客户端108、110和112提供如引导文件的数据、操作系统以及应用程序。分布式数据处理系统100可包括另外的服务器、客户端以及其它未显示的设备。在所描述的例子中,分布式数据处理系统100是因特网,网络102表示对使用TCP/IP协议套件来彼此通信的网络以及网关的集合。当然,分布式数据处理系统100还可被实现为不同类型的网络。
企图将图1作为例子,而不是作为本发明所述过程的结构限制。在不偏离本发明精神和范围的条件下,可对图1所示系统作出许多更改。
本发明可实现为如图1所示的服务器104的数据处理系统。该数据处理系统可以是包括连接到系统总线的多个处理器的对称对处理器(SMP)系统。亦可使用单处理器系统。本发明还可实现为图1中客户端计算机的数据处理系统。
优选实施例
以下结合图2和图3对本发明的优选实施例进行详细说明。图2是应用了本发明优选实施例的防火墙配置系统的示意图;图3是根据本发明优选实施例的系统框图。
浏览器模拟器220用于模拟用户浏览器来执行正则表达式匹配命令以及提交表单,可选择地还可以模拟用户浏览器来填写表单中的参数值。
首先,浏览器模拟器220模拟浏览器打开网络文件或者键入URL输入文件请求或者点击超文本链接,以构建HTTP请求。浏览器模拟器此时作为网络应用的客户端通过建立与远程主机的特定端口的TCP/IP连接发起请求。监视该端口的HTTP服务器230等待客户端发送请求串。一旦接收到请求串(以及可能的消息),服务器230可以通过发回响应串来完成协议。
如图2的附图标记1所示,在服务器230的网络应用构建响应之后向浏览器模拟器220发送响应,该响应例如为基于html页面的响应文档,在该优选实施例中该html页面的响应文档包含了如下的请求信息:嵌入了用于检查用户输入的正则表达式的例如Javascript等的脚本(FunctionvalidateForm()),其中定义了变量userID和正则表达式(regex)并要求返回匹配命令(return regex.test(userID););表单提交动作(<form action=“..”onsubmit=“returnvalidateForm();”>);以及参数名及类型(<input id=“userID”name=“userID”type=“text”>)。
<Script>Function validateForm(){var userID=document.getElementById(“userID″).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″> |
然而,本领域普通技术人员可以了解,该响应亦可以是支持网络应用的其它类型的响应。
如图2所示,该响应将首先经过根据本发明的用于在服务器230和浏览器模拟器220之间的防火墙配置系统200。根据优选实施例,本发明的防火墙配置系统200位于所述服务器230和所述浏览器模拟器220之间,例如在服务器之前的代理服务器,可替代地本发明的防火墙配置系统亦可布署在所述服务器230,例如是嵌入服务器230的插件(例如WAS服务器或Apache服务器的插件)。
本发明的防火墙配置系统200将对响应文档进行解析和修改,图2的附图标记2示出了修改后的响应文档。
在修改后响应文档中,所有的(或者选定的)正则表达式匹配命令(例如“.test”,“.match”等,在此是regex.test)都包装了用于捕获上述匹配命令的参数(正则表达式和匹配的值regex,value)并发送所捕获的参数(AjaxSendBack(regex,value))的函数和/或代码。即修改后的响应文档添加了用于捕获已嵌入响应文档中用来在执行时检查用户输入的正则表达式的函数和/或代码(在此实例中是function wrapper(regex,value))。
</Script>function wrapper(regex,value) {AjaxSendBack(regex,value);return regex.test(value);}function validateForm() {var userID = document.getElementById(″userID″).value;var regex=″^[A-Za-z]{6,10}$″;return wrapper(regex,userID);}</Script><form action=″..″onsubmit= ″return validateForm();″><input id=″name″name=″nuserID″type=″text″value=″test1″> |
如本领域普通技术人员所知,正则表达式就是记录文本规则的代码,网络应用产生的响应文档(的脚本)中嵌入了用于检查用户输入是否合法的正则表达式,用于仅在客户端在用户输入时进行字符串模式-匹配和/或字符串模式-替换的检查。
在以上实例的脚本中用语句return wrapper(regex,userID)替换原响应文档中的return regex.test(userID),该return wrapper(regex,userID)用于在执行时调用function wrapper(regex,value)函数,functionwrapper(regex,value)函数用于在执行时使用Ajax方法(或其它方法)将捕获到的正则表达式和相关的参数值发送回防火墙配置系统(AjaxSendBack(regex,value))并且执行正常表达式与相关参数值之间的匹配(regex.test(value))。
优选地,由防火墙配置系统200在配置级自动地为所有表单的输入框填入特征参数值(value=“test1),如图2的附图标记2所示。这样浏览器模拟器220就只需执行正常表达式与相关参数值之间的匹配命令(regex.test(value))而无需再由管理员为各参数名输入特征参数值。当然本发明也可采用由浏览器模拟器220自动地或者由管理员在浏览器模拟器220手动地为各输入框输入特征参数值,然后再执行正常表达式与相关参数值之间的匹配命令。
如图2的附图标记3所示,在修改后的响应文档发送到浏览器模拟器220之后,WAF管理员会直接按压提交按钮,或在检查自动填写的特征值后按压提交按钮。
随后,在浏览器模拟器220借助“onsubmit”方法对参数值进行检查。如上所述,当执行添加的包装函数(function wrapper(regex,value))时通过Ajax(或其它方法)将与正则表达式匹配命令相关的正则表达式和待匹配的字符串(即参数值)发回至防火墙配置系统200,如图2的附图标记4所示(AJAX regex:“^[A-Za-z]{6,10}$”value:“test1”)。
同时浏览器模拟器220完成的请求表单也被发送至防火墙配置系统200,如图2的附图标记5所示(POST:userID=test1)。
如图2的附图标记6所示,防火墙配置系统200即可基于与正则表达式匹配命令相关的正则表达式和待匹配的字符串(即参数值)确定正则表达式和特定参数值之间的相关性,并基于提交的请求表单确定特定参数值和参数名(在本实例中为userID)之间的相关性,由此即可确定与同一参数值相关的正则表达式和参数名(即确定userID而非其它参数名与该正则表达式“^[A-Za-z]{6,10}$”相关),由此通过使用所确定的彼此相关的参数名和正则表达式作为过滤规则,获得了作为网络防火墙的规则文件的正向安全模型(即白名单,通常用于定义每个参数值的有效格式的正则表达式)。
这样在运行时,用户的请求在被递交到应用服务器之前要首先经过WAF,WAF利用其规则文件中的与参数名和正则表达式相关的规则来检查用户请求中的与每一项参数名相对应的参数值以验证其是否包含了非法内容即是否符合安全模型。如果请求中的表项不符合其中的安全模型,则拒绝该请求或记录该请求。
由于正则表达式同样可以用于构建黑名单,即反向安全模型(通常用于定义每个参数值的无效格式的正则表达式),因此以上实例还可用于构建反向安全模型,只要可以捕获到所述正则表达式和相关参数值并且浏览器验证通过该相关参数值并提交表单即可。
另外,以上的实例提出了在浏览器模拟器执行匹配命令(regex.test(userID))之前使用单独的方法发送正则表达式和参数值(AjaxSendBack(regex,value)),这样如果该参数值与正则表达式并不匹配,则需在浏览器模拟器220记录失效的表单并由管理员在浏览器模拟器自动或手动输入新的参数值。由于重新输入后会再次激活“onsubmit”方法,捕获代码新捕获的正则表达式和新参数值会再发送给防火墙配置系统200,从而丢弃了原正则表达式和参数值。可替代地,在该参数值与正则表达式不匹配的情况下,也可由浏览器模拟器向防火墙配置系统200发送自动提交失败的通知,由防火墙配置系统200丢弃了原正则表达式和参数值,甚至还可允许防火墙配置系统200重新再指定新的特征值。
当然本领域普通技术人员可设想到其它的实现方式,例如优选地可由浏览器模拟器220在执行匹配命令(regex.test(userID))并且判定参数值与正则表达式匹配的前提下再发送正则表达式和参数值(AjaxSendBack(regex,value))。这样可选择地,防火墙配置系统200可以分别地先接收正则表达式和参数值后接收所述浏览器模拟器提交的表单,或者相反先接收所述浏览器模拟器提交的表单。甚至可以在所述浏览器模拟器提交表单的同时发送正则表达式和参数值,在此情况下可无需使用Ajax或其它单独的方法。
参考图3,该防火墙配置系统300的拦截装置301拦截网络服务器330中某个网络应用331构建的响应文档(如图2的附图标记1所示),并由诸如html解析器的解析装置302将响应文档解析为包含例如普通html对象等文本对象和脚本对象的DOM树。修改装置303(优选为html处理器)对解析后的响应文档进行修改,添加捕获代码,具体地是对所述经解析的响应中的选定的正则表达式匹配命令包装所述用于捕获与所述正则表达式匹配命令相关的正则表达式和参数值的捕获代码。所述修改装置303还可被配置成为响应文档中的输入框自动填写特征参数值。修改后的响应文档如图2的附图标记2所示,由发送装置304发送到浏览器模拟器320。
浏览器模拟器320执行修改后的响应中的脚本文件,包括执行匹配命令和捕获代码。接收装置305分别地或者同时地接收由所述修改后的响应中的捕获代码捕获的正则表达式和相关的参数值(如图2的附图标记4所示)以及所述浏览器模拟器320提交的请求(如图2的附图标记5所示)。规则确定装置306即可基于以上所述正则表达式和参数值的相关性以及所述请求中包含的参数名和参数值之间的相关性来判断与同一参数值相关的正则表达式和参数名(如图2的附图标记6所示),并且通过使用所确定的彼此相关的参数名和正则表达式作为过滤规则来配置防火墙的规则文件。尽管没有示出,防火墙配置系统300还包括规则文件数据库以及应用该规则文件的过滤装置。
在以上实例中浏览器模拟器320用于模拟用户浏览器来执行正则表达式匹配命令以及提交表单,并且还可以模拟用户浏览器来填写表单中的参数值。然而在本发明中浏览器模拟器320当然也可以由普通的客户端浏览器来代替,利用本发明针对不同网络应用以及不同表单的不同表项请求逐一地完成防火墙过滤规则的配置。在实践中甚至可以通过判断普通的客户端用户是否是第一次请求新表单(或其表项)来启动本发明的防火墙规则文件配置,由此可实时地进行过滤规则文件的配置。例如通过将拦截装置配置成判断服务器的响应是否是涉及新表单(或其表项)来确定是否启动本发明。
本发明的方法
根据本发明的用于为网络服务器的防火墙产生规则文件的方法,包括:拦截由所述网络服务器的网络应用为浏览器构建的响应;通过添加用于在被执行时捕获已嵌入在所述响应中的正则表达式及其相关的参数值的捕获代码来修改所述响应;将修改后的响应发送至所述浏览器;接收所述浏览器提交的请求以及由所述捕获代码捕获的至少一个正则表达式及其相关的参数值;以及根据接收的所述请求中包含的至少一个参数名及其相关的参数值以及接收的所述至少一个正则表达式及其相关的参数值,确定与同一个参数值相关的所述参数名和所述正则表达式,并且通过使用所确定的彼此相关的所述参数名和所述正则表达式作为过滤规则来配置所述防火墙的规则文件。
下面结合图4的流程图对根据本发明优选实施例的用于为网络服务器的防火墙产生规则文件的方法400。
在步骤S401开始后,浏览器模拟器探查页面结构树并向服务器请求新表单(步骤S402);防火墙配置系统拦截服务器的响应,并插入用于捕获并发送正则表达式和相关的参数值的捕获代码(步骤S403),可选地防火墙系统还可自动地为表单的参数名填写特征参数值。在步骤S404,浏览器模拟器直接按压提交按钮或者在检查自动填写的参数值后按压提交按钮。
浏览器模拟器例如通过Ajax将正则表达式和相关的参数值发送至防火墙配置系统(步骤S405);浏览器模拟器执行正则表达式匹配命令并将验证通过的参数名和参数值发送至防火墙配置系统,或者浏览器模拟器发送至服务器的参数名和参数值将被防火墙配置系统拦截(步骤S406和S407)。可选择地,在浏览器模拟器执行正则表达式匹配命令并验证通过参数值的情况下再发送正则表达式和相关的参数值,因此步骤S405与步骤S406和S407的次序可以调换,即在步骤S407之后进行步骤S405。甚至步骤S405可以与步骤S406和S407同时进行,例如可以将正则表达式和相关的参数值在与浏览器模拟器提交表单的同时(例如附加在表单之后)发送至防火墙配置系统。
在步骤S409通过基于以上所述正则表达式和参数值的相关性以及所述参数名和参数值之间的相关性来判断与同一参数值相关的正则表达式和参数名,并通过使用所确定的彼此相关的参数名和正则表达式作为过滤规则来配置防火墙的规则文件。在步骤S410判断是否结束流程,如果还需要对同一应用的其它(表单)请求或者其它应用配置安全模型,则返回步骤S402;如果无需再进一步进行配置则结束流程(步骤S411)。
在步骤S406,如果参数名和参数值未通过正则表达式匹配命令的验证并因此无法提交请求,则需在浏览器模拟器220记录失效的表单并由管理员在浏览器模拟器侧手动输入新的参数值(步骤S408),之后继续进行步骤S406来执行正则表达式匹配命令。
其它实施例
对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算设备(包括处理器、存储介质等)或者计算设备的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的,因此在这里省略了详细说明。
因此,基于上述理解,本发明的目的还可以通过在任何信息处理设备上运行一个程序或者一组程序来实现。所述信息处理设备可以是公知的通用设备。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者设备的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质,因此也没有必要在此对各种存储介质一一列举。
在本发明的系统和方法中,显然,各部件或步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。并且,执行上述系列处理的步骤可以自然地按照说明的顺序按时间顺序执行,但是并不需要一定按照时间顺序执行。某些步骤可以并行或彼此独立地执行。
以上描述了本发明的优选实施方式。本领域的普通技术人员知道,本发明的保护范围不限于这里所公开的具体细节,而可以具有在本发明的精神实质范围内的各种变化和等效方案。
Claims (16)
1. 一种用于为网络服务器的防火墙产生规则文件的方法,包括:
拦截由所述网络服务器的网络应用为浏览器构建的响应;
通过添加用于在被执行时捕获已嵌入在所述响应中的正则表达式及其相关的参数值的捕获代码来修改所述响应;
将修改后的响应发送至所述浏览器;
接收所述浏览器提交的请求以及由所述捕获代码捕获的至少一个正则表达式及其相关的参数值;以及
根据接收的所述请求中包含的至少一个参数名及其相关的参数值以及接收的所述至少一个正则表达式及其相关的参数值,确定与同一个参数值相关的所述参数名和所述正则表达式,并且通过使用所确定的彼此相关的所述参数名和所述正则表达式作为过滤规则来配置所述防火墙的规则文件。
2. 根据权利要求1所述的方法,其中所述浏览器是普通的客户端浏览器或者用于模拟普通客户端浏览器的浏览器模拟器。
3. 根据权利要求1所述的方法,其中所述通过添加捕获代码来修改所述响应的步骤进一步包括:解析所述响应;以及对所述响应中的选定的正则表达式匹配命令包装所述用于捕获与所述正则表达式匹配命令相关的正则表达式和参数值的捕获代码。
4. 根据权利要求1所述的方法,其中所述通过添加捕获代码来修改所述响应的步骤还包括:为所述响应中的至少一个参数名填写所述相关的参数值。
5. 根据权利要求1所述的方法,其中所述相关的参数值是在所述将修改后的响应发送至所述浏览器的步骤之后在所述浏览器侧填写的。
6. 根据权利要求1所述的方法,其中所述相关的参数值是在所述浏览器无法验证通过原先的参数值并因此无法提交请求之后在所述浏览器侧重新填写的。
7. 根据权利要求1所述的方法,其中所述捕获代码还用于在执行时发送所述正则表达式及其相关的参数值。
8. 根据权利要求7所述的方法,其中接收所述浏览器提交的请求以及由所述捕获代码捕获的至少一个正则表达式及其相关的参数值的步骤进一步包括:
分别接收所述浏览器提交的请求以及由所述捕获代码捕获的正则表达式及其相关的参数值。
9. 根据权利要求1的方法,其中接收所述浏览器提交的请求以及由所述捕获代码捕获的至少一个正则表达式及其相关的参数值的步骤进一步包括:
接收所述浏览器提交的请求以及与所述浏览器提交的请求一起提交的由所述捕获代码捕获的正则表达式及其相关的参数值。
10. 一种用于为网络服务器的防火墙产生规则文件的系统,包括:
拦截装置,被配置成拦截由所述网络服务器的网络应用为浏览器构建的响应;
修改装置,被配置成通过添加用于在被执行时捕获已嵌入在所述响应中的正则表达式及其相关的参数值的捕获代码来修改所述响应;
发送装置,被配置成将修改后的响应发送至所述浏览器;
接收装置,被配置成接收所述浏览器提交的请求以及由所述捕获代码捕获的至少一个正则表达式及其相关的参数值;以及
规则确定装置,被配置成根据接收的所述请求中包含的至少一个参数名及其相关的参数值以及接收的所述至少一个正则表达式及其相关的参数值,确定与同一个参数值相关的所述参数名和所述正则表达式,并且通过使用所确定的彼此相关的所述参数名和所述正则表达式作为过滤规则来配置所述防火墙的规则文件。
11. 根据权利要求10所述的系统,其中所述浏览器是普通的客户端浏览器或者用于模拟普通客户端浏览器的浏览器模拟器。
12. 根据权利要求10所述的系统,其中还包括被配置成解析所述被拦截的响应的解析装置;
所述修改装置还被配置成对所述经解析的响应中的选定的正则表达式匹配命令包装所述用于捕获与所述正则表达式匹配命令相关的正则表达式和参数值的捕获代码。
13. 根据权利要求10所述的系统,其中所述修改装置还被配置成为所述响应中的参数名填写所述相关的参数值。
14. 根据权利要求10所述的系统,其中所述捕获代码还用于在执行时发送所述正则表达式及其相关的参数值。
15. 根据权利要求14所述的系统,其中所述接收装置还被配置成分别接收所述浏览器提交的请求以及由所述捕获代码捕获的正则表达式及其相关的参数值。
16. 根据权利要求10的系统,其中所述接收装置还被配置成接收所述浏览器提交的请求以及与所述浏览器提交的请求一起提交的由所述捕获代码捕获的正则表达式及其相关的参数值。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810132452.XA CN101631108B (zh) | 2008-07-16 | 2008-07-16 | 为网络服务器的防火墙产生规则文件的方法和系统 |
US12/500,674 US8671446B2 (en) | 2008-07-16 | 2009-07-10 | Method and system for configuring a rule file for firewall of web server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200810132452.XA CN101631108B (zh) | 2008-07-16 | 2008-07-16 | 为网络服务器的防火墙产生规则文件的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101631108A CN101631108A (zh) | 2010-01-20 |
CN101631108B true CN101631108B (zh) | 2012-12-12 |
Family
ID=41531443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200810132452.XA Active CN101631108B (zh) | 2008-07-16 | 2008-07-16 | 为网络服务器的防火墙产生规则文件的方法和系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8671446B2 (zh) |
CN (1) | CN101631108B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182685A (zh) * | 2014-08-19 | 2014-12-03 | 北京京东尚科信息技术有限公司 | 一种用于java web应用的xss防御方法及组件 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8627442B2 (en) * | 2011-05-24 | 2014-01-07 | International Business Machines Corporation | Hierarchical rule development and binding for web application server firewall |
US8407779B1 (en) * | 2011-07-29 | 2013-03-26 | Juniper Networks, Inc. | Transposing a packet firewall policy within a node |
US8572750B2 (en) * | 2011-09-30 | 2013-10-29 | International Business Machines Corporation | Web application exploit mitigation in an information technology environment |
CN102523218B (zh) * | 2011-12-16 | 2015-04-08 | 北京神州绿盟信息安全科技股份有限公司 | 一种网络安全防护方法、设备和系统 |
US20140380477A1 (en) * | 2011-12-30 | 2014-12-25 | Beijing Qihoo Technology Company Limited | Methods and devices for identifying tampered webpage and inentifying hijacked web address |
CN103067361A (zh) * | 2012-12-18 | 2013-04-24 | 蓝盾信息安全技术股份有限公司 | 一种智能收集Web应用防火墙白名单的方法 |
CN104348789B (zh) * | 2013-07-30 | 2018-04-27 | 中国银联股份有限公司 | 用于防止跨站脚本攻击的Web服务器及方法 |
CN104753880A (zh) * | 2013-12-30 | 2015-07-01 | 上海格尔软件股份有限公司 | 一种主动防御的web防火墙实现方法 |
CN104753901A (zh) * | 2013-12-31 | 2015-07-01 | 上海格尔软件股份有限公司 | 一种基于智能表单分析的web防火墙实现方法 |
CN103870539A (zh) * | 2014-02-20 | 2014-06-18 | 小米科技有限责任公司 | 文本预处理的方法及装置 |
CN104935551B (zh) * | 2014-03-18 | 2018-09-04 | 杭州迪普科技股份有限公司 | 一种网页篡改防护装置及方法 |
CN104735093A (zh) * | 2015-04-22 | 2015-06-24 | 上海斐讯数据通信技术有限公司 | 网络终端及其ip端口过滤系统和ip端口过滤方法 |
US20160323063A1 (en) * | 2015-05-01 | 2016-11-03 | Qualcomm Incorporated | Bundled Forward Error Correction (FEC) for Multiple Sequenced Flows |
CN105373392A (zh) * | 2015-12-09 | 2016-03-02 | 浪潮电子信息产业股份有限公司 | 一种基于dos系统的对扫描序字串位数控制的方法 |
EP3610395A4 (en) | 2017-05-31 | 2020-09-30 | Shiftleft Inc. | SYSTEMS AND PROCEDURES FOR PROFILING APPLICATION SAFETY |
CN107426028A (zh) * | 2017-08-08 | 2017-12-01 | 四川长虹电器股份有限公司 | Waf引擎的架构及设计方法 |
US10956574B2 (en) * | 2017-10-07 | 2021-03-23 | Shiftleft Inc. | System and method for securing applications through an application-aware runtime agent |
US11074362B2 (en) | 2017-12-04 | 2021-07-27 | ShiftLeft, Inc. | System and method for code-based protection of sensitive data |
CN109617646B (zh) * | 2018-10-22 | 2022-10-25 | 中国平安财产保险股份有限公司 | 报文转换方法、装置、计算机设备及计算机可读存储介质 |
US11514172B2 (en) | 2018-11-15 | 2022-11-29 | Grabango Co. | System and method for information flow analysis of application code |
CN110661680B (zh) * | 2019-09-11 | 2023-03-14 | 深圳市永达电子信息股份有限公司 | 一种基于正则表达式进行数据流白名单检测的方法及系统 |
CN110618942A (zh) * | 2019-09-20 | 2019-12-27 | 北京天地和兴科技有限公司 | 一种工业控制协议细粒度控制的快速测试方法 |
CN110912916A (zh) * | 2019-11-29 | 2020-03-24 | 杭州安恒信息技术股份有限公司 | 一种web应用防火墙配置同步方法、装置、设备、介质 |
CN111427774A (zh) * | 2020-03-09 | 2020-07-17 | 深圳开源互联网安全技术有限公司 | 用于应用程序测试实例的请求参数修改方法及系统 |
CN111338969A (zh) * | 2020-03-23 | 2020-06-26 | 深圳开源互联网安全技术有限公司 | 基于正则动态匹配请求参数并修改的方法及系统 |
US10853563B1 (en) | 2020-04-22 | 2020-12-01 | Moveworks, Inc. | Method and system for configuring form filling application to minimize form filling effort |
US11861402B2 (en) * | 2020-06-25 | 2024-01-02 | Vmware, Inc. | Methods and apparatus for tenant aware runtime feature toggling in a cloud environment |
CN114500018B (zh) * | 2022-01-17 | 2022-10-14 | 武汉大学 | 基于神经网络的Web应用防火墙安全检测与加固系统及方法 |
CN118075028A (zh) * | 2024-04-19 | 2024-05-24 | 山东捷瑞数字科技股份有限公司 | 一种面向工业互联网的可视化防火墙的配置方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001008046A1 (en) * | 1999-07-27 | 2001-02-01 | Landmark Technology Holdings Corporation | Server-based instrumentation system for internet-enabled applications |
CN1370296A (zh) * | 1999-06-14 | 2002-09-18 | 株式会社日本商业情报处理中心 | 采用因特网技术的网络上的信息收集系统和信息收集方法及记录信息收集方法的记录媒体 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7822620B2 (en) | 2005-05-03 | 2010-10-26 | Mcafee, Inc. | Determining website reputations using automatic testing |
CA2510647A1 (en) * | 2005-06-23 | 2006-12-23 | Cognos Incorporated | Signing of web request |
US8572160B2 (en) * | 2007-03-12 | 2013-10-29 | Citrix Systems, Inc. | Systems and methods for script injection |
-
2008
- 2008-07-16 CN CN200810132452.XA patent/CN101631108B/zh active Active
-
2009
- 2009-07-10 US US12/500,674 patent/US8671446B2/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1370296A (zh) * | 1999-06-14 | 2002-09-18 | 株式会社日本商业情报处理中心 | 采用因特网技术的网络上的信息收集系统和信息收集方法及记录信息收集方法的记录媒体 |
WO2001008046A1 (en) * | 1999-07-27 | 2001-02-01 | Landmark Technology Holdings Corporation | Server-based instrumentation system for internet-enabled applications |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182685A (zh) * | 2014-08-19 | 2014-12-03 | 北京京东尚科信息技术有限公司 | 一种用于java web应用的xss防御方法及组件 |
CN104182685B (zh) * | 2014-08-19 | 2018-01-05 | 北京京东尚科信息技术有限公司 | 一种用于java web应用的xss防御方法及组件 |
Also Published As
Publication number | Publication date |
---|---|
US8671446B2 (en) | 2014-03-11 |
CN101631108A (zh) | 2010-01-20 |
US20100017868A1 (en) | 2010-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101631108B (zh) | 为网络服务器的防火墙产生规则文件的方法和系统 | |
CN101616008B (zh) | 保护网络应用数据的方法和系统 | |
Gupta et al. | PHP-sensor: a prototype method to discover workflow violation and XSS vulnerabilities in PHP web applications | |
US7703127B2 (en) | System for verifying a client request | |
US20240202372A1 (en) | Apparatus and method for securing web application server source code | |
CN107634967B (zh) | 一种CSRF攻击的CSRFToken防御系统和方法 | |
CN111400722B (zh) | 扫描小程序的方法、装置、计算机设备和存储介质 | |
CN101964025A (zh) | Xss检测方法和设备 | |
Shrivastava et al. | XSS vulnerability assessment and prevention in web application | |
CN103117893B (zh) | 一种网络访问行为的监控方法、装置和一种客户端设备 | |
CN105306473A (zh) | 一种防止注入攻击的方法、客户端、服务器和系统 | |
CN103701816B (zh) | 执行拒绝服务攻击的服务器的扫描方法和扫描装置 | |
US20220198025A1 (en) | Web Attack Simulator | |
CN103023905A (zh) | 一种用于检测恶意链接的设备、方法及系统 | |
CN107276986B (zh) | 一种通过机器学习保护网站的方法、装置和系统 | |
CN109617917A (zh) | 地址虚拟化Web应用安全防火墙方法、装置和系统 | |
CN107347076A (zh) | Ssrf漏洞的检测方法及装置 | |
CN105550596A (zh) | 一种访问处理方法和装置 | |
CN103036896A (zh) | 用于检测恶意链接的方法及系统 | |
CN103647652A (zh) | 一种实现数据传输的方法、装置和服务器 | |
CN107360189A (zh) | 突破Web防护的漏洞扫描方法及装置 | |
CN102510386B (zh) | 分布式攻击阻止方法及装置 | |
CN107147648A (zh) | 资源请求的处理方法、客户端、服务器和系统 | |
CA3204750A1 (en) | Web attack simulator | |
CN113901482A (zh) | 漏洞检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |