Występuje atak typu „odmowa usługi”. Jeśli widzisz ruch przychodzący z wielu sieci (różne adresy IP w różnych podsieciach), masz rozproszoną odmowę usługi (DDoS); jeśli wszystko pochodzi z tego samego miejsca, masz zwykły stary DoS. Pomocne może być sprawdzenie, czy możesz; użyj netstat do sprawdzenia. Jednak może to być trudne.
Odmowa usługi zwykle dzieli się na kilka kategorii: na podstawie ruchu i obciążenia. Ostatni element (z usługą awarii) to DoS oparty na exploitach i jest zupełnie inny.
Jeśli próbujesz ustalić, jaki typ ataku ma miejsce, możesz chcieć przechwycić pewien ruch (za pomocą wireshark, tcpdump lub libpcap). Powinieneś, jeśli to możliwe, ale także pamiętać, że prawdopodobnie będziesz w stanie przechwycić całkiem duży ruch.
Jak często nie będą one pochodzić z botnetów (sieci zainfekowanych hostów pod centralną kontrolą jakiegoś atakującego, którego licytacja zrobią). Jest to dobry sposób, aby atakujący (bardzo tanio) uzyskał przepustowość wielu różnych hostów w różnych sieciach, aby cię zaatakować, jednocześnie pokrywając swoje ślady. Niskiej orbicie jonowego jest przykładem botnetem (mimo dobrowolne zamiast złośliwe-pochodnych); Zeus jest bardziej typowy.
Na podstawie ruchu
Jeśli korzystasz z DoS opartego na ruchu, okazuje się, że do twojego serwera dociera tyle ruchu , że jego połączenie z Internetem jest całkowicie nasycone. Podczas pingowania serwera z innego miejsca występuje wysoki wskaźnik utraty pakietów, a czasami (w zależności od używanych metod routingu) czasami widać naprawdę duże opóźnienia (ping jest wysoki). Ten rodzaj ataku jest zwykle DDoS.
Chociaż jest to naprawdę „głośny” atak i jest oczywiste, co się dzieje, administratorowi serwera jest trudne do złagodzenia (i zasadniczo niemożliwe jest złagodzenie przez użytkownika hostingu współdzielonego). Będziesz potrzebować pomocy od swojego dostawcy usług internetowych; daj im znać, że korzystasz z DDoS, a oni mogą pomóc.
Jednak większość dostawców usług internetowych i dostawców usług tranzytowych aktywnie zdaje sobie sprawę z tego, co się dzieje i publikuje trasę blackhole dla Twojego serwera. Oznacza to, że publikują trasę do twojego serwera przy możliwie jak 0.0.0.0
najniższych kosztach, poprzez : sprawiają, że ruch do twojego serwera nie jest już możliwy do trasowania w Internecie. Te trasy to zazwyczaj / 32s i ostatecznie są usuwane. To wcale ci nie pomaga; celem jest ochrona sieci dostawcy usług internetowych przed potopem. W tym czasie serwer skutecznie utraci dostęp do Internetu.
Jedynym sposobem, w jaki Twój dostawca usług internetowych (lub ty, jeśli masz własny AS) będzie w stanie Ci pomóc, będzie korzystał z inteligentnych mechanizmów kształtowania ruchu, które mogą wykrywać i ograniczać prawdopodobny ruch DDoS. Nie każdy ma tę technologię. Jeśli jednak ruch pochodzi z jednej lub dwóch sieci lub jednego hosta, mogą być w stanie zablokować ruch przed tobą.
Krótko mówiąc, niewiele można zrobić z tym problemem. Najlepszym długoterminowym rozwiązaniem jest hostowanie twoich usług w wielu różnych lokalizacjach w Internecie, które musiałyby być DDoSed indywidualnie i jednocześnie, co czyni DDoS znacznie droższym. Strategie tego zależą od usługi, którą musisz chronić; DNS można chronić za pomocą wielu autorytatywnych serwerów nazw, SMTP z zapasowymi rekordami MX i wymiennikami poczty oraz HTTP za pomocą round-robin DNS lub multihoming (ale i tak może wystąpić zauważalna degradacja na czas trwania).
Usługi równoważenia obciążenia rzadko stanowią skuteczne rozwiązanie tego problemu, ponieważ sam moduł równoważenia obciążenia jest narażony na ten sam problem i po prostu tworzy wąskie gardło. IPTables lub inne reguły zapory nie pomogą, ponieważ problem polega na tym, że rura jest nasycona. Gdy zapora rozpozna połączenia, jest już za późno ; przepustowość Twojej witryny została zużyta. Nie ma znaczenia, co robisz z połączeniami; atak zostaje złagodzony lub zakończony, gdy ilość ruchu przychodzącego wróci do normy.
Jeśli możesz to zrobić, rozważ użycie sieci dystrybucji treści (CDN), takiej jak Akamai, Limelight i CDN77, lub skorzystaj z usługi czyszczenia DDoS, takiej jak CloudFlare lub Prolexic. Usługi te podejmują aktywne działania w celu złagodzenia tego rodzaju ataków, a także mają tak dużą dostępną przepustowość w tak wielu różnych miejscach, że ich zalanie nie jest ogólnie możliwe.
Jeśli zdecydujesz się użyć CloudFlare (lub innego CDN / proxy), pamiętaj, aby ukryć adres IP swojego serwera. Jeśli atakujący dowie się o adresie IP, może ponownie wykonać DDoS bezpośrednio na serwerze, omijając CloudFlare. Aby ukryć adres IP, twój serwer nigdy nie powinien komunikować się bezpośrednio z innymi serwerami / użytkownikami, chyba że są bezpieczne. Na przykład twój serwer nie powinien wysyłać wiadomości e-mail bezpośrednio do użytkowników. Nie dotyczy to sytuacji, gdy hostujesz całą swoją zawartość w sieci CDN i nie masz własnego serwera.
Ponadto niektórzy dostawcy VPS i dostawcy hostingu lepiej łagodzą te ataki niż inni. Ogólnie rzecz biorąc, im większe, tym lepiej będą w tym; dostawca, który jest bardzo dobrze sprawdzony i ma dużą przepustowość, będzie naturalnie bardziej odporny, a ten z aktywnym iw pełni obsadzonym zespołem operacyjnym sieci będzie mógł szybciej reagować.
Na podstawie obciążenia
Gdy doświadczasz DDoS opartego na obciążeniu, zauważasz, że średnie obciążenie jest nienormalnie wysokie (lub użycie procesora, pamięci RAM lub dysku, w zależności od platformy i specyfiki). Chociaż wydaje się, że serwer nie robi nic użytecznego, jest bardzo zajęty. Często w dziennikach będzie mnóstwo wpisów wskazujących na nietypowe warunki. Najczęściej pochodzi to z wielu różnych miejsc i jest DDoS, ale niekoniecznie tak jest. Nie musi być nawet wielu różnych gospodarzy .
Ten atak polega na zmuszeniu twojej usługi do wykonywania wielu kosztownych rzeczy. Może to być coś takiego jak otwarcie ogromnej liczby połączeń TCP i zmuszenie do utrzymania stanu dla nich, lub przesłanie zbyt dużych lub licznych plików do usługi, lub może wykonanie naprawdę drogich wyszukiwań lub naprawdę zrobienie wszystkiego, co jest drogie w obsłudze. Ruch mieści się w granicach planowanych i może zostać przyjęty, ale typy wysyłanych żądań są zbyt drogie, aby obsłużyć tak wiele .
Po pierwsze, że ten rodzaj ataku jest możliwy, często wskazuje na problem z konfiguracją lub błądw twoich usługach. Na przykład może być włączone zbyt szczegółowe rejestrowanie i może być zapisywane dzienniki na czymś, na co bardzo wolno pisać. Jeśli ktoś zda sobie z tego sprawę i zrobi wiele rzeczy, które powodują zapisanie dużej ilości dzienników na dysku, serwer zwolni do indeksowania. Twoje oprogramowanie może również robić coś wyjątkowo nieefektywnego w niektórych przypadkach wejściowych; przyczyny są tak liczne, jak istnieją programy, ale dwa przykłady to sytuacja, w której usługa nie zamyka sesji, która w innym przypadku została zakończona, oraz sytuacja, która powoduje, że spawnuje proces potomny i opuszcza go. Jeśli skończysz z dziesiątkami tysięcy otwartych połączeń ze stanem do śledzenia lub dziesiątkami tysięcy procesów potomnych, wpadniesz w kłopoty.
Pierwszą rzeczą, jaką możesz zrobić, jest użycie zapory ogniowej w celu zmniejszenia ruchu . Nie zawsze jest to możliwe, ale jeśli w ruchu przychodzącym można znaleźć jakąś cechę (tcpdump może być do tego przydatny, jeśli ruch jest niewielki), możesz upuścić go na zaporze ogniowej i nie będzie już powodować problemów. Inną rzeczą do zrobienia jest usunięcie błędu w swoim serwisie (skontaktuj się ze sprzedawcą i przygotuj się na długą obsługę).
Jednak, jeśli jest to kwestia konfiguracji, zacznij tutaj . Wyłącz rejestrowanie w systemach produkcyjnych do rozsądnego poziomu (w zależności od programu jest to zazwyczaj ustawienie domyślne i zwykle wymaga upewnienia się, że poziomy rejestrowania „debugowania” i „pełnego” są wyłączone; jeśli wszystko, co robi użytkownik, jest logowane dokładnie i drobne szczegóły, twoje logowanie jest zbyt szczegółowe). Dodatkowo sprawdź limity procesów potomnych i żądań , ewentualnie ograniczaj przychodzące żądania, połączenia na adres IP oraz liczbę dozwolonych procesów potomnych, zależnie od przypadku.
Oczywiste jest, że im lepiej skonfigurowany i lepiej zabezpieczony serwer, tym trudniejszy będzie ten rodzaj ataku. Unikaj skąpstwa, szczególnie w przypadku pamięci RAM i procesora. Upewnij się, że Twoje połączenia z takimi bazami danych jak baza danych i pamięć dyskowa są szybkie i niezawodne.
Oparte na wykorzystaniu
Jeśli Twoja usługa w tajemniczy sposób ulega awarii bardzo szybko po uruchomieniu, szczególnie jeśli możesz ustalić wzorzec żądań poprzedzających awarię, a żądanie jest nietypowe lub nie odpowiada oczekiwanym wzorcom użytkowania, możesz mieć do czynienia z DoS opartą na exploitach. Może to pochodzić z zaledwie jednego hosta (z praktycznie dowolnym rodzajem połączenia internetowego) lub wielu hostów.
Pod wieloma względami jest to podobne do DoS opartego na obciążeniu i ma w zasadzie te same przyczyny i ograniczenia. Różnica polega tylko na tym, że w tym przypadku błąd nie powoduje marnotrawstwa serwera, ale śmierć. Osoba atakująca zwykle wykorzystuje lukę w zabezpieczeniach umożliwiającą zdalną awarię, taką jak zniekształcone dane wejściowe, które powodują zerowe odwołanie lub coś w Twojej usłudze.
Traktuj to podobnie jak nieautoryzowany atak dostępu zdalnego. Zapora sieciowa przeciwko hostom źródłowym i typowi ruchu, jeśli można je zablokować. W razie potrzeby użyj sprawdzania poprawności odwrotnych serwerów proxy . Zbierz dowody sądowe (spróbuj uchwycić część ruchu), złóż zgłoszenie o błędzie u sprzedawcy i rozważ złożenie skargi dotyczącej nadużycia (lub skargi prawnej) również na pochodzenie.
Ataki te są dość tanie w montażu, jeśli można znaleźć exploita, i mogą być bardzo silne, ale także stosunkowo łatwe do wyśledzenia i zatrzymania. Jednak techniki przydatne w przypadku DDoS opartego na ruchu są generalnie bezużyteczne w przypadku DoS opartego na wykorzystaniu.