CN110012010B - 一种基于目标站点自学习建模的waf防御方法 - Google Patents
一种基于目标站点自学习建模的waf防御方法 Download PDFInfo
- Publication number
- CN110012010B CN110012010B CN201910267017.6A CN201910267017A CN110012010B CN 110012010 B CN110012010 B CN 110012010B CN 201910267017 A CN201910267017 A CN 201910267017A CN 110012010 B CN110012010 B CN 110012010B
- Authority
- CN
- China
- Prior art keywords
- parameter
- uri
- target site
- parameter name
- learning
- 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
- 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/1441—Countermeasures against malicious traffic
-
- 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/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于目标站点自学习建模的WAF防御方法,基于Nginx ModSecurity模块搭建WAF,并自主学习目标站点进行自学习建模,在切换防御模式后通过学习到的模型生成ModSecurity规则来实现对目标站点的异常访问,包含URI、COOKIE、HEAD、参数名、参数值的拦截,实现全方位保护目标站点安全的功效。这些规则基于发起http或者https的访问,对访问的报文进行深度解析,监测与该服务相关的所有通信,并利用学习到的所有信息来针对目标站点进行特征防御。
Description
技术领域
本发明属于信息安全领域,涉及一种基于目标站点自学习建模的WAF防御方法。
背景技术
随着网络技术的不断发展,Web服务器以其强大的计算能力、处理性能及蕴含的较高价值逐渐成为主要攻击目标。SQL注入、网页篡改、网页挂马等安全事件,频繁发生。Web应用防护系统(英文:Web Application Firewall,简称:WAF)应运而生,WAF部署在应用层,通过对来自客户端的各类请求进行检测和验证,来确保各种站点的安全性。其中WAF的安全规则起到决定性作用,市面上可见的WAF规则策略多采取维护中的规则库策略,缺乏时效性和特异性。面对一些专门针对目标站点的攻击往往失去效果,从到导致服务器收到攻击引发一系列安全问题。ModSecurity是一个免费、开源的Apache模块,可以充当Web应用防火墙(WAF)。ModSecurity是一个入侵探测与阻止的引擎.它主要是用于Web应用程序所以也可以叫做Web应用程序防火墙。ModSecurity的目的是为增强Web应用程序的安全性和保护Web应用程序避免遭受来自已知与未知的攻击。Nginx支持Modsecurity模块是一项比较新的技术,因为Nginx是开源的,可以扩展与Modsecurity的模块,所以在NGginx搭配ModSecurity模块部署WAF成为市面上的主流。
发明内容
本发明的目的在于针对现有技术的不足,提供一种基于目标站点自学习建模的WAF防御方法,在针对不同网站环境下的目标站点防御起到关键作用。
本发明的目的是通过以下技术方案来实现的:一种基于目标站点自学习建模的WAF防御方法,包括以下步骤:
(1)Linux服务器上用Apache开源模块ModSecurity和Nginx搭建WAF;
(2)开启学习模式:目标站点发起网络访问后,WAF通过Nginx调用ModSecurity的Lua脚本采集目标站点信息,包括URI、HEAD、COOKIE、参数名、参数值;
(3)对步骤(2)采集到的目标站点信息进行处理,包括以下步骤:
3.1将采集到的URI存入数据库URI表,将参数名、HEAD、COOKIE存入参数名表,将参数值存入参数值表,将参数名表和URI表ID相关联,将参数值表和URI表ID相关联,将参数值表和参数名表参数名关联;参数名表记录参数名次数和参数名正则;参数值表记录参数值正则;
3.2相同的URI在URI表中只记录一次,URI表设置学习次数来标记相同URI采集次数;
3.3步骤3.2中学习次数达到设定次数后,根据URI表ID找到参数名表对应的所有参数名,若每个参数名对应的参数名次数均等于学习次数,则将参数名正则设置为和参数名一致,若有参数名对应的参数名次数不等于学习次数,则自定义正则匹配参数名填入参数名正则;
3.4参数值表中将相同参数名的所有参数值与正则库进行正则比对,得到匹配该参数名所有参数值的正则,设置为参数值正则;
(4)关闭学习模式,切换防御模式,根据数据库中URI表、参数值表和参数名表生成ModSecurity规则,添加规则到nginx配置文件中,开启ModSecurity模块,对目标站点进行针对性防御。
进一步地,所述步骤(2)中,lua脚本获取信息包括以下公式:
req_uri=m.getvar(″REQUEST_URI") 公式(1);
headers=m.getvars(″REQUEST_HEADERS″) 公式(2);
cookies=m.getvars(″REQUEST_COOKIES") 公式(3);
args=m.getvars(″ARGS″,{″none″}) 公式(4);
公式(1)为获取URL;公式(2)为获取HEAD;公式(3)为获取COOKIE;公式(4)为获取参数名、参数值;
公式中,返回变量是lua table(类似perl的hash数据类型)的数据类型,以公式(4)为例,返回变量args有两个索引,第一个表示参数名,第二个表示参数名对应的参数值。
进一步地,所述步骤3.2中,针对前部分相同的若干相似URI,截取相同部分保留,去掉不同部分,且学习次数为所有部分的学习次数相加;例如:
/index.php/tp_name/id/1、/index.php/tp_name/id/2;
可以保留成/index.php/tp_name/id,且学习次数为两部分的学习次数相加,/index.php/tp_name/id/1、/index.php/tp_name/id/2对应的参数名表中相同参数名去重合并,参数名表中重复参数名的参数名次数相加,参数值表相同参数值去重合并。
进一步地,可以对数据库中采集到的站点信息进行人为更改,使最后生成的防御模型更加贴合目标站点。
进一步地,切换防御模式后可以重新进入学习模式,以避免漏学。
本发明的有益效果:在传统WAF死板规则下经常会有误报的攻击和漏过的攻击,本发明针对目标站点自学习建立匹配目标站点的防御策略,大大减少了误报和漏报,同时,防御策略模型的建立支持手自动一体,即可人为修改学习数据,从而建立一套更加贴合目标站点的防护策略模型。
附图说明
图1为本方法实现流程图;
图2为WAF自学习白名单建模具体实现逻辑图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步详细说明。
如图1、2所示,本发明提供的一种基于目标站点自学习建模的WAF防御方法,包括以下步骤:
(1)Linux服务器上用Apache开源模块ModSecurity和Nginx搭建WAF;
(2)开启学习模式:目标站点发起网络访问后,WAF通过Nginx调用ModSecurity的Lua脚本采集目标站点信息,包括URI、HEAD、COOKIE、参数名、参数值;
(3)对步骤(2)采集到的目标站点信息进行处理,包括以下步骤:
3.1将采集到的URI存入数据库URI表,将参数名、HEAD、COOKIE存入参数名表,将参数值存入参数值表,将参数名表和URI表ID相关联,将参数值表和URI表ID相关联,将参数值表和参数名表参数名关联;参数名表记录参数名次数和参数名正则;参数值表记录参数值正则;
3.2相同的URI在URI表中只记录一次,URI表设置学习次数来标记相同URI采集次数;
3.3步骤3.2中学习次数达到设定次数后(可以设置为三次),根据URI表ID找到参数名表对应的所有参数名,若每个参数名对应的参数名次数均等于学习次数,则将参数名正则设置为和参数名一致,若有参数名对应的参数名次数不等于学习次数,如有参数:name_1、name_2、name_3次数不等于学习次数,则自定义正则匹配参数名填入参数名正则,上例参数名正则自定义为^name_[0-9]{1}$;
3.4参数值表中将相同参数名的所有参数值与正则库进行正则比对,得到匹配该参数名所有参数值的正则,设置为参数值正则;正则库需要自己收集,越详细生成的正则越可靠;
(4)关闭学习模式,切换防御模式,根据数据库中URI表、参数值表和参数名表生成ModSecurity规则,添加规则到nginx配置文件中,开启ModSecurity模块,对目标站点进行针对性防御。
例一、目标站点的一条URI地址为/index.php?listRows=1,参数名为listRows,参数值为1,学习次数达到3次,参数名次数等于3,参数名正则为listRows,参数值正则为(?#01-1)^[\s]*[+-]?[0-9]+[\s]*$|^$;生成的对应规则为:
1、针对URI的防御:
SecRule REQUEST_URI″@streq/index.php″″phase:2,id:10002,nolog,pass″
2、针对参数名的防御,包含参数名、长度、类型、值:
SecRule REQUEST_URI″@beginsWith/index.php″″phase:2,id:10004,allow,nolog,chain″
SecRule&ARGS_NAMES″@eq1″″chain″
SecRule ARGS_GET:listRows″@le 12″″chain,t:length″
SecRule ARGS_GET:listRows″(?i)(?#01-1)^[\s]*[+-]?[0-9]+[\s]*$|^$″
Nginx配置文件加载规则后启用防御模式;在防御模式下,
若访问URI为/index.php/index/index.html?listRows=1;
被URI规则拦截;
若访问URI为/index.php?listRows=1&p=2;
因参数名不同被拦截;
若访问URI为/index.php?listRows=test;
因参数值不符合参数值正则被拦截;
若访问URI为/index.php?listRows=1 1 1 1 1 1 1 1 1 1 1 1 1 1;
因参数值长度超长被拦截;
规则参数在表1中解释;
表1
例二、目标站点有URI如/index.php/DevAcct/edit/id/11,id后数字可变,可删除原URI,将URI改为/index.php/DevAcct/edit/id/存入URI表,并将此条URI标记为收敛URI。规则匹配URI采用可写为:
SecRule REQUEST_URI"@beginsWith/index.php/DevAcct/edit/id""phase:2,id:10002,nolog,pass″
规则1
代替:
SecRule REQUEST_URI″@streq/index.php/DevAcct/edit/id""phase:2,id:10002,nolog,pass″
规则2
如例中URI/index.php/DevAcct/edit/id/11在规则1中匹配到放行,在规则2中会无法匹配被拦截;
例三、目标站点有URI如/index.php/user/index/,想要放行所有该URI为开头的URI,可以在URI表中将此条URI标记为白名单放行,规则为:
SecRule REQUEST_URI″@beginsWith/index.php/user/index""ctl:ruleRemoveById=10197";
当URI为/index.php/user/index/开头的任意URI会被直接放行。
上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。
Claims (5)
1.一种基于目标站点自学习建模的WAF防御方法,其特征在于,包括以下步骤:
(1)Linux服务器上用Apache开源模块ModSecurity和Nginx搭建WAF;
(2)开启学习模式:目标站点发起网络访问后,WAF通过Nginx调用ModSecurity的Lua脚本采集目标站点信息,包括URI、HEAD、COOKIE、参数名、参数值;
(3)对步骤(2)采集到的目标站点信息进行处理,包括以下步骤:
3.1将采集到的URI存入数据库URI表,将参数名、HEAD、COOKIE存入参数名表,将参数值存入参数值表,将参数名表和URI表ID相关联,将参数值表和URI表ID相关联,将参数值表和参数名表参数名关联;参数名表记录参数名次数和参数名正则;参数值表记录参数值正则;
3.2相同的URI在URI表中只记录一次,URI表设置学习次数来标记相同URI采集次数;
3.3步骤3.2中学习次数达到设定次数后,根据URI表ID找到参数名表对应的所有参数名,若每个参数名对应的参数名次数均等于学习次数,则参数名正则设置为和参数名一致,若有参数名对应的参数名次数不等于学习次数,则自定义正则匹配参数名填入参数名正则;
3.4参数值表中将相同参数名的所有参数值与正则库进行正则比对,得到匹配该参数名所有参数值的正则,设置为参数值正则;
(4)关闭学习模式,切换防御模式,根据数据库中URI表、参数值表和参数名表生成ModSecurity规则,添加规则到nginx配置文件中,开启ModSecurity模块,对目标站点进行针对性防御。
2.根据权利要求1所述的一种基于目标站点自学习建模的WAF防御方法,其特征在于,所述步骤(2)中,lua脚本获取信息包括以下公式:
req_uri=m.getvar("REQUEST_URI")公式(1);
headers=m.getvars("REQUEST_HEADERS")公式(2);
cookies=m.getvars("REQUEST_COOKIES")公式(3);
args=m.getvars("ARGS",{"none"})公式(4);
公式(1)为获取URL;公式(2)为获取HEAD;公式(3)为获取COOKIE;公式(4)为获取参数名、参数值。
3.根据权利要求1所述的一种基于目标站点自学习建模的WAF防御方法,其特征在于,所述步骤3.2中,针对前部分相同的若干相似URI,截取相同部分保留,去掉不同部分,且学习次数为所有部分的学习次数相加,相似URI对应的参数名表相同参数名去重合并,参数名表中重复参数名的参数名次数相加,参数值表相同参数值去重合并。
4.根据权利要求1所述的一种基于目标站点自学习建模的WAF防御方法,其特征在于,可以对数据库中采集到的站点信息进行人为更改,使最后生成的防御模型更加贴合目标站点。
5.根据权利要求1所述的一种基于目标站点自学习建模的WAF防御方法,其特征在于,切换防御模式后可以重新进入学习模式,以避免漏学。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910267017.6A CN110012010B (zh) | 2019-04-03 | 2019-04-03 | 一种基于目标站点自学习建模的waf防御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910267017.6A CN110012010B (zh) | 2019-04-03 | 2019-04-03 | 一种基于目标站点自学习建模的waf防御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110012010A CN110012010A (zh) | 2019-07-12 |
CN110012010B true CN110012010B (zh) | 2021-09-17 |
Family
ID=67169741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910267017.6A Active CN110012010B (zh) | 2019-04-03 | 2019-04-03 | 一种基于目标站点自学习建模的waf防御方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110012010B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377260A (zh) * | 2012-04-28 | 2013-10-30 | 阿里巴巴集团控股有限公司 | 一种网络日志url 的分析方法及装置 |
CN103701816A (zh) * | 2013-12-27 | 2014-04-02 | 北京奇虎科技有限公司 | 执行拒绝服务攻击的服务器的扫描方法和扫描装置 |
CN105227571A (zh) * | 2015-10-20 | 2016-01-06 | 福建六壬网安股份有限公司 | 基于nginx+lua的web应用防火墙系统及其实现方法 |
CN105553974A (zh) * | 2015-12-14 | 2016-05-04 | 中国电子信息产业集团有限公司第六研究所 | 一种http慢速攻击的防范方法 |
CN105704120A (zh) * | 2016-01-05 | 2016-06-22 | 中云网安科技(北京)有限公司 | 一种基于自学习形式的安全访问网络的方法 |
CN107426202A (zh) * | 2017-07-13 | 2017-12-01 | 北京知道未来信息技术有限公司 | 一种自动化测试waf拦截规则的方法 |
CN108055227A (zh) * | 2017-08-08 | 2018-05-18 | 西安交大捷普网络科技有限公司 | 基于站点自学习的waf未知攻击防御方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9426125B2 (en) * | 2014-12-22 | 2016-08-23 | Verizon Digital Media Services Inc. | Real-time reconfigurable web application firewall for a distributed platform |
-
2019
- 2019-04-03 CN CN201910267017.6A patent/CN110012010B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103377260A (zh) * | 2012-04-28 | 2013-10-30 | 阿里巴巴集团控股有限公司 | 一种网络日志url 的分析方法及装置 |
CN103701816A (zh) * | 2013-12-27 | 2014-04-02 | 北京奇虎科技有限公司 | 执行拒绝服务攻击的服务器的扫描方法和扫描装置 |
CN105227571A (zh) * | 2015-10-20 | 2016-01-06 | 福建六壬网安股份有限公司 | 基于nginx+lua的web应用防火墙系统及其实现方法 |
CN105553974A (zh) * | 2015-12-14 | 2016-05-04 | 中国电子信息产业集团有限公司第六研究所 | 一种http慢速攻击的防范方法 |
CN105704120A (zh) * | 2016-01-05 | 2016-06-22 | 中云网安科技(北京)有限公司 | 一种基于自学习形式的安全访问网络的方法 |
CN107426202A (zh) * | 2017-07-13 | 2017-12-01 | 北京知道未来信息技术有限公司 | 一种自动化测试waf拦截规则的方法 |
CN108055227A (zh) * | 2017-08-08 | 2018-05-18 | 西安交大捷普网络科技有限公司 | 基于站点自学习的waf未知攻击防御方法 |
Non-Patent Citations (1)
Title |
---|
ModSecurity3_Nginx指南;简书;《https://www.jianshu.com/p/d22f3914d153》;20190213;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110012010A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107659543B (zh) | 面向云平台apt攻击的防护方法 | |
CN106357696B (zh) | 一种sql注入攻击检测方法及系统 | |
CN101902441B (zh) | 一种可实现序列攻击事件检测的入侵检测方法 | |
Niu et al. | Identifying APT malware domain based on mobile DNS logging | |
US9195826B1 (en) | Graph-based method to detect malware command-and-control infrastructure | |
CN111818103B (zh) | 一种网络靶场中基于流量的溯源攻击路径方法 | |
WO2015149062A1 (en) | System and method for predicting impending cyber security events using multi channel behavioral analysis in a distributed computing environment | |
CN104809404A (zh) | 一种信息安全攻防平台的数据层系统 | |
CN104967628A (zh) | 一种保护web应用安全的诱骗方法 | |
CN104954384A (zh) | 一种保护Web应用安全的url拟态方法 | |
CN104966032A (zh) | 一种云端数据库中敏感信息随机化拟态方法 | |
CN107517200A (zh) | 一种Web服务器的恶意爬虫防御策略选择方法 | |
Carvalho et al. | Owlsight: Platform for real-time detection and visualization of cyber threats | |
CN113852597B (zh) | 一种网络威胁溯源迭代分析方法、计算机设备及存储介质 | |
Cigoj et al. | An intelligent and automated WCMS vulnerability-discovery tool: the current state of the web | |
Brierley et al. | Industrialising blackmail: Privacy invasion based IoT ransomware | |
CN110012010B (zh) | 一种基于目标站点自学习建模的waf防御方法 | |
Mondal et al. | Review Study on Different Attack Strategies of Worm in a Network. | |
Khan et al. | Lightweight testbed for cybersecurity experiments in scada-based systems | |
CN115906190A (zh) | 一种区块链网络犯罪服务平台 | |
Muragijimana et al. | Digital crimes in cloud environment and the analysis via blockchain | |
Kim et al. | Detection of advanced persistent threat by analyzing the big data log | |
Wilson et al. | Mitigating data exfiltration in storage-as-a-service clouds | |
Kuo et al. | An analysis of security patch lifecycle using Google Trend Tool | |
CN107454055B (zh) | 一种通过安全学习保护网站的方法、装置和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220424 Address after: 310012 rooms 403, 405, 407, 409 and 411, North floor, building 5, No. 90, Wensan Road, Xihu District, Hangzhou, Zhejiang Patentee after: HANGZHOU PALLADIUM NETWORKING TECHNOLOGY CO.,LTD. Address before: 310012 Room 401, north, 4th floor, building 5, No. 90, Wensan Road, Xihu District, Hangzhou City, Zhejiang Province Patentee before: HANGZHOU LEADSINO INFORMATION TECHNOLOGY CO.,LTD. |