网站对我的浏览器进行了哪些检查以保护网站免受 DDoS 攻击?

信息安全 网页浏览器 ddos 网站
2021-08-11 01:08:35

我访问的一些网站将我带到一个粗略的页面,“在访问 example.com 之前检查您的浏览器。CloudFlare 的 DDoS 攻击保护”。

正在检查我的浏览器的具体情况,这将如何帮助防止 DDoS 攻击?

来自 CloudFlare 的自动 DDoS 保护

4个回答

大多数拒绝服务 (DOS) 攻击依赖于攻击者方和目标方所涉及的资源之间的某种不对称性。换句话说,要成功,DOS 需要一个动作来要求客户端很少的资源(因此每个客户端可以发送大量请求),同时涉及更大的资源服务器端(因此服务器将无法处理负载)。

因此,DDOS 攻击(DOS 攻击的“分布式”版本)显然不是由真人点击浏览器选项卡中的链接进行的,而是由机器人向目标发送大量并行请求。这样做的结果是 DDOS“客户端”不是一个真正的浏览器,而是一个可以或多或少模拟浏览器的工具。

Cloudflare DDOS 保护系统在他们的网站上被快速描述如下:“在检查完成时,一个间隙页面会呈现给您网站的访问者 5 秒钟”

这里有两件事引起我的注意:

  • 检查:从自动 DDOS 机器人中对真实网站用户进行分类的最明显方法是检查 HTTP 客户端是否是真实浏览器。这可以通过针对一组测试来测试客户端的行为(例如,参见帖子通过浏览器指纹检测机器人)并将结果与​​客户端声称的真实浏览器实例的预期结果进行比较(例如如果客户端声称是在 Windows 10 机器上运行的 Firefox 版本 52,它是否呈现相同的特征?)。

  • 5 秒:执行 JavaScript 测试和重定向访问者可能是一个非常快速且几乎透明的操作,所以我相信这个“​​5 秒”超时不是偶然的,而是为了恢复计算不对称性,有利于服务器。

    • 这种原则的最简单的版本就是要求客户端等待(休眠)5 秒,然后重新提交相同的请求(在 cookie 中存储一个唯一标识符,如 Cloudflare 页面所述)。这将迫使 DDOS 客户端以某种方式处理待处理的重定向队列,并最终降低整个 DDOS 进程的效率。

    • 一个更残酷的选择是要求浏览器解决一些数学难题,这在普通家庭系统上需要几秒钟才能解决。在这种情况下,如果攻击者想要继续,除了花费计算能力来解决这些挑战之外别无选择,但这样做将完全消除不对称性,因为攻击者的所有资源都将忙于解决挑战而不是发送请求,最后“DOSing”攻击者的系统而不是目标的系统。

只是添加我从经验中知道的内容:Cloudflare 阻止非图形浏览器(测试:链接,lynx),不是在第一个页面视图中,而是在第二个页面视图中。这些浏览器(大概)不加载图像,至少不显示它们,它们也不支持 javascript。

我怎么知道?被一个破碎的图形环境困住并在网上搜索答案……

“浏览器挑战”有什么作用?

JavaScript 中一个简单的平庸计算。然后它将 UID 设置为浏览器中的 cookie。因此,下次您访问该网站时,它会检查 cookie 是否存在以及是否未过期。如果 cookie 不存在或已过期,它将再次“挑战”您。

如何?

页面和 JavaScript 中有一个隐藏的表单,表单获取随机的“秘密”数字,JavaScript 进行数学运算并将表单提交给服务器。

这是缓解第 7 层 DDoS 攻击的最平庸的方法,因为只有真正的(ish)浏览器才能运行 JavaScript 并进行计算。常规的 DDoS 脚本,例如:slow loris 无法运行 JavaScript,并且由于服务器没有收到计算,它只返回 403/503。

这意味着该页面的所有者雇佣了 Cloudflare 服务来保护他/她的页面免受 DoS 攻击。是某种中间页面,它检查连接,然后在检查通过时重定向并显示最终页面。

他们检查连接的来源(IP)、数据包的类型、数据包的大小、接收的数据包数量(速率)、浏览器的用户代理等......合法或不通过过滤器。