Rodzaje ataków i sposoby ochrony

Poradniki
vps, zabezpieczenia
SystemZ
SystemZ Admin lvlup.pro

Klienci często mają wątpliwości odnośnie ataków oraz możliwych metod ochrony przed nimi. Opiszę podstawy w dużym skrócie aby łatwo zrozumieć i podjąć niezbędne decyzje.

Terminy

Usługa

np. serwer www, gier czy głosowy

Zasoby

np. CPU, RAM, łącze internetowe

Rodzaje ataków

Wolumetryczne

Ataki te mają na celu wyczerpać dostępne zasoby i spowodować niedostępność usługi.

Przykład w życiu codziennym to płacenie monetami 1gr za przejazd na autostradzie przez wiele osób - kolejka gwarantowana. Ta kolejka to lagi lub przycięcia na twoim serwerze.

DoS

Proste ale zwykle skuteczne - ciągłe wysyłanie dużej ilości informacji do przetworzenia dla serwera. W pewnym momencie zasoby serwera mogą się skończyć co może skutkować spowolnieniem w działaniu usługi lub całkowitym brakiem odpowiedzi.

W praktyce zazwyczaj jest to jedna osoba która używa swojego komputera lub VPS'a oraz gotowych skryptów zalewająca żądaniami inny serwer.

Zazwyczaj odpowiednia konfiguracja iptables wystarcza aby odeprzeć taki atak. Przykładowo można zablokować adres IP powodujący takie ataki lub zastosować limit żądań na sekundę.

Należy też rozważyć zmianę konfiguracji aplikacji która jest ofiarą tak aby przyjmowała tylko określoną liczbę połączeń na sekundę. Dla serwerów MC przy użyciu spigot można to zrobić za pomocą klucza connection-throttle w pliku konfiguracyjnym.

DDoS

Najczęściej spotykany dziś rodzaj ataku.

Atakujący zazwyczaj korzysta z serwisu tzw. stressera gdzie bezpłatnie lub za niewielką opłatą można uruchomić atak DoS (opisany wyżej) lecz z dużej ilości serwerów jednocześnie. Serwery te to zazwyczaj zwykłe komputery przeciętnych osób które zostały zarażone złośliwym oprogramowaniem i wykonuje polecenia np. ataki przestępców którzy są właścicielami tzw. botnetu czyli sieci zarażonych złośliwym oprogramowaniem urządzeń.

Atak jest banalnie prosty do przeprowadzenia, niestety obrona przed nim już nie.

Ilość ruchu jest tu tak duża, że port sieciowy serwera dedykowanego nie jest technicznie w stanie obsłużyć takiej ilości. Coś jak gaszenie pragnienia cysterną lub liczenie sezamu na bułkach od hamburgerów.

Reguły w iptables czy konfiguracja naszej usługi zazwyczaj już tu nie pomoże gdyż atak musi być wycięty jak najbliżej źródła czyli najczęściej po stronie dostawcy serwerów dedykowanych np. OVH, Hetzner czy SDC. Każdy dostawca serwerów dedykowanych ma swoje sposoby reakcji na takie ataki i to od tego zależy czy nasza usługa podczas takiego ataku będzie dostępna.

Lista pakietów usług w lvlup.pro i opisy zabezpieczeń

Lokalizacja PL - SDC

Serwerownia SDC nie jest już obecnie w użyciu przez lvlup.pro

Blackholing https://www.sprintdatacenter.pl/antiddos Zazwyczaj serwerownia przestaje rozgłaszać atakowany adres IP na kilka minut dzięki czemu nie napływają "złe" pakiety, niestety te "dobre" pakiety też nie docierają co skutkuje niedostępnością usługi. Chroni usługę przed przeciążeniem lecz niestety przez ten czas usługa jest niedostępna.

Lokalizacja EU - podstawowa ochrona OVH

OVH ma swoje własne metody filtrowania ruchu. W momencie gdy zostaną wykryte anomalie w ruchu internetowym dla danego adresu IP, adres ten zostaje przełączony na inną infrastrukturę sieciową do czasu ustąpienia ataku https://www.ovh.pl/anti-ddos/

