Tomasz Zadora

Tomasz Zadora programuję

Temat: DDoS - metody obrony

Witam,

moja strona jest właśnie teraz przedmiotem ataku DDoS - przez komputery z różnych stron świata. Jakie można przedsięwziąć w związku z tym kroki ?

Mógłbym np. na podstawie geolokalizacji odciąć wszystkich z poza Polski, ale wolałbym tego nie robić.Tomasz Zadora edytował(a) ten post dnia 22.02.10 o godzinie 14:00
Marcin P.

Marcin P. Ceo w Trialo IT /
Partner w 3motion.pl

Temat: DDoS - metody obrony

Możesz podać link do strony?
Tomasz Zadora

Tomasz Zadora programuję

Temat: DDoS - metody obrony

http://www.cojemy.pl - nie jest to duży atak, około 10 - 20 zapytań na sekundę, atak raz zanika raz narasta.

Na szczęście dzięki mechanizmom cache większość contentu nie pochodzi z bazy (lub z wyniku innych "pracochłonnych" działań) tylko bezpośrednio z pamięci (memcached), więc na razie strona jeszcze nie padła.

Boje się tylko sytuacji kiedy zrobi się np. 200 zapytań na sekundę.

Edit:
w tym momencie atak znowu zaniknął, atakujący próbowali prymitywnego HTMLInjection przez parametr GET link="kod HTML/javascript".

Mam nadzieje, że zorientowali się, iż jest to nieskutecznie i już nie wrócą, jednak nadal pozostaje pytanie: co można zrobić w przypadku DDoS.Tomasz Zadora edytował(a) ten post dnia 22.02.10 o godzinie 14:24

Temat: DDoS - metody obrony

Tomasz Zadora:
Mam nadzieje, że zorientowali się, iż jest to nieskutecznie
i już nie wrócą, jednak nadal pozostaje pytanie: co można zrobić w przypadku DDoS.

Rozproszone punkty styku z siecią postaci Akamai:
http://en.wikipedia.org/wiki/Akamai_Technologies
Tomasz Zadora

Tomasz Zadora programuję

Temat: DDoS - metody obrony

Rozproszenie zasobów - dobra myśl. Gorzej przy mocno dynamicznych stronach reagujących interaktywnie na działalność internauty - trzeba rozproszyć także logikę :) Dość drogie sprawy, ale rozwiązanie jest.

konto usunięte

Temat: DDoS - metody obrony

Jeżeli masz w ramach swojej infrastruktury serwer Apache to do obrony możesz wykorzystać:
- mod_rewrite
- mod_security

Taki (D)DoS, o jakim wspominasz, często posiada jakieś cechy charakterystyczne: parametr w GET, User-Agent, itp. Konfigurujesz jeden z w/w modułów tak by odpowiadał przekierowaniem w kosmos albo na localhost. Do wyboru do koloru.

Jeżeli jednak nie masz np. Apache to podobną linię obrony zbudujesz też w oparciu o Squid, lighttpd i na pewno kilka innych rozwiązań.

PS
mod_security da Ci moim zdaniem największą elastyczność i przede wszystkim dostęp do danych z POST'a czy reakcję w oparciu o liczniki. Kilka razy udało mi się zatrzymać całkiem spory atak za pomocą tego modułu.

konto usunięte

Temat: DDoS - metody obrony

Tomasz Zadora:
http://www.cojemy.pl - nie jest to duży atak, około 10 - 20 zapytań na sekundę, atak raz zanika raz narasta.
(...)
Boje się tylko sytuacji kiedy zrobi się np. 200 zapytań na sekundę.

Zawsze można iść w kierunku optymalizacji portalu. Jeśli jest rozwojowy, to na złe mu nie wyjdzie. Jeśli główna strona nie zmienia się zbyt często to "php index.php > index.html" w cronie raz na 5 minut zmniejszy nieco load avg maszyny...

konto usunięte

Temat: DDoS - metody obrony

Jakub Botwicz:
Tomasz Zadora:
Mam nadzieje, że zorientowali się, iż jest to nieskutecznie
i już nie wrócą, jednak nadal pozostaje pytanie: co można zrobić w przypadku DDoS.

