Vrhunski vodič za sprečavanje DDoS napada na DNS-u

Što se tiče DNS-a, Cricket Liu doslovno je napisao knjigu. Suautor je svih pet izdanja O'Reillyjeve knjige "DNS i BIND", koja se općenito smatra konačnim vodičem o svim stvarima koje se odnose na sustav imena domena. Cricket je trenutno glavni direktor infrastrukture u Infobloxu.

DNS je očito kritična komponenta umrežavanja računala, ali postoje trenuci kada se ti alati mogu koristiti za malverzacije. Na ovotjednom New Tech Forumu, Cricket proučava rastući problem DDoS napada temeljenih na DNS-u i kako se nositi s njima. - Paul Venezia

DoS napadi temeljeni na DNS-u: Kako rade i kako ih zaustaviti

DDoS (distribuirani napad uskraćivanja usluge) zasnovan na DNS-u postao je jedan od najčešćih destruktivnih napada na Internetu. Ali kako djeluju? I što mi možemo učiniti da se branimo od njih?

U ovom ću članku opisati kako DDoS napada i eksploatira i cilja DNS infrastrukturu. Pokazat ću vam i što možete učiniti da zaštitite sebe i druge.

Velika laž

Generiranje DDoS napada pomoću DNS infrastrukture izuzetno je jednostavno: napadači šalju upite poslužiteljima imena putem Interneta, a ti poslužitelji imena vraćaju odgovore. Umjesto da upite šalju sa vlastitih IP adresa, napadači ipak lažiraju adresu svojeg cilja - što može biti web poslužitelj, usmjerivač, drugi poslužitelj imena ili gotovo bilo koji čvor na Internetu.

Lažiranje DNS upita posebno je lako jer se obično prenose putem UDP-a (User Datagram Protocol-a bez veze). Slanje DNS upita s proizvoljne IP adrese otprilike je jednostavno i ima približno jednak učinak kao upisivanje tuđe povratne adrese na razglednicu.

Upit za lažno predstavljanje ipak nije dovoljan da onesposobi cilj. Ako odgovori na te upite nisu veći od samih upita, napadač bi jednako dobro podvalio cilj lažnim upitima. Ne, da bi se maksimalizirala šteta na cilju, svaki upit trebao bi dati vrlo velik odgovor. Ispada da je to vrlo lako potaknuti.

Od pojave EDNS0, skupa proširenja za DNS uvedenih davne 1999. godine, DNS poruke temeljene na UDP-u mogle su nositi puno podataka. Odgovor može biti velik do 4.096 bajtova. Većina upita, s druge strane, manja je od 100 bajtova.

Nekada je bilo relativno teško pronaći velik odgovor u Internet prostoru imena. Ali sada kada su organizacije počele primjenjivati ​​DNSSEC, DNS sigurnosna proširenja, to je puno lakše. DNSSEC pohranjuje kriptografske ključeve i digitalne potpise u zapise u prostoru imena. To su pozitivno ogromne.

Možete vidjeti primjer odgovora iz isc.org zone koja sadrži DNSSEC zapise na mom blogu. Veličina odgovora je 4.077 bajta, u usporedbi s upitom od samo 44 bajta.

Sada napadači slika s Interneta šalju taj lažni upit s IP adrese vašeg web poslužitelja na poslužitelje imena isc.org. Za svaki upit od 44 bajta, vaš web poslužitelj prima odgovor od 4.077 bajta, za faktor pojačanja od gotovo 93 puta.

Napravimo brzi izračun kako bismo shvatili koliko bi ovo moglo postati loše. Recimo da svaki napadač ima relativno skromnu 1Mbps vezu s Internetom. Preko te veze u sekundi može poslati oko 2.840 44-bajtnih upita. Ovaj tok upita rezultirao bi odgovorima vrijednim gotovo 93 Mb / s na vašem web poslužitelju. Svakih 11 napadača predstavlja 1Gbps.

Gdje bi asocijalni napadači pronašli 10 prijatelja koji bi im pomogli u izvršenju napada? Zapravo im ne trebaju. Upotrijebit će botnet tisuća računala.

