Što je DDoS napad - njegova suština i porijeklo. DDoS napad: kako to učiniti? Programi za DDoS napade Što je potrebno za DDoS napad

Puno pričamo o napadima na stranice, hakiranju, ali nismo spomenuli temu DDOS-a. Danas ispravljamo ovu situaciju i nudimo vam puni pregled tehnologije za organiziranje DDOS napada i poznati alati za izvođenje hakerskih napada.


Popis dostupnih alata za DDOS napade u KALI-ju možete vidjeti pokretanjem naredbe:

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


Ova naredba prikazuje bazu podataka eksploatacija za napad na Windows sustave.

Za pregled dostupnih Linux DDOS alata za napad unesite naredbu:

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

2.LOIC

Niskoorbitalni ionski top (LOIC) Niskoorbitalni ionski top. Možda najpopularniji DDOS program. Može slati skupne zahtjeve putem ICMP i UDP protokola, čime začepljuje kanal do poslužitelja žrtve. Najpoznatiji LOIC napad izveli su Anonymousi 2009. godine i bio je usmjeren protiv PayPala, Vise, MasterCarda u znak odmazde što je WikiLeaks odsječen iz sustava prikupljanja donacija.

Napadi organizirani pomoću LOIC-a mogu se iskoristiti blokiranjem UDP i ICMP paketa na mrežnoj opremi internetskih pružatelja usluga. Sam program LOIC možete besplatno preuzeti na web stranici. Ovaj alat je uključen Temeljen na sustavu Windows a rad s njim je vrlo jednostavan, odredite stranice žrtve i pritisnete samo jedan gumb.

2.HOIC

HOIC je razvio Praetox tijekom operacije Payback od strane istog tima koji je stvorio LOIC. Ključna razlika je da HOIC koristi HTTP protokol i koristi ga za slanje toka randomiziranih HTTP GET i POST zahtjeva. Sposoban je istovremeno napasti 256 domena. Možete ga preuzeti s .


3.XOIC

XOIC je još jedan vrlo jednostavan DDOS alat. Korisnik jednostavno treba postaviti IP adresu žrtve, odabrati protokol (HTTP, UDP, ICMP ili TCP) i povući okidač! Možete ga preuzeti sa

5. HULK

6. UDP Flooder

UDP Flooder opravdava svoje ime - alat je dizajniran za slanje više UDP paketa na cilj. UDP Flooder često se koristi u DDOS napadima na poslužitelje igara za odspajanje igrača s poslužitelja. Program je dostupan za preuzimanje na.

7. RUDY

8. ToR-ov čekić

ToR's Hammer stvoren je za rad preko mreže, kako bi se postigla veća anonimnost napadača. Problem s ovim alatom je što je TOR mreža prilično spora i time smanjuje učinkovitost DDOS napada. Ovaj DDOS program možete preuzeti s Packet Storm ili .

9. Piloris

Pyloris je još jedan DDoS alat koji koristi novi pristup. Omogućuje napadaču stvaranje vlastitog unikata HTTP zahtjev. Program će zatim pokušati održati otvorenu TCP vezu korištenjem takvih zahtjeva, čime se smanjuje broj dostupnih veza na poslužitelju. Kada ograničenje povezivanja poslužitelja dosegne svoje ograničenje, poslužitelj više ne može opsluživati ​​veze i stranica postaje nedostupna. Ovaj je alat dostupan za besplatno preuzimanje s web stranice.

10. OWASP Switchblade

Open Web Application Security Project (OWASP) i ProactiveRISK razvili su alat Switchblade DoS alat za testiranje WEB aplikacija na otpornost na DDoS napade. Ima tri načina rada: 1. SSL Half-Open, 2. HTTP Post i 3. Slowloris. Možete ga preuzeti za pregled s web stranice OWASP.

11. DAVOSET

12. GoldenEye HTTP DoS alat

13. THC-SSL-DOS

Ovaj DDOS program (uključen u Kali) razlikuje se od većine DDOS alata po tome što ne koristi internetsku propusnost i može se koristiti s jednog računala. THC-SSL-DOS iskorištava ranjivost u SSL protokolu i može srušiti ciljni poslužitelj. Osim, naravno, ako nema tu ranjivost. Program možete preuzeti s web stranice THC-a ili koristiti KALI Linux gdje je ovaj alat već instaliran.

14. DDOSIM – Layer 7 DDoS emulator

Ovdje naš pregled završava, ali u budućnosti ćemo se vratiti na temu DDOS napada na stranicama našeg bloga.

Borba protiv DDoS napada nije samo težak posao, već je i uzbudljiv. Nije iznenađujuće da svaki administrator sustava prije svega pokušava sam organizirati obranu - pogotovo jer je to još uvijek moguće.

Odlučili smo vam pomoći u ovoj teškoj stvari i objaviti nekoliko kratkih, trivijalnih i neuniverzalnih savjeta za zaštitu vaše stranice od napada. Navedeni recepti neće vam pomoći da se nosite s bilo kojim napadom, ali će vas zaštititi od većine opasnosti.

Pravi sastojci

Surova istina je da svatko može srušiti mnoge stranice korištenjem napada Slowloris, koji potpuno ubija Apache, ili organiziranjem tzv. SYN poplave pomoću farme virtualni poslužitelji, podignut u minuti u oblaku Amazon EC2. Svi naši daljnji savjeti o "uradi sam" DDoS zaštiti temelje se na sljedećim važnim uvjetima.

1. Prestanite koristiti Windows Server

Praksa pokazuje da je stranica koja radi na Windowsima (2003 ili 2008 - svejedno) osuđena na propast u slučaju DDoS-a. Razlog neuspjeha leži u mrežnom skupu Windowsa: kada ima puno veza, poslužitelj sigurno počinje slabo reagirati. Ne znamo zašto Windows poslužitelj u takvim situacijama djeluje tako odvratno, ali s tim smo se susreli više nego jednom ili dva puta. Iz tog razloga, ovaj članak će se fokusirati na načine zaštite od DDoS napada u slučaju kada poslužitelj radi na Linuxu. Ako ste sretni vlasnik relativno modernog kernela (počevši od 2.6), tada će primarni alati biti uslužni programi iptables i ipset (za brzo dodavanje IP adresa), s kojima možete brzo zabraniti robote. Drugi ključ uspjeha je ispravno pripremljen mrežni stog, o čemu ćemo također govoriti kasnije.

2. Prekinuti s Apacheom

Drugi važan uvjet je napuštanje Apachea. Ako koristite Apache, onda ispred njega barem instalirajte proxy za predmemoriju - nginx ili lighttpd. Apacheu je iznimno teško opsluživati ​​datoteke i, što je još gore, na temeljnoj je razini (tj. nepopravljivo) ranjiv na najopasniji Slowloris napad, koji vam omogućuje da srušite poslužitelj s gotovo mobitel. Za borbu protiv raznih vrsta Slowlorisa, korisnici Apachea prvo su smislili zakrpu Anti-slowloris.diff, pa mod_noloris, pa mod_antiloris, mod_limitipconn, mod_reqtimeout... Ali ako noću želite mirno spavati, lakše je koristiti HTTP server koji je neranjiv za Slowloris na kodu arhitektonske razine. Stoga se svi naši daljnji recepti temelje na pretpostavci da se nginx koristi na frontendu.

Borba protiv DDoS-a

Što učiniti ako stigne DDoS? Tradicionalna tehnika samoobrane je čitanje log datoteke HTTP poslužitelja, pisanje grep uzorka (hvatanje zahtjeva bota) i zabrana svakoga tko potpada pod njega. Ova tehnika će uspjeti... ako budete imali sreće. Postoje dvije vrste botneta, obje opasne, ali na različite načine. Jedan potpuno dolazi na stranicu odmah, drugi postupno. Prvi ubije sve odjednom, ali se cijela pojavi u logovima, a ako ih podgrijate i zabranite sve IP adrese, onda ste pobjednik. Drugi botnet napada stranicu nježno i pažljivo, ali ćete je možda morati zabraniti na 24 sata. Važno je da svaki administrator razumije: ako se planirate boriti s grep-om, morate biti spremni posvetiti nekoliko dana borbi protiv napada. U nastavku su savjeti o tome gdje možete unaprijed postaviti slamke kako bi pad bio manje bolan.