Rozproszone punkty styku z siecią postaci Akamai:
http://en.wikipedia.org/wiki/Akamai_Technologies

Ogólniej: http://en.wikipedia.org/wiki/Content_delivery_network

PS
W Polsce znajdziesz dostawców takich rozwiązań.

konto usunięte

Temat: DDoS - metody obrony

To nie ddos, tylko średniej wielkości ruch.

Przy ddos rewrite nie pomoże, bo maszyna z apachem nie wytrzyma naporu ruchu. Ba, nawet klaster nie wytrzyma ruchu.

iptables, count connections, albo mark+ count string.

Najprościej, na takie pseudo-ataki mod_rewrite tak jak Przemek polecił.
Tomasz Zadora

Tomasz Zadora programuję

Temat: DDoS - metody obrony

Przyjrzę się mod_security, zastanawiam się też nad postawieniem zamiast Apache np. nginx-a lub lighthttpd (ale ngingx chyba lepszy), ogólnie czegoś na "NonBlocking IO", zawsze może pomóc.
To nie ddos, tylko średniej wielkości ruch.

Określenia mały, średni, duży - są względne, dobrze jest moim zdaniem stosować je w odniesieniu do czegoś. Jeżeli ja normalnie na tym konkretnym serwisie mam maksimum 2-3 odsłony na sekundę, a nagle ten ruch wzrasta o 1000% to nie mówimy już o średnim ruchu tylko o znacznym skoku.

Zgadzam się natomiast, że nie nie był to raczej atak DDoS bo atakującym nie chodziło o zawieszenie serwisu tylko o jego zdestabilizowanie (?) i umieszczenie w nim kodu HTML/Javascript. Metoda jednak była DDoSowa - atak prawdopodobnie z jakiegoś BOT-netu.
iptables, count connections, albo mark+ count string.
Najprościej, na takie pseudo-ataki mod_rewrite tak jak Przemek
polecił.

W prymitywny sposób w globalnym skrypcie startowym, na samym początku wykrywam czy jest określony "gorący" parametr GET i wtedy żegnaj. Jeżeli zbiry wrócą to przerzucę to do mod_rewrite.
en.wikipedia.org/wiki/Content_delivery_network

To są fajne rozwiązania, dobrze o nich wiedzieć :) Jednak budżet serwisu http://cojemy.pl raczej by ich nie wytrzymał - z tego wynika, że jak DDoS-owcy zechcą to małych zawsze zniszczą.

konto usunięte

Temat: DDoS - metody obrony

Maciej B.:
To nie ddos, tylko średniej wielkości ruch.

Przy ddos rewrite nie pomoże, bo maszyna z apachem nie wytrzyma naporu ruchu. Ba, nawet klaster nie wytrzyma ruchu.

To zależy :-) W XXI wieku (D)DoS nabiera nowego znaczenia w kontekście aplikacji webowych. Wiele razy spotkałem się z instalacjami, które powinny być odporne na domyślnie uruchomionego slowlorisa. < 100 równoległych sesji i serwer przestaje odpowiadać. Powodem był sposób nawiązywania sesji do DB przez serwis WWW. Niby ruchu bardzo mało, a DoS udany. W tym przykładzie był do usunięcia błąd w architekturze aplikacji i sposobie wykorzystywania połączeń do DB, ale niestety nie jest to odosobniony przypadek.

Pomijając (D)DoSy stricte sieciowe, w których chodzi o zalanie ofiary ogromną ilością pakietów, datagramów, odpowiednimi flagami, złymi sumami kontrolnymi, spoofowanymi adresami źródłowymi, itp. to ataki (D)DoS na aplikacje webowe zazwyczaj nie charakteryzują się dużym ruchem przychodzącym do serwera. Zapytania HTTP są stosunkowo małe w stosunku do odpowiedzi jakie generuje aplikacja. Jak popatrzymy na wykresy normalnego ruchu sieciowego w takiej komunikacji to zobaczymy, że najczęściej dużo więcej odpowiadamy niż odbieramy. Są rzecz jasna sytuacje, gdzie wykresy ruchu In/Out są bardziej zbliżone do siebie - wyjaśnieniem może być dobrze użyte Web 2.0.

