大家好,我是讯享网,大家多多关注。
其实今天说起来是小事,想起来却是大事。至于重视与否,就看站长的运维安全意识了!那就是网站上线后必须面对的“慢速http拒绝服务”攻击。许多这类WAF攻击将被归类为CC攻击。
什么是慢速http拒绝服务攻击?
慢速http拒绝服务攻击是一种专门针对Web的应用级拒绝服务攻击。攻击者操纵网络上的鸡,对目标Web服务器进行海量http请求攻击,直到服务器带宽满为止,造成拒绝服务。
经过不断的演变和发展,主要有三种攻击类型,分别是慢头、慢体和慢读。以慢速标题为例。Web应用程序在处理HTTP请求之前必须接收所有的HTTP头,因为HTTP头包含Web应用程序可能使用的一些重要信息。攻击者利用这一点,发起HTTP请求,不断发送HTTP头,消耗服务器的连接和内存资源。从抓包数据可以看出,攻击客户端与服务器建立TCP连接后,每隔40秒只向服务器发送一个HTTP头,但当Web服务器连续两次没有收到\ r \ ns时,就会认为客户端还没有发送完头,而是一直等待客户端发送数据。如果恶意攻击者客户端继续建立这样的连接,服务器上的可用连接将被一点一点填满,从而导致拒绝服务。这种类型的攻击称为慢速HTTP拒绝服务攻击。
慢速http攻击,也叫慢速HTTP攻击,是DoS攻击的一种方式。由于HTTP请求的底层使用TCP网络连接进行会话,如果中间件设置会话超时不合理,HTTP在发送请求时发送HTTP请求很慢,就会导致一个HTTP连接会话被占用。发送大量慢速HTTP数据包会导致拒绝服务攻击DoS。
SlowaAttack可以大致分为以下几类
慢速标头(也称为slowloris):每个HTTP请求都以空行结尾,即两个(\r\n)结尾。如果空行被删除,也就是说,它以一个(\r\n)结尾,服务器将等待,直到超时。当等待过程中线程数(连接数)被占用,服务器线程数达到极限时,新的合法HTTP请求无法处理,从而达到DOS目的。
慢读(又称慢读攻击):向Web服务器发送一个正常合法的读请求,请求一个非常大的文件,设置TCP滑动窗口大小小到1或2。服务器会以非常慢的速度发送文件,文件会长时间停留在服务器内存中,消耗资源,造成DOS。
慢体(又称慢HTTP POST):攻击者向服务器发送POST请求,告知服务器其要发布的数据为N,服务器会分配一个长度为N的空空间等待数据接收。当n足够大,POST请求足够多时,这种攻击会占用服务器大量内存,降低服务器性能,甚至导致瘫痪。
以及多年前的Apache Range攻击(现已修复):HTTP请求的Range头包含大量字段,使得服务器将一个很小的文件拆分成大量更小的片段,并在服务器端重新压缩。分段过程会消耗大量服务器资源,从而导致DOS。
这里有两点需要注意:
tcp 窗口设置要比服务器的 socket 缓存小,这样发送才慢。请求的文件要比服务器的 socket 缓存大,使得服务器无法一下子将文件放到缓存,然后去处理其他事情,而是必须不停地将文件切割成窗口大小,再放入缓存。同时攻击端一直说自己收不到。
常用测试工具
SlowHTTPTest是一个对服务器进行慢速攻击的测试软件。所谓慢攻,就是比cc或者DDoS更快。能让服务器挂机的不仅仅是数量大和速度快,有时候用慢攻也能达到同样的效果。slowhttptest包含了之前的几个慢攻击,包括slow loris,slow http post,slow read攻击等等。那么这些慢攻工具的原理就是想办法让服务器等待。当服务器保持连接并等待时,自然会消耗资源。
这种所谓的慢速http拒绝服务攻击可以说是只要网站上线就要面临,而且上线时间越长,越频繁。如果任其发展,往往会通过改变攻击方式或增加攻击频率,在一定时间内消耗服务器流量甚至服务器计算负载。通常情况下,动物是无害的,有时给你突然爆发说实话是件坏事。所以明月一直无法忍受,无法接受,一直想尽一切办法拦截,屏蔽。
目前发现最好的免费解决方案其实是用CDN处理,不暴露服务器的真实IP。实际测量在过去的两周内取得了显著的效果。今天,岳明将与你分享这一经验。
其实原理很简单。借助DNS服务商的多线解析和CloudFlare、WebGuard、上海云盾CDN等带有WAF的免费CDN,拦截和屏蔽慢速http拒绝服务攻击。废话不多。先说上图:
如上图所示,在网站卫士的基础上安装CloudFlare后红框中的WAF统计可以清楚的看到,CC攻击的数量明显减少了很多,这也说明了慢速http拒绝服务攻击等自动脚本大部分使用的是海外代理IP发送的请求,而CloudFlare的WAF刚刚被过滤清理,剩下的只是网站卫士发现并拦截的少数国内代理IP。
其实给自己的网站实现这个所谓的网站卫士CloudFlare很简单。如上图所示,是通过DNS服务的“解析行”来实现的。从截图可以看出,目前阿里云DNS的解析线分配还是很丰富的。如果有必要,甚至可以按照运营商来分配线路,甚至有专门针对搜索引擎的线路分配。目前,岳明已经将“默认”行解析分配给网站卫士的CNAME解析记录,将“海外”行解析分配给CloudFlare的CNAME解析记录,从而实现了网站卫士设置CloudFlare。不是很简单吗?
目前唯一的缺陷就是CloudFlare的使用方式。在早期,您可以在第三方CloudFlare合作伙伴平台的帮助下访问CNAME的CloudFlare。由于CloudFlare禁用了主机API键,因此无法使用此方法。在【CloudFlare官方免费CNAME访问】的帮助下,一些人也可以以免费CNAME的方式访问CloudFlare。感兴趣的朋友可以看看!
至于把DNS服务器修改成CloudFlare的NS,这个方法应该是最简单高效的。但如果国内站点考虑到国内访问的域名解析效率不推荐,请自行选择!
本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://51itzy.com/26274.html