Programiranje

Končni vodnik za preprečevanje napadov DDoS na osnovi DNS

Ko gre za DNS, je knjigo dobesedno napisal Cricket Liu. Je soavtor vseh petih izdaj O'Reillyjeve knjige "DNS in BIND", ki na splošno velja za dokončno vodilo o vseh stvareh, povezanih s sistemom domenskih imen. Cricket je trenutno glavni direktor infrastrukture pri Infobloxu.

DNS je očitno ključna komponenta računalniškega omrežja, vendar so včasih ta orodja mogoče uporabiti za zlorabe. V tem tedenskem forumu New Tech Cricket preučuje naraščajočo težavo napadov DDoS na osnovi DNS in kako z njimi ravnati. - Paul Venezia

DDoS-napadi na osnovi DNS: kako delujejo in kako jih ustaviti

DDoS (porazdeljeni napad na zavrnitev storitve), ki temelji na DNS, je postal eden najpogostejših uničujočih napadov na internetu. Kako pa delujejo? In kaj lahko storimo, da se jim branimo?

V tem članku bom opisal, kako DDoS napada tako izkoriščanje kot ciljanje infrastrukture DNS. Pokazal vam bom tudi, kako lahko zaščitite sebe in druge.

Velika prevara

Ustvarjanje napada DDoS z uporabo DNS infrastrukture je izjemno preprosto: napadalci pošiljajo poizvedbe imenskim strežnikom po internetu, ti imenski strežniki pa vrnejo odgovore. Namesto da bi poizvedbe pošiljali z lastnih naslovov IP, napadalci ponarejajo naslov svojega cilja - to je lahko spletni strežnik, usmerjevalnik, drug imenski strežnik ali skoraj katero koli vozlišče v internetu.

Prevara DNS poizvedb je še posebej enostavna, ker se navadno prenesejo prek UDP (brezvezni protokol uporabniškega datagrama). Pošiljanje poizvedbe DNS s poljubnega naslova IP je približno tako preprosto in ima približno enak učinek kot zapisovanje povratnega naslova nekoga drugega na razglednico.

Poizvedbe o ponarejanju niso dovolj za onesposobitev cilja. Če odzivi na ta poizvedbe niso bili večji od samih poizvedb, bi napadalec prav tako dobro zalil cilj s ponarejenimi poizvedbami. Ne, za čim večjo škodo na cilju mora vsaka poizvedba vrniti zelo velik odziv. Izkazalo se je, da je to zelo enostavno spodbuditi.

Od pojava EDNS0, nabora razširitev DNS, predstavljenega leta 1999, lahko sporočila DNS, ki temeljijo na UDP, prenašajo veliko podatkov. Odziv je lahko do 4.096 bajtov. Večina poizvedb pa je manjša od 100 bajtov.

Nekoč je bilo v imenskem prostoru interneta razmeroma težko najti tako velik odziv. Toda zdaj, ko so organizacije začele uvajati DNSSEC, razširitve varnosti DNS, je to veliko lažje. DNSSEC shrani kriptografske ključe in digitalne podpise v zapise v imenskem prostoru. To so pozitivno ogromno.

Primer odziva iz območja isc.org, ki vsebuje zapise DNSSEC, si lahko ogledate v mojem blogu. Velikost odgovora je 4.077 bajtov, v primerjavi s poizvedbo le 44 bajtov.

Zdaj napadalci slik iz interneta pošiljajo to ponarejeno poizvedbo z naslova IP vašega spletnega strežnika na imenske strežnike isc.org. Za vsako 44-bajtno poizvedbo vaš spletni strežnik prejme 4.077-bajtni odgovor, kar pomeni, da je faktor ojačanja skoraj 93-krat.

Na hitro opravimo izračun, da ugotovimo, kako slabo bi to lahko postalo. Recimo, da ima vsak napadalec razmeroma skromno povezavo do interneta s hitrostjo 1 Mb / s. Po tej povezavi lahko na sekundo pošlje približno 2.840 44-bajtnih poizvedb. Ta tok poizvedb bi povzročil, da bodo do vašega spletnega strežnika prišli odgovori v vrednosti skoraj 93 Mb / s. Vsakih 11 napadalcev predstavlja 1Gbps.

