Skocz do zawartości
Desavil

TCP ZeroWindow - DoS?

Polecane posty

Witam, dla pewnej usługi kilka minut po jej uruchomieniu (wygląda to na ustawiony cron co 1 min u atakującego), gdyż o pełnej minucie zaczyna się atak - obserwuję bardzo duży ruch z jednego adresu IP, na port mojej usługi. Nie jest to jakiś atak co zapychałby łącze, nie przekracza on 1Mbps, ale zapycha usługę ilością zapytań w bardzo krótkim odstępie czasu.

 

Logi:

Client                Server                State        Idle A Speed
 37.187.41.198:42650   x.x.x.x:25565   ESTABLISHED  2s     0 B/s
 37.187.41.198:42077   x.x.x.x:25565   ESTABLISHED  0s     132 KB/s
 37.187.41.198:42076   x.x.x.x:25565   ESTABLISHED  1s     0 B/s
 37.187.41.198:42067   x.x.x.x:25565   ESTABLISHED  0s     0 B/s
 37.187.41.198:42075   x.x.x.x:25565   ESTABLISHED  2s     0 B/s
 37.187.41.198:42078   x.x.x.x:25565   ESTABLISHED  4s     0 B/s
 37.187.41.198:42060   x.x.x.x:25565   ESTABLISHED  0s     0 B/s
 37.187.41.198:42063   x.x.x.x:25565   ESTABLISHED  0s     0 B/s
 37.187.41.198:42653   x.x.x.x:25565   ESTABLISHED  0s     0 B/s
 37.187.41.198:42079   x.x.x.x:25565   ESTABLISHED  1s     0 B/s
 37.187.41.198:42074   x.x.x.x:25565   ESTABLISHED  2s     0 B/s
 37.187.41.198:42647   x.x.x.x:25565   ESTABLISHED  3s     0 B/s
 37.187.41.198:42080   x.x.x.x:25565   ESTABLISHED  2s     0 B/s
 37.187.41.198:42073   x.x.x.x:25565   ESTABLISHED  1s     0 B/s
 37.187.41.198:42072   x.x.x.x:25565   ESTABLISHED  3s     0 B/s
 37.187.41.198:42066   x.x.x.x:25565   ESTABLISHED  0s     0 B/s
 37.187.41.198:42081   x.x.x.x:25565   ESTABLISHED  1s     0 B/s
 37.187.41.198:42658   x.x.x.x:25565   ESTABLISHED  3s     0 B/s
 37.187.41.198:42651   x.x.x.x:25565   ESTABLISHED  0s     0 B/s
 37.187.41.198:42071   x.x.x.x:25565   ESTABLISHED  1s     0 B/s
 37.187.41.198:42656   x.x.x.x:25565   ESTABLISHED  3s     0 B/s
 37.187.41.198:42660   x.x.x.x:25565   ESTABLISHED  8s     0 B/s
 37.187.41.198:42062   x.x.x.x:25565   ESTABLISHED  1s     0 B/s
 37.187.41.198:42648   x.x.x.x:25565   ESTABLISHED  0s     0 B/s
 37.187.41.198:42644   x.x.x.x:25565   ESTABLISHED  1s     0 B/s
 37.187.41.198:42070   x.x.x.x:25565   ESTABLISHED  2s     0 B/s
 37.187.41.198:42065   x.x.x.x:25565   ESTABLISHED  3s     0 B/s
 37.187.41.198:42654   x.x.x.x:25565   ESTABLISHED  3s     0 B/s
 37.187.41.198:42645   x.x.x.x:25565   ESTABLISHED  4s     0 B/s
 37.187.41.198:42069   x.x.x.x:25565   ESTABLISHED  0s     132 KB/s
 37.187.41.198:42649   x.x.x.x:25565   ESTABLISHED  0s     0 B/s
 37.187.41.198:42652   x.x.x.x:25565   ESTABLISHED  1s     0 B/s
 37.187.41.198:42061   x.x.x.x:25565   ESTABLISHED  0s     64 KB/s
 37.187.41.198:42064   x.x.x.x:25565   ESTABLISHED  0s     0 B/s
 37.187.41.198:42657   x.x.x.x:25565   ESTABLISHED  1s     0 B/s
 TOTAL                                                           328 KB/s
 Connections 1-35 of 40                       Unpaused  Unsorted