Ta infrastruktura posiada bardzo zaawansowane i autorskie mechanizmy które w czasie rzeczywistym usuwają niepożądane pakiety i po takim czyszczeniu wędrują one do naszej usługi.

Skuteczność jest różna, dużo zależy od rodzaju ataku, jest jednak bardziej skuteczna od blackholingu w SDC. Powinno to wystarczyć dla większości użytkowników. Zabezpieczenie to jest używane dla serwerów Minecraft z tej oferty: https://lvlup.pro/oferta/hosting-minecraft/ oraz dla VPS OpenVZ: https://lvlup.pro/oferta/vps/

Przy testach ataku z usług typu booter/stresser gdzie wolumen to ~5Gbps, serwer traci kilka pakietów ping (ok. 1-3) w chwili gdy atak się rozpoczyna, potem serwer działa poprawnie.

Lokalizacja FR - ochrona game OVH

Metoda działa tak jak podstawowa opisana wyżej lecz ma dodatkowe mechanizmy które są "świadome" serwerów gier oraz popularnych ataków. Istnieje także możliwość uaktywnienia dodatkowego zabezpieczenia w postaci whitelisty UDP, w tym celu wystarczy utworzyć zgłoszenie w panelu klienta.

https://lvlup.rok.ovh/t/whitelista-udp-na-kvm-game-pro/264

Jest to najbardziej skuteczna ochrona w ofercie lvlup.pro która jest dostępna pod nazwą KVM Game Pro https://lvlup.pro/oferta/vps-kvm-game-pro/

W praktyce z własnego doświadczenia opis jak to wygląda na przykładzie serwera głosowego TS3.

Gdy rozpocznie się atak, przez kilka sekund mogą następować dropy pakietów gdyż w tym czasie adres IP jest przełączany na inną infrastrukturę, a następnie wszystko działa poprawnie czasami nieznacznie zwiększając ping o ok.5-10ms. Po ustąpieniu ataku sieć przełącza się w normalny tryb, jeśli ping na czas ataku wzrósł to wraca on do normy.

Przy testach ataku z usług typu booter/stresser gdzie wolumen to ~5Gbps, serwer nie stracił ani jednego pakietu ping.

Atak na aplikację

Przez osoby bardziej zaawansowane

Jeśli prowadzisz duży serwer gier/głosowy np. więcej niż 200 graczy online lub większy serwis WWW to mogą się nim zainteresować się osoby o trochę większym zaawansowaniu niż korzystanie z gotowych skryptów i chęcią wyłączenia serwisu.

W przeciwieństwie do poprzednich metod które można przyrównać do siłowych, tu bardziej jest używany spryt. Wystarczy wiedza o luce w danej wersji usługi z której korzystasz oraz wysłanie kilku specjalnie przygotowanych pakietów aby wyłączyć, uszkodzić czy przejąć kontrolę nad serwerem/usługą.

Przykładowo starsze wersje serwera TS3 lub Minecraft mają błąd i mogą zużywać bardzo dużo zasobów np. 100% CPU czy użyć całego dostępnego RAMu jeśli prześle im się pakiet który źle obsługują.

Aby zabezpieczyć się przed takimi atakami należy zawsze używać najnowszych wersji oprogramowania a jeśli do naszego oprogramowania nie wychodzą już aktualizacje - zamienić je na wspierane i często aktualizowane. https://lvlup.rok.ovh/t/aktualizacja-systemu-debian-ubuntu/20

Należy też odpowiednio skonfigurować usługi np. unikać jak ognia uruchamiania spod użytkownika root!

Jeśli masz bardzo nietypowe ataki lub potrzebujesz pomocy w przywróceniu działania po ataku to będzie wymagało pracy administratora, wystarczy napisać https://lvlup.pro/panel/support/ticket Bezpłatnie przygotuję wycenę pomocy w takich sytuacjach

Boty