Kje bi asocialni napadalci našli 10 prijateljev, ki bi jim pomagali izvesti napad? Pravzaprav jih ne potrebujejo. Uporabili bodo botnet na tisoče računalnikov.

Končni učinek je uničujoč. V svojem četrtletnem globalnem poročilu o napadu DDoS je družba Prolexic (družba za ublažitev DDoS) poročala o nedavnem napadu na stranko, ki temelji na DNS, in je dosegel 167 Gbps. Prolexic je nadalje poročal, da se je povprečna pasovna širina napada DDoS povečala za 718 odstotkov na 48 Gbps v eni četrtini.

Ampak počakaj! Ali ni bilo mogoče imenskih strežnikov isc.org spremeniti tako, da prepoznajo, da jih vedno znova poizvedujejo za iste podatke z istega naslova IP? Ali niso mogli zadušiti napada?

Vsekakor lahko. Toda imenski strežniki isc.org niso edini, ki jih napadalec lahko uporabi za povečanje prometa. Seveda obstajajo tudi drugi avtoritativni imenski strežniki, ki bi jih napadalci lahko uporabili, še huje pa so odprti rekurzivni imenski strežniki.

Odprti rekurzivni imenski strežnik je preprosto imenski strežnik, ki bo obdelal rekurzivne poizvedbe iz katerega koli naslova IP. Lahko mu pošljem to poizvedbo za podatke isc.org in odgovoril mi bo, vi pa lahko storite enako.

V internetu ne bi smelo biti veliko odprtih rekurzivnih imenskih strežnikov. Funkcija rekurzivnega imenskega strežnika je iskanje podatkov v imenskem prostoru interneta v imenu odjemalcev DNS, na primer tistih na prenosnem računalniku ali pametnem telefonu. Omrežni skrbniki, ki vzpostavijo rekurzivne imenske strežnike (na primer vaš oddelek za IT), jih običajno namenijo določeni skupnosti (na primer vi in ​​vaši kolegi). Če ne uporabljajo storitev, kot sta OpenDNS ali Google Public DNS, jih ne mislijo uporabiti državljani Moldavije. Torej javno naravnani, varnostno naravnani in še posebej pristojni skrbniki konfigurirajo nadzor dostopa na svojih rekurzivnih imenskih strežnikih, da omejijo njihovo uporabo na pooblaščene sisteme.

Glede na to, kako velik problem bi lahko bil odpiranje rekurzivnih imenskih strežnikov? Precej velik. Projekt Open Resolver je zbral seznam 33 milijonov odprti rekurzivni imenski strežniki. Hekerji lahko sprožijo ponarejene poizvedbe na toliko njih, kolikor želijo brskati po podatkih isc.org v vašem spletnem strežniku, imenskem strežniku ali mejnem usmerjevalniku, dokler se ne zaduši.

Tako delujejo napadi DDoS na osnovi DNS. Na srečo imamo nekaj načinov za boj proti njim.

Kako preživeti nevihto

Prvo poslovno področje je opremljanje vaše DNS infrastrukture, tako da boste vedeli, kdaj ste napadnuti. Preveč organizacij nima pojma, kakšna je njihova poizvedba, zato nikoli ne bi vedeli, ali jih sploh napadajo.

Določitev obremenitve poizvedbe je lahko tako preprosta kot uporaba vgrajene podpore za statistiko BIND. Imenski strežnik BIND bo podatke izpisal v svojo statistično datoteko, ko zaženete statistiko rndc,na primer ali v nastavljivem statističnem intervalu. V statistiki lahko preučite hitrost poizvedb, napake vtičnic in druge znake napada. Ne skrbite, če še niste prepričani, kako bo napad videti - del cilja spremljanja DNS je vzpostaviti izhodišče, da boste lahko prepoznali, kaj je nenormalno.

Nato si oglejte svojo internetno infrastrukturo. Ne omejujte se na zunanje avtoritativne imenske strežnike; preglejte svojo infrastrukturo stikal in usmerjevalnikov, požarne zidove in povezave z internetom. Ugotovite posamezne točke okvare. Ugotovite, ali jih lahko enostavno (in stroškovno učinkovito) odpravite.

