Co to jest atak ddos. Atak DDoS: co to jest, jak działa i czy można się zabezpieczyć

Na systemie informatycznym w celu doprowadzenia go do awarii, czyli stworzenia takich warunków, w których legalni (legalni) użytkownicy systemu nie będą mieli dostępu do zasobów (serwerów) udostępnianych przez system lub dostęp ten będzie utrudniony. Awaria systemu „wroga” może być również krokiem w kierunku opanowania systemu (jeśli w nagłym przypadku oprogramowanie poda jakieś krytyczne informacje - na przykład wersję, część kodu programu itp.). Częściej jednak jest to miara presji ekonomicznej: przestój usługi generującej dochód, rachunki od dostawcy oraz środki mające na celu uniknięcie ataku znacząco uderzają w „cel” w kieszeni.

Jeśli atak jest przeprowadzany jednocześnie z dużej liczby komputerów, mówi się o tym atak DDoS(z angielskiego. Rozproszona odmowa usługi, rozproszony atak typu „odmowa usługi”.). W niektórych przypadkach niezamierzone działanie prowadzi do faktycznego ataku DDoS, na przykład umieszczenie łącza w popularnym zasobie internetowym do witryny hostowanej na niezbyt wydajnym serwerze (efekt ukośnej kropki). Duży napływ użytkowników prowadzi do przekroczenia dopuszczalnego obciążenia serwera, aw konsekwencji do odmowy usługi dla części z nich.

Rodzaje ataków DoS

Istnieje wiele powodów, dla których może wystąpić warunek DoS:

  • Błąd w kodzie programu, skutkujące dostępem do niewykorzystanego fragmentu przestrzeni adresowej, wykonaniem błędnej instrukcji lub innym nieobsługiwanym wyjątkiem w przypadku awarii programu serwera - programu serwera. Klasycznym przykładem jest odwoływanie się od zera. zero) adres.
  • Niewystarczająca weryfikacja danych użytkownika, prowadzące do nieskończonego lub długiego cyklu lub zwiększonego długotrwałego zużycia zasobów procesora (do wyczerpania zasobów procesora) lub przydziału dużej ilości pamięci RAM (do wyczerpania dostępnej pamięci).
  • powódź(Język angielski) powódź- „flood”, „overflow”) – atak związany z dużą liczbą zwykle bezsensownych lub nieprawidłowo sformatowanych żądań kierowanych do systemu komputerowego lub sprzętu sieciowego, który ma na celu lub doprowadził do awarii systemu w wyniku wyczerpania zasobów systemowych - procesor, pamięć czy kanały komunikacyjne.
  • Atak drugiego rodzaju- atak mający na celu wywołanie fałszywego alarmu systemu ochrony i tym samym doprowadzenie do niedostępności zasobu.

Jeżeli atak (zwykle flood) przeprowadzany jest jednocześnie z dużej liczby adresów IP – z kilku komputerów rozproszonych w sieci – to w tym przypadku jest to tzw. Rozpowszechniane atak typu „odmowa usługi” ( DDoS).

Eksploatacja błędów

Wykorzystać odnosi się do programu, fragmentu kodu programu lub sekwencji poleceń programu, które wykorzystują luki w oprogramowaniu i służą do atakowania systemu cybernetycznego. Spośród exploitów, które prowadzą do ataku DoS, ale nie nadają się na przykład do przejęcia kontroli nad „wrogim” systemem, najbardziej znane to WinNuke i Ping of death (Ping of death).

powódź

Aby zapoznać się z powodzią jako naruszeniem netykiety, zobacz powódź.

powódź wywołują ogromny strumień bezsensownych żądań z różnych komputerów, aby zabrać system „wroga” (procesor, pamięć RAM lub kanał komunikacyjny) do pracy i tym samym tymczasowo go wyłączyć. Pojęcie „ataku DDoS” jest niemal równoznaczne z pojęciem „flood”, a w życiu codziennym często obydwa są wymienne („flood the server” = „DDoS’it the server”).

Aby stworzyć powódź, można użyć zarówno zwykłych narzędzi sieciowych, takich jak ping (jest to znane na przykład społeczności internetowej „ Upyachka”), jak i specjalne programy. Możliwość ataku DDoS jest często „zaszyta” w botnetach. Jeśli w witrynie o dużym natężeniu ruchu zostanie wykryta luka w zabezpieczeniach związana ze skryptami krzyżowymi lub możliwość dołączania obrazów z innych zasobów, witryna ta może być również wykorzystana do ataku DDoS.

Zalew kanału komunikacyjnego i podsystemu TCP

Każdy komputer komunikujący się ze światem zewnętrznym za pośrednictwem protokołu TCP/IP podlega następującym typom powodzi:

  • SYN flood – przy tego typu ataku flood do zaatakowanego węzła wysyłana jest duża liczba pakietów SYN za pośrednictwem protokołu TCP (żądania otwarcia połączenia). Jednocześnie po krótkim czasie liczba gniazd dostępnych do otwarcia (programowe gniazda sieciowe, porty) na atakowanym komputerze wyczerpuje się, a serwer przestaje odpowiadać.
  • UDP flood - ten typ floodowania nie atakuje komputera docelowego, ale jego kanał komunikacyjny. Dostawcy rozsądnie zakładają, że pakiety UDP powinny być dostarczane jako pierwsze, podczas gdy TCP może czekać. Duża liczba pakietów UDP o różnych rozmiarach blokuje kanał komunikacyjny, a serwer działający na protokole TCP przestaje odpowiadać.
  • ICMP flood - to samo, ale za pomocą pakietów ICMP.

Zalanie warstwy aplikacji

Wiele usług jest zaprojektowanych w taki sposób, że małe żądanie może spowodować duże zużycie mocy obliczeniowej serwera. W tym przypadku atakowany jest nie kanał komunikacyjny czy podsystem TCP, ale sama usługa (serwis) – zalew takich „chorych” żądań. Na przykład serwery sieciowe są podatne na zalewanie HTTP — do wyłączenia serwera sieciowego można użyć prostego zapytania GET / lub złożonego zapytania do bazy danych, takiego jak GET /index.php?search=<случайная строка> .

Wykrywanie ataków DoS

Istnieje opinia, że ​​nie są potrzebne specjalne narzędzia do wykrywania ataków DoS, ponieważ nie można przeoczyć faktu ataku DoS. W wielu przypadkach jest to prawda. Jednak dość często obserwowano udane ataki DoS, które ofiary zauważały dopiero po 2-3 dniach. Zdarzało się, że negatywne konsekwencje ataku ( powódź-ataki) skutkowały nadmiernymi kosztami zapłaty za nadmierny ruch w Internecie, o czym przekonano się dopiero po otrzymaniu faktury od dostawcy Internetu. Ponadto wiele metod wykrywania włamań jest nieskutecznych w pobliżu celu ataku, ale skutecznie działa na szkielety sieci. W takim przypadku wskazane jest zainstalowanie systemów wykrywania właśnie tam, a nie czekanie, aż użytkownik, który został zaatakowany, sam to zauważy i zwróci się o pomoc. Ponadto, aby skutecznie przeciwdziałać atakom DoS, konieczna jest znajomość rodzaju, charakteru i innych cech ataków DoS, a systemy wykrywania umożliwiają szybkie uzyskanie tych informacji.

Metody wykrywania ataków DoS można podzielić na kilka dużych grup:

  • podpis - na podstawie jakościowej analizy ruchu.
  • statystyczne - oparte na ilościowej analizie ruchu.
  • hybrydowe (łączone) – łączące zalety obu powyższych metod.

Ochrona DoS

Środki przeciwdziałania atakom DoS można podzielić na pasywne i aktywne oraz prewencyjne i reaktywne.

Poniżej znajduje się krótka lista głównych metod.

  • Zapobieganie. Zapobieganie przyczynom, które skłaniają określone osoby do organizowania i przeprowadzania ataków DoS. (Często cyberataki są ogólnie wynikiem osobistych pretensji, nieporozumień politycznych, religijnych i innych, prowokacyjnego zachowania ofiary itp.)
  • Filtrowanie i blackholowanie. Blokowanie ruchu z atakujących maszyn. Skuteczność tych metod maleje w miarę zbliżania się do obiektu ataku i wzrasta w miarę zbliżania się do atakującej maszyny.
  • Odwróć DDOS- przekierowanie ruchu wykorzystywanego do ataku do atakującego.
  • Eliminacja podatności. Nie działa przeciw powódź-ataki, dla których „podatnością” jest skończoność pewnych zasobów systemowych.
  • Zwiększanie zasobów. Oczywiście nie zapewnia to ochrony absolutnej, ale stanowi dobre tło do zastosowania innych rodzajów ochrony przed atakami DoS.
  • Rozproszenie. Budowa rozproszonych i powielających się systemów, które nie przestaną służyć użytkownikom, nawet jeśli niektóre ich elementy staną się niedostępne z powodu ataku DoS.
  • Uchylanie się. Przesunięcie bezpośredniego celu ataku (nazwy domeny lub adresu IP) z dala od innych zasobów, które często są również atakowane wraz z bezpośrednim celem ataku.
  • Aktywna odpowiedź. Wpływ na źródła, organizatora lub centrum kontroli ataku, zarówno środkami sztucznymi, jak i organizacyjnymi i prawnymi.
  • Używanie sprzętu do odpierania ataków DoS. Na przykład DefensePro® (Radware), Perimeter (MFI Soft), Arbor Peakflow® i innych producentów.
  • Nabycie usługi ochrony przed atakami DoS. Aktualne w przypadku przekroczenia przepustowości kanału sieciowego przez powódź.