Krajnji učinak je poražavajući. U svom tromjesečnom globalnom izvješću o DDoS napadima, Prolexic (tvrtka za ublažavanje DDoS-a) izvijestio je o nedavnom napadu utemeljenom na DNS-u na kupca koji je dosegao najviše 167 Gbps. Prolexic je nadalje izvijestio da je prosječna propusnost DDoS napada porasla 718 posto na 48 Gbps u jednom kvartalu .

Ali čekaj! Ne mogu li se poslužitelji imena isc.org izmijeniti tako da prepoznaju da se iznova i iznova traže isti podaci s iste IP adrese? Zar nisu mogli ugušiti napad?

Svakako mogu. No poslužitelji imena isc.org nisu jedini koje napadač može koristiti za pojačavanje svog prometa. Svakako, postoje i drugi mjerodavni poslužitelji imena koje bi napadač mogao koristiti, ali još gore su otvoreni rekurzivni poslužitelji imena.

Otvoreni rekurzivni poslužitelj imena jednostavno je poslužitelj imena koji će obrađivati ​​rekurzivne upite s bilo koje IP adrese. Mogu mu poslati taj upit za podatke o isc.org i on će mi odgovoriti, a vi možete učiniti isto.

Na Internetu ne bi trebalo biti puno otvorenih rekurzivnih poslužitelja imena. Funkcija rekurzivnog poslužitelja imena je traženje podataka u imenskom prostoru Interneta u ime DNS klijenata, poput onih na vašem prijenosnom računalu ili pametnom telefonu. Mrežni administratori koji postavljaju rekurzivne poslužitelje imena (poput vašeg IT odjela) obično ih namjeravaju koristiti određenoj zajednici (na primjer, vi i vaši kolege zaposlenici). Ako ne koriste usluge poput OpenDNS-a ili Google Public DNS-a, ne misle ih koristiti građanima Moldavije. Dakle, javni, sigurnosni i posebno kompetentni administratori konfiguriraju kontrole pristupa na svojim rekurzivnim poslužiteljima imena kako bi ograničili njihovu upotrebu na ovlaštene sustave.

S obzirom na to, koliki bi problem mogao biti otvaranje rekurzivnih poslužitelja imena? Prilično veliko. Projekt Open Resolver prikupio je popis od 33 milijuna otvorenih rekurzivnih poslužitelja imena. Hakeri mogu upućivati ​​lažne upite na onoliko njih koliko žele izbacivati ​​isc.org podatke na vaš web poslužitelj, poslužitelj imena ili granični usmjerivač dok se ne zaguši.

Tako djeluju DDoS napadi temeljeni na DNS-u. Srećom, imamo nekoliko načina za borbu protiv njih.

Kako prebroditi oluju

Prvo poslovno naručivanje je instrumentiranje vaše DNS infrastrukture, tako da ćete znati kada ste napadnuti. Previše organizacija nema pojma koliki je njihov upit, pa nikad ne bi saznali jesu li uopće napadnuti.

Određivanje opterećenja vašeg upita može biti jednostavno kao korištenje ugrađene podrške za statistiku BIND-a. Poslužitelj imena BIND izbacit će podatke u svoju statističku datoteku kada pokrenete rndc statistiku,na primjer, ili u konfigurabilnom intervalu statistike. Možete pregledati statistiku brzine upita, pogrešaka u utičnici i drugih naznaka napada. Ne brinite ako još niste sigurni kako će napad izgledati - dio cilja praćenja DNS-a je uspostaviti osnovnu liniju kako biste mogli prepoznati što je nenormalno.

Dalje, pogledajte svoju infrastrukturu usmjerenu na Internet. Ne ograničavajte se na svoje vanjske mjerodavne poslužitelje imena; ispitajte svoju infrastrukturu preklopnika i usmjerivača, vatrozid i veze s Internetom. Identificirajte bilo koje pojedinačne točke neuspjeha. Utvrdite možete li ih jednostavno (i isplativo) eliminirati.