Če je mogoče, razmislite o široki geografski distribuciji vaših zunanjih avtoritativnih imenskih strežnikov. To seveda pomaga pri izogibanju posameznim točkam neuspeha, pomaga pa tudi, kadar niste na udaru. Rekurzivni imenski strežnik, ki razreši domensko ime v enem od vaših območij, bo poskušal poizvedovati po avtoritativnem imenskem strežniku, ki mu je najbližji, zato bo geografska distribucija svojim strankam in dopisnikom ponavadi zagotovila boljše delovanje. Če so vaše stranke zbrane v določenih geografskih območjih, poskusite blizu njih postaviti avtoritativni imenski strežnik, ki bo zagotovil najhitrejše odgovore.

Morda je najosnovnejši način za boj proti napadom DoS pretirano zagotavljanje vaše infrastrukture. Dobra novica je, da prevelika dobava imenskih strežnikov ni nujno draga; sposoben imenski strežnik lahko na sekundo obdela deset ali celo sto tisoč poizvedb. Niste prepričani, kakšna je zmogljivost vaših imenskih strežnikov? Za preizkušanje zmogljivosti imenskih strežnikov lahko uporabite orodja za poizvedbe, kot je dnsperf - po možnosti z uporabo preizkusne platforme, podobne produkcijskim imenskim strežnikom v laboratoriju, ne pa samih produkcijskih strežnikov.

Odločitev o tem, koliko pretiravate z imenskimi strežniki, je subjektivna: koliko je vredna vaša spletna prisotnost? Ali obstajajo druge komponente vaše internetne infrastrukture, ki ne bodo uspele pred imenskimi strežniki? Očitno je neumno trošiti denar za izgradnjo prvovrstne DNS infrastrukture za mejnim usmerjevalnikom ali požarnim zidom, ki bo propadel še preden se bodo vaši imenski strežniki sploh znojili.

Če denar ni predmet, bi bilo koristno vedeti, da lahko najsodobnejši napadi DDoS na infrastrukturo DNS presežejo 100Gbps.

Uporaba programa Anycast lahko pomaga tudi upreti se napadu DDoS. Anycast je tehnika, ki omogoča več strežnikom, da si delijo en sam naslov IP, in še posebej dobro deluje z DNS. Dejansko internetni korenski imenski strežniki že leta uporabljajo Anycast za zagotavljanje podatkov o korenskem območju po vsem svetu, hkrati pa še vedno omogočajo, da se seznam korenin prilega enemu sporočilu DNS na osnovi UDP.

Če želite namestiti Anycast, bodo morali gostitelji, ki podpirajo vaše imenske strežnike, zagnati protokol dinamičnega usmerjanja, kot sta OSPF ali BGP. Proces usmerjanja bo sosednjim usmerjevalnikom oglaševal pot do novega, navideznega naslova IP, na katerem posluša vaš imenski strežnik. Proces usmerjanja mora biti tudi dovolj pameten, da preneha oglaševati to pot, če se lokalni imenski strežnik preneha odzivati. Svojega usmerjevalnega demona lahko prilepite na zdravje svojega imenskega strežnika s kodo lastne izdelave - ali pa kupite izdelek, ki za vas poskrbi. Infobloxov NIOS nenaključno vključuje podporo Anycast.

Kako se Anycast brani pred napadi DDoS? No, recimo, da imate šest zunanjih imenskih strežnikov v dveh skupinah Anycast (torej trije delijo en naslov Anycast IP in trije delijo drugega). Vsaka skupina vsebuje enega člana v ZDA, enega v Evropi in enega v Aziji. Gostitelj, ki izvaja DDoS-napad proti vam, lahko pošlje promet samo enemu članu katere koli skupine in s tem tudi napadu - s katere koli točke v internetu hkrati. Če napadalci ne bodo istočasno dobili dovolj prometa iz Severne Amerike, Evrope in Azije, da bi zmotili vašo infrastrukturo, jim ne bo uspelo.