Nie specjalnie chcę przybliżać inne scenariusze ataku (D)DoS na aplikacje webowe, chciałbym natomiast zwrócić uwagę, że obrona przed nimi to zadanie zespołowe dla kilku warstw, gdzie można się bronić.

konto usunięte

Temat: DDoS - metody obrony

Tomasz Zadora:
Określenia mały, średni, duży - są względne, dobrze jest moim zdaniem stosować je w odniesieniu do czegoś. Jeżeli ja normalnie na tym konkretnym serwisie mam maksimum 2-3 odsłony na sekundę, a nagle ten ruch wzrasta o 1000% to nie mówimy już o średnim ruchu tylko o znacznym skoku.

Niektórzy mówią, że taki skok to oznaka dobrze działającej kampanii reklamowej :) Jeśli taki nagły skok będzie przez admina (lub nasz IPS) traktowane jako ddos, to niestety portal długo nie pożyje.
W prymitywny sposób w globalnym skrypcie startowym, na samym początku wykrywam czy jest określony "gorący" parametr GET i wtedy żegnaj. Jeżeli zbiry wrócą to przerzucę to do mod_rewrite.

Może lepiej nie, skoro rozważasz przejście z apache na ngnixa?
Jeśli poświęcisz czas najpierw na optymalizację platformy+kodu a dopiero potem na budowę warstwy prewencji, to na pewno Twój czas nie będzie zmarnowany. Benchmark ab w ruch, niech serwer wytrzyma spokojnie 2000/sek :)

konto usunięte

Temat: DDoS - metody obrony

Mam wrażenie, że rozmawiamy o intencjach kogoś w Internecie, a nie o skutkach ruchu, którego efektem jest mniej/bardziej efektywny DDoS. Taki 'atak' może przeprowadzić całkiem 'nieświadomie' armia crawlerow. Spotkałem się z takimi przypadkami gdzie crawlery wpadły w pętlę i na serwisie gdzie setki req/sec były normą crawlery zadawały drugie tyle. Czasami paść ofiarą możesz przypadkowo, bez względu czy jesteś duży, średni czy mały.

konto usunięte

Temat: DDoS - metody obrony

Przemysław S.:
Mam wrażenie, że rozmawiamy o intencjach kogoś w Internecie, a nie o skutkach ruchu, którego efektem jest mniej/bardziej efektywny DDoS. Taki 'atak' może przeprowadzić całkiem 'nieświadomie' armia crawlerow. Spotkałem się z takimi przypadkami gdzie crawlery wpadły w pętlę i na serwisie gdzie setki req/sec były normą crawlery zadawały drugie tyle. Czasami paść ofiarą możesz przypadkowo, bez względu czy jesteś duży, średni czy mały.


Zgadzam się, ale w tym przypadku nie rozmawiamy o zabezpieczniu się przed ddos, tylko o przekierowaniu ruchu mod_rewrite albo iptables :)

konto usunięte

Temat: DDoS - metody obrony

Maciej B.:
Zgadzam się, ale w tym przypadku nie rozmawiamy o zabezpieczniu się przed ddos, tylko o przekierowaniu ruchu mod_rewrite albo iptables :)

O ile cecha charakterystyczna 'ataku' nie jest poza obszarem mod_rewrite to pełna zgoda. W przeciwnym wypadku np. mod_security :)
Tomasz Zadora

Tomasz Zadora programuję

Temat: DDoS - metody obrony

Może lepiej nie, skoro rozważasz przejście z apache na ngnixa?
Jeśli poświęcisz czas najpierw na optymalizację platformy+kodu a dopiero potem na budowę warstwy prewencji, to na pewno Twój czas nie będzie zmarnowany. Benchmark ab w ruch, niech serwer wytrzyma spokojnie 2000/sek :)