Ako je moguće, razmislite o širokoj geografskoj distribuciji vaših vanjskih mjerodavnih poslužitelja imena. To naravno pomaže u izbjegavanju pojedinačnih točaka neuspjeha, ali pomaže i kada niste napadnuti. Rekurzivni poslužitelj imena koji rješava naziv domene u jednoj od vaših zona pokušat će postaviti upit o mjerodavnom poslužitelju imena koji mu je najbliži, pa će geografska distribucija težiti pružanju boljih performansi vašim kupcima i dopisnicima. Ako su vaši kupci grupirani u određenim zemljopisnim područjima, pokušajte smjestiti autoritativni poslužitelj imena u njihovu blizinu kako bi pružio najbrže odgovore.

Možda je najosnovniji način borbe protiv DoS napada prekomjerno osiguravanje vaše infrastrukture. Dobra vijest je da pretjerano pružanje poslužitelja imena nije nužno skupo; sposoban poslužitelj imena može obraditi desetke ili čak stotine tisuća upita u sekundi. Niste sigurni koliki je kapacitet vaših poslužitelja imena? Za testiranje izvedbe poslužitelja imena mogli biste koristiti alate za upite, poput dnsperf - po mogućnosti koristeći test platformu sličnu vašim proizvodnim poslužiteljima imena u laboratoriju, a ne same proizvodne poslužitelje.

Odlučivanje o tome koliko ćete pretjerano pružiti poslužitelje imena subjektivno: Koliko vrijedi vaša mrežna prisutnost? Postoje li druge komponente vaše infrastrukture okrenute Internetu koje neće uspjeti prije poslužitelja imena? Očito je ludo trošiti novac na izgradnju prvoklasne DNS infrastrukture iza graničnog usmjerivača ili vatrozida koji neće uspjeti i prije nego što se vaši poslužitelji imena uopće oznoje.

Ako novac nije objekt, možda bi bilo korisno znati da najmoderniji DDoS napadi na DNS infrastrukturu mogu premašiti 100 Gbps.

Korištenje Anycasta također može pomoći u odoljevanju od DDoS napada. Anycast je tehnika koja omogućuje više poslužitelja da dijele jednu IP adresu, a posebno dobro funkcionira s DNS-om. Zapravo, internetski poslužitelji korijenskih imena godinama su koristili Anycast za pružanje podataka o korijenskoj zoni širom svijeta, a istovremeno dopuštaju da se popis korijena uklopi u jednu DNS poruku temeljenu na UDP-u.

Da bi postavili Anycast, hostovi koji podržavaju vaše servere imena morat će pokrenuti protokol dinamičkog usmjeravanja, poput OSPF ili BGP. Proces usmjeravanja oglašavaće susjedne usmjerivače put do nove, virtualne IP adrese na kojoj vaš poslužitelj imena sluša. Proces usmjeravanja također mora biti dovoljno pametan da zaustavi oglašavanje te rute ako lokalni poslužitelj imena prestane reagirati. Svoj demon usmjeravanja možete zalijepiti za zdravlje svog imenskog poslužitelja pomoću koda vlastite konstrukcije - ili možete kupiti proizvod koji se za vas brine za vas. Infobloxov NIOS, ne slučajno, uključuje podršku Anycast.

Kako se Anycast brani od DDoS napada? Pa, recimo da imate šest vanjskih poslužitelja imena u dvije Anycast grupe (to jest, tri dijele jednu Anycast IP adresu, a tri dijele drugu). Svaka skupina sadrži jednog člana u Sjedinjenim Državama, jednog u Europi i jednog u Aziji. Domaćin koji vrši DDoS napad protiv vas može istodobno slati promet samo jednom članu bilo koje skupine s bilo koje točke na Internetu, a time i samo napadu. Ako napadači ne budu mogli istodobno dovoditi dovoljno prometa iz Sjeverne Amerike, Europe i Azije da vam preplave infrastrukturu, neće uspjeti.

