我开始看到这种类似于对Linux服务器的拒绝服务攻击的奇怪结果。 其结果是,networking至less部分不能使用,就像传统的DOS或DDOS攻击一样。
下面是在“攻击”期间修剪的netstat转储(假设是这样):
Proto Recv-Q Send-Q Local Address Foreign Address State PID tcp 1 0 1.2.3.1:80 50.128.251.184:1768 CLOSE_WAIT 18482/httpd tcp 0 1 1.2.3.4:80 71.75.22.31:52323 LAST_ACK - tcp 0 18980 1.2.3.4:80 98.180.31.210:60499 ESTABLISHED 18016/nginx: worker tcp 0 11709 1.2.3.4:80 98.180.31.210:60498 ESTABLISHED 18016/nginx: worker tcp 0 55743 1.2.3.4:80 71.75.22.31:52239 LAST_ACK - tcp 0 0 1.2.3.5:80 75.190.139.103:58265 ESTABLISHED 16808/httpd tcp 0 32814 1.2.3.4:80 71.75.22.31:52279 LAST_ACK - tcp 0 48029 1.2.3.4:80 71.75.22.31:52284 LAST_ACK - tcp 1 33581 1.2.3.4:80 71.75.22.31:52285 LAST_ACK - tcp 0 23582 1.2.3.4:80 71.75.22.31:52283 LAST_ACK - tcp 0 684 1.2.3.5:80 123.125.71.31:57865 FIN_WAIT1 - tcp 0 37621 1.2.3.4:80 71.75.22.31:52218 LAST_ACK - tcp 0 18980 1.2.3.4:80 174.106.209.104:39937 ESTABLISHED 18016/nginx: worker tcp 0 0 1.2.3.1:80 95.140.125.125:60078 ESTABLISHED 18377/httpd tcp 0 0 1.2.3.2:39509 2.2.3.1:3306 ESTABLISHED 18379/httpd tcp 0 174 1.2.3.2:33029 2.2.3.1:3306 ESTABLISHED 18482/httpd tcp 0 44538 1.2.3.4:80 72.230.205.217:58271 FIN_WAIT1 - tcp 0 64812 1.2.3.2:80 184.35.67.238:49173 ESTABLISHED 1251/httpd tcp 1 0 1.2.3.1:80 174.96.155.77:59167 CLOSE_WAIT 18379/httpd tcp 0 1 1.2.3.4:80 174.110.137.71:61496 FIN_WAIT1 - tcp 1 31751 1.2.3.4:80 99.25.112.12:55747 CLOSING - tcp 0 33396 1.2.3.4:80 99.25.112.12:55764 ESTABLISHED 18016/nginx: worker
主要注意通过基本上closures或部分closures的连接使用Send-Q缓冲区空间。 通过保持这些连接处于打开状态,看起来攻击者可以通过允许的发送队列进行刻录,并使stream量大部分停止。 这似乎不是一个复杂的攻击,但只有less数攻击者可以显着降低服务器的stream量。
有人认识到这种攻击模式,知道如何对付它吗?
看起来像是一种资源枯竭的攻击。 将需要更多的数据给出更具体的答案,但你能够获得孤立的攻击stream量数据包捕获?
不知道你在保护什么,但是你需要从互联网上获得很多连接吗? 我第一次尝试反击的方法是,你可以限制连接的数量 – 每个(主机/ netrange / etc)一个合理的阈值。