形式,人是点击不到的,只有软件能够匹配出这个地址。WAF是如何识别扫描器的?( 二 )。" />

WAF是如何识别扫描器的?( 二 )


隐藏的标签链接是指人看不见的链接,如<a href=https://www.isolves.com/it/aq/rj/2019-12-02/"http://www.cnseay.com/"> 形式,人是点击不到的,只有软件能够匹配出这个地址,我们新建一个网页,抓扫描器数据包测试 。
<html> <head> <title>test</title> </head> <body> <a href=https://www.isolves.com/it/aq/rj/2019-12-02/"http://localhost/1.php?id=1"> 通过抓取wvs的数据包可以看到,扫描器很快的捕获了http://localhost/1.php?id=1这个链接,并进行漏洞测试 。

WAF是如何识别扫描器的?

文章插图
 
当然如果在正常情况下也给所有用户植入这种代码是非常令人反感的,用户体验也会大打折扣,可以在前期先做一些条件限制,比如固定时间段内触发waf拦截规则到达预定阀值,再给这个用户单独植入一个隐藏链接 。
四、Cookie植入
Cookie植入的方式跟上面讲的隐藏链接植入大同小异,实现原理是:当一个IP+user angent在固定时间段内触发规则的次数到达一定阀值,给发起请求的这个人植入一个cookie,如果下次再请求没有携带这个cookie,则说明是扫描器 。
cookie植入有利有弊,优点是更直接,种下cookie马上就能根据下一个请求判断 。缺点是这个方式在基于webkit的扫描器上面行不通 。
五、验证码验证
验证码验证的方式跟上面的cookie植入也大同小异,不过是把cookie换成了验证码的方式,这种方法也被用于防CC攻击 。
六、单IP请求时间段内Webserver返回http状态404比例
这种方法主要用来应对探测敏感目录和文件的扫描器,这类的扫描器都是基于字典文件,通过对字典内的url进行请求获得的返回信息来进行判断目录或者文件的是否存在 。
如果某个IP在一段时间内请求频率过快,这时候waf可以进行收集一段时间内webserver返回404状态数目,到达一定阀值后进行封杀 。
WAF是如何识别扫描器的?

文章插图
 
看过上面几种方法的介绍,应该大部分人都会想到两个问题,
1. 一大拨人使用同一个公网IP,怎么判断谁是攻击者?
2. 一大拨人使用同一个公网IP,怎么才能保证不误杀?
第一,对于怎么判断攻击者,当然不能单纯的从一个IP判断,一般一个完整的http请求都会带有
user angent、cookie等信息,我们可以结合ip+user angent来判断请求的人,或者再加一个cookie的维度,当然在给这个攻击者植隐藏链接、cookie或者验证码之前,需要它触发一些规则阀值,以免影响用户体验 。
第二,说到怎么保证不误杀,也就是怎么去封杀的问题,关键在于怎么二次判断攻击者,目前最好的方法也是利用ip+user angent,在判断是扫描器请求后,根据IP+user angent进行封杀,另外也是靠cookie封杀,关键在于是携带某个cookie键的封杀掉还是不带的封杀掉 。




推荐阅读