Konačno, postoji način na koji možete istovremeno iskoristiti široku geografsku distribuciju i Anycast, bez značajnih kapitalnih izdataka: Upotrijebite DNS davatelja usluga u oblaku. Tvrtke poput Dyna i Neustara vode vlastite poslužitelje imena Anycast u podatkovnim centrima širom svijeta. Plaćate im da ugoste vaše zone i odgovore na upite za vaše podatke. A možete i dalje održavati izravnu kontrolu nad podacima o vašoj zoni tako što ćete zatražiti od davatelja usluga da konfigurira svoje poslužitelje imena kao sekundarne za vaše zone, učitavajući podatke s glavnog poslužitelja imena koji ste odredili i koji interno upravljate. Samo budite sigurni da ste pokrenuli glavni skriveni (tj. Bez NS zapisa koji prema njemu pokazuje) ili riskirate da će ga napadač ciljati kao jednu točku neuspjeha.

Jedna riječ opreza pri korištenju davatelja usluga DNS-a zasnovanih na oblaku: Većina vam naplaćuje barem dijelom na temelju broja upita koje njihovi poslužitelji imena primaju za podatke u vašim zonama. U DDoS napadu, ti bi se upiti mogli dramatično povećati (potpuno izvan vaše kontrole i nimalo u vašu korist), zato se pobrinite da imaju mogućnost rješavanja DDoS napada bez prenošenja troškova prometa na vas.

Kako izbjeći da postanete suučesnik u DDoS napadima

Sada znate kako konfigurirati svoju DNS infrastrukturu da se odupre DDoS napadu. No, gotovo je jednako važno osigurati da ne sudjelujete u DDoS napadu protiv nekoga drugog.

Sjećate se opisa kako DNS poslužitelji mogu pojačati promet? Napadači mogu koristiti i otvorene rekurzivne poslužitelje imena i mjerodavne poslužitelje imena kao pojačala, šaljući lažne upite zbog kojih poslužitelji imena šalju odgovore više od 100 puta veće od upita na proizvoljne ciljeve na Internetu. Sada, naravno, ne želite biti meta takvog napada, ali ne želite biti ni suučesnici. Napad koristi resurse vaših poslužitelja imena, kao i vašu propusnost. Ako cilj poduzme mjere za blokiranje prometa s vašeg poslužitelja imena na njegovu mrežu, nakon završetka napada cilj možda neće moći razriješiti imena domena u vašim zonama.

Ako pokrenete otvoreni rekurzivni poslužitelj imena, rješenje je jednostavno: Nemojte. Vrlo je malo organizacija koje imaju opravdanje za pokretanje poslužitelja imena otvorenog za rekurzivne upite. Google javni DNS i OpenDNS su dva koja vam padnu na pamet, ali ako ovo čitate, pretpostavljam da vjerojatno niste oni. Mi bismo ostali trebali primijeniti kontrole pristupa na svoje rekurzivne poslužitelje imena kako bismo bili sigurni da ih koriste samo ovlašteni upiti. To vjerojatno znači ograničavanje DNS upita na IP adrese na našim internim mrežama, što je lako učiniti na bilo kojoj implementaciji poslužitelja imena koja vrijedi njegove soli. (Microsoft DNS poslužitelj ne podržava kontrole pristupa temeljene na IP adresama na upitima. Pročitajte što želite u to.)

Ali što ako pokrenete autoritativni poslužitelj imena? Očito je da ne možete ograničiti IP adrese s kojih ćete prihvaćati upite - u svakom slučaju ne previše (možda ćete uskratiti upite s očito lažnih IP adresa, poput RFC 1918 adresa). Ali možete ograničiti odgovore.

Dva dugogodišnja internetska "bijela šešira", Paul Vixie i Vernon Schryver, shvatili su da DDoS napadi koji koriste autoritativne poslužitelje imena za pojačanje pokazuju određene obrasce upita. Konkretno, napadači iznova iznova šalju poslužiteljima imena isti upit s iste lažne IP adrese (ili bloka adrese), tražeći maksimalno pojačanje. Nijedan dobro ponašan rekurzivni poslužitelj imena to ne bi učinio. Odgovor bi bio spremljen u keš memoriju i ne bi se ponovno tražio dok ne prođe vrijeme zaživljavanja zapisa u odgovoru.