3. Koristite modul testcookie

Možda najvažniji, učinkovit i operativni recept u ovom članku. Ako DDoS dođe na vašu stranicu, najučinkovitiji način za uzvrat može biti modul testcookie-nginx, koji je razvio habrauser @kyprizel. Ideja je jednostavna. Najčešće su botovi koji implementiraju HTTP flooding prilično glupi i nemaju HTTP kolačiće i mehanizme preusmjeravanja. Ponekad naiđete na naprednije - mogu koristiti kolačiće i obrađivati ​​preusmjeravanja, ali gotovo nikad DoS bot ne nosi potpuni JavaScript mehanizam (iako je to sve češće). Testcookie-nginx radi kao brzi filter između botova i pozadine tijekom L7 DDoS napada, omogućujući vam filtriranje bezvrijednih zahtjeva. Što je uključeno u te provjere? Zna li klijent kako izvesti HTTP Redirect, podržava li JavaScript, je li to preglednik za koji se predstavlja (budući da je JavaScript svugdje drugačiji i ako klijent kaže da je to, recimo, Firefox, onda to možemo provjeriti). Provjera se provodi pomoću kolačića različitim metodama:

  • “Set-Cookie” + preusmjeravanje pomoću 301 HTTP lokacije;
  • “Set-Cookie” + preusmjeravanje sa koristeći HTML meta osvježenje;
  • bilo koji predložak, a možete koristiti i JavaScript.

Kako bi se izbjeglo automatsko analiziranje, kolačić za provjeru valjanosti može se šifrirati s AES-128 i kasnije dešifrirati na strani JavaScript klijenta. U nova verzija modula, postalo je moguće postaviti kolačiće putem Flasha, što također omogućuje učinkovito uklanjanje robota (koje Flash u pravilu ne podržava), ali, međutim, također blokira pristup mnogim legitimnim korisnicima (gotovo svim Mobilni uredaji). Važno je napomenuti da je vrlo lako početi koristiti testcookie-nginx. Razvojni programer posebno nudi nekoliko jasni primjeri koristiti (za različite slučajeve napada) s uzorcima konfiguracija za nginx.

Osim svojih prednosti, testcookie ima i nedostatke:

  • reže sve botove, uključujući Googlebot. Ako planirate zadržati testcookie na trajnoj osnovi, pobrinite se da nećete nestati iz rezultata pretraživanja;
  • stvara probleme korisnicima s Linkovima, w3m i sličnim preglednicima;
  • ne štiti od botova opremljenih potpunim motorom preglednika s JavaScriptom.

Ukratko, testcookie_module nije univerzalan. Ali pomaže u brojnim stvarima, kao što su, na primjer, primitivni alati u Javi i C#. Na ovaj način odsiječete dio prijetnje.

4. Šifra 444

Cilj DDoS-a često je dio stranice koji zahtijeva najviše resursa. Tipičan primjer je pretraživanje, koje izvodi složene upite baze podataka. Naravno, napadači to mogu iskoristiti učitavanjem nekoliko desetaka tisuća zahtjeva u tražilicu odjednom. Što možemo učiniti? Privremeno onemogući pretraživanje. Iako klijenti možda neće moći pretraživati ​​informacije koje su im potrebne pomoću ugrađenih alata, cijela glavna stranica ostat će funkcionalna dok ne pronađete korijen svih problema. Nginx podržava nestandardni kod 444, koji vam omogućuje da jednostavno zatvorite vezu i ne vratite ništa kao odgovor:

Lokacija / pretraga ( povratak 444; )

Na taj način možete, primjerice, brzo implementirati filtriranje prema URL-u. Ako ste sigurni da zahtjevi za lociranje /pretraživanje dolaze samo od botova (na primjer, vaše se uvjerenje temelji na činjenici da vaša stranica uopće nema odjeljak /pretraživanje), možete instalirati ipset paket na poslužitelj i zabraniti roboti s jednostavnom shell skriptom:

