System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及web应用安全,具体涉及一种基于词法分析的waf规则引擎优化方法和装置。
技术介绍
1、随着web应用原来越丰富,web服务器强大的计算能力和处理能力使其具有较高的价值,也逐渐成为主要攻击目标,sql(structured query language,数据库语言)注入、网页篡改以及网页挂马等安全事件,频繁发生。
2、相关技术中,可以通过waf(web application firewall,应用防护系统)来检测对否存在攻击。当前waf检测主要依赖三种检测方式:第一种是基于正则表达式规则匹配用户输入检测是否存在攻击;第二种是对用户输入做语法解析后,通过语义策略检测是否存在攻击;第三种是通过机器学习等人工智能技术检测是否存在攻击。
3、但这三种检测方式均存在不同的缺陷,第一种检测方式虽然实施简单、成熟度高,但是存在较高的误报率;第二种检测方式误报率虽然较低,但是在实际应用中落地成本较高,并且没有成熟的开源项目和规则,需要从零开始自研,对研发和算法等技术有较高的要求,工程量大;第三种检测方式由于发展并不成熟,存在性能差、误报高且难以优化以及告警不可解释等缺点。
技术实现思路
1、本申请提供一种基于词法分析的waf规则引擎优化方法和装置,可以解决相关技术中的waf规则对攻击的误报率高的技术问题。
2、第一方面,本申请实施例提供基于词法分析的waf规则引擎优化方法,所述基于词法分析的waf规则引擎优化方法包括:
3、解码用户请求得
4、将所述用户输入参数值转换为令牌token串;
5、对所述token串进行词法分析,根据词法分析结果确定所述用户请求是否为恶意请求。
6、结合第一方面,在一种实施方式中,对所述token串进行词法分析,包括:
7、对所述token串进行函数调用分析、长度分析、比较操作符分析、注释符分析和语法合法性解析。
8、在一种实施例中,对所述token串进行函数调用分析、长度分析、比较操作符分析、注释符分析和语法合法性解析,包括:
9、扫描所述token串中是否存在lr_bracket和/或lr_bracket token,若是,则确定所述token串存在函数调用,否则,确定所述token串不存在函数调用;
10、确定所述token串的长度;
11、扫描所述token串中是否包括equal_symbol、greater_symbol、less_symbol和/或exclamation_symbol,若是,则确定所述token串存在比较操作符,否则,确定所述token串不存在比较操作符;
12、扫描所述token串中是否包括comment_input和/或line_comment,若是,则确定所述token串存在注释符,否则,确定所述token串不存在注释符;
13、对比所述token串和预设的不符合语法的token序列集合,若所述token串与所述不符合语法的token序列集合存在匹配片段,则确定所述token串存在不符合语法的片段,否则,确定所述token串符合语法。
14、在一种实施方式中,在对比所述token串和所述不符合语法的token序列集合之前,还包括:
15、解析预设的语法规则文件得到follow集合;
16、基于所述follow集合生成所述不符合语法的token序列集合;
17、其中,所述语法规则文件包括sql语法规则文件、html语法规则文件、bash语法规则文件、java script语法规则文件和/或zsh语法规则文件。
18、在一种实施方式中,根据词法分析结果确定所述用户请求是否为恶意请求,包括:
19、判断所述token串的长度是否小于预设长度阈值和/或所述token串中是否存在不符合语法的片段;
20、若是,则确定所述客户请求为正常请请求;
21、否则,判断所述token串是否存在函数调用、比较操作符和注释符,若是,则确定所述客户请求为恶意请求,否则,确定所述客户请求为正常请求。
22、在一种实施方式中,该方法还包括:
23、对所述token串进行词法分析,并基于正则表达式匹配用户输入参数值;
24、根据所述词法分析结果和正则表达式匹配结果确定所述用户请求是否为恶意请求。
25、在一种实施方式中,该方还包括:确定所述用户请求为恶意请求后,发出安全告警。
26、第二方面,本申请实施例提供了一种基于词法分析的waf规则引擎优化装置,所述基于词法分析的waf规则引擎优化装置包括:
27、解码模块,其用于解码用户请求得到用户输入参数值;
28、转换模块,其用于将所述用户输入参数值转换为令牌token串;
29、分析模块,其用于对所述token串进行词法分析;
30、确定模块,其用于根据词法分析结果确定所述用户请求是否为恶意请求。
31、结合第二方面,在一种实施方式中,所述分析模块还用于:
32、对所述token串进行函数调用分析、长度分析、比较操作符分析、注释符分析和语法合法性解析。
33、在一种实施方式中,扫描所述token串中是否存在lr_bracket和/或lr_brackettoken,若是,则确定所述token串存在函数调用,否则,确定所述token串不存在函数调用;
34、确定所述token串的长度;
35、扫描所述token串中是否包括equal_symbol、greater_symbol、less_symbol和/或exclamation_symbol,若是,则确定所述token串存在比较操作符,否则,确定所述token串不存在比较操作符;
36、扫描所述token串中是否包括comment_input和/或line_comment,若是,则确定所述token串存在注释符,否则,确定所述token串不存在注释符;
37、对比所述token串和预设的不符合语法的token序列集合,若所述token串与所述不符合语法的token序列集合存在匹配片段,则确定所述token串存在不符合语法的片段,否则,确定所述token串符合语法。
38、本申请实施例提供的技术方案带来的有益效果包括:基于词法信息的词法规则进行攻击检测,能够有效降低攻击的误报率,可以低成本地解决waf误报问题。并且只需要词法分析而不需要完整的语法分析,因此工作量小,无需对语法分析技术进行过深的研究分析难度低,并且可以与现有的waf检测规则逻辑进行复用。
39、本申请实施例提供一种基于词法分析的waf规则引擎优化方法,通过解码用户请求得到用户输入参数值;将所述用户输入参数值转换为令牌token串;对所述to本文档来自技高网...
【技术保护点】
1.一种基于词法分析的WAF规则引擎优化方法,其特征在于,所述基于词法分析的WAF规则引擎优化方法包括:
2.如权利要求1所述的基于词法分析的WAF规则引擎优化方法,其特征在于,对所述token串进行词法分析,包括:
3.如权利要求2所述的基于词法分析的WAF规则引擎优化方法,其特征在于,对所述token串进行函数调用分析、长度分析、比较操作符分析、注释符分析和语法合法性解析,包括:
4.如权利要求3所述的基于词法分析的WAF规则引擎优化方法,其特征在于,在对比所述token串和所述不符合语法的token序列集合之前,还包括:
5.如权利要求3所述的基于词法分析的WAF规则引擎优化方法,其特征在于,根据词法分析结果确定所述用户请求是否为恶意请求,包括:
6.如权利要求1所述的基于词法分析的WAF规则引擎优化方法,其特征在于,还包括:
7.如权利要求1所述的基于词法分析的WAF规则引擎优化方法,其特征在于,还包括:确定所述用户请求为恶意请求后,发出安全告警。
8.一种基于词法分析的WAF规则引擎优化
9.如权利要求1所述的基于词法分析的WAF规则引擎优化装置,其特征在于,所述分析模块还用于:
10.如权利要求9所述的基于词法分析的WAF规则引擎优化装置,其特征在于,所述分析模块还用于:
...【技术特征摘要】
1.一种基于词法分析的waf规则引擎优化方法,其特征在于,所述基于词法分析的waf规则引擎优化方法包括:
2.如权利要求1所述的基于词法分析的waf规则引擎优化方法,其特征在于,对所述token串进行词法分析,包括:
3.如权利要求2所述的基于词法分析的waf规则引擎优化方法,其特征在于,对所述token串进行函数调用分析、长度分析、比较操作符分析、注释符分析和语法合法性解析,包括:
4.如权利要求3所述的基于词法分析的waf规则引擎优化方法,其特征在于,在对比所述token串和所述不符合语法的token序列集合之前,还包括:
5.如权利要求3所述的基于词法分析的waf规则引擎优化...
【专利技术属性】
技术研发人员:董光利,
申请(专利权)人:中电云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。