CN110012010B - 一种基于目标站点自学习建模的waf防御方法 - Google Patents

一种基于目标站点自学习建模的waf防御方法 Download PDF

Info

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
Application number
CN201910267017.6A
Other languages
English (en)
Other versions
CN110012010A (zh
Inventor
陈云
李英杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Palladium Networking Technology Co ltd
Original Assignee
杭州汉领信息科技有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 杭州汉领信息科技有限公司 filed Critical 杭州汉领信息科技有限公司
Priority to CN201910267017.6A priority Critical patent/CN110012010B/zh
Publication of CN110012010A publication Critical patent/CN110012010A/zh
Application granted granted Critical
Publication of CN110012010B publication Critical patent/CN110012010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active 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防御方法
技术领域
本发明属于信息安全领域,涉及一种基于目标站点自学习建模的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
Figure GDA0003066174610000041
例二、目标站点有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防御方法,其特征在于,切换防御模式后可以重新进入学习模式,以避免漏学。
CN201910267017.6A 2019-04-03 2019-04-03 一种基于目标站点自学习建模的waf防御方法 Active CN110012010B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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.