Kun kyse on DNS:stä, Cricket Liu on kirjaimellisesti kirjoittanut kirjan. Hän on ollut mukana kirjoittamassa kaikkia viittä painosta O’Reillyn ”DNS and BIND” -kirjasta, jota pidetään yleisesti lopullisena oppaana kaikesta verkkotunnusjärjestelmään liittyvästä. Cricket on tällä hetkellä Infobloxin infrastruktuuripäällikkö.
DNS on selvästi kriittinen osa tietokoneverkkoja, mutta toisinaan näitä työkaluja voidaan käyttää myös väärinkäytöksiin. Tämän viikon New Tech Forum -ohjelmassa Cricket tarkastelee DNS-pohjaisten DDoS-hyökkäysten kasvavaa ongelmaa ja sitä, miten niitä voidaan torjua. — Paul Venezia
DNS-pohjaiset DDoS-hyökkäykset: Miten ne toimivat ja miten ne pysäytetään
DNS-pohjaisesta DDoS-hyökkäyksestä (distributed denial-of-service attack) on tullut yksi yleisimmistä tuhoisista hyökkäyksistä Internetissä. Mutta miten ne toimivat? Ja mitä voimme tehdä puolustaaksemme niitä vastaan?
Tässä artikkelissa kuvailen, miten DDoS-hyökkäykset sekä hyödyntävät DNS-infrastruktuuria että kohdistuvat siihen. Näytän myös, mitä voit tehdä suojellaksesi itseäsi ja muita.
Suuri huijaus
DDoS-hyökkäyksen luominen DNS-infrastruktuuria käyttäen on huomattavan yksinkertaista: Hyökkääjät lähettävät kyselyjä nimipalvelimille eri puolilla Internetiä, ja nämä nimipalvelimet palauttavat vastauksia. Sen sijaan, että hyökkääjät lähettäisivät kyselyt omista IP-osoitteistaan, he väärentävät kohteensa osoitteen, joka voi olla web-palvelin, reititin, toinen nimipalvelin tai lähes mikä tahansa solmu Internetissä.
DNS-kyselyjen väärentäminen on erityisen helppoa, koska ne siirretään tavallisesti UDP:n (yhteydetön User Datagram Protocol) kautta. DNS-kyselyn lähettäminen mielivaltaisesta IP-osoitteesta on suunnilleen yhtä yksinkertaista ja sillä on suunnilleen sama vaikutus kuin jonkun toisen henkilön paluuosoitteen kirjoittamisella postikorttiin.
Kyselyjen väärentäminen ei kuitenkaan riitä tekemään kohdetta toimintakyvyttömäksi. Jos vastaukset näihin kyselyihin eivät olisi suurempia kuin itse kyselyt, hyökkääjä tekisi aivan yhtä hyvin tulvimalla kohteen väärennetyillä kyselyillä. Kohteelle aiheutuvan vahingon maksimoimiseksi jokaisen kyselyn pitäisi palauttaa hyvin suuri vastaus. Kävi ilmi, että se on hyvin helppo aloittaa.
Sitten kun EDNS0, joukko DNS:n laajennuksia, otettiin käyttöön vuonna 1999, UDP-pohjaiset DNS-viestit ovat pystyneet kuljettamaan paljon dataa. Vastaus voi olla jopa 4 096 tavua. Useimmat kyselyt sen sijaan ovat alle 100 tavun pituisia.
Aikanaan Internetin nimiavaruudesta oli suhteellisen vaikea löytää näin suurta vastausta. Mutta nyt kun organisaatiot ovat alkaneet ottaa käyttöön DNSSEC:n eli DNS Security Extensionsin, se on paljon helpompaa. DNSSEC tallentaa salausavaimet ja digitaaliset allekirjoitukset nimiavaruuden tietueisiin. Nämä ovat suorastaan valtavia.
Blogissani on esimerkki isc.org-vyöhykkeen vastauksesta, joka sisältää DNSSEC-tietueita. Vastauksen koko on 4 077 tavua, kun taas kysely on vain 44 tavua.
Kuvittele nyt, että hyökkääjät eri puolilta Internetiä lähettävät tuon väärennetyn kyselyn verkkopalvelimesi IP-osoitteesta isc.org-nimipalvelimille. Jokaista 44 tavun kyselyä kohden Web-palvelimesi saa 4 077 tavun vastauksen, eli vahvistuskerroin on lähes 93-kertainen.
Tehdäänpä nopea laskelma, jotta saadaan selville, kuinka pahaksi tämä voi muuttua. Oletetaan, että jokaisella hyökkääjällä on suhteellisen vaatimaton 1 Mbps:n yhteys Internetiin. Hän voi lähettää noin 2840 44 tavun kyselyä tuon yhteyden yli sekunnissa. Tämä kyselyvirta johtaisi siihen, että Web-palvelimelle saapuisi lähes 93 Mbps:n verran vastauksia. Joka 11 hyökkääjää edustaa 1 Gbps.
Mistä epäsosiaaliset hyökkääjät löytäisivät 10 ystävää auttamaan heitä hyökkäyksen toteuttamisessa? Itse asiassa he eivät tarvitse yhtään. He käyttävät tuhansien tietokoneiden muodostamaa bottiverkkoa.
Lopputulos on tuhoisa. Neljännesvuosittain julkaistavassa maailmanlaajuisessa DDoS-hyökkäysraportissaan Prolexic (DDoS-hyökkäysten torjuntayritys) raportoi äskettäisestä DNS-pohjaisesta hyökkäyksestä erästä asiakasta vastaan, joka ylitti 167 Gbps:n nopeuden. Prolexic raportoi lisäksi, että keskimääräinen DDoS-hyökkäyksen kaistanleveys kasvoi 718 prosenttia 48 Gbps:iin yhden vuosineljänneksen aikana.
Mutta odota! Eikö isc.org-nimipalvelimia voisi muuttaa niin, että ne tunnistaisivat, että niiltä kysytään yhä uudelleen samoja tietoja samasta IP-osoitteesta? Eivätkö ne voisi tukahduttaa hyökkäystä?
Varmasti voivat. Mutta isc.org-nimipalvelimet eivät ole ainoat, joita hyökkääjä voi käyttää vahvistamaan liikennettään. Toki on muitakin arvovaltaisia nimipalvelimia, joita hyökkääjä voisi käyttää, mutta vielä pahempia ovat avoimet rekursiiviset nimipalvelimet.
Avoinna oleva rekursiivinen nimipalvelin on yksinkertaisesti nimipalvelin, joka käsittelee rekursiivisia kyselyitä mistä tahansa IP-osoitteesta. Voin lähettää sille kyselyn isc.org-tiedoista, ja se vastaa minulle, ja sinä voit tehdä samoin.
Internetissä ei pitäisi olla monia avoimia rekursiivisia nimipalvelimia. Rekursiivisen nimipalvelimen tehtävänä on etsiä tietoja Internetin nimiavaruudesta DNS-asiakkaiden, kuten kannettavan tietokoneen tai älypuhelimen, puolesta. Rekursiivisia nimipalvelimia asentavat verkon ylläpitäjät (kuten IT-osastosi) suunnittelevat ne yleensä tietyn yhteisön (esimerkiksi sinun ja muiden työntekijöiden) käyttöön. Elleivät he käytä OpenDNS:n tai Googlen julkisen DNS:n kaltaisia palveluja, he eivät tarkoita, että Moldovan kansalaiset käyttäisivät niitä. Niinpä yleishenkiset, turvallisuushenkiset ja ennen kaikkea pätevät ylläpitäjät konfiguroivat rekursiivisiin nimipalvelimiinsa pääsynvalvontaa rajoittaakseen niiden käytön valtuutettuihin järjestelmiin.
Kuinkahan suuri ongelma avoimet rekursiiviset nimipalvelimet voivat tämän huomioon ottaen olla? Melko suuri. Open Resolver Project on kerännyt luettelon 33 miljoonasta avoimesta rekursiivisesta nimipalvelimesta. Hakkerit voivat ampua väärennettyjä kyselyjä niin monelle näistä kuin haluavat ja syöksiä isc.org-dataa web-palvelimelle, nimipalvelimelle tai rajareitittimelle, kunnes se tukehtuu.
Näin DNS-pohjaiset DDoS-hyökkäykset toimivat. Onneksi meillä on muutamia tapoja torjua niitä.
Näin selviät myrskystä
Ensimmäisenä on DNS-infrastruktuurin instrumentointi, jotta tiedät, milloin olet hyökkäyksen kohteena. Liian monella organisaatiolla ei ole aavistustakaan kyselykuormituksestaan, joten ne eivät koskaan saisi tietää, jos niitä vastaan hyökättäisiin.
Kyselykuormituksen määrittäminen voi olla yhtä yksinkertaista kuin BINDin sisäänrakennetun tilastotuen käyttäminen. BIND-nimipalvelin dumppaa tiedot tilastotiedostoonsa, kun suoritat esimerkiksi rndc stats -ohjelman tai määritettävissä olevalla tilastovälillä. Voit tutkia tilastoista kyselynopeutta, socket-virheitä ja muita merkkejä hyökkäyksestä. Älä huoli, jos et ole vielä varma, miltä hyökkäys näyttää — osa DNS:n seurannan tavoitteesta on luoda perustaso, jotta voit tunnistaa, mikä on epänormaalia.
Katsele seuraavaksi Internetiin päin olevaa infrastruktuuria. Älä rajoitu ulkoisiin auktoritatiivisiin nimipalvelimiin, vaan tutki kytkin- ja reititininfrastruktuurisi, palomuurisi ja yhteytesi Internetiin. Tunnista kaikki yksittäiset vikapisteet. Selvitä, voitko poistaa ne helposti (ja kustannustehokkaasti).
Jos mahdollista, harkitse ulkoisten auktoriteettinimipalvelimien laajaa maantieteellistä jakautumista. Tämä auttaa tietysti välttämään yksittäisiä vikapisteitä, mutta se auttaa myös silloin, kun kimppuusi ei hyökätä. Rekursiivinen nimipalvelin, joka ratkaisee verkkotunnuksen jollakin vyöhykkeelläsi, yrittää kysyä sitä lähimpänä olevalta auktoritatiiviselta nimipalvelimelta, joten maantieteellinen jakauma tarjoaa yleensä paremman suorituskyvyn asiakkaille ja kirjeenvaihtajille. Jos asiakkaasi ovat keskittyneet tietyille maantieteellisille alueille, yritä sijoittaa arvovaltainen nimipalvelin lähelle heitä, jotta vastaukset olisivat mahdollisimman nopeita.
Perusteellisin tapa torjua DoS-hyökkäyksiä on ehkä ylisuurten resurssien varaaminen infrastruktuuriin. Hyvä uutinen on se, että nimipalvelimien ylitarjonta ei välttämättä ole kallista; kyvykäs nimipalvelin voi käsitellä kymmeniä tai jopa satoja tuhansia kyselyjä sekunnissa. Etkö ole varma nimipalvelimesi kapasiteetista? Voit testata nimipalvelimesi suorituskyvyn kyselytyökalujen, kuten dnsperfin, avulla – mieluiten käyttämällä tuotantonimipalvelimesi kaltaista testialustaa laboratoriossa eikä itse tuotantopalvelimia.
Nimipalvelimesi ylitarjontaa koskevan päätöksen tekeminen on subjektiivista: Minkä arvoinen on verkkoläsnäolosi? Onko internetiin suuntautuvassa infrastruktuurissasi muita komponentteja, jotka vikaantuvat ennen nimipalvelimia? On luonnollisesti uhkarohkeaa käyttää rahaa ensiluokkaisen DNS-infrastruktuurin rakentamiseen rajareitittimen tai palomuurin taakse, joka pettää paljon ennen kuin nimipalvelimesi edes hikoilevat.
Jos raha ei ole ongelma, voi olla hyödyllistä tietää, että DNS-infrastruktuuriin kohdistuvat DDoS-hyökkäykset voivat ylittää 100 Gbps:n nopeuden.
Anycastin käyttäminen voi myös auttaa DDoS-hyökkäyksen vastustamisessa. Anycast on tekniikka, jonka avulla useat palvelimet voivat jakaa yhden IP-osoitteen, ja se toimii erityisen hyvin DNS:n kanssa. Itse asiassa Internetin juurinimipalvelimet ovat käyttäneet Anycastia jo vuosien ajan tarjotakseen juurivyöhyketietoja ympäri maailmaa, mutta samalla juuriluettelo mahtuu yhteen UDP-pohjaiseen DNS-viestiin.
Anycastin käyttöönottamiseksi nimipalvelimia tukevien isäntien on käytettävä dynaamista reititysprotokollaa, kuten OSPF:ää tai BGP:tä. Reititysprosessi mainostaa naapurireitittimille reitin uuteen, virtuaaliseen IP-osoitteeseen, jossa nimipalvelimesi kuuntelee. Reititysprosessin on myös oltava niin älykäs, että se lopettaa tämän reitin mainostamisen, jos paikallinen nimipalvelin lakkaa vastaamasta. Voit liittää reititysdemonisi nimipalvelimesi kuntoon itse rakentamallasi koodilla – tai voit ostaa tuotteen, joka huolehtii siitä puolestasi. Infobloxin NIOS, ei sattumalta, sisältää Anycast-tuen.
Miten Anycast suojautuu DDoS-hyökkäyksiltä? Oletetaan, että sinulla on kuusi ulkoista nimipalvelinta kahdessa Anycast-ryhmässä (eli kolme jakaa yhden Anycast-IP-osoitteen ja kolme toisen). Kussakin ryhmässä on yksi jäsen Yhdysvalloissa, yksi Euroopassa ja yksi Aasiassa. Isäntä, joka tekee DDoS-hyökkäyksen sinua vastaan, voi lähettää liikennettä – ja siten hyökätä – vain yhdelle kumman tahansa ryhmän jäsenelle mistä tahansa Internetin pisteestä kerrallaan. Elleivät hyökkääjät pysty hankkimaan Pohjois-Amerikasta, Euroopasta ja Aasiasta samanaikaisesti niin paljon liikennettä, että infrastruktuurisi täyttyy, he eivät onnistu.
Loppujen lopuksi on olemassa keino, jolla voit hyödyntää laajaa maantieteellistä jakaumaa ja Anycastia samaan aikaan ilman merkittäviä pääomamenoja: Käytä pilvipohjaista DNS-palveluntarjoajaa. Dynin ja Neustarin kaltaiset yritykset ylläpitävät omia Anycast-nimipalvelimia datakeskuksissa ympäri maailmaa. Maksat niille siitä, että ne isännöivät vyöhykkeitäsi ja vastaavat tietojasi koskeviin kyselyihin. Voit jatkaa vyöhyketietojesi suoraa hallintaa pyytämällä palveluntarjoajaa määrittämään nimipalvelimensa vyöhykkeidesi toissijaisiksi palvelimiksi ja lataamaan tiedot itse määrittelemältäsi ja hallinnoimaltasi päänimipalvelimelta. Varmista vain, että käytät pääpalvelinta piilotettuna (eli ilman siihen osoittavaa NS-tietuetta), tai vaarana on, että hyökkääjä ottaa sen kohteekseen yksittäisenä vikapisteenä.
Yksi varoituksen sana pilvipohjaisia DNS-palveluntarjoajia käytettäessä: Useimmat laskuttavat sinua ainakin osittain sen perusteella, kuinka monta kyselyä niiden nimipalvelimet saavat vyöhykkeidesi tiedoista. DDoS-hyökkäyksessä nämä kyselyt saattavat lisääntyä dramaattisesti (mikä ei ole täysin hallinnassasi eikä lainkaan hyödytä sinua), joten varmista, että palveluntarjoajilla on varautuminen DDoS-hyökkäysten käsittelyyn siirtämättä liikenteestä aiheutuvia kustannuksia sinun maksettavaksesi.
Näin vältät joutumasta DDoS-hyökkäysten rikoskumppaniksi
Nyt tiedät, miten DNS-infrastruktuurisi konfiguroidaan DDoS-hyökkäyksen vastustamista varten. Lähes yhtä tärkeää on kuitenkin varmistaa, ettet ole osallisena DDoS-hyökkäyksessä jotakuta toista vastaan.
Muistatko kuvauksen siitä, miten DNS-palvelimet voivat vahvistaa liikennettä? Hyökkääjät voivat käyttää sekä avoimia rekursiivisia nimipalvelimia että arvovaltaisia nimipalvelimia vahvistimina lähettämällä väärennettyjä kyselyjä, jotka saavat nimipalvelimet lähettämään yli 100 kertaa kyselyä suurempia vastauksia mielivaltaisiin kohteisiin Internetissä. Et tietenkään halua joutua tällaisen hyökkäyksen kohteeksi, mutta et myöskään halua olla avunantaja. Hyökkäys käyttää nimipalvelimesi resursseja sekä kaistanleveyttäsi. Jos kohde ryhtyy toimenpiteisiin estääkseen nimipalvelimeltasi verkkoonsa tulevan liikenteen, hyökkäyksen päätyttyä kohde ei ehkä pysty ratkaisemaan verkkotunnuksia vyöhykkeilläsi.
Jos käytät avointa rekursiivista nimipalvelinta, ratkaisu on yksinkertainen: Älä tee sitä. On hyvin harvoja organisaatioita, joilla on mitään perusteita käyttää rekursiivisille kyselyille avointa nimipalvelinta. Google Public DNS ja OpenDNS tulevat mieleen, mutta jos luet tätä, et varmaankaan ole niitä. Muiden meistä pitäisi käyttää rekursiivisiin nimipalvelimiin pääsynvalvontaa varmistaakseen, että vain valtuutetut kyselijät käyttävät niitä. Tämä tarkoittaa luultavasti DNS-kyselyjen rajoittamista sisäverkoissamme oleviin IP-osoitteisiin, mikä on helppo tehdä missä tahansa nimipalvelintoteutuksessa, joka on sen arvoinen. (Microsoftin DNS-palvelin ei tue IP-osoitteisiin perustuvia kyselyjen pääsynvalvontoja.) Lue siitä mitä haluat.)
Mutta entä jos käytät auktoritatiivista nimipalvelinta? Et tietenkään voi rajoittaa IP-osoitteita, joista otat kyselyitä vastaan — tai et ainakaan kovin paljon (saatat kieltää kyselyt ilmeisen vääristä IP-osoitteista, kuten RFC 1918 -osoitteista). Mutta vastauksia voi rajoittaa.
Kaksi pitkäaikaista internetin ”valkoista hattua”, Paul Vixie ja Vernon Schryver, huomasivat, että DDoS-hyökkäyksissä, joissa käytetään auktoritatiivisia nimipalvelimia vahvistamiseen, on tiettyjä kyselymalleja. Hyökkääjät lähettävät nimipalvelimille saman kyselyn samasta väärennetystä IP-osoitteesta (tai osoitelohkosta) yhä uudestaan ja uudestaan hakien maksimaalista vahvistusta. Mikään hyvin käyttäytyvä rekursiivinen nimipalvelin ei tekisi niin. Se olisi tallentanut vastauksen välimuistiin eikä kysyisi uudelleen ennen kuin vastauksessa olevien tietueiden elinaika on kulunut.
Vixie ja Schryver keksivät nokkelan mekanismin nimeltä Response Rate Limiting (RRL), jonka avulla arvovaltainen nimipalvelin voi seurata, kuinka usein se on lähettänyt saman vastauksen samalle kysyjälle. Jos tämä määrä ylittää jonkin määritettävissä olevan raja-arvon, nimipalvelin lopettaa kyseisen vastauksen lähettämisen kysyjälle tietyksi ajaksi. Jos kysyjä lopettaa saman kysymyksen esittämisen auktoritatiiviselle nimipalvelimelle, auktoritatiivinen nimipalvelin lopettaa kyseisen vastauksen lähettämisen. Lopputuloksena on, että auktoritatiivinen nimipalvelin ei koskaan lähetä vastausta kysyjälle kynnysarvoa suuremmalla nopeudella, mikä tekee siitä hyödyttömän DDoS-hyökkäyksessä.
RRL sisällytettiin BIND-nimipalvelimiin versiossa 9.9.4, ja muutamat muut nimipalvelintoteutukset tukevat sitä nykyään, kuten NSD ja Knot. Kun ihmiset päivittävät nimipalvelimensa uusiin versioihin tai uusiin RRL:ää tukeviin toteutuksiin, tämän pitäisi vähitellen vaikeuttaa hyökkääjien mahdollisuuksia käyttää DNS-infrastruktuuria vahvistimena.
Toivottavasti tämä keskustelu on auttanut sinua ymmärtämään, miten DNS-infrastruktuuria kohdistetaan ja hyödynnetään DDoS-hyökkäyksissä ja miten voit parhaiten vastustaa DDoS-hyökkäyksiä ja varmistaa, etteivät nimipalvelimesi osallistu niihin tietämättäsi.
Uusi tekniikkafoorumi tarjoaa keinon tutustua kehittyvään yritystekniikkaan ja käydä siitä keskustelua ennennäkemättömän syvällisesti ja laajasti. Valinta on subjektiivinen ja perustuu valitsemaamme teknologiaan, jonka uskomme olevan tärkeää ja InfoWorldin lukijoita eniten kiinnostavaa. InfoWorld ei hyväksy markkinointimateriaalia julkaistavaksi ja pidättää itsellään oikeuden muokata kaikkea toimitettua sisältöä. Lähetä kaikki tiedustelut osoitteeseen [email protected].
Tämä artikkeli, ”The ultimate guide to preventing DNS-based DDoS attacks,” julkaistiin alun perin osoitteessa InfoWorld.com. Uusimmat yritysteknologiauutiset saat seuraamalla InfoWorld.comia Twitterissä.