概述
在前面的两篇贴子中,我们逐一介绍了利用TCP各种报文进行的Flood类攻击,以及华为Anti-DDoS解决方案的应对措施。由于TCP协议的重要性,攻击者们绞尽脑汁寻找协议可利用的弱点,针对TCP的攻击手段花样繁多。本篇我们就来介绍另外两种攻击方式:TCP连接耗尽攻击和TCP异常报文攻击。
0x01 TCP连接耗尽攻击与防御
TCP是面向连接的协议,通信双方必须保持连接状态,并且通过确认、重传、滑动窗口等机制,保证数据传输的可靠性和稳定性。攻击者利用TCP协议的上述特点,在TCP连接上做文章,利用TCP连接来消耗被攻击目标的系统资源,这类攻击的影响也不容小觑。
例如,攻击者与被攻击目标完成三次握手后,立刻发送FIN或RST报文,释放本端连接,同时快速发起新的连接,以此来消耗被攻击目标的系统资源。华为Anti-DDoS解决方案通过检查新建连接的速率来防御此类攻击。首先,针对受保护目标进行统计,当受保护目标的TCP新建连接速率超过阈值时,启动防御功能。然后针对源进行统计,如果某个源IP在指定的时间间隔内发起的TCP新建连接数超过了阈值,则将该源IP加入黑名单。
又比如,攻击者与被攻击目标完成三次握手后,发送很少的报文来维持连接状态,通过这种异常的TCP连接来消耗被攻击目标的系统资源。华为Anti-DDoS解决方案通过异常会话检查来防御此类攻击。如果受保护目标的TCP连接上特定时间内通过的报文数小于阈值,则认为该连接为异常会话。如果在特定时间内某个源IP的异常会话数超过阈值,则将该源IP加入黑名单。
除此之外,攻击者还会使用一些其他的攻击手段,比如构造大量的并发连接、设置很小的TCP窗口、发送重传报文等,其目的都是消耗被攻击目标的系统资源。总体来说,华为Anti-DDoS解决方案防御此类攻击时,还是基于会话机制,通过新建连接速率检查、并发连接数检查、异常会话检查等措施,将攻击源加入黑名单,阻断攻击流量达到防御效果。
0x02 TCP异常报文攻击与防御
TCP报文头中存在六个标志位字段,代表不同的含义,标志位的值置为1,表示该标志位起作用。我们在前面介绍TCP连接建立和断开过程时,提到过SYN、ACK和FIN标志位,下面是这六个标志位的详细信息:
URG:置1时表示紧急指针有效。
ACK:置1时表示确认序号有效。
PSH:置1时表示接收方收到数据段后应该尽快送到应用程序。
RST:置1时表示重新建立连接。
SYN:置1时表示发起一个连接。
FIN:置1时表示发送方完成发送任务,释放连接。
这六个标志位在TCP交互过程中各司其职,标志位置1与否必须严格遵循TCP协议规范。如果不遵循规范随意将标志位置0或置1,这类报文就称为TCP异常报文。接收方处理这些异常报文时会消耗系统资源,甚至可能会导致系统崩溃。攻击者也可以利用TCP异常报文来发起DDoS攻击,向被攻击目标发送大量的构造的TCP异常报文,导致被攻击目标系统资源耗尽、网络拥塞,无法正常提供服务。
华为Anti-DDoS解决方案通过检查TCP报文是否符合协议规范来防御异常报文攻击。例如,正常情况下TCP报文中六个标志位的值不可能都置为0。Anti-DDoS系统检查发现此类异常报文后,就直接将报文丢弃。
又比如,SYN标志位用来建立连接,FIN标志位用来断开连接,正常情况下同一个TCP报文中SYN和FIN标志位不可能同时置为1。同样,Anti-DDoS系统检查发现此类异常报文后,直接丢弃报文。
下面给出了Anti-DDoS系统判定TCP异常报文的原则,通过这些检查项,Anti-DDoS系统可以全面准确的防御TCP异常报文攻击。
针对TCP协议的DDoS攻击和防御原理至此都介绍完毕了,希望通过华安的讲解,能够让大家对这类攻击方式有进一步的了解。华安解密DDoS攻防系列的盛宴还未结束,后面将为大家呈上更丰富的Anti-DDoS组网方案大餐,请大家继续关注和支持华安。
最后
以上就是刻苦墨镜为你收集整理的TCP原理篇之连接耗尽攻击&异常报文攻击的全部内容,希望文章能够帮你解决TCP原理篇之连接耗尽攻击&异常报文攻击所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复