端口扫描和SYN攻击

-- TOC --

端口扫描是为了发现系统监听端口,SYN攻击用到的技术,也是端口扫描的技术。

TCP端口扫描

connect全连接扫描

调用tcp socket的connect接口发起连接,能够连接成功,说明端口开放。

这种方式编程简单,容易实现。

很多tcping工具,也是利用这个技术。

SYN半连接扫描

只发送第1个SYN报文,如果收到SYN+ACK,说明端口开放。

编程难度较大,需要自己实现raw socket。

还有很多其它的扫描方式。

SYN Flood攻击

在TCP三次握手过程中,服务器发送SYN+ACK之后,在收到客户端的ACK之前,TCP连接称为半连接(half-open connect),此时服务器处于SYN_RCVD状态。当收到ACK后,服务器转入ESTABLISHED状态。

SYN攻击就是,客户端 在短时间内伪造大量不存在的IP地址,向服务器不断地发送SYN包,服务器回复SYN+ACK,并等待客户的确认,由于源IP地址不存在(或者收到不回应呢?),服务器需要不断的重发直至超时,这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求可能会被丢弃;同时还会大量占用服务器的内存资源,因为要保存半连接过程中协商的各项参数,目标系统将运行缓慢,严重者引起网络堵塞甚至系统瘫痪。

syn_flood.png

In the past flooding the SYN Queue with bogus spoofed SYN packets was a real problem. Before 1996 it was possible to successfully deny the service of almost any TCP server with very little bandwidth, just by filling the SYN Queues.

SYN攻击是一个典型的DDOS攻击。检测SYN攻击非常的方便,当你在服务器上看到大量的半连接状态的TCP时,特别是源IP地址是随机的,基本上可以断定这是一次SYN攻击。

对抗SYN Flood攻击的武器:SYN Cookie

本文链接:https://cs.pynote.net/se/202204081/

-- EOF --

-- MORE --