Taki ruch wynikający z naturalnej aktywności internautów - bardzo chętnie :) Tyle, że aktualne ograniczenia pamięci i procesora serwera VPS na którym to stoi mogły by być skuteczną barierą.

Wracając do tematu, zdaje się, że np. Amazon oferuje usługi load-balancingu, rozproszenia danych etc. o których wspomniano wyżej:

http://aws.amazon.com/, http://aws.amazon.com/elasticloadbalancing/ i inne.

Ciekawi mnie, czy są w Polsce firmy hostingowe które oferują podobne usługi ? I za jaką cenę. Przemysław wspominał, że są :)

konto usunięte

Temat: DDoS - metody obrony

Tomasz Zadora:
Ciekawi mnie, czy są w Polsce firmy hostingowe które oferują podobne usługi ? I za jaką cenę. Przemysław wspominał, że są :)

Czy 'hostingowe' to nie wiem, chociaż coś mi po głowie chodzi. Odnośnie CDN to takie usługi w Polsce ma/miał ATM i TP - te przynajmniej kojarzę.
Łukasz R.

Łukasz R. Systems
Administrator

Temat: DDoS - metody obrony

Że tak pozwolę sobie bezczelnie wtrącić się do dyskusji.
@Przemek - jeżeli uważasz że przed DDoSami zabezpieczysz się za pomocą mod_security, mod_rewrite - zastanawiam się co robisz w tej branży - to raz.
Dwa - co Tobie da CDN skoro sam static content nie obciąża niczego poza łączem. Load balancing - też się nie przyda - bo ( i tu uwaga ) - skoro 'bramka' dostanie po rurce, to "podległe" serwery też. W tym wypadku będziesz miał zajeżdżone dwa / trzy / dziesięć serwerów zamiast jednego.
Trzecia i ostatnia sprawa - nie nazywajmy 20-30 zapytań na sekundę DoS'em, bo tyle mają bardziej popularne blogi ;)
Jedyne możliwe zabezpieczenie przed DDoSami to.. działanie ze strony dostawcy łącza. Co z tego że na iptablesach wytniesz sobie ipki atakujących, skoro a) dojdą nowe, b) łącze i tak będziesz miał zawalone :?

konto usunięte

Temat: DDoS - metody obrony

Łukasz Raczyło:
Że tak pozwolę sobie bezczelnie wtrącić się do dyskusji.

Zapraszam do konstruktywnej dyskusji.
@Przemek - jeżeli uważasz że przed DDoSami zabezpieczysz się za pomocą mod_security, mod_rewrite - zastanawiam się co robisz w tej branży - to raz.

Jeżeli masz aż tak duże wątpliwości co ja robię w branży to w ramach spotkań OWASP Poland zapraszam Cie do panelu, w którym podsykutujemy o tym (o (D)DoSach w aplikacjach webowych) publicznie w szerszym gronie. Zapraszam do kontaktu, umówimy odpowiedni termin i miejsce.

Jeżeli uważasz, że mod_security i mod_rewrite nie pomoże to prawdopodobnie wynika to z tego, że nie spotkałeś się z przypadkami kiedy uratowałeś w ten sposób duży/mały/średni serwis. Ja miałem to szczęście, że właśnie te moduły pomogły w przypadku największych portali w Polsce.

Zastanawiam się czy to, że tak napisałeś nie wynika z braku zrozumienia przypadków, które opisywałem. Musisz odnieść się do konkretnych przykładków by to miało ręce i nogi.
Dwa - co Tobie da CDN skoro sam static content nie obciąża niczego poza łączem. Load balancing - też się nie przyda - bo ( i tu uwaga ) - skoro 'bramka' dostanie po rurce, to "podległe" serwery też. W tym wypadku będziesz miał zajeżdżone dwa / trzy / dziesięć serwerów zamiast jednego.