Często można też się spotkać z atakami botów które chcą odgadnąć hasło do root, przy takim udanym ataku nasz VPS zapewne zostanie użyty do powodowania ataków DDoS na inne serwisy. Zabezpieczenie się jest zazwyczaj bardzo proste gdyż boty nie grzeszą inteligencją. Kwestia kilku regułek w iptables oraz aplikacji blokującej https://lvlup.rok.ovh/t/jak-zabezpieczyc-vpsa-przed-wlamaniami-botow-na-ssh/96 Warto też mieć najnowsze wersje paczek systemowych https://lvlup.rok.ovh/t/aktualizacja-systemu-debian-ubuntu/20

Socjotechnika

Najgroźniejszy możliwy rodzaj ataku według mnie.

Atakujący przekonuje Cię do przekazania mu danych dostępowych np. do konta root udając znajomego lub osobę która zna się na rzeczy i Ci pomoże. W rzeczywistości pewnego dnia może zastać Cię przykra niespodzianka w postaci czystego serwera bez plików lub przeróbkami których nie chciałeś.

Jak się obronić? Przydzielać tylko takie uprawnienia które są niezbędne sprawdzonym przez nas osobom. Przykładowo osobie która zarządza serwerem TS3 przy dobrej konfiguracji nie jest potrzebny dostęp do konta root ani login i hasło do panelu klienta gdzie mamy VPSa.

Warto też zapoznać się z tym wątkiem co się stanie gdy nie zadbamy o odpowiednie zabezpieczenia https://lvlup.rok.ovh/t/nic-nie-zrobilem-a-moj-vps-naruszyl-regulamin-i-zostal-zablokowany/423

Jeśli posiadasz serwer z oferty OpenVZ dobrze jest też zobaczyć ten wątek https://lvlup.rok.ovh/t/otrzymuje-atak-ddos-na-vps-openvz/824

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

SystemZ:

Należy też rozważyć zmianę konfiguracji aplikacji która jest ofiarą tak aby przyjmowała tylko określoną liczbę połączeń na sekundę. Dla serwerów MC przy użyciu spigot można to zrobić za pomocą klucza connection-throttle w pliku konfiguracyjnym.

Zaznaczyłbym, że w przypadku gdy serwer jest podłączony pod bungeecord nie należy tego ustawiać na wartość ponad 0, bo może to wstrzymywać ruch graczy między serwerami. W takich przypadkach należy użyć identycznej opcji ale w konfiguracji bungeecorda. (config.yml).

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

A no tak, jeszcze kilka "błędów" znalazłem:

SystemZ:

Lokalizacja PL - SDC

Blackholing https://www.sprintdatacenter.pl/antiddos Zazwyczaj serwerownia przestaje rozgłaszać atakowany adres IP na kilka minut dzięki czemu nie napływają "złe" pakiety, niestety te "dobre" pakiety też nie docierają co skutkuje niedostępnością usługi. Chroni usługę przed przeciążeniem lecz niestety przez ten czas usługa jest niedostępna.

lvlup nie ma już serwerów w PL 😛

SystemZ:

Istnieje także możliwość uaktywnienia dodatkowego zabezpieczenia w postaci whitelisty UDP, w tym celu wystarczy utworzyć zgłoszenie w panelu klienta.

ale jednak lepiej użyć panelu v3 😄

NoName_1000
NoName_1000

Najlepszym sposobem na zabezpieczenie się przed atakami typu brute-force jest ustawienie logowania do serwera VPS za pomocą klucza prywatnego SSH! ale po straceniu pliku z kluczem dostęp do VPS'a będzie niemożliwy!, jednym z sposobów jest ustawienie serwera ssh na inny port niż domyślny najlepiej na te nieużywane, tylko że port da się znaleźć za pomocą skanerów portów.

anon10657637
anon10657637

NoName_1000:

ale po straceniu pliku z kluczem dostęp do VPS’a będzie niemożliwy!,

Niekonieczne, niektórzy operatorzy jak OVH (w Public Cloud na pewno) czy DigitalOcean (wszystkie droplety) umożliwiają zmianę klucza SSH z poziomu panelu (tak jak i reset hasła do roota).