waf规则的自动探测与发现技术研究

上传人:小** 文档编号:31383984 上传时间:2018-02-07 格式:DOC 页数:10 大小:103KB
返回 下载 相关 举报
waf规则的自动探测与发现技术研究_第1页
第1页 / 共10页
waf规则的自动探测与发现技术研究_第2页
第2页 / 共10页
waf规则的自动探测与发现技术研究_第3页
第3页 / 共10页
waf规则的自动探测与发现技术研究_第4页
第4页 / 共10页
waf规则的自动探测与发现技术研究_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《waf规则的自动探测与发现技术研究》由会员分享,可在线阅读,更多相关《waf规则的自动探测与发现技术研究(10页珍藏版)》请在金锄头文库上搜索。

1、WAF 规则的自动探测与发现技术研究 张琦 翟健宏 哈尔滨工业大学计算机科学与技术学院 摘 要: 本文设计了一款自动探测 WAF 规则的工具, 在输入了网址和目标参数后能够自动探测其 WAF 的规则。工具主要分为三大模块:网站过滤检测模块、攻击向量生成模块、过滤规则生成模块。其中增加了正则表达式匹配功能, 使用最小元素优先检测法以及二分法提升了程序运行的效率;使用多线程有效地缓解了网络延迟带来的探测速度慢的问题。工具中设计了良好的攻击向量库能够使探测更为高效和精准, 同时这个库也是开放可随时增加的。关键词: WAF 规则; 自动探测; Web 安全; 作者简介:张琦 (1993-) , 男,

2、硕士研究生, 主要研究方向:网络安全;作者简介:翟健宏 (1968-) , 男, 硕士, 副教授, 主要研究方向:网络安全、云计算。Research of WAF rules auto detectionZHANG Qi ZHAI Jianhong School of Computer Science and Technology, Harbin Institute of Technology; Abstract: This paper designs a tool, that is able to auto-detect WAF ( Web Application Firewall) rul

3、es. The tool could get the WAF rules after the user offers the website and the target parameter. The tool is divided into three modules: WAF Discovery Module, Payloads Sending Module, Rules Retrieval Module. The tool adds regular expression matching function.And it uses shortest element detected fir

4、st strategy and dichotomy to improve the performance. This paper uses multithreading and alleviates the network delay problem. Meanwhile, the paper also designes the good payload databases. It could make the detection more effective and accurate. The payload databases could always be inserted with n

5、ew items.Keyword: WAF rules; auto detection; Web application security; 0 引言随着 IT 技术的不断发展和进步, 互联网已经走进了千家万户, 成为人们生活中必不可少的一部分。截至 2015 年 12 月底, 国内网站数量已达 426.7 万个1。在网站数量不断增长的同时, 网络安全态势也逐渐变得十分严峻。根据 360 互联网安全中心与 2017 年 2 月 12 日发布的2016 年中国互联网安全报告, 国内扫描出的存在漏洞的网站已达 91.7 万个, 占网站数量的 21.4%, 其中存在高危漏洞的网站有 14.0 万个,

6、 占网站数量的 3.3%。保护网站应用的安全, 是每一家互联网企业和其他网站建设机构不可推卸的首要任务与基础职责。一般的网络防火墙能够对服务器进行一定的防护, 但是却并不擅长应用层面的安全防护。由此, 网站应用防火墙 (WAF, Web Application Firewall) , 则应运而生。WAF 的主要功能是保护 Web 应用不受到恶意攻击, 并通过对网站的请求和响应开展高效的分析和统计, 能够对网站攻击事件提供及时的报警、甚至停止响应, 以保护网站服务器的安全。大部分的 WAF 通过对请求或者响应内容进行特征匹配2, 如果在请求中匹配到恶意字符串或者在响应中匹配到敏感信息, 则视此次

7、请求为非法请求, 可以停止响应, 实现服务器的保护功能。优秀的 WAF 产品能够设计出良好的特征库, 检测出大部分的恶意攻击;同时也能够拥有较低的误报率, 保证网站的正常功能需求。因此, 本文研究设计了一款 WAF 规则自动发现的脚本应用, 能够探测出网站配置的 WAF 规则以及没有配置的规则, 从而可以有针对性地优化网站 WAF 的配置, 提升自我安全防护。1 WAF 规则的自动探测设计1.1 WAF 的表现形式既然要探测 WAF 规则配置, 就需要知道 WAF 的一般响应形式。研究中人工收集了 54 个网站的 WAF 响应, 大致可分为 4 类, 对其内容阐释如下:1) HTTP 响应码不

8、是 200 (19/54) 。正常的 HTTP 请求响应码是 2003, 通常引发了 WAF 禁止的请求响应码就会变成 403 Forbidden、302 跳转、501 服务器错误、404 Not Found 等等异常响应码, 实例之一即如图 1 所示。这在本次样本中共占 19 个。2) 明显的 WAF 提示 (16/54) 。除了一些异常响应码, 还会有很多网站会展现与正常响应截然不同的响应内容, 是比较明显的 WAF 提示, 示意则如图 2 所示。这在本次样本中共占 16 个。3) 停止响应 (14/54) 。很多网站在认为遭遇了攻击时就会直接停止攻击者的响应, 以保护自身网站的安全, 具

9、体可如图 3 所示。这样的网站在本次样本中共占 14 个。4) 自定义响应 (5/54) 。还有少数网站也会给出一定的提示, 或者给出一定的响应特征表示此请求已被 WAF 禁止, 但是响应特征不明显, 因而很难提取。这样的网站在本次样本中共占 5 个。图 1 404 响应码 Fig.1 Response status code 404 下载原图综合以上研究论述后, 可得分析结论如下:1) 网站和网站之间的 WAF 响应相对独立, 没有确定的 WAF 特征等, 所以需要对每一个网站单独处理。2) 前 3 种 WAF 响应通过相似度匹配可以较好地分离出来, 准确率较高, 且在本次 WAF 样本中占