Končno obstaja način, kako lahko hkrati izkoristite široko geografsko distribucijo in Anycast, ne da bi pri tem imeli pomembne izdatke za kapital: uporabite ponudnika DNS v oblaku. Podjetji, kot sta Dyn in Neustar, v podatkovnih centrih po vsem svetu vodita lastne imenske strežnike Anycast. Plačate jim za gostovanje vaših con in odgovarjanje na poizvedbe za vaše podatke. Lahko pa še naprej vzdržujete neposreden nadzor nad podatki o conah, tako da ponudnika prosite, naj svoje imenske strežnike konfigurira kot sekundarne za vaše cone, pri čemer naloži podatke iz glavnega imenskega strežnika, ki ste ga določili, in ga upravljate v hiši. Prepričajte se, da ste zagnali glavno datoteko skrito (to pomeni, da nanjo ne kaže nobenega zapisa NS) ali pa tvegate, da jo bo napadalec ciljal kot eno samo točko okvare.

Ena previdnost pri uporabi ponudnikov DNS v oblaku: večina vam vsaj deloma zaračuna glede na število poizvedb, ki jih njihovi imenski strežniki prejmejo za podatke v vaših conah. V napadu DDoS se lahko te poizvedbe dramatično povečajo (popolnoma zunaj vašega nadzora in sploh ne v vašo korist), zato poskrbite, da bodo imeli možnost obravnave napadov DDoS, ne da bi na vas prenašali stroške prometa.

Kako se izogniti sodelovanju pri napadih DDoS

Zdaj veste, kako konfigurirati svojo DNS infrastrukturo, da se upre napadu DDoS. Skoraj enako pomembno pa je zagotoviti, da niste vpleteni v DDoS napad na nekoga drugega.

Se spomnite opisa, kako lahko strežniki DNS povečajo promet? Napadalci lahko kot ojačevalnike uporabljajo tako odprte rekurzivne imenske strežnike kot tudi verodostojne imenske strežnike, ki pošiljajo lažne poizvedbe, zaradi katerih imenski strežniki pošljejo odgovore več kot 100-krat večje od poizvedbe poljubnim ciljem v internetu. Zdaj seveda ne želite biti tarča takšnega napada, pa tudi ne želite biti sokrivec. Napad uporablja vire vaših imenskih strežnikov in pasovno širino. Če cilj sprejme ukrepe za blokiranje prometa z vašega imenskega strežnika v njegovo omrežje, potem po koncu napada cilj morda ne bo mogel razrešiti domenskih imen v vaših conah.

Če zaženete odprti rekurzivni imenski strežnik, je rešitev preprosta: ne. Zelo malo je organizacij, ki upravičujejo izvajanje imenskega strežnika, odprtega za rekurzivne poizvedbe. Google Public DNS in OpenDNS sta dva, ki mi prideta na misel, toda če berete to, mislim, da jih verjetno niste. Ostali bi morali uporabiti nadzor dostopa do naših rekurzivnih imenskih strežnikov, da se prepričamo, da jih uporabljajo samo pooblaščeni poizvedovalci. To verjetno pomeni omejitev poizvedb DNS na naslove IP v naših notranjih omrežjih, kar je enostavno narediti na kateri koli izvedbi imenskega strežnika, ki je vredna soli. (Microsoftov strežnik DNS ne podpira nadzora dostopa na podlagi naslovov IP na poizvedbah. V tem preberite, kaj želite.)

Kaj pa, če zaženete avtoritativni imenski strežnik? Očitno ne morete omejiti naslovov IP, s katerih boste sprejemali poizvedbe - vseeno ne preveč (poizvedbe lahko zavrnete z očitno lažnih naslovov IP, kot so naslovi RFC 1918). Lahko pa omejite odzive.

Dva dolgoletna internetna "bela klobuka", Paul Vixie in Vernon Schryver, sta ugotovila, da napadi DDoS, ki uporabljajo avtoritativne imenske strežnike za ojačanje, kažejo določene vzorce poizvedb. Zlasti napadalci znova in znova pošiljajo imenske strežnike z istega lažnega naslova IP (ali bloka naslovov) in iščejo največjo ojačitev. Noben lepo obnašan rekurzivni imenski strežnik tega ne bi storil. Odgovor bi shranil v predpomnilnik in ga ne bi več vprašal, dokler ne preteče čas zapisov v odgovoru.

$config[zx-auto] not found$config[zx-overlay] not found