Ipset -N ban iphash tail -f access.log | dok čitate LINE; do echo "$LINE" | \ cut -d""" -f3 | cut -d" " -f2 | grep -q 444 && ipset -A zabrana "$(L%% *)"; gotovo

Ako je format datoteke dnevnika nestandardan (nije kombiniran) ili trebate zabraniti na temelju kriterija koji nisu status odgovora, možda ćete morati zamijeniti rez regularnim izrazom.

5. Zabranjujemo geolokacijom

Nestandardni kod odgovora 444 također može biti koristan za brzo zabranjivanje klijenata na temelju geografskih karakteristika. Možete strogo ograničiti određene zemlje koje vam stvaraju nelagodu. Na primjer, malo je vjerojatno da online trgovina fotoaparatima iz Rostova na Donu ima mnogo korisnika u Egiptu. Nije baš dobar način(iskreno rečeno, odvratno), budući da su GeoIP podaci netočni, a Rostoviti ponekad lete u Egipat na odmor. Ali ako nemate što izgubiti, slijedite upute:

  1. Spojite GeoIP modul na nginx (wiki.nginx.org/HttpGeoipModule).
  2. Prikaz informacija o georeferenciranju u zapisniku pristupa.
  3. Zatim, modificiranjem gornje skripte ljuske, pokrenite nginxov accesslog i dodajte geografski isključene klijente u zabranu.

Ako su, na primjer, botovi većinom iz Kine, onda bi ovo moglo pomoći.

6. Neuronska mreža (PoC)

Na kraju, možete ponoviti iskustvo korisnika habre @SaveTheRbtz, koji je uzeo neuronsku mrežu PyBrain, ubacio log u nju i analizirao upite (habrahabr.ru/post/136237). Metoda djeluje, iako nije univerzalna :). Ali ako stvarno poznajete unutrašnjost svoje stranice - i vi, kako Administrator sustava, trebali, tada imate priliku da vam u najtragičnijim situacijama takav alat temeljen na neuronskim mrežama, obuci i unaprijed prikupljenim informacijama pomogne. U ovom slučaju, vrlo je korisno imati access.log prije početka DDoS-a, budući da opisuje gotovo 100% legitimnih klijenata i stoga je izvrstan skup podataka za obuku živčana mreža. Štoviše, botovi nisu uvijek vidljivi u zapisniku.

Dijagnoza problema

Stranica ne radi - zašto? Je li to DDoSed ili je to greška u motoru koju programer nije primijetio? Nije važno. Ne tražite odgovor na ovo pitanje. Ako mislite da je vaša stranica možda napadnuta, obratite se tvrtkama koje pružaju zaštitu od napada - brojne anti-DDoS usluge nude besplatne prve dane nakon povezivanja - i nemojte više gubiti vrijeme tražeći simptome. Usredotočite se na problem. Ako je web mjesto sporo ili se uopće ne otvara, nešto nije u redu s njegovim radom i - bilo da postoji DDoS napad ili ne - vaša je odgovornost kao profesionalca razumjeti što ga uzrokuje. U više smo navrata svjedočili kako je tvrtka koja je zbog DDoS napada imala poteškoća s radom svoje web stranice, umjesto da traži slabosti u motoru web stranice, pokušala poslati očitovanje Ministarstvu unutarnjih poslova kako bi se pronašli i kaznili napadači. Nemojte činiti ove greške. Pronalaženje kibernetičkih kriminalaca je težak i dugotrajan proces, kompliciran samom strukturom i principom rada interneta, a problem rada stranice potrebno je promptno riješiti. Zamolite tehničke stručnjake da pronađu razlog pada performansi stranice, a odvjetnici mogu napisati izjavu.

7. Koristite profiler i debugger

Za najčešću platformu za izradu web stranica - PHP + MySQL - usko grlo se može pronaći pomoću sljedećih alata:

  • Xdebug profiler će pokazati na koje pozive aplikacija troši najviše vremena;
  • ugrađeni APD program za ispravljanje pogrešaka i izlaz za ispravljanje pogrešaka u zapisniku pogrešaka pomoći će vam da saznate točno koji kod upućuje te pozive;
  • u većini slučajeva, pas je zakopan u složenosti i težini upita baze podataka. Ovdje će pomoći SQL direktiva objašnjenja ugrađena u pogon baze podataka.

Ako stranica ne radi i ništa ne gubite, odspojite se s mreže, pogledajte zapise, pokušajte ih igrati. Ako ga nema, prođite kroz stranice i pogledajte bazu.

Primjer je za PHP, ali ideja vrijedi za bilo koju platformu. Programer koji piše softverske proizvode u bilo kojem programskom jeziku mora biti sposoban brzo koristiti i debugger i profiler. Vježbajte unaprijed!

8. Analizirajte pogreške

Analizirajte količinu prometa, vrijeme odgovora poslužitelja i broj grešaka. Da biste to učinili, pogledajte zapisnike. U nginx-u, vrijeme odgovora poslužitelja bilježi se u dnevnik pomoću dvije varijable: request_time i upstream_response_time. Prvi je puno vrijeme izvršenje zahtjeva, uključujući mrežna kašnjenja između korisnika i poslužitelja; drugi govori koliko je dugo backend (Apache, php_fpm, uwsgi...) izvršavao zahtjev. Vrijednost upstream_response_time iznimno je važna za stranice s velikim brojem dinamički sadržaj i aktivna komunikacija između sučelja i baze podataka, ne može se zanemariti. Možete koristiti sljedeću konfiguraciju kao format dnevnika:

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";

Ovo je kombinirani format s dodanim vremenskim poljima.

9. Pratite zahtjeve u sekundi

Također pogledajte broj zahtjeva u sekundi. U slučaju nginxa, ovu vrijednost možete grubo procijeniti sljedećom naredbom ljuske (varijabla ACCESS_LOG sadrži put do dnevnika zahtjeva nginxa u kombiniranom formatu):

Echo $(($(fgrep -c "$(env LC_ALL=C date --date=@$(($(date \ +%s)-60)) +%d/%b/%Y:%H: %M)" "$ACCESS_LOG")/60))

U usporedbi s uobičajenom razinom za ovo doba dana, broj zahtjeva u sekundi može pasti ili porasti. Rastu ako je stigao veliki botnet, a padaju ako je nadolazeći botnet srušio stranicu i učinio je potpuno nedostupnom legitimnim korisnicima, a pritom botnet ne traži statiku, već legitimni korisnici. Pad broja zahtjeva uočava se upravo zbog statike. Ali, na ovaj ili onaj način, govorimo o ozbiljnim promjenama pokazatelja. Kada se to iznenada dogodi - dok sami pokušavate riješiti problem i ako ga ne vidite odmah u zapisniku, bolje je brzo provjeriti motor i istodobno kontaktirati stručnjake.

10. Ne zaboravite na tcpdump

Mnogi ljudi zaboravljaju da je tcpdump izvrstan dijagnostički alat. Dat ću vam par primjera. U prosincu 2011. otkrivena je greška u jezgri Linuxa kada je otvorila TCP vezu kada su postavljene oznake TCP segmenta SYN i RST. Prvo izvješće o pogrešci poslao je administrator sustava iz Rusije, čiji je resurs napadnut ovom metodom - napadači su saznali za ranjivost prije cijelog svijeta. Očito mu je ta dijagnoza pomogla. Još jedan primjer: nginx ima jedno ne baš ugodno svojstvo - piše u dnevnik tek nakon što je zahtjev u potpunosti obrađen. Postoje situacije kada stranica ne radi, ništa ne radi i nema ništa u zapisima. To je zato što svi zahtjevi koji ovaj trenutak učitavaju poslužitelj, još nisu dovršeni. Tcpdump će i ovdje pomoći.

Toliko je dobro da sam savjetovao ljudima da ne koriste binarne protokole dok se ne uvjere da je sve u redu - uostalom, tekstualne protokole je lako ispraviti s tcpdumpom, ali ne binarne. Međutim, njuškalo je dobro kao dijagnostika oruđe – kao sredstvo za održavanje proizvodnje“ i on je strašan. Lako može izgubiti nekoliko paketa odjednom i uništiti vašu korisničku povijest. Zgodno je pogledati njegov izlaz i koristan je za ručnu dijagnostiku i zabrane, ali pokušajte ne temeljiti ništa kritično na njemu. Drugi omiljeni alat za "zakopavanje zahtjeva" - ngrep - općenito prema zadanim postavkama pokušava zatražiti oko dva gigabajta nezamjenjive memorije i tek tada počinje smanjivati ​​svoje zahtjeve.

11. Napasti ili ne?

Kako razlikovati DDoS napad, na primjer, od efekta reklamna kampanja? Ovo pitanje može izgledati smiješno, ali tema nije ništa manje složena. Ima dosta smiješnih slučajeva. Neki dobri momci, kad su se napregli i dobro zeznuli keširanje, stranica je pala na par dana. Ispostavilo se da su nekoliko mjeseci ovu stranicu tiho dataminirali neki Nijemci, a prije nego što je keširanje optimizirano, stranicama ovih Nijemaca sa svim slikama trebalo je prilično dugo da se učitaju. Kada se stranica odmah počela posluživati ​​iz predmemorije, bot, koji nije imao vremensko ograničenje, također ih je odmah počeo skupljati. Bilo je teško. Slučaj je posebno težak iz razloga što ako ste sami promijenili postavku (uključili caching) i stranica je nakon toga prestala raditi, tko je onda, po vašem i mišljenju vašeg šefa, kriv? Točno. Ako vidite nagli porast broja zahtjeva, pogledajte npr. Google Analytics tko je na koje stranice došao.

Podešavanje web poslužitelja

Koje druge ključne točke postoje? Naravno, možete instalirati zadani nginx i nadati se da će sve biti u redu. Međutim, stvari ne idu uvijek dobro. Stoga administrator bilo kojeg poslužitelja mora posvetiti puno vremena finom podešavanju i podešavanju nginxa.

12. Ograničite resurse (veličine međuspremnika) u nginxu

Čega se prvo trebate sjetiti? Svaki resurs ima ograničenje. Prije svega, to se odnosi na RAM. Stoga, veličine zaglavlja i svih korištenih međuspremnika moraju biti ograničene na odgovarajuće vrijednosti za klijenta i cijeli poslužitelj. Moraju biti registrirani u nginx konfiguraciji.

  • veličina_spremnika_zaglavlja klijenta_ _ Postavlja veličinu međuspremnika za čitanje zaglavlja zahtjeva klijenta. Ako redak zahtjeva ili polje zaglavlja zahtjeva ne stane u potpunosti u ovaj međuspremnik, tada se dodjeljuju veći međuspremnici, navedeni u direktivi large_client_header_buffers.
  • veliki_klijent_zaglavlja_spremnici Postavlja najveći broj i veličinu međuspremnika za čitanje velikog zaglavlja zahtjeva klijenta.
  • veličina_spremnika_tijela_klijenta Postavlja veličinu međuspremnika za čitanje tijela zahtjeva klijenta. Ako je tijelo zahtjeva veće od navedenog međuspremnika, tada se cijelo tijelo zahtjeva ili samo njegov dio zapisuje u privremenu datoteku.
  • client_max_body_size Postavlja najveću dopuštenu veličinu tijela zahtjeva klijenta, navedenu u polju "Content-Length" u zaglavlju zahtjeva. Ako je veličina veća od navedene, klijentu se vraća pogreška 413 (Request Entity Too Large).

13. Postavljanje vremenskih ograničenja u nginxu

Vrijeme je također resurs. Stoga bi sljedeći važan korak trebao biti postavljanje svih vremenskih ograničenja, što je opet vrlo važno pažljivo odrediti u postavkama nginxa.

  • reset_timeout_connection uključen; Pomaže u rješavanju utičnica zaglavljenih u FIN-WAIT fazi.
  • client_header_timeout Postavlja vremensko ograničenje pri čitanju zaglavlja zahtjeva klijenta.
  • tijelo_klijenta_timeout Postavlja vremensko ograničenje pri čitanju tijela klijentskog zahtjeva.
  • keepalive_timeout Postavlja vremensko ograničenje tijekom kojeg se održavajuća veza s klijentom neće zatvoriti sa strane poslužitelja. Mnogi ljudi se boje postaviti velike vrijednosti ovdje, ali nismo sigurni da je taj strah opravdan. Po izboru, možete postaviti vrijednost vremenskog ograničenja u Keep-Alive HTTP zaglavlju, ali Internet Explorer poznat po ignoriranju ovog značenja
  • slanje_timeout Postavlja vrijeme čekanja prilikom slanja odgovora klijentu. Ako nakon tog vremena klijent ništa ne prihvati, veza će biti prekinuta.

Odmah se postavlja pitanje: koji su parametri međuspremnika i vremenskih ograničenja točni? Ovdje nema univerzalnog recepta; svaka situacija ima svoj. Ali postoji dokazani pristup. Potrebno je postaviti minimalne vrijednosti pri kojima stranica ostaje operativna (u mirnodopskim uvjetima), odnosno, stranice se poslužuju i zahtjevi se obrađuju. To se utvrđuje samo testiranjem – i sa stolnih računala i s mobilnih uređaja. Algoritam za pronalaženje vrijednosti svakog parametra (veličina međuspremnika ili vremensko ograničenje):

  1. Postavljamo matematički minimalnu vrijednost parametra.
  2. Počinjemo provoditi testove stranice.
  3. Ako sve funkcionalnosti stranice rade bez problema, parametar je definiran. Ako nije, povećajte vrijednost parametra i idite na korak 2.
  4. Ako vrijednost parametra premašuje čak i zadanu vrijednost, to je razlog za raspravu u razvojnom timu.

U nekim slučajevima, revizija ovih parametara trebala bi dovesti do refaktoriranja/redizajna stranice. Na primjer, ako stranica ne radi bez trominutnih AJAX dugih zahtjeva za anketiranje, tada ne trebate povećavati timeout, već zamijenite dugo anketiranje nečim drugim - botnet od 20 tisuća strojeva, koji visi na zahtjevima tri minute, lako će ubiti prosječnog jeftinog poslužitelja.

14. Ograničite veze u nginxu (limit_conn i limit_req)

Nginx također ima mogućnost ograničavanja veza, zahtjeva i tako dalje. Ako niste sigurni kako će se ponašati određeni dio vaše stranice, idealno je da ga testirate, shvatite koliko će zahtjeva obraditi i to zapišete u nginx konfiguraciju. Jedna je stvar kada stranica ne radi, a vi možete doći i preuzeti je. A sasvim je druga stvar kada padne do te mjere da server ode u swap. U ovom slučaju, često je lakše ponovno pokrenuti nego čekati njegov trijumfalni povratak.

Pretpostavimo da stranica ima odjeljke s opisnim nazivima /download i /search. U isto vrijeme mi:

  • ne želimo da botovi (ili ljudi s pretjerano revnim rekurzivnim upraviteljima preuzimanja) popune našu tablicu TCP veze svojim preuzimanjima;
  • ne želimo robote (ili zalutale pretraživače tražilice) iscrpio je računalne resurse DBMS-a s mnogo upita za pretraživanje.

U ove svrhe radit će sljedeća konfiguracija:

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; # Other configuration location ) location /search/ ( limit_req zone= search_r burst=5; # Druga konfiguracijska lokacija ) ) )

Obično ima izravnog smisla postaviti limit_conn i limit_req ograničenja za lokacije na kojima se nalaze skripte čije je izvođenje skupo (primjer prikazuje pretraživanje, i to s dobrim razlogom). Ograničenja se moraju odabrati na temelju rezultata testiranja opterećenja i regresijskog testiranja, kao i zdravog razuma.

Obratite pažnju na parametar 10m u primjeru. To znači da će se za izračun ovog ograničenja dodijeliti rječnik s međuspremnikom od 10 megabajta i niti jedan megabajt više. U ovoj konfiguraciji to će omogućiti praćenje 320.000 TCP sesija. Kako bi se optimizirao memorijski otisak, varijabla $binary_remote_addr koristi se kao ključ u rječniku, koji sadrži korisničku IP adresu u binarnom obliku i zauzima manje memorije od obične varijable niza $remote_addr. Treba napomenuti da drugi parametar direktive limit_req_zone može biti ne samo IP, već i bilo koja druga nginx varijabla dostupna u ovom kontekstu - na primjer, u slučaju kada ne želite pružiti nježniji način rada za proxy, možete koristiti $binary_remote_addr$http_user_agent ili $binary_remote_addr$http_cookie_myc00kiez - ali takve konstrukcije trebate koristiti s oprezom, budući da, za razliku od 32-bitnog $binary_remote_addr, ove varijable mogu biti značajno duže i “10m” koje ste deklarirali može iznenada završiti.

DDoS trendovi

  1. Snaga napada na mrežni i transportni sloj neprestano raste. Potencijal prosječnog SYN flood napada već je dosegao 10 milijuna paketa u sekundi.
  2. Osobito tražen u U zadnje vrijeme koristiti DNS napade. UDP flooding s važećim DNS upitima s lažiranim izvornim IP adresama jedan je od napada koje je najlakše implementirati, a teško im se suprotstaviti. Mnoge velike ruske tvrtke (uključujući hosting tvrtke) nedavno su imale problema kao rezultat napada na njihove DNS poslužitelje. Što dalje idete, takvih će napada biti više, a njihova snaga će rasti.
  3. Sudeći po vanjski znakovi, većina botneta se ne kontrolira centralno, već kroz peer-to-peer mrežu. To napadačima daje priliku da sinkroniziraju radnje botneta tijekom vremena - ako su prethodno kontrolne naredbe bile distribuirane preko botneta od 5 tisuća strojeva u desecima minuta, sada se broje sekunde, a vaša stranica može neočekivano doživjeti stostruko povećanje broja zahtjeva .
  4. Udio botova opremljenih potpunim motorom preglednika s JavaScriptom još uvijek je mali, ali stalno raste. Takav je napad teže odbiti ugrađenim improviziranim sredstvima, pa bi DIYers trebali s oprezom promatrati ovaj trend.

priprema OS-a

osim fino podešavanje nginx, moraš se pobrinuti za postavke mrežni stog sustava. U najmanju ruku, odmah omogućite net.ipv4.tcp_syncookies u sysctl kako biste se odmah zaštitili od malog SYN-flood napada.

15. Ugodite jezgru

Obratite pozornost na naprednije postavke mrežnog dijela (kernela), opet u vezi timeouta i memorije. Ima važnijih i manje važnih. Prije svega, morate obratiti pozornost na:

  • net.ipv4.tcp_fin_timeout Vrijeme koje će socket provesti u TCP FIN-WAIT-2 fazi (čekanje na FIN/ACK segment).
  • net.ipv4.tcp_(,r,w)mem Veličina međuspremnika za primanje TCP utičnice. Tri vrijednosti: minimalna, zadana i maksimalna.
  • net.core.(r,w)mem_max Isto vrijedi i za međuspremnike koji nisu TCP.

S kanalom od 100 Mbit/s, zadane vrijednosti još uvijek su nekako prikladne; ali ako vam je dostupan barem gigabit po sekundi, onda je bolje koristiti nešto poput:

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 8 388608" " sysctl - w net.ipv4.tcp_fin_timeout=10

16. Revizija /proc/sys/net/**

Idealno je istražiti sve parametre u /proc/sys/net/**. Moramo vidjeti koliko se razlikuju od zadanih i razumjeti koliko su adekvatno postavljeni. Linux programer (ili administrator sustava) koji razumije rad internetske usluge pod svojom kontrolom i želi je optimizirati trebao bi sa zanimanjem pročitati dokumentaciju o svim parametrima kernel mrežnog steka. Možda će tamo pronaći varijable specifične za web-mjesto koje će pomoći ne samo zaštititi web-mjesto od uljeza, već i ubrzati njegov rad.

Ne boj se!

Uspješni DDoS napadi dan za danom gase e-trgovinu, tresu medije i jednim udarcem nokautiraju najveće sustave plaćanja. Milijuni korisnika interneta gube pristup kritičnim informacijama. Prijetnja je hitna, pa se moramo suočiti s njom direktno. Napravi zadaću, ne boj se i hladne glave. Niste prvi niti zadnji koji će se suočiti s DDoS napadom na Vašu web stranicu, au Vašoj je moći, vođeni svojim znanjem i zdravim razumom, posljedice napada svesti na minimum.

Distribuirani napadi uskraćivanja usluge ili skraćeno DDoS postali su uobičajena pojava i velika glavobolja za vlasnike internetskih resursa diljem svijeta. Zato zaštita od DDoS napada na web stranicu danas nije opcija. dodatna opcija, ali preduvjet za one koji žele izbjeći zastoje, velike gubitke i narušenu reputaciju.

Reći ćemo vam detaljnije što je to bolest i kako se zaštititi od nje.

Što je DDoS

Distributed Denial of Service ili “Distributed Denial of Service” - napad na informacijski sistem tako da nije u mogućnosti obraditi zahtjeve korisnika. Jednostavnim riječima, DDoS uključuje preplavljivanje web resursa ili poslužitelja prometom iz ogromnog broja izvora, čineći ga nedostupnim. Često se takav napad provodi kako bi se izazvali prekidi u radu mrežnih resursa u velikoj tvrtki ili vladinoj organizaciji

DDoS napad sličan je drugoj uobičajenoj web prijetnji, uskraćivanju usluge (DoS). Jedina razlika je u tome što tipični distribuirani napad dolazi s jedne točke, dok je DDos napad rašireniji i dolazi iz različiti izvori.

Glavni cilj DDoS napada je blokiranjem rada web stranice učiniti nedostupnom posjetiteljima. Ali postoje slučajevi kada se takvi napadi provode kako bi se skrenula pozornost s drugih štetnih utjecaja. DDoS napad može se, primjerice, izvesti kada je sigurnosni sustav ugrožen kako bi se preuzela baza podataka organizacije.

DDoS napadi došli su u žižu javnosti 1999. godine, kada se dogodila serija napada na web stranice velikih kompanija (Yahoo, eBay, Amazon, CNN). Od tada se ova vrsta cyber kriminala razvila u globalnu prijetnju. Prema riječima stručnjaka, posljednjih godina njihova je frekvencija porasla 2,5 puta, a maksimalna snaga počela je prelaziti 1 Tbit/sec. Svaka šesta ruska tvrtka barem je jednom postala žrtva DDoS napada. Do 2020. njihov će ukupan broj dosegnuti 17 milijuna.

Hosting platforma sa 24/7 zaštitom od najsofisticiranijih DDoS napada.

Razlozi DDoS napada

  1. Osobni animozitet.Često potiče napadače da napadaju korporacije ili državne tvrtke. Na primjer, 1999. godine napadnute su web stranice FBI-a, što je uzrokovalo da ne rade nekoliko tjedana. To se dogodilo jer je FBI pokrenuo veliku raciju na hakere.
  2. Politički protest. Tipično, takve napade izvode haktivisti - IT stručnjaci s radikalnim stavovima o građanskom prosvjedu. Dobro poznati primjer je serija kibernetičkih napada na estonske vladine agencije 2007. Njihovo vjerojatni uzrok poslužio je kao prilika da se sruši Spomenik vojniku-oslobodiocu u Tallinnu.
  3. Zabava. To je sve danas velika količina ljudi su zainteresirani za DDoS i žele se okušati u tome. Hakeri početnici često pokreću napade iz zabave.
  4. Iznude i ucjene. Prije pokretanja napada, haker kontaktira vlasnika resursa i zahtijeva otkupninu.
  5. Natjecanje. DDoS napadi mogu se naručiti od beskrupulozne tvrtke kako bi se utjecalo na njezinu konkurenciju.

Tko su potencijalne žrtve?

DDoS može uništiti stranice bilo koje veličine, od običnih blogova do najvećih korporacija, banaka i drugih financijskih institucija.

Prema istraživanju koje je proveo Kaspersky Lab, napad bi mogao koštati tvrtku do 1,6 milijuna dolara. Ovo je ozbiljna šteta, jer napadnuti web resurs neko vrijeme ne može biti servisiran, što uzrokuje zastoj.

Najčešće web stranice i poslužitelji pate od DDoS napada:

  • velike tvrtke i državne agencije;
  • financijske institucije (banke, društva za upravljanje);
  • usluge kupona;
  • medicinske ustanove;
  • sustavi plaćanja;
  • Mediji i agregatori informacija;
  • internetske trgovine i e-trgovina;
  • online igre i usluge igranja;
  • mjenjačnice kriptovaluta.

Nedavno je oprema povezana s internetom, zajednički nazvana "Internet of Things" (IoT), dodana na tužan popis čestih žrtava DDoS napada. Najveću dinamiku rasta u ovom području pokazuju kibernetički napadi čiji je cilj ometanje online blagajni velikih trgovina ili trgovačkih centara.

Mehanizam rada

Svi web poslužitelji imaju svoja ograničenja u broju zahtjeva koje mogu istovremeno obraditi. Osim toga, postoji ograničenje propusnosti kanala koji povezuje mrežu i poslužitelj. Kako bi zaobišli ta ograničenja, napadači stvaraju računalna mreža sa zlonamjernim softverom, koji se naziva "botnet" ili "zombi mreža".

Kako bi stvorili botnet, kibernetički kriminalci distribuiraju trojanca putem e-mail biltena, društvenih mreža ili web stranica. Računala uključena u botnet nemaju fizička veza između sebe. Ujedinjuje ih samo "služenje" ciljeva vlasnika hakera.

Tijekom DDoS napada, haker šalje naredbe "zaraženim" zombi računalima, a ona pokreću napad. Botneti generiraju ogromnu količinu prometa koji može preopteretiti bilo koji sustav. Glavni "objekti" za DDoS obično su propusnost poslužitelja, DNS poslužitelj i sama internetska veza.

Znakovi DDoS napada

Kada radnje napadača postignu svoj cilj, to se može odmah utvrditi kvarovima u radu poslužitelja ili resursa koji se tamo nalazi. Ali postoji niz neizravnih znakova po kojima možete saznati o DDoS napadu na samom početku.

  • Poslužiteljski softver i OS pokreću se često i očito uspjeti- zamrzavanje, neispravno isključivanje itd.
  • hardverski kapacitet servera, što se znatno razlikuje od dnevnog prosjeka.
  • Brzo povećanje dolaznipromet u jednoj ili više luka.
  • Opetovano duplicirane radnje iste vrste klijenti na jednom resursu (odlazak na web stranicu, učitavanje datoteke).
  • Prilikom analize logova (dnevnika radnji korisnika) poslužitelja, vatrozida ili mrežni uređaji otkriveno mnogo zahtjeva iste vrste iz različitih izvora na jedan luka ili služba. Trebali biste biti posebno oprezni ako se publika zahtjeva znatno razlikuje od cilja za web mjesto ili uslugu.

Klasifikacija vrsta DDoS napada

Protokolarna ofenziva (transportni sloj)

DDoS napad usmjeren je na mrežni sloj poslužitelja ili web resursa, pa se često naziva napad mrežnog sloja ili transportnog sloja. Njegova je svrha preopteretiti prostor tablice na vatrozidu temeljenom na dnevniku, središnjoj mreži ili sustavu za uravnoteženje opterećenja.

Najčešći DDoS metoda na transportnoj razini - poplava mreže, stvarajući ogroman tok lažnih zahtjeva na različitim razinama koje primateljski čvor fizički ne može obraditi.

Obično mrežni servis primjenjuje FIFO pravilo, prema kojem računalo ne nastavlja servisirati drugi zahtjev dok ne obradi prvi. Ali tijekom napada, broj zahtjeva se toliko poveća da uređaj nema dovoljno resursa da izvrši prvi zahtjev. Kao rezultat toga, poplava zasićuje propusnost što je više moguće i potpuno začepljuje sve komunikacijske kanale.

Uobičajene vrste plavljenja mreže

  • HTTP poplava- masa običnih ili šifriranih HTTP poruka šalje se napadnutom poslužitelju, začepljujući komunikacijske čvorove.
  • ICMP poplava- napadačev botnet preopterećuje žrtvino glavno računalo servisnim zahtjevima, na koje je on dužan dati eho odgovore. Poseban primjer ove vrste napada je Ping poplava ili Smurf napad, kada su komunikacijski kanali ispunjeni ping zahtjevima koji se koriste za provjeru dostupnosti mrežnog čvora. Upravo zbog prijetnje plavljenja ICMP-a administratori sustava često potpuno blokiraju mogućnost postavljanja ICMP zahtjeva pomoću vatrozida.
  • SYN poplava- napad utječe na jedan od osnovnih mehanizama TCP protokola, poznat kao princip “trostrukog rukovanja” (algoritam zahtjev-odgovor: SYN paket – SYN-ACK paket – ACK paket). Žrtva je bombardirana poplavom lažnih SYN zahtjeva bez odgovora. Korisnički kanal začepljen je nizom TCP veza iz odlaznih veza koje čekaju odgovor ACK paketa.
  • UDP poplava- slučajni priključci žrtvinog računala preplavljeni su UDP paketima, čiji odgovori preopterećuju mrežne resurse. Poziva se vrsta UDP poplave usmjerene na DNS poslužitelj DNS poplava.
  • MAC poplava- cilj je mrežni hardver, čiji su portovi začepljeni tokovima "praznih" paketa s različitim MAC adresama. Za zaštitu od ove vrste DDoS napada, mrežni preklopnici su konfigurirani za provjeru valjanosti i filtriranje MAC adresa.

Napadi na sloj aplikacije (sloj infrastrukture)

Ova se varijacija koristi kada je potrebno zauzeti ili onemogućiti hardverske resurse. Cilj "jurišnika" može biti fizički i radna memorija ili CPU vrijeme.

Nema potrebe za preopterećenjem propusnosti. Dovoljno je samo izazvati preopterećenje procesora žrtve ili, drugim riječima, oduzeti cjelokupno vrijeme procesa.

Vrste DDoS napada na razini aplikacije

  • otprema "teškaX"paketi, dolazi izravno do procesora. Uređaj se ne može nositi sa složenim izračunima i počinje kvariti, čime se posjetiteljima onemogućuje pristup stranici.
  • Pomoću skripte, poslužitelj se popunjava "smeća" sadržaja- log datoteke, “korisnički komentari” itd. Ako administrator sustava nije postavio ograničenje na poslužitelju, tada haker može stvoriti ogromne serije datoteka koje će ispuniti cijeli tvrdi disk.
  • Problemi sa sustav kvota. Neki poslužitelji koriste za komunikaciju sa vanjski programi CGI sučelje (Common Gateway Interface, " zajedničko sučelje pristupnik"). Pri dobivanju pristupa CGI-ju, napadač može napisati vlastitu skriptu, koja će koristiti neke od resursa, na primjer, procesorsko vrijeme, u njegovim interesima.
  • Nepotpuna provjera podaci o posjetiteljima. To također dovodi do produljene ili čak beskrajne upotrebe resursa procesora dok se ne iscrpe.
  • Napad druge vrste. Izaziva lažni alarm u sigurnosnom sustavu, koji može automatski zatvoriti resurs od vanjskog svijeta.

Napadi na razini aplikacije

DDoS napad na aplikacijskom sloju iskorištava propuste u stvaranju programski kod, što stvara ranjivost softvera na vanjski utjecaj. DO ove vrste Može se uključiti tako uobičajeni napad kao što je "Ping smrti" - masovno slanje dužih ICMP paketa na žrtvino računalo, što uzrokuje prekoračenje međuspremnika.

Ali profesionalni hakeri rijetko pribjegavaju tako jednostavnoj metodi kao što je preopterećenje propusnih kanala. Kako bi napali složene sustave velikih tvrtki, pokušavaju u potpunosti razumjeti strukturu sustava poslužitelja i napisati exploit - program, lanac naredbi ili dio programskog koda koji uzima u obzir ranjivost žrtvinog softvera i koristi se za napad Računalo.

DNS napadi

  1. Prva grupa je usmjerena na ranjivosti uPO DNS poslužitelji. To uključuje uobičajene vrste cyber kriminala kao što su Zero-day napad i Fast Flux DNS.
    Jedan od najčešćih tipova DNS napada naziva se DNS-Spoofing. Tijekom njega napadači zamjenjuju IP adresu u predmemoriji poslužitelja, preusmjeravajući korisnika na lažnu stranicu. Tijekom prijelaza kriminalac dobiva pristup osobnim podacima korisnika i može ih koristiti u svoju korist. Na primjer, 2009. godine, zbog lažiranja DNS zapisa, korisnici sat vremena nisu mogli pristupiti Twitteru. Ovaj napad je bio političke prirode. Napadači su instalirali početna stranica društvena mreža upozorenja iranskih hakera vezana uz američku agresiju
  2. Druga skupina su DDoS napadi, koji dovode do DNS neoperativnost- poslužitelji. Ako ne uspiju, korisnik se neće moći prijaviti. željenu stranicu, jer preglednik neće pronaći IP adresu specifičnu za određenu stranicu.

Prevencija i zaštita od DDoS napada

Prema Corero Network Securityju, više od ⅔ svih tvrtki u svijetu izloženo je napadima uskraćivanja pristupa svakog mjeseca. Štoviše, njihov broj doseže 50.

Vlasnici web stranica koji ne osiguraju zaštitu poslužitelja od DDoS napada mogu pretrpjeti ne samo velike gubitke, već i pad povjerenja kupaca, kao i konkurentnost na tržištu.

Najviše učinkovita metoda zaštita od DDoS napada - filtri koje je davatelj instalirao na internetske kanale s velikom propusnošću. Oni provode dosljednu analizu cjelokupnog prometa i identificiraju sumnjive mrežne aktivnosti ili pogreške. Filtri se mogu instalirati i na razini usmjerivača i pomoću posebnih hardverskih uređaja.

Metode zaštite

  1. Još u fazi pisanja softver Morate misliti na sigurnost stranice. Temeljito provjerite softver za pogreške i ranjivosti.
  2. redovito ažurirajte softver, a također pružaju mogućnost povratka stara verzija ako se pojave problemi.
  3. slijediti ograničenje pristupa. Usluge vezane uz administraciju trebaju biti potpuno zatvorene od pristupa trećih strana. Zaštitite svoj administratorski račun složene lozinke i češće ih mijenjati. Odmah izbrišite račune zaposlenika koji daju otkaz.
  4. Pristup administrativno sučelje treba provoditi isključivo iz interna mreža ili putem VPN-a.
  5. Skenirajte sustav za prisutnost ranjivosti. Najopasnije ranjivosti redovito objavljuje autoritativna OWASP Top 10 ocjena.
  6. primijeniti aplikacijski vatrozid- WAF (vatrozid web aplikacije). Pregledava preneseni promet i prati legitimnost zahtjeva.
  7. Koristiti CDN(Mreža za isporuku sadržaja). To je mreža za isporuku sadržaja koja radi pomoću distribuirane mreže. Promet se razvrstava na više poslužitelja, što smanjuje kašnjenje prilikom pristupa posjetitelja.
  8. Kontrolirajte dolazni promet pomoću liste kontrole pristupa (ACL-ovi), koji će označavati popis osoba koje imaju pristup objektu (programu, procesu ili datoteci), kao i njihove uloge.
  9. Limenka blokirati promet, koji dolazi od napadačkih uređaja. To se radi na dva načina: korištenjem vatrozidi ili ACL-ove. U prvom slučaju, određeni tok je blokiran, ali zasloni ne mogu odvojiti "pozitivan" promet od "negativnog" prometa. A u drugom se filtriraju sporedni protokoli. Stoga neće biti korisno ako haker koristi prioritetne upite.
  10. Da biste se zaštitili od lažiranja DNS-a, morate povremeno očisti DNS predmemoriju.
  11. Koristiti zaštita od neželjenih robota- captcha, "ljudski" vremenski okviri za ispunjavanje formulara, reCaptcha (označite "Nisam robot") itd.
  12. Obrnuti napad. Sav zlonamjerni promet preusmjerava se na napadača. Pomoći će ne samo odbiti napad, već i uništiti poslužitelj napadača.
  13. Postavljanje resursa na nekoliko neovisnih poslužitelja. Ako jedan poslužitelj zakaže, preostali će osigurati rad.
  14. Korištenje provjerenog hardverska zaštita od DDoS napada. Na primjer, Impletec iCore ili DefensePro.
  15. Odaberite hosting providera s kojim surađujete pouzdan dobavljač usluge kibernetičke sigurnosti. Među kriterijima pouzdanosti stručnjaci ističu: prisutnost jamstava kvalitete, pružanje zaštite od najšireg spektra prijetnji, 24-satnu tehničku podršku, transparentnost (pristup klijenta statistici i analitici) i odsutnost tarifa za zlonamjerni promet .

Zaključak

U ovom smo članku pogledali što znači DDoS napad i kako zaštititi svoje web mjesto od napada. Važno je zapamtiti da takve zlonamjerne radnje mogu srušiti čak i najsigurnije i najveće web resurse. To će dovesti do ozbiljnih posljedica u obliku velikih gubitaka i gubitka kupaca. Zbog toga je zaštita vašeg resursa od DDoS napada hitan zadatak za sve komercijalne strukture i vladine agencije.

Želite li profesionalnu razinu zaštite od DDoS napada - odaberite! Konstantan nadzor i tehnička podrška 24/7.

Sve češće se tu i tamo u službenim priopćenjima pružatelja usluga hostinga spominju reflektirani DDoS napadi. Korisnici sve češće, nakon što otkriju nedostupnost svoje stranice, odmah pretpostavljaju DDoS. Doista, početkom ožujka Runet je doživio cijeli val takvih napada. Pritom stručnjaci uvjeravaju da zabava tek počinje. Prosto je nemoguće ignorirati tako relevantan, prijeteći i intrigantan fenomen. Dakle, danas razgovarajmo o mitovima i činjenicama o DDoS-u. Sa stajališta hosting providera, naravno.

Dan za pamćenje

Dana 20. studenog 2013. godine, prvi put u 8-godišnjoj povijesti naše tvrtke, cijela tehnička platforma bila je nedostupna nekoliko sati zbog neviđenog DDoS napada. Deseci tisuća naših korisnika diljem Rusije i CIS-a su patili, a da ne spominjemo nas i našeg internetskog davatelja usluga. Posljednje što je pružatelj uspio snimiti prije nego što je bijelo svjetlo izblijedjelo za sve je da su njegovi ulazni kanali bili čvrsto začepljeni dolaznim prometom. Da biste to vizualizirali, zamislite svoju kadu s običnim odvodom, u koji nadire Nijagarin slap.

Čak su i pružatelji na višim pozicijama u lancu osjetili posljedice ovog tsunamija. Grafikoni ispod jasno prikazuju što se toga dana događalo s internetskim prometom u St. Petersburgu i Rusiji. Obratite pažnju na strme vrhove u 15 i 18 sati, točno u trenucima kada smo bilježili napade. Za ove nagle plus 500-700 GB.

Bilo je potrebno nekoliko sati da se lokalizira napad. Izračunat je poslužitelj na koji je poslana. Zatim je izračunat cilj internetskih terorista. Znate li koga je sve to neprijateljsko topništvo gađalo? Jedna sasvim obična, skromna klijentska stranica.

Mit broj jedan: “Meta napada je uvijek pružatelj usluga hostinga. Ovo su spletke njegovih konkurenata. Nije moje." Zapravo, najvjerojatnija meta internetskih terorista je obična klijentska stranica. Odnosno, mjesto jednog od vaših susjeda hostinga. Ili možda i tvoja.

Nije sve DDoS...

Nakon događaja na našim tehničkim stranicama 20. studenog 2013. i njihovog djelomičnog ponavljanja 9. siječnja 2014., neki korisnici su počeli pretpostavljati DDoS u svakom konkretnom kvaru vlastite web stranice: "Ovo je DDoS!" i "Imate li ponovno DDoS?"

Važno je zapamtiti da ako nas pogodi takav DDoS da ga i naši klijenti osjete, odmah ga sami prijavimo.

Željeli bismo umiriti one koji se žure paničariti: ako nešto nije u redu s vašom web stranicom, tada je vjerojatnost da je to DDoS manja od 1%. Jednostavno zbog činjenice da se stranici može dogoditi puno stvari, a te se "mnoge stvari" događaju puno češće. O metodama za brzu samodijagnostiku što se točno događa s vašom stranicom govorit ćemo u jednom od sljedećih postova.

U međuvremenu, radi točnosti upotrebe riječi, razjasnimo pojmove.

O uvjetima

DoS napad (od engleskog Denial of Service) - Ovo je napad osmišljen da uskrati uslugu poslužitelju zbog njegovog preopterećenja.

DoS napadi nisu povezani s oštećenjem opreme ili krađom informacija; njihov cilj - učiniti da poslužitelj prestane odgovarati na zahtjeve. Temeljna razlika između DoS-a je u tome što se napad odvija s jednog stroja na drugi. Ima točno dva sudionika.

Ali u stvarnosti, ne vidimo gotovo nikakve DoS napade. Zašto? Budući da su mete napada najčešće industrijski objekti (na primjer, moćni produktivni poslužitelji hosting tvrtki). A kako bi se uzrokovala ikakva primjetna šteta u radu takvog stroja, potrebna je mnogo veća snaga od njegove vlastite. Ovo je prva stvar. I drugo, inicijatora DoS napada vrlo je lako identificirati.

DDoS - u biti isto što i DoS, samo je napad raspodijeljena priroda. Ne pet, ne deset, ne dvadeset, nego stotine i tisuće računala pristupaju jednom poslužitelju istovremeno s različitih mjesta. Ova vojska strojeva se zove botnet. Gotovo je nemoguće identificirati naručitelja i organizatora.

Suučesnici

Kakva su računala uključena u botnet?

Iznenadit ćete se, ali to su često najobičniji kućni strojevi. Tko zna?.. - vrlo vjerojatno tvoja kućno računalo odveli na stranu zla.

Za ovo vam ne treba puno. Napadač pronalazi ranjivost u popularnom operacijski sustav ili aplikaciju i uz njenu pomoć zarazi vaše računalo trojancem koji na određeni dan i u određeno vrijeme daje instrukciju vašem računalu da počne izvršavati određene radnje. Na primjer, pošaljite zahtjeve na određeni IP. Bez vašeg znanja i sudjelovanja, naravno.

Mit broj dva: « DDoS se radi negdje daleko od mene, u posebnom podzemnom bunkeru gdje sjede bradati hakeri crvenih očiju.” Zapravo, a da to ne znate, vi, vaši prijatelji i susjedi - svatko može biti nesvjesni suučesnik.

Ovo se stvarno događa. Čak i ako ne razmišljate o tome. Čak i ako ste užasno daleko od IT-a (pogotovo ako ste daleko od IT-a!).

Zabavno hakiranje ili DDoS mehanika

DDoS fenomen nije uniforman. Ovaj koncept kombinira mnoge mogućnosti djelovanja koje vode do jednog rezultata (uskraćivanje usluge). Razmotrimo vrste problema koje nam DDoSeri mogu donijeti.

Pretjerano korištenje računalnih resursa poslužitelja

To se postiže slanjem paketa na određeni IP, čija obrada zahtijeva veliku količinu resursa. Na primjer, učitavanje stranice zahtijeva izvršavanje velikog broja SQL upita. Svi napadači će zahtijevati točnu stranicu, što će uzrokovati preopterećenje poslužitelja i uskraćivanje usluge za normalne, legitimne posjetitelje stranice.
Ovo je napad na razini školarca koji je nekoliko večeri proveo čitajući časopis Hacker. Ona nije problem. Isti traženi URL izračunava se trenutno, nakon čega se pristup njemu blokira na razini web poslužitelja. A ovo je samo jedno rješenje.

Preopterećenje komunikacijskih kanala prema poslužitelju (izlaz)

Razina težine ovog napada je otprilike ista kao i prethodnog. Napadač određuje najtežu stranicu na stranici, a botnet pod njegovom kontrolom počinje je masovno zahtijevati.


Zamislimo da je dio Winnieja Pooha koji je nama nevidljiv beskonačno velik
U ovom slučaju također je vrlo lako razumjeti što točno blokira odlazni kanal i sprječava pristup ovoj stranici. Slični upiti mogu se lako vidjeti pomoću posebne komunalije, koji vam omogućuju pregled mrežnog sučelja i analizu prometa. Zatim se za vatrozid piše pravilo koje blokira takve zahtjeve. Sve se to radi redovito, automatski i tako munjevito da Većina korisnika nije niti svjesna bilo kakvog napada.

Mit broj tri: "A Međutim, rijetko dođu do mog hostinga, a ja ih uvijek primijetim.” Zapravo, 99,9% napada ne vidite niti osjetite. Ali svakodnevna borba s njima - Ovo je svakodnevni, rutinski posao hosting tvrtke. To je naša realnost, u kojoj je napad jeftin, konkurencija na razini, a ne pokazuju svi pronicljivost u načinima borbe za mjesto pod suncem.

Preopterećenje komunikacijskih kanala prema poslužitelju (ulaz)

Ovo je već zadatak za one koji čitaju Hacker magazin više od jednog dana.


Fotografija s web stranice radija Ekho Moskvy. Nismo pronašli ništa vizualnije što bi predstavljalo DDoS s preopterećenjem ulaznih kanala.
Da biste napunili kanal dolaznim prometom do kapaciteta, morate imati botnet čija vam snaga omogućuje generiranje potrebne količine prometa. Ali možda postoji način da pošaljete malo prometa, a primite puno?

Postoji, i to ne samo jedan. Postoji mnogo opcija za poboljšanje napada, ali jedna od trenutno najpopularnijih je napad putem javnih DNS poslužitelja. Stručnjaci ovu metodu pojačanja nazivaju DNS pojačanje(u slučaju da netko više voli stručne izraze). Pojednostavljeno, zamislite lavinu: dovoljan je mali napor da se probije, ali neljudski resursi da se zaustavi.

Ti i ja to znamo javni DNS poslužitelj na zahtjev, svakome pruža informacije o bilo kojem nazivu domene. Na primjer, pitamo takvog poslužitelja: reci mi nešto o domeni sprinthost.ru. I bez zadrške nam govori sve što zna.

Upit DNS poslužitelju je vrlo jednostavan rad. Ne košta ga gotovo ništa; zahtjev će biti mikroskopski. Na primjer, ovako:

Ostaje samo izabrati Naziv domene, informacije o kojima će činiti impresivan paket podataka. Tako se izvornih 35 bajtova jednim pokretom ruke pretvara u gotovo 3700. Postoji povećanje više od 10 puta.

Ali kako možete osigurati da je odgovor poslan na ispravnu IP adresu? Kako lažirati IP izvor zahtjeva tako da DNS poslužitelj izda svoje odgovore u smjeru žrtve koja nije tražila nikakve podatke?

Činjenica je da DNS poslužitelji rade prema UDP komunikacijski protokol, što uopće ne zahtijeva potvrdu izvora zahtjeva. Krivotvoriti odlazni IP u ovom slučaju nije jako teško za dozera. Zbog toga je ova vrsta napada sada toliko popularna.

Najvažnije je da je za izvođenje takvog napada dovoljan vrlo mali botnet. I nekoliko raštrkanih javnih DNS-ova koji neće vidjeti ništa čudno u tome različite korisnike s vremena na vrijeme traže podatke na adresu jednog hosta. I tek tada će se sav ovaj promet stopiti u jedan tok i čvrsto zakovati jednu "cijev".

Ono što dozator ne može znati je kapacitet kanala napadača. A ako ne izračuna ispravno snagu svog napada i odmah ne začepi kanal do poslužitelja na 100%, napad se može vrlo brzo i lako odbiti. Korištenje uslužnih programa poput TCP dump Lako je otkriti da dolazni promet dolazi s DNS-a i na razini vatrozida blokirati njegovo prihvaćanje. Ova opcija - odbijanje prihvaćanja prometa s DNS-a - povezana je s određenim neugodnostima za sve, međutim, i poslužitelji i stranice na njima nastavit će uspješno raditi.

Ovo je samo jedna opcija od mnogih mogućih za poboljšanje napada. Postoje mnoge druge vrste napada, o njima možemo drugi put. Za sada bih želio sažeti da sve navedeno vrijedi za napad čija snaga ne prelazi širinu kanala do poslužitelja.

Ako je napad snažan

Ako snaga napada premaši kapacitet kanala prema poslužitelju, događa se sljedeće. Internetski kanal do servera je momentalno začepljen, zatim do hosting stranice, do njegovog internet provajdera, do uzlaznog provajdera, i tako dalje i dalje i dalje (dugoročno gledano - do najapsurdnijih granica), sve do snaga napada je dovoljna.

I onda to postaje globalni problem za sve. I ukratko, s tim smo se morali suočiti 20. studenog 2013. godine. A kada se dogode preokreti velikih razmjera, vrijeme je da uključite posebnu magiju!


Ovako izgleda posebna čarolija Pomoću ove čarolije moguće je odrediti na koji server se usmjerava promet i blokirati njegov IP na razini internet provajdera. Tako da prestaje primati bilo kakve zahtjeve na ovaj IP putem svojih komunikacijskih kanala s vanjskim svijetom (uplinkovi). Za ljubitelje izraza: stručnjaci ovaj postupak nazivaju "Crna rupa", od engleskog blackhole.

U tom slučaju napadnuti poslužitelj s 500-1500 računa ostaje bez svoje IP adrese. Za nju se dodjeljuje nova podmreža IP adresa, preko koje su klijentski računi nasumično ravnomjerno raspoređeni. Dalje, stručnjaci čekaju da se napad ponovi. Gotovo uvijek se ponavlja.

I kad se ponovi, napadnuti IP više nema 500-1000 računa, već samo desetak ili dva.

Krug osumnjičenih se sužava. Ovih 10-20 računa opet je raspoređeno različite IP adrese. I opet su inženjerci u zasjedi čekajući da se napad ponovi. Stalno iznova distribuiraju račune koji su ostali pod sumnjom na različite IP adrese i tako, postupno se približavajući, određuju metu napada. Svi ostali računi u ovom trenutku vraćaju se u normalan rad na prethodnoj IP adresi.

Kao što je jasno, ovo nije trenutni postupak; potrebno je vrijeme za provedbu.

Mit broj četiri:“Kad se dogodi napad velikih razmjera, moj domaćin nema plan akcije. On samo čeka, zatvorenih očiju, da završi bombardiranje i odgovara istim tipom odgovora na moja pisma.”To nije točno: u slučaju napada pružatelj usluge hostinga djeluje planski kako bi ga lokalizirao i što je brže moguće otklonio posljedice. A pisma iste vrste omogućuju vam da prenesete bit onoga što se događa i istovremeno uštedite resurse potrebne za rješavanje hitne situacije što je brže moguće.

Ima li svjetla na kraju tunela?

Sada vidimo da je DDoS aktivnost u stalnom porastu. Naručivanje napada postalo je vrlo dostupno i nevjerojatno jeftino. Kako bismo izbjegli optužbe za propagandu, neće biti poveznica za dokaze. Ali vjerujte nam na riječ, istina je.

Mit broj pet: “DDoS napad je vrlo skup pothvat i samo si poslovni tajkuni mogu priuštiti da ga naruče. U najmanju ruku, ovo su spletke tajnih službi!” Zapravo, takvi su događaji postali iznimno dostupni.

Stoga se ne može očekivati ​​da će zlonamjerna aktivnost nestati sama od sebe. Dapače, samo će se pojačati. Ostalo je samo iskovati i naoštriti oružje. To je ono što mi radimo, poboljšavamo mrežnu infrastrukturu.

Pravna strana problema

Ovo je vrlo nepopularan aspekt rasprave o DDoS napadima, jer rijetko čujemo za slučajeve da su počinitelji uhvaćeni i kažnjeni. Međutim, trebali biste zapamtiti: DDoS napad je kazneno djelo. U većini zemalja svijeta, uključujući Rusku Federaciju.

Mit broj šest: « Sada znam dovoljno o DDoS-u, naručit ću zabavu za konkurenta - i ništa mi se neće dogoditi zbog ovoga!” Moguće je da će se dogoditi. A ako i bude, neće se činiti mnogo.

Općenito, nikome ne savjetujemo da se bavi opakom praksom DDoS-a, kako ne biste navukli gnjev pravde i ne uništili svoju karmu. A mi, zbog specifičnosti naše djelatnosti i velikog istraživačkog interesa, nastavljamo proučavati problem, čuvati stražu i usavršavati obrambene strukture.

P.S:nemamo dovoljno lijepih riječi da izrazimo svoju zahvalnost, pa samo kažemo"Hvala vam!" našim strpljivim korisnicima koji su nas toplo podržali u teškom danu 20.11.2013. Izrekli ste mnogo ohrabrujućih riječi u našu podršku