Zobacz też

Notatki

Literatura

  • Chrisa Kaspersky'ego Wirusy komputerowe wewnątrz i na zewnątrz. - Piotr. - Sankt Petersburg. : Piotr, 2006. - S. 527. - ISBN 5-469-00982-3
  • Stephena Northcutta, Marka Coopera, Matta Fearnowa i Karen Frederik. Analiza typowych naruszeń bezpieczeństwa w sieciach = Sygnatury włamań i analiza. - New Riders Publishing (angielski) St.Petersburg: Williams Publishing House (rosyjski), 2001. - P. 464. - ISBN 5-8459-0225-8 (rosyjski), 0-7357-1063-5 (angielski)
  • Morris, RT= Słabość oprogramowania 4.2BSD Unix TCP/IP. - Raport techniczny informatyki nr 117. - AT&T Bell Laboratories, luty 1985.
  • Bellovin, SM= Problemy z bezpieczeństwem w pakiecie protokołów TCP/IP. - Przegląd komunikacji komputerowej, tom. 19, nr 2. - AT&T Bell Laboratories, kwiecień 1989.
  • = daemon9 / route / infinity „Buforowanie IP zdemaskowane: wykorzystywanie relacji zaufania”. - Phrack Magazine, tom 7, wydanie 48. - Guild Production, lipiec 1996.
  • = daemon9 / route / infinity „Projekt Neptun”. - Phrack Magazine, tom 7, wydanie 48. - Guild Production, lipiec 1996.

