欢迎光临
我们一直在努力

cloudflare属于境外域名吗,租服务器跑流量

其实今天说这个事儿是个小事儿,但又是个细思极恐的大事儿,至于重视不重视就看站长自己们的运维安全防范意识了!那就是网站上线后必须要面对的“缓慢的 http 拒绝服务”攻击,这类攻击不少 WAF 都会归类到 CC 攻击的范畴里。

什么是缓慢的 http 拒绝服务攻击

缓慢的 http 拒绝服务攻击是一种专门针对于 Web 的应用层拒绝服务攻击,攻击者操纵网络上的肉鸡,对目标 Web 服务器进行海量 http request 攻击,直到服务器带宽被打满,造成了拒绝服务。

慢速 HTTP 拒绝服务攻击经过不断的演变和发展,主要有三种攻击类型,分别是 Slow headers、Slow body、Slow read。以 Slow headers 为例,Web 应用在处理 HTTP 请求之前都要先接收完所有的 HTTP 头部,因为 HTTP 头部中包含了一些 Web 应用可能用到的重要的信息。攻击者利用这点,发起一个 HTTP 请求,一直不停地发送 HTTP 头部,消耗服务器的连接和内存资源。抓包数据可见,攻击客户端与服务器建立 TCP 连接后,每 40 秒才向服务器发送一个 HTTP 头部,而 Web 服务器再没接收到 2 个连续的rn 时,会认为客户端没有发送完头部,而持续地等等客户端发送数据。如果恶意攻击者客户端持续建立这样的连接,那么服务器上可用的连接将一点一点被占满,从而导致拒绝服务。这种攻击类型称为慢速 HTTP 拒绝服务攻击。

HTTP 慢速攻击也叫 slow http attack,是一种 DoS 攻击的方式。由于 HTTP 请求底层使用 TCP 网络连接进行会话,因此如果中间件对会话超时时间设置不合理,并且 HTTP 在发送请求的时候采用慢速发 HTTP 请求,就会导致占用一个 HTTP 连接会话。如果发送大量慢速的 HTTP 包就会导致拒绝服务攻击 DoS。

Slow Attack 大致可分为以下几种

Slow headers(也称 slowloris):每个 HTTP 请求都是以空行结尾,即以两个 (rn)结 尾 。 若将空行去掉 ,即以 一个 (rn) 结尾,则服务器会一直等待直到超时。在等待过程中占用线程(连接数),服务器线程数量达到极限,则无法处理新的合法的 HTTP 请求,达到 DOS 目的。

Slow read(也称 Slow Read attack):向 Web 服务器发送正常合法的 read 请求,请求一个很大的文件,并将 TCP 滑动窗口 size 设置很小如 1 或 2,服务器就会以非常缓慢的速度发送文件,文件将长期滞留在服务器内存中,消耗资源,造成 DOS。

Slow body(也称 Slow HTTP POST):攻击者向服务器发送 POST 请求,告诉服务器它将要 POST 的数据为 n,服务器将分配长度为 n 的空间来等待接收数据。当 n 足够大, POST 的请求足够多的时候,这种攻击会占用服务器的大量内存,从而降低服务器性能,甚至导致瘫痪。

以及多年前的 Apache Range Attack(现已修复):在 HTTP 请求的 RANGE HEADER 中包含大量字段,使得服务器在服务端将一个很小的文件分割成大量的更小的片段再压缩。分段压缩过程消耗大量的服务器资源,导致 DOS。

这里有两点要注意:

  • tcp 窗口设置要比服务器的 socket 缓存小,这样发送才慢。
  • 请求的文件要比服务器的 socket 缓存大,使得服务器无法一下子将文件放到缓存,然后去处理其他事情,而是必须不停地将文件切割成窗口大小,再放入缓存。同时攻击端一直说自己收不到。

常见的测试工具

SlowHTTPTest 是一款对服务器进行慢攻击的测试软件,所谓的慢攻击就是相对于 cc 或者 DDoS 得快而言的,并不是只有量大速度快才能把服务器搞挂,使用慢攻击有时候也能到达同一效果。slowhttptest 包含了之前几种慢攻击的攻击方式,包括 slowloris, Slow HTTP POST, Slow Read attack 等。那么这些慢攻击工具的原理就是想办法让服务器等待,当服务器在保持连接等待时,自然就消耗了资源。

这种所谓缓慢的 http 拒绝服务攻击可以说只要网站上线就会面临,上线时间越久越频繁,如果放任不管经常会在某个时段或者变换攻击方式、或者提高攻击频率等等方式来消耗服务器的流量甚至服务器运算负载。平时不显山不露水的,牲畜无害,指不定啥时候给你来个突然暴走说实话很坏事儿的。所以,明月是一直无法忍受和接受不了的,一直都在想尽一切办法拦截、屏蔽。

cloudflare属于境外域名吗,租服务器跑流量

目前发现最好的免费解决方案其实就是在未暴露服务器真实 IP 的情况下借助 CDN 来应对,实测这两周以来效果显著,今天明月就给大家分享一下这个经验。

原理其实很简单借助 DNS 服务商的多线路解析配合 CloudFlare、网站卫士、上海云盾 CDN 等拥有 WAF 的免费 CDN 实现对缓慢的 http 拒绝服务攻击的拦截和屏蔽,废话不多说了先上图:

如上图所示,红框内的是在网站卫士基础之上套了 CloudFlare 后的 WAF 统计情况,可以明显看出来 CC 攻击数量明显减少了很多,这也更说明缓慢的 http 拒绝服务攻击这种自动脚本大部分都用的是海外代理 IP 发送的请求,CloudFlare 的 WAF 正好给过滤清洗掉了,剩下的也都是仅有的几个国内代理 IP 又被网站卫士给发现拦截了。

要给自己的网站实现这个所谓的网站卫士套 CloudFlare 其实也很简单,就是如上图所示,借助 DNS 服务的“解析线路”来实现的,截图上可以看到目前阿里云 DNS 的解析线路分配还是很丰富的,有需要的话甚至可以按照运营商来分配线路,甚至针对搜索引擎都有专门的线路分配。明月目前就是将“默认”线路解析分配给了网站卫士的 CNAME 解析记录,将”境外“线路解析给了 CloudFlare 的 CNAME 解析记录,这样就实现了网站卫士套 CloudFlare 了,是不是很简单。

目前唯一的瑕疵就是 CloudFlare 的使用方式了,早期可以借助第三方 CloudFlare Partner 平台使用 CNAME 方式接入到 CloudFlare 上,自从 CloudFlare 禁用 Host API key 后,这个方法也没法用了,有人借助【CloudFlare 官方免费 CNAME 接入】这篇文章的方法也能实现免费 CNAME 方式接入 CloudFlare,有兴趣的朋友可以看看!

至于使用修改 DNS 服务器到 CloudFlare 的 NS 上这个方式应该是最简单高效的了,但如果是国内站点考虑到国内访问域名解析效率并不推荐的,大家自己斟酌着选择吧!

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。