Bzdura. Chętnie pokażę Ci dlaczego nie masz racji w ramach panelu :-) Przez odpowiednie wykorzystanie CDN'ów udało mi się skutecznie odciążyć przeciążane serwery właśnie serwowaniem statycznych treści. Niemożliwe? A jednak. To są konkretne przypadki, a nie ogólny bełkot dlatego chętnie je przedstawię w ramach panelu by nie pozostawić niedomówień.
Trzecia i ostatnia sprawa - nie nazywajmy 20-30 zapytań na sekundę DoS'em, bo tyle mają bardziej popularne blogi ;)
Jedyne możliwe zabezpieczenie przed DDoSami to.. działanie ze strony dostawcy łącza. Co z tego że na iptablesach wytniesz sobie ipki atakujących, skoro a) dojdą nowe, b) łącze i tak będziesz miał zawalone :?

Po tym akapicie wnioskuję, że dla Ciebie DDoSy to tylko wysycenie łącza, kiedy w moich przykładach odnosiłem się głównie do wysycenia innych parametrów niż zużycie rurki - http://www.goldenline.pl/forum/bezpieczenstwo-it-ihack...

Proponuję jeszcze raz przeczytać co napisałem w całym wątku, ale tym razem z próbą zrozumienia tego. W razie wątpliwości pytaj, postaram się je wszystkie rozwiać.
Łukasz R.

Łukasz R. Systems
Administrator

Temat: DDoS - metody obrony

Przemysław S.:
Jeżeli masz aż tak duże wątpliwości co ja robię w branży to w ramach spotkań OWASP Poland zapraszam Cie do panelu, w którym podsykutujemy o tym (o (D)DoSach w aplikacjach webowych) publicznie w szerszym gronie. Zapraszam do kontaktu, umówimy odpowiedni termin i miejsce.
Nie mogę, pracuję ;]
Jeżeli uważasz, że mod_security i mod_rewrite nie pomoże to prawdopodobnie wynika to z tego, że nie spotkałeś się z przypadkami kiedy uratowałeś w ten sposób duży/mały/średni serwis. Ja miałem to szczęście, że właśnie te moduły pomogły w przypadku największych portali w Polsce.
Co Ci da mod_rewrite w wypadku nalotu zapytań z poprawnymi nagłówkami? Przepuści jak Dudek bramki. Musiałeś mieć naprawdę dużo szczęścia skoro mod_rewrite pomógł Tobie cokolwiek ochronić przed DDoSem. Zakładam że owo 'szczęście' opierało się na przekierowaniu zapytań na podstronę z info o przerwie technicznej lub przekierowaniem na www2, www3 itd ;]
Bzdura. Chętnie pokażę Ci dlaczego nie masz racji w ramach panelu :-) Przez odpowiednie wykorzystanie CDN'ów udało mi się skutecznie odciążyć przeciążane serwery właśnie serwowaniem statycznych treści. Niemożliwe? A jednak. To są konkretne przypadki, a nie ogólny bełkot dlatego chętnie je przedstawię w ramach panelu by nie pozostawić niedomówień.
Zacznę od początku - nie interesuje mnie Twój panel. Kto mówi o statycznych treściach? DDoS to Twoim zdaniem wget twojsuperpanel.com/zdjeciazwakacji.zip w pętli? :S Korzystanie z CDN'ów do serwowania statycznych treści jest powszechnie stosowaną praktyką przy serwisach z większym ruchem. Ameryki nie odkryłeś.
Po tym akapicie wnioskuję, że dla Ciebie DDoSy to tylko wysycenie łącza, kiedy w moich przykładach odnosiłem się głównie do wysycenia innych parametrów niż zużycie rurki - http://www.goldenline.pl/forum/bezpieczenstwo-it-ihack...
Nie wnioskuj. DDoS to jakiekolwiek działanie mające na celu uniemożliwienie użytkownikom korzystanie z jakiejkolwiek usługi udostępnianej przez serwer. Tak więc czy to tysiące getów do serwera www, czy też zwykły flood po udp - rezultat jest jeden - niedostępność usługi (zasrane łącze lub cpu i pamięć).

Dodam jedynie od siebie - jeżeli komukolwiek zdycha serwer przy 100-200 zapytań / sek via www - najwyższa pora wziąć się za naukę pisania optymalnego kodu i zapytań do bazy.

Następna dyskusja:

DDoS na wesoło :-)




Wyślij zaproszenie do