Co to jest powódź SYN?

SYN flooding to forma ataku typu „odmowa usługi”, który może zostać uruchomiony na serwerze komputerowym w celu przytłoczenia serwera i uniemożliwienia innym użytkownikom dostępu do niego. Jest to nieco starsza forma ataku i przez pewien czas była dość popularna ze względu na stosunkowo niewielkie zasoby potrzebne do jej uruchomienia. Podstawowy proces ataku wykorzystuje metodę, w której użytkownicy łączą się z serwerem za pomocą protokołu kontroli transmisji (TCP), aby wykorzystać wszystkie zasoby systemu. SYN flooding był kiedyś popularną formą ataku, chociaż opracowano szereg różnych rozwiązań w celu zmniejszenia lub wyeliminowania jego skuteczności na nowoczesnych serwerach.

Podstawowa idea stojąca za SYN floodingiem wykorzystuje sposób, w jaki użytkownicy łączą się z serwerami za pomocą połączeń TCP. TCP używa systemu zwanego trójstronnym uzgadnianiem, który rozpoczyna się od wysłania przez użytkownika wiadomości „synchronizującej” lub SYN do serwera. Następnie serwer odbiera wiadomość i odsyła do użytkownika komunikat „potwierdzona synchronizacja” lub komunikat SYN-ACK. Gdy system użytkownika otrzyma tę wiadomość, ostateczna wiadomość „potwierdzenie” lub ACK jest wysyłana przez użytkownika do serwera w celu nawiązania połączenia. Ten podstawowy proces odbywa się dość szybko i zapewnia synchronizację obu końców połączenia.

Jednak atak typu SYN flooding używa tego trójstronnego uzgadniania do zablokowania zasobów na serwerze, uniemożliwiając w ten sposób innym dostęp do systemu. Atak SYN flooding rozpoczyna się od wiadomości SYN wysłanej do serwera, która odpowiada standardową odpowiedzią SYN-ACK. Ta wiadomość pozostaje jednak bez odpowiedzi za pomocą jednej z kilku metod, które powodują, że na serwer nie jest wysyłany żaden końcowy komunikat ACK. W tym momencie serwer pozostawia zasoby zaangażowane w oczekiwanie na wiadomość ACK, na wypadek gdyby przyczyną braku odpowiedzi było przeciążenie sieci.

Serwery mają jednak ograniczone zasoby do obsługi trójstronnych uścisków dłoni, a wiele serwerów jest zaprojektowanych do obsługi tylko ośmiu takich procesów naraz. SYN flooding składa się z ośmiu lub więcej wiadomości SYN wysłanych później bez odpowiadającego im komunikatu ACK, pozostawiając wszystkie zasoby serwera przeznaczone do oczekiwania na odpowiedź, która nigdy nie nadejdzie. Dopóki czeka na te wiadomości, żaden inny użytkownik nie może połączyć się z serwerem. Podczas gdy wiele serwerów zostało zaprojektowanych tak, aby opróżnić kolejkę odpowiedzi po trzech minutach, osoba przeprowadzająca atak SYN może po prostu ponownie przesłać osiem wiadomości SYN co trzy minuty, aby system był zablokowany na czas nieokreślony.

Znaleziono wiele różnych rozwiązań tego typu ataków, więc zalewanie SYN często jest mniej skuteczne niż w przeszłości. Jedno z powszechnych rozwiązań wykorzystuje „pliki cookie SYN”, aby umożliwić systemowi oczyszczenie swojej kolejki po osiągnięciu ośmiu żądań, umożliwiając nowym użytkownikom wysyłanie żądań połączenia z serwerem. Jeśli w końcu nadejdzie jedno ze starszych usuniętych żądań, pliki cookie zapewniają, że zostanie ono prawidłowo rozpoznane jako wiadomość ACK i umożliwi użytkownikowi połączenie się z serwerem.