反射攻击一般用来做放大攻击使用,很多网络协议的请求和响应数据量差别很大(有的协议最大响应数据可以是请求数据的成百上千倍),反射放大攻击也正是利用了这点,故反射器的放大倍数越大攻击所产生的流量也就越大。
在互联网上可以用来做反射器的设备很多,通常只需无需认证或握手就行。因为增加了一个反射步骤,所以更加难以溯源攻击来源。
下面列举一些比较常见的反射放大攻击类型:
DNS反射攻击 NTP反射攻击 SNMP反射攻击
②、攻击中间链路型:
攻击链路型与攻击目标型相比,最根本的区别在于攻击的目标不同。攻击链路型攻击的目标不是作为互联网端点的服务器带宽资源,而是骨干网上的链路带宽资源。当黑客将用户到达目标服务器中间的链路带宽资源耗尽时,用户的流量就不能正确转发至目标服务器了,从而造成拒绝服务工具。(不过这种攻击有一个副作用,就是被攻击骨干网下游的所有服务器都将受牵连。笔者所在公司就曾因为微博被打而误伤)
2、攻击系统资源型:
很多云安全厂商在宣传时都会以“我们防住了XXXGB流量的DDOS攻击”来描述攻击的猛烈程度,这种宣传方式容易让人误以为只有大流量才是DDOS。实际上是除了带宽资源,DDOS攻击还可以是消耗系统(比如CPU、内存、网络连接表等)。例如SYN洪水攻击,很多时候人们容易把它认为是消耗带宽型的DDOS攻击,实则不然,它最大的危害在于消耗系统连接表资源。
在消耗系统资源型中大致可分为这么三类:
①、消耗网络连接表型
在TCP三次握手进行中,服务器会创建并保存TCP连接的信息,这个信息通常被保存在连接表结构中。但是连接表的大小是有限的,linux默认一个端口最大支持1024个连接(可以通过ulimit -n来查看支持最大连接数),一旦服务器的连接表满了就无法再创建新的TCP连接了。
此时,攻击者就可以利用大量僵尸主机,通过建立大量恶意的TCP连接占满被攻击目标的连接表,使目标无法接受新的TCP连接请求,从而达到拒绝服务的目的。
②、消耗内存型
在服务端优化了最大连接数后连接数将不再是瓶颈,但是每条连接总要占用内存资源吧,这么说来只要和目标建立足够多的TCP连接就可以将目标设备内存占满了。但是有个前提,就是建立TCP连接后不能撒手。
相比其他洪水攻击来讲这种方式在速度上可以不用那么快,不是一拳就把对方打到,而是在前面压力不释放的前提下一点一点的给对方累加压力,直到到达对方的性能瓶颈为止。这种攻击也俗称:慢速DOS攻击!
面对web服务有这么几种常见的维持长链接手段:
1、将content-length设为一个较大的值,但是每次http body只缓慢的发送一个较小的值,这样将一个大数据分多次且有间隔时间的发送就可延长和服务端的连接
2、攻击者将自身的TCP窗口调为一个很小的值,这样目标就会将一个较大的数据切成很小的块分多次返回,以此来拖延传输时长
3、在http协议中规定,http头部以连续的'\r\n\r\n'作为结束标志,因此攻击者可以一直不发'\r\n\r\n'好让服务端以为客户端的请求还没发送完毕而处于等待状态
经典的慢速DOS攻击工具:slowhttptest
③、消耗CPU型
在系统资源里还有最重要的一项资源,那就是cpu! 如果目标设备开启的服务里有需要大量计算的地方那对于攻击者来说将会是很大的诱惑。比如说你提供的服务有3项功能,其中一项明显比另外两项更加消耗cpu资源,那攻击者就可以专挑你这个最耗cpu的功能来疯狂使用,直至将你的cpu资源耗尽!