10、据了很大比例。3) 对于自定义 WAF 响应, 表现形式并不突出, 分离难度较高, 这样的响应需要通过人工输入正则匹配特征的方式来处理。图 2 明显的拦截提示 Fig.2 Recognizable banned prompt 下载原图图 3 停止响应的网站 Fig.3 Website that has stopped responding 下载原图1.2 整体架构本文设计的 WAF 规则自动探测工具并不仅仅局限于狭义的 WAF 产品, 也可以是代码层级的网站防护。通过输入一个 url 和目标参数, 利用工具将可自动探测目标网址 WAF 的规则配置。由图 4 可知, 输入 URL 参数以及 PA

11、RAM 参数即可运行工具, 同时也有一些其他的输入。其中, -h 参数显示帮助信息;-d 参数表示使用 POST 方法进行探测;-cookie 参数可以定制发送的 cookie;-header 参数可以定制请求头;-test 参数涉及的是测试使用;-t 参数可以配置程序使用的线程数;-r 参数可以配置响应结果的正则匹配。整个工具分为 3 个模块:网站过滤检测模块、攻击向量生成模块、过滤规则生成模块。程序运行流程则如图 5 所示。图 4 WAF 规则自动探测工具控制台输入帮助 Fig.4 WAF rules auto detection tools help 下载原图参照图 5, 可得程序运行的

12、步骤推演论述如下:1) 解析用户输入。2) 发送两次原始请求, 以确定平均响应时间以及相同请求的响应相似度, 作为最高相似度。3) 按照几种不同类型的参数发送请求, 得到响应结果, 并对响应结果计算相似度, 根据相似度对响应结果进行分类。4) 若仅有一个类别, 则未探测到 WAF 的存在, 程序退出;若有多种类别, 则继续进行下一步。5) 对不同种类的恶意参数进行大量的尝试, 并把响应结果归类。6) 根据归类情况整理得到 WAF 禁止的字符串列表。7) 输出 WAF 禁止的字符串列表, 即为 WAF 规则, 程序结束。在程序运行过程中, 第 1 步属于前期准备阶段;第 24 步属于网站过滤检测

13、模块;第5 步属于攻击向量生成模块;第 67 步属于过滤规则生成模块。下面将详细介绍研究中各重点模块的设计方法。图 5 WAF 规则自动探测流程图 Fig.5 Flow chart of WAF rules auto detection 下载原图1.3 网站过滤检测模块在网站过滤检测模块中, 首先探测出平均响应时间以及相同请求的响应相似度, 便于之后的对比分析, 然后发送 5 个不同类型的参数构成的请求, 五个参数设计如下:参数 1 表示空参数;参数 2 代表数字型参数;参数 3 代表一般字符串型参数;参数4 代表恶意字符型参数;参数 5 表示恶意字符串型参数。通过发送五种类型参数的请求, 得

14、到网站对五种类型参数的响应, 比如正常响应、停止响应、无效响应等等。然后计算这五个响应两两之间的相似度以及与原始请求的相似度, 计算流程如图 6 所示。图 6 响应相似度计算流程图 Fig.6 Flow chart of computing similarity 下载原图由图 6 可见, 响应相似度的计算流程可对应表述为:响应的相似度首先根据是否有响应来计算, 如果两个响应均没有响应或停止响应, 则相似度为 1;如果两个响应中一个有正常响应、另一个没有, 则相似度为0;如果两个响应中均有正常响应, 则继续查看两个响应的响应码, 如果两个响应的响应码均不为 200 且相同, 则相似度为 1;如果

15、两个响应的响应码不同, 则相似度为 0;如果两个响应的响应码均为 200, 则计算响应内容的字符串相似度, 作为响应的相似度。计算字符串相似度的时候调用的是 python 的 difflib 库, 当字符串较长时, 计算时间也趋于可观, 比如 30 k 数据的内容在研究选用的 PC 机上需要计算 3 min 左右。另外, 部分网站的响应特征不明显, 虽然相似度较高, 却并非同一类型, 比如图 7、图 8 的网站。可以看出, 整个网页触发 WAF 规则的响应结果与正常响应结果仅仅是一句话的差别, 因而在分类这两种请求的时候带来的困难也越发突显。图 7 示例网站 WAF 结果 Fig.7 Bann

16、ed result of example website 下载原图图 8 示例网站正常结果 Fig.8 Normal result of example website 下载原图为了解决上述两个问题, 工具增加了正则匹配的功能。在输入中输入-r 参数, 输入一个正则表达式, 在计算字符串相似度的时候, 首先会对字符串调用正则匹配, 将匹配出来的结果再计算字符串相似度。如此, 臻至完美地解决了上述问题。对其研究释义可得内容为:首先, 当响应结果内容数据量较大时, 通过人工选择关键部分进行正则匹配, 可以优势提升计算效率, 不再被无效的字符串相似度计算时间而困扰;另外也可以通过人工选择关键部分, 将有效部分筛选出来, 方便机器计算相似度并归类, 不再为海量数据中找不到关键点而困扰。得到相似度之后, 通过相似度大小的比较, 得到两个请求是否为同一类。工具设置了全局变量 ACCEPTABLE_DIFF_RATIO, 为 0.05, 如果两个响应的相似度差别小于 0.05, 则视为同类请求;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号