23:39:21.976516 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 13713:15161, ack 1, win 0, options [nop,nop,TS val 1054079415 ecr 88469701], length 1448
23:39:21.976538 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 15161, win 351, options [nop,nop,TS val 88469712 ecr 1054079415], length 0
23:39:21.976519 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 15161:16609, ack 1, win 0, options [nop,nop,TS val 1054079415 ecr 88469701], length 1448
23:39:21.976543 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 16609, win 362, options [nop,nop,TS val 88469712 ecr 1054079415], length 0
23:39:21.976692 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [P.], seq 16609:18057, ack 1, win 0, options [nop,nop,TS val 1054079415 ecr 88469701], length 1448
23:39:21.976703 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 18057, win 374, options [nop,nop,TS val 88469713 ecr 1054079415], length 0
23:39:21.976740 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 18057:19505, ack 1, win 0, options [nop,nop,TS val 1054079415 ecr 88469701], length 1448
23:39:21.976749 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 19505, win 385, options [nop,nop,TS val 88469713 ecr 1054079415], length 0
23:39:21.976799 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 19505:20953, ack 1, win 0, options [nop,nop,TS val 1054079415 ecr 88469701], length 1448
23:39:21.976808 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 20953, win 396, options [nop,nop,TS val 88469713 ecr 1054079415], length 0
23:39:21.976922 IP 198.ip-37-187-41.eu.42067 > x.x.x.x.25565: Flags [.], seq 33985:35433, ack 1, win 0, options [nop,nop,TS val 1054079415 ecr 88469702], length 1448
23:39:21.977033 IP 198.ip-37-187-41.eu.42067 > x.x.x.x.25565: Flags [.], seq 35433:36881, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.977146 IP 198.ip-37-187-41.eu.42067 > x.x.x.x.25565: Flags [.], seq 36881:38329, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.977261 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 20953:22401, ack 1, win 0, options [nop,nop,TS val 1054079415 ecr 88469701], length 1448
23:39:21.977273 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 22401, win 408, options [nop,nop,TS val 88469713 ecr 1054079415], length 0
23:39:21.977263 IP 198.ip-37-187-41.eu.42067 > x.x.x.x.25565: Flags [.], seq 38329:39777, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.977373 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 22401:23849, ack 1, win 0, options [nop,nop,TS val 1054079415 ecr 88469702], length 1448
23:39:21.977382 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 23849, win 419, options [nop,nop,TS val 88469713 ecr 1054079415], length 0
23:39:21.977482 IP 198.ip-37-187-41.eu.42067 > x.x.x.x.25565: Flags [.], seq 39777:41225, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.977587 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 23849:25297, ack 1, win 0, options [nop,nop,TS val 1054079415 ecr 88469702], length 1448
23:39:21.977597 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 25297, win 419, options [nop,nop,TS val 88469713 ecr 1054079415], length 0
23:39:21.977695 IP 198.ip-37-187-41.eu.42067 > x.x.x.x.25565: Flags [.], seq 41225:42673, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.977824 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 25297:26745, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.977833 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 26745, win 414, options [nop,nop,TS val 88469714 ecr 1054079416], length 0
23:39:21.977826 IP 198.ip-37-187-41.eu.42067 > x.x.x.x.25565: Flags [.], seq 42673:44121, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.977935 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 26745:28193, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.977946 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 28193, win 409, options [nop,nop,TS val 88469714 ecr 1054079416], length 0
23:39:21.978047 IP 198.ip-37-187-41.eu.42067 > x.x.x.x.25565: Flags [.], seq 44121:45569, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.978129 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 28193:29641, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.978138 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 29641, win 404, options [nop,nop,TS val 88469714 ecr 1054079416], length 0
23:39:21.978241 IP 198.ip-37-187-41.eu.42067 > x.x.x.x.25565: Flags [.], seq 45569:47017, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.978347 IP 198.ip-37-187-41.eu.42654 > x.x.x.x.25565: Flags [.], seq 29641:31089, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448
23:39:21.978355 IP x.x.x.x.25565 > 198.ip-37-187-41.eu.42654: Flags [.], ack 31089, win 399, options [nop,nop,TS val 88469714 ecr 1054079416], length 0
23:39:21.978454 IP 198.ip-37-187-41.eu.42067 > x.x.x.x.25565: Flags [.], seq 47017:48465, ack 1, win 0, options [nop,nop,TS val 1054079416 ecr 88469702], length 1448

Nie ma chyba czegoś takiego jak atak TCP ZeroWindow (w logach Wiresharka tak podaje w informacjach o pakiecie), bardziej wydaje mi się, że jest to jakiś Socketstress.

 

Czy ma ktoś jakiś pomysł jak za pomocą iptables mogę ograniczy te połączenia, aby nie zasypywały usługi? Oczywiście DROP na IP jest już zrobione, ale jaki to będzie miało sens jeżeli atakujący zmieni IP, powinno to być automatycznie, stąd też piszę do Was z prośbą o pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Niech zgadnę.. Minecraft?

Syn flood, potem serwer odpowiada ack i się zapycha.

 

37.187.41.198 zgłaszałem już to do OVH, ale widocznie nie poskutkowało..

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Niech zgadnę.. Minecraft?

Syn flood, potem serwer odpowiada ack i się zapycha.

 

37.187.41.198 zgłaszałem już to do OVH, ale widocznie nie poskutkowało..

 

Tak, zgadłeś. :)

Jakieś rozwiązanie oparte o iptables na ten atak jest? Próbowałem różnych kombinacji z connlimit i niestety nie było widać, aby atakujący się na nie "złapał".

 

Też zgłoszę oczywiście abuse.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys
CSF ma coś takiego jak connlimit, można ustawić maksymalną ilość połączeń przypadającą na IP.

 

connlimit szybko umiera, hashlimit już jest trochę lepszy wydajnościowo, ale to dalej kropla w morzu potrzeb ...

 

Może coś na wielkość...

iptables -I INPUT -p tcp --dport 25565 -m length --length 0 -j DROP
iptables -I INPUT -p tcp --dport 25565 -m length --length 1448 -j DROP

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Kombinowałem na różne sposoby. Jedynym skutecznym okazało się zbieranie ilości połączeń per IP i DROP jeśli ilość >X.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
iptables -I INPUT -p tcp --syn --dport 25565 -m connlimit --connlimit-above 15 --connlimit-mask 32 -j DROP

Może się przyda na krótką metę.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×