“首包丢弃”防御SYN Flood攻击的基本原理解析

根据2017年的安全研究分析显示,由于IoT的迅速发展,智能路由器、摄像头等设备数量也随之剧增,给DDoS攻击的滋长提供了温室。因智能设备漏洞较多,并更新修复困难,导致此类设备容易被黑客入侵控制,成为发动DDoS攻击的“肉鸡”。 

网络环境安全问题日益严峻,据网堤安全监控平台上半年的数据显示,小于50G的攻击占比85%,但每天都有超过300G的攻击,其中攻击类型多数为SYN Flood、NTP反射等。

下面将对网堤流量清洗系统中8月份的一个攻击事件进行解析,以此说明“首包丢弃”的防御原理。

攻击从当天凌晨5点半开始,持续了半小时左右,最高峰值达到了379.41 Gb。通过查看抓包报文,确定了本次是TCP协议的SYN Flood攻击。

“首包丢弃”防御SYN Flood攻击的基本原理解析_第1张图片
“首包丢弃”防御SYN Flood攻击的基本原理解析_第2张图片

接着查询了攻击源IP地址,分别是:162.244.80.3(美国纽约)、51.15.189.110(法国法兰西岛)、13.76.45.243(新加坡)194.116.73.188(意大利),都是来自不同地区的IP。

然后统计了报文里的源IP,总共有4934个。这种情况下,要么就是攻击者有很多“肉鸡”,要么就是伪造源IP的SYN报文。最后,通过统计源IP报文数量发现,每个源IP只发了一个SYN报文。因此可以确定是属于伪造源IP的SYN Flood攻击。

那么针对这类攻击,如何通过“首包丢弃”来进行防御呢?

相信了解过TCP三次握手的朋友都知道,客户端和服务器要建立连接,需要进行三次握手,而客户端请求连接时,第一个包就是SYN报文,当服务器收到后,会回复SYN ACK报文,之后客户端再发送ACK报文,确定建立连接完成。

“首包丢弃”防御SYN Flood攻击的基本原理解析_第3张图片

攻击者针对TCP三次握手机制的漏洞,制造了SYN Flood攻击。首先攻击者向服务器发送了一个SYN报文后,紧接着就下线了。于是,服务器没有接收到ACK报文,只能等待默认的63秒后才会断开连接。就这样,攻击者通过向服务器发起大量的SYN报文,把服务器的SYN报文连接的队列生生耗尽,导致正常的连接请求得不到处理。

此时可通过丢弃客户端的第一个SYN报文来达到防御的目的,这就是“首包丢弃”了。但如果丢弃了SYN报文,客户端与服务器之间又如何进行连接呢?

TCP是一种可靠的协议,为了确保所有的数据包都能到达服务器,设计了一个重传机制。真实的客户端访问,在一定的时间内如果没有收到服务器的回复,将会再次发送SYN报文,但攻击机制通常不会再重发。所以丢弃首次SYN报文后,就相当于过滤掉了虚假的客户端访问,进而防御了伪造源IP进行的SYN Flood攻击,保障了服务器的正常运行。

你可能感兴趣的:(“首包丢弃”防御SYN Flood攻击的基本原理解析)