Spinki do mankietów

  • Atak DOS w Katalogu łączy projektu Open Directory (

Coraz częściej w oficjalnych komunikatach dostawców usług hostingowych tu i ówdzie pojawiają się wzmianki o odbitych atakach DDoS. Coraz częściej użytkownicy, po wykryciu niedostępności swojej witryny, od razu zakładają atak DDoS. Rzeczywiście, na początku marca Runet doświadczył całej fali takich ataków. Jednocześnie eksperci zapewniają, że zabawa dopiero się zaczyna. Po prostu niemożliwe jest zignorowanie zjawiska tak istotnego, budzącego grozę i intrygującego. Więc dzisiaj porozmawiajmy o mitach i faktach dotyczących DDoS. Oczywiście z punktu widzenia dostawcy usług hostingowych.

dzień Pamięci

20 listopada 2013 roku po raz pierwszy w 8-letniej historii naszej firmy cała strona techniczna była przez kilka godzin niedostępna z powodu bezprecedensowego ataku DDoS. Ucierpiały dziesiątki tysięcy naszych klientów w całej Rosji i WNP, nie wspominając o nas i naszym dostawcy Internetu. Ostatnią rzeczą, którą dostawca zdołał naprawić, zanim białe światło zgasło dla wszystkich, było to, że jego kanały wejściowe były mocno zatkane ruchem przychodzącym. Aby to zobrazować, wyobraź sobie swoją wannę ze zwykłą umywalką, do której wpada wodospad Niagara.

Nawet dostawcy górnego biegu rzeki odczuli echa tego tsunami. Poniższe wykresy wyraźnie ilustrują, co stało się tego dnia z ruchem internetowym w Petersburgu iw Rosji. Zwróć uwagę na strome szczyty o godzinie 15:00 i 18:00, kiedy rejestrowaliśmy ataki. Na te nagłe plusy 500-700 GB.

Zlokalizowanie ataku zajęło kilka godzin. Serwer, do którego został wysłany, został obliczony. Następnie obliczono cel terrorystów internetowych. Czy wiesz, w kogo trafiła ta cała artyleria wroga? Jedna bardzo zwyczajna, skromna strona klienta.

Mit numer jeden: „Obiektem ataku jest zawsze dostawca usług hostingowych. To są machinacje jego konkurentów. Nie moje." W rzeczywistości najbardziej prawdopodobnym celem terrorystów internetowych jest witryna zwykłego klienta. Oznacza to, że witryna jednego z twoich sąsiadów hostingowych. A może i twoje.

Nie wszystkie ataki DDoS...

Po wydarzeniach, które miały miejsce na naszej stronie technicznej 20 listopada 2013 r. i ich częściowym powtórzeniu 9 stycznia 2014 r., niektórzy użytkownicy zaczęli zakładać atak DDoS w przypadku jakiejkolwiek konkretnej awarii własnej witryny: „To jest DDoS!” i „Czy znowu masz atak DDoS?”

Należy pamiętać, że jeśli mamy do czynienia z takim atakiem DDoS, że odczuwają to nawet klienci, to sami od razu to zgłaszamy.

Pragniemy uspokoić tych, którym spieszy się do paniki: jeśli coś jest nie tak z Twoją witryną, prawdopodobieństwo, że jest to atak DDoS, wynosi mniej niż 1%. Po prostu ze względu na fakt, że wiele rzeczy może się wydarzyć na stronie i to „dużo rzeczy” zdarza się znacznie częściej. O metodach samodzielnej, szybkiej diagnostyki tego, co dokładnie dzieje się z Twoją witryną, porozmawiamy w jednym z kolejnych wpisów.

Tymczasem - w trosce o precyzję użycia słów - wyjaśnijmy pojęcia.

O warunkach

Atak DoS (z angielskiego Denial of Service) - jest to atak mający na celu spowodowanie odmowy usługi serwera z powodu jego przeciążenia.

Ataki DoS nie są związane z uszkodzeniem sprzętu ani kradzieżą informacji; ich cel - sprawić, że serwer przestanie odpowiadać. Podstawowa różnica między DoS polega na tym, że atak następuje z jednej maszyny na drugą. Uczestników jest dokładnie dwóch.

Ale w rzeczywistości praktycznie nie obserwujemy ataków DoS. Dlaczego? Ponieważ obiektami ataków są najczęściej obiekty przemysłowe (na przykład wydajne serwery produkcyjne firm hostingowych). Aby zaś spowodować jakąkolwiek zauważalną szkodę w działaniu takiej maszyny, potrzebna jest znacznie większa moc niż jej własna. To jest pierwsze. Po drugie, inicjator ataku DoS jest dość łatwy do obliczenia.

DDoS - zasadniczo to samo co DoS, tylko atak jest charakter rozproszony. Nie pięć, nie dziesięć, nie dwadzieścia, ale setki i tysiące komputerów uzyskują dostęp do jednego serwera jednocześnie z różnych miejsc. Taka armia maszyn nazywa się botnet. Obliczenie klienta i organizatora jest prawie niemożliwe.

wspólnicy

Jakie komputery wchodzą w skład botnetu?

Będziesz zaskoczony, ale często są to najzwyklejsze domowe maszyny. Kto wie?.. - całkiem możliwe, że twój komputer domowy przeciągnięty na stronę zła.

Do tego potrzeba trochę. Osoba atakująca znajduje lukę w popularnym systemie operacyjnym lub aplikacji i wykorzystuje ją do zainfekowania komputera trojanem, który w określonym dniu i godzinie nakazuje komputerowi rozpoczęcie wykonywania określonych działań. Na przykład wyślij żądania do określonego adresu IP. Oczywiście bez Twojej wiedzy i udziału.

Mit numer dwa: « DDoS odbywa się gdzieś daleko ode mnie, w specjalnym podziemnym bunkrze, w którym siedzą brodaci hakerzy z czerwonymi oczami. W rzeczywistości, nie wiedząc o tym, ty, twoi przyjaciele i sąsiedzi - każdy może być nieświadomym wspólnikiem.

To się dzieje naprawdę. Nawet jeśli o tym nie myślisz. Nawet jeśli jesteś strasznie daleko od IT (zwłaszcza jeśli jesteś daleko od IT!).

Zabawna mechanika hakowania lub ataków DDoS

Zjawisko DDoS jest heterogeniczne. Ta koncepcja łączy wiele opcji działań, które prowadzą do jednego wyniku (odmowa usługi). Rozważ opcje problemów, które mogą nam przynieść ataki DDoSer.

Nadmierne zużycie zasobów obliczeniowych serwera

Odbywa się to poprzez wysyłanie pakietów do określonego adresu IP, którego przetworzenie wymaga dużej ilości zasobów. Na przykład, aby załadować stronę, musisz wykonać dużą liczbę zapytań SQL. Wszyscy atakujący zażądają tej konkretnej strony, co spowoduje przeciążenie serwera i odmowę usługi dla zwykłych, legalnych gości witryny.
To atak na poziomie ucznia, który poświęcił kilka wieczorów na czytanie magazynu Hacker. Ona nie jest problemem. Ten sam żądany adres URL jest obliczany natychmiast, po czym dostęp do niego jest blokowany na poziomie serwera WWW. A to tylko jedno z rozwiązań.

Przeciążenie kanałów komunikacji do serwera (do wyjścia)

Poziom trudności tego ataku jest mniej więcej taki sam jak poprzedniego. Atakujący oblicza najcięższą stronę w witrynie, a kontrolowany przez niego botnet zaczyna masowo żądać jej podania.


Wyobraź sobie, że niewidoczna dla nas część Kubusia Puchatka jest nieskończenie duża
W tym przypadku bardzo łatwo jest również zrozumieć, co dokładnie blokuje kanał wychodzący i zablokować dostęp do tej strony. Żądania tego samego typu można łatwo zobaczyć za pomocą specjalnych narzędzi, które pozwalają spojrzeć na interfejs sieciowy i przeanalizować ruch. Następnie tworzona jest reguła dla zapory sieciowej, która blokuje takie żądania. Wszystko to odbywa się regularnie, automatycznie i tak błyskawicznie, że większość użytkowników nie jest świadoma żadnego ataku.

Mit numer trzy: "A Jednak rzadko często odwiedzają mój hosting i zawsze je zauważam”. W rzeczywistości 99,9% ataków nie widzisz ani nie czujesz. Ale codzienna walka z nimi - to codzienna, rutynowa praca firmy hostingowej. Taka jest nasza rzeczywistość, w której atak jest tani, konkurencja jest poza listami przebojów, a nie każdy wykazuje się czytelnością w metodach walki o miejsce w słońcu.

Przeciążenie kanałów komunikacji do serwera (przy wejściu)

To już zagadka dla tych, którzy czytają magazyn Hacker dłużej niż jeden dzień.


Zdjęcie ze strony internetowej radia „Echo Moskwy”. Nie znaleźli nic bardziej obrazowego, aby przedstawić atak DDoS z przeciążeniem kanału na wejściu.
Aby wypełnić kanał ruchem przychodzącym do pełna, musisz mieć botnet, którego moc pozwala wygenerować wymaganą ilość ruchu. Ale może jest sposób, aby oddać mały ruch i uzyskać dużo?

Jest i nie ma ani jednego. Istnieje wiele opcji wzmocnienia ataku, ale jedną z najpopularniejszych obecnie jest ataku przez publiczne serwery DNS. Eksperci nazywają tę metodę amplifikacji Wzmocnienie DNS(w przypadku, gdy ktoś woli terminy eksperckie). A jeśli to prostsze, wyobraź sobie lawinę: wystarczy mały wysiłek, aby ją zakłócić, i nieludzkie środki, aby ją zatrzymać.

Ty i ja to wiemy publiczny serwer DNS na życzenie informuje każdego zainteresowanego danymi o dowolnej nazwie domeny. Na przykład prosimy taki serwer: powiedz mi o domenie sprinthost.ru. A on bez wahania wyrzuca nam wszystko, co wie.

Zapytanie do serwera DNS jest bardzo prostą operacją. Kontakt z nim prawie nic nie kosztuje, prośba będzie mikroskopijna. Na przykład tak:

Pozostaje tylko wybrać nazwę domeny, o której informacji będzie imponujący pakiet danych. Tak więc oryginalne 35 bajtów przy niewielkim ruchu ręki zamienia się w prawie 3700. Następuje wzrost ponad 10-krotny.

Ale jak się upewnić, że odpowiedź jest kierowana pod właściwy adres IP? Jak sfałszować źródłowy adres IP żądania, aby serwer DNS wysyłał odpowiedzi w kierunku ofiary, która nie żądała żadnych danych?

Faktem jest, że serwery DNS działają dalej Protokół komunikacyjny UDP, co wcale nie wymaga potwierdzenia pochodzenia żądania. Sfałszowanie wychodzącego adresu IP w tym przypadku nie jest wielką sprawą dla dozującego. Dlatego ten rodzaj ataku jest obecnie tak popularny.

Co najważniejsze, do przeprowadzenia takiego ataku wystarczy bardzo mały botnet. I kilka odmiennych publicznych DNS, które nie dopatrzą się nic dziwnego w tym, że różni użytkownicy od czasu do czasu żądają danych z adresu jednego hosta. I dopiero wtedy cały ten ruch połączy się w jeden strumień i mocno przybije jedną „rurę”.

To, czego dozujący nie może wiedzieć, to przepustowość kanałów atakującego. A jeśli nie obliczy poprawnie siły swojego ataku i nie zablokuje od razu kanału do serwera w 100%, atak można szybko i łatwo odeprzeć. Korzystanie z narzędzi takich jak Zrzut TCPłatwo jest dowiedzieć się, że ruch przychodzący pochodzi z DNS, a na poziomie zapory sieciowej uniemożliwić jego akceptację. Ta opcja - odmowa przyjmowania ruchu z DNS - wiąże się z pewną niedogodnością dla wszystkich, jednak zarówno serwery, jak i witryny na nich będą nadal pomyślnie działać.

To tylko jedna z wielu opcji wzmocnienia ataku. Istnieje wiele innych rodzajów ataków, możemy o nich porozmawiać innym razem. Tymczasem chciałbym podsumować, że wszystko powyższe jest prawdziwe dla ataku, którego siła nie przekracza szerokości kanału do serwera.

Jeśli atak jest silny

Jeśli siła ataku przekracza pojemność kanału do serwera, dzieje się co następuje. Kanał internetowy jest natychmiast zatkany do serwera, potem do strony hostingowej, do jego dostawcy Internetu, do dostawcy upstream i tak dalej i w górę w porządku rosnącym (w przyszłości - do najbardziej absurdalnych granic), o ile siła ataku jest wystarczająca.

A potem staje się to globalnym problemem dla wszystkich. I w skrócie z tym mieliśmy do czynienia 20 listopada 2013 roku. A kiedy dochodzi do wstrząsów na dużą skalę, czas włączyć specjalną magię!


Tak wygląda szczególna magia, za pomocą której można obliczyć serwer, do którego kierowany jest ruch i zablokować jego IP na poziomie ISP. Aby przestał akceptować wszelkie połączenia do tego adresu IP za pośrednictwem swoich kanałów komunikacji ze światem zewnętrznym (uplinki). Dla miłośników terminów: eksperci nazywają tę procedurę "zaciemniać", z angielskiego blackhole.

Jednocześnie zaatakowany serwer z 500-1500 kontami pozostaje bez swojego adresu IP. Przydzielana jest dla niej nowa podsieć adresów IP, w której konta klientów są losowo i równomiernie rozdzielane. Ponadto eksperci czekają na powtórzenie ataku. Prawie zawsze się powtarza.

A kiedy sytuacja się powtarza, na zaatakowanym IP nie ma już 500-1000 kont, ale kilkanaście lub dwa.

Krąg podejrzanych się zawęża. Te 10-20 kont jest ponownie rozdzielanych na różne adresy IP. Po raz kolejny inżynierowie czekają na kolejny atak. Raz po raz rozprzestrzeniają podejrzane konta na różne adresy IP iw ten sposób, poprzez stopniowe przybliżenie, obliczają obiekt ataku. Wszystkie inne konta w tym momencie wracają do normalnego działania na tym samym IP.

Jak wiecie, nie jest to procedura natychmiastowa, jej wdrożenie wymaga czasu.

Mit numer cztery:„Kiedy dochodzi do masowego ataku, mój gospodarz nie ma planu działania. Po prostu czeka z zamkniętymi oczami na koniec bombardowania i odpowiada na moje listy tymi samymi odpowiedziami.Tak nie jest: w przypadku ataku dostawca hostingu działa zgodnie z planem, aby jak najszybciej go zlokalizować i wyeliminować skutki. A ten sam rodzaj listów pozwala przekazać istotę tego, co się dzieje, a jednocześnie zaoszczędzić zasoby niezbędne do jak najszybszego przetworzenia sytuacji awaryjnej..

Czy jest światełko w tunelu?

Teraz widzimy, że aktywność DDoS stale rośnie. Zamówienie ataku stało się bardzo dostępne i brzydkie niedrogie. Aby uniknąć oskarżeń o propagandę, nie będzie żadnych linków dowodowych. Ale uwierz nam na słowo, tak jest.

Mit numer pięć: „Atak DDoS jest bardzo kosztownym wydarzeniem i tylko duże firmy mogą sobie pozwolić na jego zlecenie. W ostateczności są to machinacje tajnych służb!” W rzeczywistości takie wydarzenia stały się niezwykle dostępne.

Dlatego nie trzeba oczekiwać, że szkodliwa aktywność zniknie sama. Raczej będzie się tylko nasilać. Pozostaje tylko wykuwać i ostrzyć broń. Co robimy, ulepszamy infrastrukturę sieciową.

Prawna strona zagadnienia

Jest to bardzo niepopularny aspekt omawiania ataków DDoS, ponieważ rzadko słyszymy o przypadkach schwytania i ukarania inicjatorów. Pamiętaj jednak: Atak DDoS jest przestępstwem. W większości krajów świata, w tym w Rosji.

Mit numer sześć: « Teraz wiem już wystarczająco dużo o DDoS, zamówię wakacje dla konkurencji - I nic za to nie dostanę!” Nie jest wykluczone, że tak będzie. A jeśli tak, to nie wydaje się dużo.

  • Powiąż historię z systemem płatności DDoS Assist
  • Ekscytujące rozwiązanie

Ogólnie rzecz biorąc, nie radzimy nikomu angażować się w okrutne praktyki DDoS, aby nie narazić się na gniew sprawiedliwości i nie nagiąć własnej karmy. A my, ze względu na specyfikę naszej działalności i żywe zainteresowanie badawcze, nadal badamy problem, stajemy na warcie i ulepszamy struktury obronne.

PS:nie mamy wystarczająco dużo miłych słów, aby wyrazić całą naszą wdzięczność, więc po prostu mówimy"Dziękuję!" naszym cierpliwym klientom, którzy gorąco nas wspierali w trudnym dniu 20 listopada 2013 r. Powiedziałeś wiele słów zachęty, aby wesprzeć nas

Walka z atakami DDoS to nie tylko trudna, ale i ekscytująca praca. Nic dziwnego, że każdy administrator systemu przede wszystkim stara się samodzielnie zorganizować obronę – zwłaszcza, że ​​jest to jeszcze możliwe.

Postanowiliśmy pomóc Ci w tym trudnym zadaniu i opublikować kilka krótkich, trywialnych i nieuniwersalnych wskazówek, jak chronić Twoją witrynę przed atakami. Te przepisy nie pomogą ci poradzić sobie z żadnym atakiem, ale uchronią cię przed większością niebezpieczeństw.

Właściwe składniki

Brutalna prawda jest taka, że ​​wiele witryn może zostać usuniętych przez każdego, kto użyje ataku Slowloris, który mocno zabija Apache, lub przez zorganizowanie tzw. Wszystkie nasze dalsze wskazówki dotyczące samodzielnej ochrony przed atakami DDoS opierają się na następujących ważnych warunkach.

1. Pozbądź się systemu Windows Server

Praktyka sugeruje, że witryna działająca w systemie Windows (2003 lub 2008 - to nie ma znaczenia) jest skazana na niepowodzenie w przypadku ataku DDoS. Przyczyna niepowodzenia tkwi w stosie sieci Windows: gdy połączeń jest dużo, serwer z pewnością zacznie słabo reagować. Nie wiemy, dlaczego system Windows Server działa tak źle w takich sytuacjach, ale natknęliśmy się na to więcej niż raz czy dwa razy. Z tego powodu w tym artykule skupimy się na sposobach ochrony przed atakami DDoS w przypadku, gdy serwer działa w systemie Linux. Jeśli jesteś szczęśliwym posiadaczem stosunkowo nowoczesnego jądra (począwszy od 2.6), podstawowymi narzędziami będą narzędzia iptables i ipset (do szybkiego dodawania adresów IP), za pomocą których możesz szybko blokować boty. Kolejnym kluczem do sukcesu jest dobrze przygotowany stos sieciowy, o którym również porozmawiamy dalej.

2. Rozstanie z Apache

Drugim ważnym warunkiem jest odrzucenie Apache. Jeśli masz Apache, to przynajmniej umieść przed nim buforujące proxy - nginx lub lighttpd. Apache „jest niezwykle trudny do oddania plików, a co gorsza, jest fundamentalnie (czyli niepoprawnie) podatny na najgroźniejszy atak Slowloris, który pozwala zalać serwer niemal z telefonu komórkowego. Do walki z różnego rodzaju Slowloris, użytkownicy Apache jako pierwsi wymyślili łatkę Anti-slowloris.diff, potem mod_noloris, potem mod_antiloris, mod_limitipconn, mod_reqtimeout... na poziomie architektury kodu. Tak więc wszystkie nasze dalsze receptury opieramy na założeniu, że nginx jest używany na froncie.

Walka z atakami DDoS

Co zrobić, gdy nadejdzie atak DDoS? Tradycyjna technika samoobrony polega na odczytaniu pliku dziennika serwera HTTP, napisaniu wzorca grep (który przechwytuje żądania botów) i zbanowaniu każdego, kto się pod nim podporządkuje. Ta technika zadziała... jeśli będziesz miał szczęście. Istnieją dwa rodzaje botnetów, oba niebezpieczne, ale na różne sposoby. Jeden całkowicie trafia na stronę natychmiast, drugi - stopniowo. Pierwszy zabija wszystko na raz, ale całość pojawia się w logach, a jeśli je grepaetujesz i blokujesz wszystkie adresy IP, to jesteś zwycięzcą. Drugi botnet instaluje witrynę delikatnie i ostrożnie, ale prawdopodobnie będziesz musiał go zablokować na jeden dzień. Ważne jest, aby każdy administrator zrozumiał: jeśli planujesz walczyć z grepem, musisz być przygotowany na poświęcenie kilku dni na walkę z atakiem. Poniżej znajdują się wskazówki, gdzie można umieścić słomki z wyprzedzeniem, aby upadek nie był tak bolesny.

3. Skorzystaj z modułu testcookie

Być może najważniejsza, skuteczna i operacyjna recepta tego artykułu. Jeśli DDoS pojawi się na Twojej stronie, moduł testcookie-nginx, opracowany przez @kyprizel, może stać się najskuteczniejszym sposobem walki. Pomysł jest prosty. Najczęściej boty, które implementują zalewanie HTTP, są raczej głupie i nie mają mechanizmów HTTP cookie i przekierowań. Czasami trafiają się bardziej zaawansowane – mogą wykorzystywać pliki cookie i przekierowywać procesy, ale prawie nigdy bot DoS nie ma pełnoprawnego silnika JavaScript (choć jest to coraz bardziej powszechne). Testcookie-nginx działa jako szybki filtr między botami a backendem podczas ataku L7 DDoS, umożliwiając odfiltrowanie niechcianych żądań. Co obejmuje ta kontrola? Czy klient wie, jak wykonać HTTP Redirect, czy obsługuje JavaScript, czy jest tą przeglądarką, za którą się podaje (bo JavaScript jest wszędzie inny i jeśli klient mówi, że to np. Firefox, to możemy to sprawdzić). Weryfikacja jest realizowana za pomocą plików cookie przy użyciu różnych metod:

  • „Set-Cookie” + przekierowanie z lokalizacją HTTP 301;
  • „Set-Cookie” + przekierowanie przy użyciu metaodświeżania HTML;
  • dowolny szablon i możesz użyć JavaScript.

Aby uniknąć automatycznego analizowania, sprawdzający plik cookie można zaszyfrować za pomocą algorytmu AES-128, a następnie odszyfrować po stronie klienta JavaScript. Nowa wersja modułu posiada możliwość ustawiania plików cookie przez Flasha, co pozwala również skutecznie eliminować boty (których Flash z reguły nie obsługuje), jednak blokuje dostęp wielu legalnym użytkownikom (w rzeczywistości , wszystkie urządzenia mobilne). Warto zauważyć, że rozpoczęcie korzystania z testcookie-nginx jest niezwykle łatwe. Deweloper w szczególności podaje kilka wyraźnych przykładów użycia (dla różnych przypadków ataku) z przykładami konfiguracji dla nginx.

Oprócz zalet, pliki testowe mają również wady:

  • odcina wszystkie boty, w tym Googlebota. Jeśli planujesz pozostawić testcookie na stałe, upewnij się, że nie znikniesz z wyników wyszukiwania;
  • stwarza problemy dla użytkowników z przeglądarkami Links, w3m i tym podobnymi;
  • nie zapisuje przed botami wyposażonymi w pełnoprawny silnik przeglądarki z JavaScript.

Jednym słowem testcookie_module nie jest uniwersalny. Ale z wielu rzeczy, takich jak na przykład prymitywne zestawy narzędzi w Javie i C #, pomaga. W ten sposób odciąłeś część zagrożenia.

4. Kod 444

DDoSers często atakują najbardziej zasobochłonną część witryny. Typowym przykładem jest wyszukiwanie, które wykonuje złożone zapytania do bazy danych. Oczywiście atakujący mogą to wykorzystać, ładując jednocześnie kilkadziesiąt tysięcy żądań do wyszukiwarki. Co możemy zrobić? Tymczasowo wyłącz wyszukiwanie. Chociaż klienci nie będą mogli wyszukiwać potrzebnych im informacji za pomocą wbudowanych narzędzi, cała witryna główna będzie działać, dopóki nie znajdziesz źródła wszystkich problemów. Nginx obsługuje niestandardowy kod 444, który pozwala po prostu zamknąć połączenie i nic nie zwracać w odpowiedzi:

Lokalizacja /szukaj (powrót 444; )

Dzięki temu możliwe jest np. szybkie wdrożenie filtrowania po adresie URL. Jeśli masz pewność, że żądania lokalizacji /search pochodzą tylko od botów (na przykład Twoja pewność opiera się na fakcie, że Twoja witryna w ogóle nie ma sekcji /search), możesz zainstalować pakiet ipset na serwerze i zablokuj boty za pomocą prostego skryptu powłoki:

Ipset -N ban iphash tail -f dostęp.log | podczas czytania LINI; wykonaj echo „$LINE” | \ cut -d""" -f3 | cut -d" " -f2 | grep -q 444 && ipset -A zakaz "$(L%% *)"; gotowe

Jeśli format plików logów jest niestandardowy (niepołączony) lub potrzebujesz bana z innych powodów niż status odpowiedzi, może być konieczne zastąpienie cut wyrażeniem regularnym.

5. Geo-banim

Niestandardowy kod odpowiedzi 444 może być również przydatny do szybkiego blokowania klientów na podstawie georeferencji. Możesz poważnie ograniczyć poszczególne kraje, z których czujesz się niekomfortowo. Na przykład jest mało prawdopodobne, aby internetowy sklep z aparatami fotograficznymi z Rostowa nad Donem miał wielu użytkowników w Egipcie. To niezbyt dobry sposób (mówiąc wprost – obrzydliwy), bo dane GeoIP są niedokładne, a Rostowicze czasem latają do Egiptu na wakacje. Ale jeśli nie masz nic do stracenia, postępuj zgodnie z instrukcjami:

  1. Podłącz moduł GeoIP do nginx (wiki.nginx.org/HttpGeoipModule).
  2. Wyświetl informacje georeferencyjne w dzienniku dostępu.
  3. Następnie, po zmodyfikowaniu powyższego skryptu powłoki, grep nginx's accesslog i dodaj geograficznie wyrzuconych klientów do bana.

Jeśli na przykład boty pochodziły głównie z Chin, może to pomóc.

6. Sieć neuronowa (PoC)

Na koniec możesz powtórzyć doświadczenie użytkownika @SaveTheRbtz, który wziął sieć neuronową PyBrain, umieścił w niej log i przeanalizował żądania (habrahabr.ru/post/136237). Metoda działa, choć nie uniwersalna :). Ale jeśli naprawdę znasz wnętrze swojej witryny – a jako administrator systemu powinieneś – to są szanse, że w najbardziej tragicznych sytuacjach takie narzędzie oparte na sieciach neuronowych, szkoleniach i wcześniej zebranych informacjach Ci pomoże. W tym przypadku bardzo przydatne jest posiadanie pliku access.log przed rozpoczęciem ataku DDoS, ponieważ opisuje on prawie 100% legalnych klientów, a zatem stanowi doskonały zbiór danych do trenowania sieci neuronowej. Ponadto boty nie zawsze są widoczne w sieci. dziennik.

Diagnoza problemu

Strona nie działa - dlaczego? Czy to DDoSed, czy błąd silnika niezauważony przez programistę? Nieważne. Nie szukaj odpowiedzi na to pytanie. Jeśli uważasz, że Twoja witryna może zostać zaatakowana, skontaktuj się z firmami zapewniającymi ochronę przed atakami — wiele usług anty-DDoS oferuje bezpłatny pierwszy dzień po połączeniu — i nie marnuj więcej czasu na szukanie symptomów. Skoncentruj się na problemie. Jeśli strona działa wolno lub w ogóle się nie otwiera, oznacza to, że coś jest nie tak z jej działaniem i niezależnie od tego, czy doszło do ataku DDoS, czy nie, jako profesjonalista musisz zrozumieć, co jest tego przyczyną. Wielokrotnie byliśmy świadkami, jak firma, która miała trudności z działaniem swojej strony w wyniku ataku DDoS, zamiast szukać słabych punktów w silniku strony, próbowała wysłać wnioski do Ministerstwa Spraw Wewnętrznych w celu wykrycia i ukarania atakujących. Nie popełniaj takich błędów. Wyszukiwanie cyberprzestępców jest procesem trudnym i długotrwałym, skomplikowanym ze względu na samą strukturę i zasady funkcjonowania Internetu, a problem z działaniem serwisu musi zostać szybko rozwiązany. Poproś techników, aby dowiedzieli się, co powoduje spadek wydajności witryny, a prawnicy mogą napisać skargę.

7. Użyj profilera i debuggera

W przypadku najpopularniejszej platformy do tworzenia stron internetowych - PHP + MySQL - wąskie gardło można znaleźć za pomocą następujących narzędzi:

  • profiler Xdebug pokaże, którym wywołaniom aplikacja poświęca najwięcej czasu;
  • wbudowany debuger APD i wyjście debugowania do dziennika błędów pomoże ci dowiedzieć się dokładnie, który kod wykonuje te wywołania;
  • w większości przypadków pies jest pochowany w złożoności i ciężarze zapytań do bazy danych. Pomoże nam w tym dyrektywa Explain SQL wbudowana w silnik bazy danych.

Jeśli strona leży na wznak i nic nie tracisz, odłącz się od sieci, przejrzyj logi, spróbuj je odtworzyć. Jeśli nie, przejrzyj strony, spójrz na bazę.

Przykład dotyczy PHP, ale pomysł jest ważny dla dowolnej platformy. Deweloper piszący oprogramowanie w dowolnym języku programowania musi być w stanie szybko korzystać zarówno z debuggera, jak i profilera. Ćwicz wcześniej!

8. Analizuj błędy

Analizuj natężenie ruchu, czas odpowiedzi serwera, liczbę błędów. Zobacz logi na ten temat. W nginx czas odpowiedzi serwera jest rejestrowany w logu przez dwie zmienne: request_time i upstream_response_time. Pierwszy to całkowity czas wykonania żądania, w tym opóźnienia sieci między użytkownikiem a serwerem; druga mówi, jak długo backend (Apache, php_fpm, uwsgi...) wykonuje żądanie. Wartość upstream_response_time jest niezwykle ważna w przypadku witryn z dużą ilością dynamicznej treści i aktywnej komunikacji między frontendem a bazą danych i nie należy jej lekceważyć. Możesz użyć następującej konfiguracji jako formatu dziennika:

Log_format xakep_log "$remote_addr - $remote_user [$time_local] " ""$request" $status $body_bytes_sent " ""$http_referer" "$http_user_agent" $request_time \ $upstream_response_time";

Jest to format łączony z dodanymi polami pomiaru czasu.

9. Śledź żądania na sekundę

Spójrz także na liczbę żądań na sekundę. W przypadku nginx możesz z grubsza oszacować tę wartość za pomocą następującego polecenia powłoki (zmienna ACCESS_LOG zawiera ścieżkę do dziennika żądań nginx w połączonym formacie):

Echo $(($(fgrep -c "$(środowisko LC_ALL=C data [e-mail chroniony]$(($(data \ +%s)-60)) +%d/%b/%Y:%H:%M)" "$ACCESS_LOG")/60))

W porównaniu do normalnego poziomu o tej porze dnia liczba żądań na sekundę może zarówno spadać, jak i rosnąć. Rosną, gdy pojawia się duży botnet, i spadają, jeśli przychodzący botnet powoduje awarię witryny, czyniąc ją całkowicie niedostępną dla legalnych użytkowników, a jednocześnie botnet nie żąda danych statycznych, ale uprawnieni użytkownicy tak. Spadek liczby żądań obserwowany jest właśnie ze względu na statykę. Ale w ten czy inny sposób mówimy o poważnych zmianach wskaźników. Gdy dzieje się to nagle – w trakcie samodzielnego rozwiązywania problemu i niewidocznego od razu w logu, lepiej szybko sprawdzić silnik i równolegle skontaktować się ze specjalistami.

10. Nie zapomnij o tcpdump

Wiele osób zapomina, że ​​tcpdump to niesamowite narzędzie diagnostyczne. Podam kilka przykładów. W grudniu 2011 roku wykryto błąd w jądrze Linuksa, który otwierał połączenie TCP, gdy ustawione były flagi segmentu TCP SYN i RST. Pierwszy raport o błędzie został przesłany przez administratora systemu z Rosji, którego zasób został zaatakowany tą metodą - atakujący dowiedzieli się o luce wcześniej niż cały świat. Oczywiście taka diagnoza mu pomogła. Inny przykład: nginx ma jedną niezbyt przyjemną właściwość - zapisuje do logu dopiero po całkowitym przetworzeniu żądania. Są sytuacje, kiedy strona nie działa, nic nie działa i nic nie ma w logach. Dzieje się tak, ponieważ wszystkie żądania, które aktualnie ładują serwer, nie zostały jeszcze zakończone. Tcpdump też tutaj pomoże.

Jest tak dobry, że radziłem ludziom, aby nie używali protokołów binarnych, dopóki nie będą pewni, że wszystko jest w porządku, ponieważ protokoły tekstowe są łatwe do debugowania za pomocą tcpdump, ale protokoły binarne nie. Jednak sniffer jest dobry jako narzędzie diagnostyczne - jako sposób na utrzymanie produkcji” i jest przerażający. Może łatwo stracić wiele pakietów jednocześnie i zepsuć historię użytkownika. Wygodnie jest oglądać jego wyniki i przyda się do ręcznej diagnostyki i bana, ale staraj się nie opierać na nim niczego krytycznego. Inne ulubione narzędzie do „rozgrzewania żądań” – ngrep – generalnie domyślnie próbuje zażądać około dwóch gigabajtów niewymiennej pamięci i dopiero wtedy zaczyna zmniejszać swoje wymagania.

11. Atakować czy nie?

Jak odróżnić np. atak DDoS od efektu kampanii reklamowej? To pytanie może wydawać się śmieszne, ale ten temat jest nie mniej skomplikowany. Jest kilka całkiem zabawnych przypadków. W przypadku niektórych dobrych ludzi, kiedy byli napięci i całkowicie schrzanili buforowanie, strona zachorowała na kilka dni. Okazało się, że przez kilka miesięcy ta strona była niepostrzeżenie zbierana przez niektórych Niemców i zanim zoptymalizowano buforowanie strony ze wszystkimi zdjęciami, ładowanie trwało dość długo. Kiedy strona zaczęła się natychmiastowo wydawać z pamięci podręcznej, bot, który nie miał żadnych limitów czasu, również zaczął je natychmiast zbierać. To było trudne. Sprawa jest szczególnie trudna z tego powodu, że jeśli sam zmieniłeś ustawienie (włączyłeś buforowanie) i strona przestała działać po tym, to kto, Twoim zdaniem i zdaniem szefa, jest winny? Dokładnie. Jeśli widzisz gwałtowny wzrost liczby żądań, to spójrz np. w Google Analytics, kto wszedł na które strony.

Strojenie serwera WWW

Jakie są inne kluczowe punkty? Oczywiście możesz ustawić „domyślny” nginx i mieć nadzieję, że wszystko będzie dobrze dla ciebie. Jednak dobre rzeczy nie zawsze się zdarzają. Dlatego administrator dowolnego serwera musi poświęcić dużo czasu na dopracowanie i dostrojenie nginx.

12. Ogranicz zasoby (rozmiary buforów) w nginx

O czym przede wszystkim należy pamiętać? Każdy zasób ma limit. Przede wszystkim dotyczy pamięci RAM. Dlatego rozmiary nagłówków i wszystkich używanych buforów powinny być ograniczone do odpowiednich wartości na klienta i na serwer jako całość. Muszą być zarejestrowane w konfiguracji nginx.

  • client_header_buffer_size_ _ Ustawia rozmiar bufora do odczytu nagłówka żądania klienta. Jeśli ciąg żądania lub pole nagłówka żądania nie mieszczą się całkowicie w tym buforze, przydzielane są większe bufory, określone przez dyrektywę large_client_header_buffers.
  • duże_bufory_nagłówka_klienta Określa maksymalną liczbę i rozmiar buforów do odczytania nagłówka dużego żądania klienta.
  • rozmiar_bufora_body_klienta Ustawia rozmiar buforu do odczytywania treści żądania klienta. Jeśli treść żądania jest większa niż określony bufor, cała treść żądania lub tylko jej część jest zapisywana w pliku tymczasowym.
  • klient_max_body_size Ustawia maksymalny dozwolony rozmiar treści żądania klienta, określony w polu Content-Length nagłówka żądania. Jeśli rozmiar jest większy niż określony, klient zwraca błąd 413 (Request Entity Too Large).

13. Ustaw limity czasu w nginx

Czas jest również zasobem. Dlatego kolejnym ważnym krokiem powinno być ustawienie wszystkich limitów czasu, które ponownie bardzo ważne jest, aby dokładnie zarejestrować się w ustawieniach nginx.

  • reset_timedout_connection włączony; Pomaga radzić sobie z gniazdami, które utknęły w fazie FIN-WAIT.
  • limit czasu_nagłówka_klienta Określa limit czasu podczas odczytywania nagłówka żądania klienta.
  • limit czasu_body_klienta Określa limit czasu podczas odczytywania treści żądania klienta.
  • podtrzymanie limitu czasu Ustawia limit czasu, podczas którego utrzymywane połączenie z klientem nie zostanie zamknięte przez serwer. Wielu boi się tutaj ustawiać duże wartości, ale nie jesteśmy pewni, czy ten strach jest uzasadniony. Opcjonalnie możesz ustawić wartość limitu czasu w nagłówku HTTP Keep-Alive, ale Internet Explorer jest znany z ignorowania tej wartości.
  • limit_czasu wysyłania Określa limit czasu podczas wysyłania odpowiedzi do klienta. Jeśli klient nic nie otrzyma po tym czasie, połączenie zostanie zamknięte.

Od razu nasuwa się pytanie: jakie parametry buforów i limitów czasu są poprawne? Nie ma tu uniwersalnej recepty, każda sytuacja ma swoją. Istnieje jednak sprawdzona metoda. Konieczne jest ustawienie minimalnych wartości, przy których witryna działa (w czasie pokoju), czyli zwracane są strony i przetwarzane są żądania. Określają to dopiero testy – zarówno z desktopów, jak iz urządzeń mobilnych. Algorytm wyszukiwania wartości każdego parametru (rozmiar bufora lub limit czasu):

  1. Ustawiamy matematyczną minimalną wartość parametru.
  2. Rozpoczynamy testy witryny.
  3. Jeśli wszystkie funkcje witryny działają bez problemów, parametr jest zdefiniowany. Jeśli nie, zwiększ wartość parametru i przejdź do kroku 2.
  4. Jeśli wartość parametru przekroczyła nawet wartość domyślną, jest to powód do dyskusji w zespole deweloperskim.

W niektórych przypadkach rewizja tych parametrów powinna prowadzić do refaktoryzacji/przeprojektowania strony. Na przykład, jeśli witryna nie działa bez trzyminutowych żądań odpytywania AJAX, nie trzeba zwiększać limitu czasu, ale zastąpić długie odpytywanie czymś innym - botnetem złożonym z 20 tysięcy maszyn, zawieszonym na żądaniach przez trzy minuty, z łatwością zabije przeciętny tani serwer.

14. Ogranicz połączenia w nginx (limit_conn i limit_req)

Nginx ma również możliwość ograniczania połączeń, żądań i tak dalej. Jeśli nie masz pewności, jak zachowa się dana część Twojej witryny, najlepiej byłoby ją przetestować, dowiedzieć się, ile żądań może obsłużyć, i zapisać to w konfiguracji nginx. To jedno, gdy witryna nie działa i możesz przyjść i ją odebrać. A to już zupełnie inna sprawa – kiedy położyło się do tego stopnia, że ​​serwer poszedł w swap. W takim przypadku często łatwiej jest zrestartować niż czekać na jego triumfalny powrót.

Załóżmy, że witryna ma sekcje o wymownych nazwach /download i /search. W ten sposób:

  • nie chcemy, aby boty (lub osoby z nadgorliwymi rekurencyjnymi menedżerami pobierania) zapełniały naszą tabelę połączeń TCP swoimi pobraniami;
  • nie chcemy, aby boty (lub zbłąkane roboty wyszukiwarek) wyczerpały zasoby obliczeniowe systemu DBMS wieloma zapytaniami wyszukiwania.

Do tych celów odpowiednia będzie następująca konfiguracja:

Http ( limit_conn_zone $binary_remote_addr zone=download_c:10m; limit_req_zone $binary_remote_addr zone=search_r:10m \ rate=1r/s; server ( location /download/ ( limit_conn download_c 1; # Inna lokalizacja konfiguracji ) lokalizacja /search/ ( limit_req zone= search_r burst=5; # Inna lokalizacja konfiguracji ) ) )

Zwykle sensowne jest ustawienie limitów limit_conn i limit_req dla lokalizacji, w których znajdują się drogie w wykonaniu skrypty (wyszukiwanie jest wskazane w przykładzie i nie jest to przypadek). Ograniczenia muszą być dobrane na podstawie wyników testów obciążeniowych i regresyjnych, a także zdrowego rozsądku.

Zwróć uwagę na parametr 10m w przykładzie. Oznacza to, że do obliczenia tego limitu zostanie przydzielony słownik z buforem 10 megabajtów i ani jednego megabajta więcej. W tej konfiguracji pozwoli to na monitorowanie 320 000 sesji TCP. Aby zoptymalizować wykorzystanie pamięci, zmienna $binary_remote_addr jest używana jako klucz w słowniku, który zawiera adres IP użytkownika w postaci binarnej i zajmuje mniej pamięci niż zwykła zmienna łańcuchowa $remote_addr. Należy zaznaczyć, że drugim parametrem do dyrektywy limit_req_zone może być nie tylko IP, ale także dowolna inna dostępna w tym kontekście zmienna nginx – na przykład w przypadku, gdy nie chcemy udostępniać bardziej wybaczającego trybu dla proxy, można użyć $binary_remote_addr$http_user_agent lub $binary_remote_addr$http_cookie_myc00kiez - ale takich konstrukcji należy używać ostrożnie, ponieważ w przeciwieństwie do 32-bitowego $binary_remote_addr te zmienne mogą być znacznie dłuższe i zadeklarowane przez Ciebie „10m” może nagle się skończyć.

Trendy w atakach DDoS

  1. Siła ataków warstwy sieciowej i transportowej stale rośnie. Potencjał przeciętnego ataku SYN flood osiągnął już 10 milionów pakietów na sekundę.
  2. Ataki na DNS są ostatnio szczególnie pożądane. Zalew UDP prawidłowymi żądaniami DNS ze sfałszowanymi źródłowymi adresami IP jest jednym z najłatwiejszych do wdrożenia i trudnych do zwalczenia ataków. Wiele dużych rosyjskich firm (w tym firm hostingowych) doświadczyło ostatnio problemów w wyniku ataków na ich serwery DNS. Im dalej, tym więcej będzie takich ataków, a ich siła będzie rosła.
  3. Sądząc po znakach zewnętrznych, większość botnetów nie jest kontrolowana centralnie, ale przez sieć peer-to-peer. Daje to atakującym możliwość zsynchronizowania działań botnetu w czasie – jeśli wcześniej polecenia kontrolne były rozprowadzane w botnecie składającym się z 5000 maszyn w dziesiątki minut, teraz liczą się sekundy, a Twoja witryna może nagle doświadczyć stukrotnego wzrostu liczby upraszanie.
  4. Udział botów wyposażonych w pełnoprawny silnik przeglądarki z JavaScript jest wciąż niewielki, ale stale rośnie. Taki atak jest trudniejszy do odparcia za pomocą wbudowanych improwizowanych środków, dlatego majsterkowicze powinni uważnie obserwować ten trend.

przygotowanie systemu operacyjnego

Oprócz dopracowania nginx, musisz zadbać o ustawienia stosu sieciowego systemu. Przynajmniej natychmiast dołącz net.ipv4.tcp_syncookies do sysctl, aby od razu zabezpieczyć się przed małym atakiem typu SYN flood.

15. Dostrój rdzeń

Zwróć uwagę na bardziej zaawansowane ustawienia części sieciowej (jądra), ponownie pod względem limitów czasu i pamięci. Są ważniejsze i mniej ważne. Przede wszystkim musisz zwrócić uwagę na:

  • net.ipv4.tcp_fin_timeout Czas, jaki gniazdo spędzi w fazie TCP FIN-WAIT-2 (oczekiwanie na segment FIN/ACK).
  • net.ipv4.tcp_(,r,w)pamięć Rozmiar bufora odbioru gniazda TCP. Trzy wartości: minimalna, domyślna i maksymalna.
  • net.core.(r,w)mem_max To samo dotyczy buforów innych niż TCP.

Przy łączu o przepustowości 100 Mb/s wartości domyślne są nadal w jakiś sposób odpowiednie; ale jeśli masz dostępne co najmniej gigabity na sekundę, lepiej użyć czegoś takiego:

sysctl -w net.core.rmem_max=8388608 sysctl -w net.core.wmem_max=8388608 sysctl -w net.ipv4.tcp_rmem="4096 87380 8388608" sysctl -w net.ipv4.tcp_wmem="4096 65536 8388608" sysctl - w net.ipv4.tcp_fin_timeout=10

16. Wersja /proc/sys/net/**

Idealnie jest przestudiować wszystkie parametry /proc/sys/net/**. Musimy zobaczyć, jak różnią się one od domyślnych i zrozumieć, jak odpowiednio są eksponowane. Programista Linuksa (lub administrator systemu), który rozumie działanie kontrolowanego przez siebie serwisu internetowego i chce go zoptymalizować, powinien z zainteresowaniem zapoznać się z dokumentacją wszystkich parametrów stosu sieciowego jądra. Być może znajdzie tam zmienne specyficzne dla swojej witryny, które pomogą nie tylko zabezpieczyć witrynę przed intruzami, ale także przyspieszyć jej pracę.

Nie bój się!

Udane ataki DDoS z dnia na dzień gasią e-commerce, wstrząsają mediami, jednym ciosem powalają największe systemy płatnicze. Miliony użytkowników Internetu tracą dostęp do krytycznych informacji. Zagrożenie jest pilne, więc musisz stawić mu czoła w pełnym uzbrojeniu. Odrób swoją pracę domową, nie bój się i zachowaj zimną krew. Nie jesteś pierwszym ani ostatnim, który spotkał się z atakiem DDoS na Twoją stronę i to od Ciebie, kierując się wiedzą i zdrowym rozsądkiem, zależy zminimalizowanie skutków ataku.

Dużo rozmawiamy o atakach na stronę, hakowaniu, ale nie poruszyliśmy tematu DDOS. Dziś naprawiamy tę sytuację i oferujemy pełny przegląd technologii organizowania ataków DDoS oraz dobrze znane narzędzia do przeprowadzania ataków hakerskich.


Możesz wyświetlić listę dostępnych narzędzi do ataków DDOS w KALI, uruchamiając polecenie:

kali > /usr/share/exploitdb/platforms/windows/dos


To polecenie pokazuje bazę danych exploitów do atakowania systemów Windows.

Aby wyświetlić dostępne narzędzia do ataków Linux DDoS, wprowadź polecenie:

/usr/share/exploitdb/platforms/Linux/dos.

2.LOIC

Działo jonowe na niskiej orbicie (LOIC) Prawdopodobnie najpopularniejszy program DDOS. Może wysyłać masowe żądania za pośrednictwem protokołów ICMP, UDP, blokując w ten sposób kanał do serwera ofiary. Najbardziej znany atak LOIC został przeprowadzony przez Anonymous w 2009 roku przeciwko PayPal, Visa, MasterCard w odwecie za odcięcie WikiLeaks od systemu zbierania funduszy.

Ataki zorganizowane z wykorzystaniem LOIC mogą być wykorzystane poprzez blokowanie pakietów UDP i ICMP na urządzeniach sieciowych dostawców Internetu. Sam program LOIC można bezpłatnie pobrać ze strony internetowej. To narzędzie oparte na systemie Windows jest bardzo łatwe w użyciu, wystarczy wskazać strony internetowe ofiary i nacisnąć tylko jeden przycisk.

2.HOIC

HOIC został opracowany w ramach Operation Payback przez Praetox przez ten sam zespół, który stworzył LOIC. Kluczowa różnica polega na tym, że HOIC używa protokołu HTTP i używa go do wysyłania strumienia losowych żądań HTTP GET i POST. Jest w stanie jednocześnie atakować 256 domen. Możesz go pobrać z .


3.XOIC

XOIC to kolejne bardzo proste narzędzie DDOS. Użytkownik musi tylko ustawić adres IP ofiary, wybrać protokół (HTTP, UDP, ICMP lub TCP) i pociągnąć za spust! Możesz go pobrać z

5. HULK

6. Powódź UDP

UDP Flooder zasługuje na swoją nazwę - narzędzie zaprojektowane do wysyłania wielu pakietów UDP do celu. UDP Flooder jest często używany w atakach DDOS na serwery gier w celu odłączenia graczy od serwera. Program jest do pobrania pod adresem .

7. RUDY

8. Młot ToR

Młot ToR został zaprojektowany do pracy sieci, w celu osiągnięcia większej anonimowości atakującego. Problem z tym narzędziem polega na tym, że sieć TOR jest dość wolna, co zmniejsza skuteczność ataku DDoS. Możesz pobrać ten program DDOS z Packet Storm lub .

9. Odźwiernik

Pyloris to kolejne narzędzie DDoS, które przyjmuje nowe podejście. Umożliwia atakującemu utworzenie własnego, unikalnego żądania HTTP. Program będzie wtedy próbował utrzymać otwarte połączenie TCP z takimi żądaniami, zmniejszając w ten sposób liczbę dostępnych połączeń na serwerze. Po osiągnięciu limitu połączeń serwera serwer nie może już obsługiwać połączeń, a witryna staje się niedostępna. To narzędzie jest dostępne do bezpłatnego pobrania ze strony internetowej.

10. Nóż sprężynowy OWASP

Open Web Application Security Project (OWASP) i ProactiveRISK opracowały narzędzie Narzędzie Switchblade DoS do testowania aplikacji WEB pod kątem odporności na ataki DDoS, posiada trzy tryby działania: 1. SSL Half-Open, 2. HTTP Post, 3. Slowloris. Można go pobrać do wglądu ze strony internetowej OWASP.

11.DAVOSET

12. Narzędzie GoldenEye HTTP DoS

13.THC-SSL-DOS

To narzędzie DDOS (dołączone do Kali) różni się od większości narzędzi DDOS tym, że nie wykorzystuje przepustowości Internetu i może być używane z jednego komputera. THC-SSL-DOS wykorzystuje lukę protokołu SSL i jest w stanie „odłożyć” docelowy serwer. O ile oczywiście ta luka istnieje na nim. Możesz pobrać program ze strony internetowej THC lub użyć KALI Linux, w którym to narzędzie jest już zainstalowane.

14. DDOSIM — emulator DDoS warstwy 7

Na tym kończy się nasza recenzja, ale w przyszłości wrócimy do tematu ataków DDoS na łamach naszego bloga.

Atak DDoS (Distributed Denial of Service) to zestaw działań, które mogą całkowicie lub częściowo wyłączyć zasób internetowy. Niemal każdy zasób internetowy może działać jako ofiara, na przykład witryna internetowa, serwer gier lub zasób rządowy. W tej chwili haker jest praktycznie niemożliwy do samodzielnego zorganizowania ataku DDoS. W większości przypadków atakujący wykorzystuje sieć komputerów zainfekowanych wirusem. Wirus pozwala uzyskać niezbędny i wystarczający zdalny dostęp do zainfekowanego komputera. Sieć takich komputerów nazywana jest botnetem. Z reguły botnety mają serwer koordynujący. Decydując się na atak, atakujący wysyła polecenie do serwera koordynującego, który z kolei daje wszystkim sygnał do rozpoczęcia wykonywania złośliwych żądań sieciowych.

Przyczyny ataków DDoS

  • Osobista niechęć

Ten powód jest dość powszechny. Jakiś czas temu niezależny dziennikarz badawczy Brian Krebs ujawnił działania największego serwisu do niestandardowych ataków DDoS - vDOS. Informacja została przedstawiona z pełną szczegółowością, co spowodowało aresztowanie organizatorów tej usługi. W odpowiedzi hakerzy zorganizowali atak na blog dziennikarza, którego moc osiągnęła 1 Tbps. Ten atak stał się najpotężniejszym na świecie przez wszystkie lata.

  • Rozrywka

W dzisiejszych czasach coraz łatwiej jest samodzielnie zorganizować prymitywny atak DDoS. Taki atak byłby wyjątkowo niedoskonały i nieanonimowy. Niestety, większość z tych, którzy decydują się poczuć się jak „hacker”, nie zdaje sobie sprawy ani z pierwszego, ani z drugiego. Jednak wielu uczniów często praktykuje ataki DDoS. Wynik takich spraw jest bardzo zróżnicowany.

  • Protest polityczny (haktywizm)

Jednym z pierwszych ataków społecznościowych był atak DDoS przeprowadzony w 1996 roku przez hakera Omega. Omega była członkiem koalicji hakerskiej Cult of the Dead Crew (cDc). Termin hacktywizm stał się popularny w mediach ze względu na rosnącą częstotliwość cyberataków, które mają podłoże społeczne. Typowymi przedstawicielami haktywistów są Anonymous i LulzSec.

  • Niesprawiedliwa Rywalizacja

Takie motywy często pojawiają się w branży serwerów do gier, ale w branży retail takie przypadki są dość powszechne. Dość skuteczny sposób nieuczciwej konkurencji, który może zniszczyć reputację platformy handlowej, jeśli jej właściciele nie zwrócą się na czas o pomoc do specjalistów. Taki motyw można wyróżnić spośród innych jako najczęstszy.

  • Wymuszenie lub szantaż

W takim przypadku atakujący żąda od potencjalnej ofiary sumy pieniędzy za zaniechanie przeprowadzenia ataku. Lub zatrzymać to. Ofiarami takich ataków często padają duże organizacje, na przykład w 2014 roku zaatakowany został Tinkoff Bank i zasób IT Habrahabr, największy tracker torrentów Rutracker.org (jak było?).

Konsekwencje ataków DDoS

Konsekwencje ataków DDoS mogą być bardzo różnorodne, od wyłączenia serwera przez centrum danych po całkowitą utratę reputacji zasobu i przepływu klientów. Wiele organizacji nieświadomie wybiera pozbawionych skrupułów dostawców zabezpieczeń, aby zaoszczędzić pieniądze, co często nie przynosi żadnych korzyści. Aby uniknąć takich problemów, zalecamy kontakt z profesjonalistami w Twojej branży.

Ataki, które przeszły do ​​historii Internetu

Postęp technologiczny postępuje skokowo, a napastnicy z kolei dokładają wszelkich starań, aby nie stać w miejscu i przeprowadzać coraz bardziej złożone i potężne ataki. Przygotowaliśmy krótki opis najciekawszych przypadków, które zapisały się w historii ataków DDoS. Niektóre z nich mogą wydawać się zwyczajne według dzisiejszych standardów, ale w tamtym czasie były to ataki na bardzo dużą skalę.

Ping Śmierci. Metoda ataku oparta na użyciu polecenia ping. Atak ten zyskał popularność w latach 90. ze względu na niedoskonałość sprzętu sieciowego. Istotą ataku jest wysłanie pojedynczego żądania ping do hosta sieciowego, podczas gdy treść pakietu zawiera nie standardowe 64 bajty danych, ale 65535 bajtów. Po otrzymaniu takiego pakietu sprzęt przepełnił stos sieciowy, co spowodowało odmowę usługi.

Atak, który wpłynął na stabilność Internetu. W 2013 roku Spamhaus padł ofiarą ataku o przepustowości 280 Gb/s. Najciekawsze jest to, że do ataku hakerzy wykorzystali serwery DNS z Internetu, które z kolei były bardzo obciążone dużą liczbą żądań. Tego dnia miliony użytkowników skarżyło się na powolne ładowanie stron z powodu przeciążenia usług.

Rekordowy atak z ruchem powyżej 1 Tbps. W 2016 roku hakerzy próbowali zaatakować nas serią ataków z szybkością 360 Mpps i 1 Tbps. Liczba ta stała się rekordem istnienia Internetu. Ale nawet w przypadku takiego ataku stawialiśmy opór, a obciążenie sieci tylko nieznacznie ograniczyło wolne zasoby sprzętu sieciowego.

Charakterystyka ataków dzisiaj

Wyłączając ataki szczytowe, można powiedzieć, że siła ataków rośnie każdego roku ponad 3-4 razy. Geografia atakujących zmienia się tylko częściowo z roku na rok, ponieważ wynika to z maksymalnej liczby komputerów w danym kraju. Jak wynika z przygotowanego przez naszych ekspertów raportu kwartalnego za 2016 rok, rekordowymi krajami pod względem liczby botów są Rosja, USA i Chiny.

Czym są ataki DDoS?

W tej chwili rodzaje ataków można podzielić na 3 klasy:

    Ataki zalewania kanałów

Ten typ ataku obejmuje , i ;

    Ataki wykorzystujące luki w stosie protokołów sieciowych

Najpopularniejsze i najciekawsze ataki tego typu to ,/atak,

Dlaczego właśnie my? Nasz sprzęt znajduje się w kluczowych centrach danych na świecie i jest w stanie odeprzeć ataki do 300 Gbps lub 360 milionów pakietów na sekundę. Posiadamy również sieć dostarczania treści () oraz sztab inżynierów dyżurujących na wypadek niestandardowego ataku lub sytuacji awaryjnych. Dlatego, będąc pod naszą opieką, możesz być pewien, że Twój zasób jest dostępny 24 godziny na dobę, 7 dni w tygodniu. Zaufali nam: REG.RU, Arguments and Facts, WebMoney, rosyjski holding radiowy GPM i inne korporacje.

Tylko przed niewielką liczbą ataków możesz samodzielnie wdrożyć ochronę, korzystając z analizy ruchu lub konfigurując reguły routingu. Sposoby ochrony przed niektórymi atakami podano w.

mob_info