最近逛一些国内外的知名技术网站,发现了一个现象,大家仿佛约好了似的,都开始搞人机验证了。

图片

图片

为啥原来人机验证很少,现在频率这么高呢?

原因很简单:AI爬虫。

现在大家已经习惯了问AI技术问题,但是AI的数据从哪里来呢?自然是从这些技术网站“爬”来的。

如果爬虫按照robots.txt还好,坏就坏在有些爬虫完全不按规则行事,技术网站就不得不防了。

“原先就被爬,AI 起来以后,防不胜防,爬的更狠了”——某位大论坛的 CEO 如是说。

防止爬虫,技术上有很多方法,例如检查User-Agent,Referer,限制访问频率,检查Cookie等等。

只不过这些传统的方式很容易被爬虫绕过,逃过检测。

所以现在出现了一些更高级的反爬虫思路,例如识别行为:检测鼠标键盘的使用习惯,检测浏览器窗口的摆放位置,综合判断是不是真人行为。

识别本地浏览器的客户端特征,禁止无头浏览器访问。

注入算力验证脚本,消耗 CPU 资源,抬高客户端的访问成本,让原本每秒可以访问 1000 次的设备,在被保护后每秒只能访问 1 次。

打乱HTML结构,混淆JS代码等等。

......

这些防护行为,网站想自己实现非常麻烦的,最好用专业的软件,比如雷池这样的Web应用防火墙。

图片

雷池全球装机量超过50多万台,日均处理300亿次请求,检出率76.17%,误报率仅0.22%。

在GitHub上,雷池的star已经达到20.9k,是最受欢迎的WAF项目,没有之一。

它的安装非常简单,一行命令就行:

bash -c "$(curl -fsSLk https://waf-ce.chaitin.cn/release/latest/manager.sh)"

安装成功以后,就可以打开浏览器访问雷池控制台了

https://<safeline-ip>:9443/ 

图片

01

爬虫防护

安装好以后,进入人机验证设置:

图片

然后访问被雷池 WAF 防护的网站,就会看到雷池正在检查客户端环境的安全性。

图片

合法用户等待两三秒以后,真正的网页内容会自动载入,恶意用户则会被阻拦。

如果检测到本地客户端被自动化程序控制,访问依然会被阻止,如下图:

图片

还可以启用动态防护功能,,对返回给浏览器的 HTML、JS 进行动态处理,让每一次访问看到的代码形态都不完全一样。

图片

这样一来,爬虫和自动化脚本就很难通过“静态规则”来理解页面结构,比如这个JavaScript:

图片

被雷池进行动态加密以后变成了这个样子,很难辨认了。

图片

特别值得一提的是,雷池的人机识别是采用的是云端验证方式,每一次验证都会调用长亭的云端 API 来辅助验证。

结合雷池的 IP 威胁画像数据,浏览器指纹数据,最终对于爬虫的识别率超过 99.9%。可以说是反恶意爬虫的最佳利器。

与此同时,云端的算法和 JS 逻辑会持续自动更新,即使被厉害的大佬破解,破解的也只是过去的版本,雷池永远跑在攻击者的前面。

看着这么高的识别率,网站站长们肯定会担心这会不会影响 SEO,会不会影响搜索引擎对于网站页面的收录情况。

答案当然是 “不会”,雷池贴心的提供了各大搜索引擎的爬虫 IP 列表,如果对 SEO 有需求,只需要对这些 IP 加白即可。

图片

02

CC防护

在 Web 世界里,有一类攻击特别让人难受,叫 CC 攻击(Challenge Collapsar)。

攻击者会控制大量肉鸡(被感染的电脑)或代理服务器,伪装成正常浏览器访问网站,不断访问首页、搜索页、接口等。每个请求看起来都合法(有正常的 User-Agent、Referer、Cookie),但数量极其巨大。

最终让服务器过载,网页卡死、数据库阻塞或服务崩溃。

图片

由于请求看起来都合法,这种攻击非常难以防御。

针对这种情况,雷池防火墙提供了“频率限制”的功能,如果某个 IP 在短时间内发起大量 HTTP 请求,就阻断该 IP 后续的所有访问,要求它通过人机验证,确保是真人才行。

图片

还有不少应用存在高峰流量的情况,比如抢票,热点事件等,如果不进行限流,服务很容易被海量的请求冲垮,谁也用不了。

当然程序员可以写代码,深入到网站内部去实现限流功能,但是很麻烦,使用雷池的“等待室”功能,根本不用对应用做任何改变就可以实现限流。

图片

这里配置的在线用户是超过了100人就需要进入等待室等候了,而进入应用的用户,如果超过3分钟在网页上没有操作,对不起,那就去等候室重新排队吧。

03

身份认证

第一次看到“防火墙自带身份认证”这个功能时,我也愣了一下。按理说,认证不是应用程序自己该做的事吗?

但仔细想想,这个功能解决的其实是一个很现实的问题:很多系统从一开始就没打算暴露在公网。

比如一些内部工具、监控页面、管理后台,本来只打算给小范围的人用,结果后来为了方便,直接挂到了服务器上。

这类系统往往认证简单,甚至干脆没有认证,一旦被扫到,就是一个现成的入口。

雷池在这里提供的是一种“外挂式”的解决方案:不改应用代码,只在防火墙层面加一层身份校验,就能把这个入口先堵住。

图片

它不是用来替代应用本身的权限系统,而是在你来不及重构之前,先把门锁上。

图片

04

语义检测

除了上面所说的各种防护,雷池对于 SQL 注入、XSS、路径穿越、命令注入这些老生常谈的攻击方式,自然不在话下。

图片

雷池的准确率、检出率都非常高,误报率,漏报率非常低,性能指标优于全球的一些知名产品:

图片

但真正让我觉得它“不只是换了个壳”的,是它背后的思路。

传统防火墙更多是规则匹配,比如看到 union、select 这些关键字,就觉得你可能在搞 SQL 注入。

问题是,这种方式一方面容易误伤,另一方面也很容易被绕过, 稍微有点经验的攻击者,换个写法、插点注释,例如只要在在 union 和 select 中间插入了注释字符:union /**/ select,这样破坏了关键字的特征,传统防火墙就检测不出来了。

雷池用的是另一条路:语义分析。

它不是只盯着字符本身,而是尝试理解这段输入“在语义层面想干什么”。

对HTTP 请求解码之后,会根据内容类型交给不同的解析器,再判断这段输入是否真的会构成攻击。

说白了,就是:不看你写得像不像坏人,而是看你做的事能不能真的伤到系统。

05

总结

正是由于雷池精准地、漂亮地解决了Web系统广泛存在的安全问题,吸引了全球大量客户的使用,成为优秀企业的信赖之选。

如果你也有Web网站,需要把安全防护做好,强烈建议考虑下雷池这个非常优秀的开源的WAF。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