Ohjelmointi

Lopullinen opas DNS-pohjaisten DDoS-hyökkäysten estämiseen

Kun on kyse DNS: stä, Cricket Liu kirjoitti kirjaimellisesti kirjan. Hän on kirjoittanut kaikki viisi julkaisua O'Reillyn "DNS and BIND" -kirjasta, jota pidetään yleensä lopullisena oppaana kaikista verkkotunnusjärjestelmään liittyvistä asioista. Cricket on tällä hetkellä Infobloxin infrastruktuurin päällikkö.

DNS on selvästi kriittinen osa tietokoneverkkoa, mutta on aikoja, jolloin näitä työkaluja voidaan käyttää väärinkäytöksissä. Tämän viikon New Tech -foorumissa Cricket tarkastelee DNS-pohjaisten DDoS-hyökkäysten kasvavaa ongelmaa ja niiden käsittelyä. - Paul Venezia

DNS-pohjaiset DDoS-hyökkäykset: Kuinka ne toimivat ja miten ne voidaan estää

DNS-pohjaisesta DDoS: stä (hajautettu palvelunestohyökkäys) on tullut yksi yleisimmistä tuhoisista hyökkäyksistä Internetissä. Mutta miten ne toimivat? Ja mitä voimme tehdä puolustautua heitä vastaan?

Tässä artikkelissa kuvaan kuinka DDoS hyökkää sekä hyödyntämään että kohdentamaan DNS-infrastruktuuria. Näytän myös sinulle, mitä voit tehdä suojellaksesi itseäsi ja muita.

Iso huijaus

DDoS-hyökkäyksen luominen DNS-infrastruktuurin avulla on huomattavan yksinkertaista: Hyökkääjät lähettävät kyselyitä nimipalvelimille Internetissä, ja nämä nimipalvelimet palauttavat vastauksia. Sen sijaan, että hyökkääjät lähettävät kyselyitä omilta IP-osoitteiltaan, he väärentävät kohteensa osoitetta - joka voi olla Web-palvelin, reititin, toinen nimipalvelin tai melkein mikä tahansa Internetin solmu.

DNS-kyselyjen väärentäminen on erityisen helppoa, koska ne siirretään yleensä 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 palautusosoitteen kirjoittamisella postikortille.

Kyselyjen huijaaminen ei kuitenkaan riitä kohteen kyvyttömyyteen. Jos vastaukset näihin kyselyihin eivät olleet suurempia kuin itse kyselyt, hyökkääjä tekisi yhtä hyvin tulvan kohteeseen väärennetyillä kyselyillä. Ei, tavoitteen aiheuttamien vahinkojen maksimoimiseksi jokaisen kyselyn tulisi palauttaa erittäin suuri vastaus. On käynyt ilmi, että se on erittäin helppo käynnistää.

EDNS0: n käyttöönoton jälkeen, DNS: n laajennussarja, joka otettiin käyttöön vuonna 1999, UDP-pohjaiset DNS-viestit ovat voineet kuljettaa paljon tietoja. Vastaus voi olla jopa 4096 tavua. Suurin osa kyselyistä on sen sijaan alle 100 tavua.

Aikaisemmin oli suhteellisen vaikeaa löytää niin suurta vastausta Internetin nimiavaruudesta. Mutta nyt kun organisaatiot ovat aloittaneet DNSSEC: n, DNS-suojauslaajennusten, käyttöönoton, se on paljon helpompaa. DNSSEC tallentaa salausavaimet ja digitaaliset allekirjoitukset nimiavaruuden tietueisiin. Nämä ovat myönteisiä valtava.

Näet esimerkin vastauksesta isc.org-vyöhykkeeltä, joka sisältää DNSSEC-tietueet blogissani. Vastauksen koko on 4077 tavua verrattuna vain 44 tavun kyselyyn.

Nyt kuvahyökkääjät ympäri Internetiä lähettävät väärennetyn kyselyn Web-palvelimesi IP-osoitteesta isc.org-nimipalvelimille. Web-palvelimesi saa jokaisesta 44 tavun kyselystä 4077 tavun vastauksen lähes 93-kertaiselle vahvistuskertoimelle.

Tehdään nopea laskelma selvittääkseen kuinka huono tämä voi olla. Oletetaan, että jokaisella hyökkääjällä on suhteellisen vaatimaton 1Mbps-yhteys Internetiin. Hän voi lähettää noin 2840 44-tavun kyselyä kyseisen linkin kautta sekunnissa. Tämän kyselyvirran seurauksena vastauksesi saataisiin lähes 93 Mbps: n verran Web-palvelimellesi. Jokainen 11 hyökkääjää edustaa 1Gbps.

Mistä epäsosiaaliset hyökkääjät löytävät 10 kaveria auttamaan heitä hyökkäyksen tekemisessä? Oikeastaan ​​he eivät tarvitse mitään. He käyttävät tuhansien tietokoneiden botnet-verkkoa.

Lopullinen vaikutus on tuhoisa. Neljännesvuosittaisessa globaalissa DDoS-hyökkäysraportissa Prolexic (DDoS-lieventävä yritys) ilmoitti äskettäisestä DNS-pohjaisesta hyökkäyksestä asiakasta vastaan, joka ylitti 167 Gbps: n. Prolexic ilmoitti lisäksi, että DDoS-hyökkäyksen keskimääräinen kaistanleveys kasvoi 718 prosenttia 48 Gbps: iin yhden vuosineljänneksen aikana.

Mutta odota! Eikö isc.org-nimipalvelimia voida muokata tunnistamaan, että niitä kysytään yhä uudelleen samoista tiedoista samasta IP-osoitteesta? Eivätkö he voineet tukahduttaa hyökkäystä?

He varmasti voivat. Mutta isc.org-nimipalvelimet eivät ole ainoat, joita hyökkääjä voi käyttää liikenteensa vahvistamiseen. Toki, hyökkääjä voi käyttää muita arvovaltaisia ​​nimipalvelimia, mutta vielä pahempaa ovat avoimet rekursiiviset nimipalvelimet.

Avoin rekursiivinen nimipalvelin on yksinkertaisesti nimipalvelin, joka käsittelee rekursiivisia kyselyitä mistä tahansa IP-osoitteesta. Voin lähettää sille kyselyn isc.org-tiedoille, ja se vastaa minulle, ja voit tehdä saman.

Internetissä ei pitäisi olla paljon avoimia rekursiivisia nimipalvelimia. Rekursiivisen nimipalvelimen tehtävänä on etsiä tietoja Internetin nimiavaruudesta DNS-asiakkaiden puolesta, kuten kannettavan tietokoneen tai älypuhelimen tiedot. Rekursiivisten nimipalvelimien (kuten IT-osaston) perustaneet verkonvalvojat aikovat yleensä käyttää niitä tietyssä yhteisössä (esimerkiksi sinä ja työtoverisi). Elleivät he ylläpidä palveluja, kuten OpenDNS tai Google Public DNS, he eivät tarkoita, että Moldovan kansalaiset käyttävät niitä. Joten julkinen, turvallisuusmielinen ja etenkin pätevä järjestelmänvalvojat määrittävät rekursiivisten nimipalvelimiensa käyttöoikeudet rajoittamaan niiden käyttöä valtuutettuihin järjestelmiin.

Kuinka suuri ongelma rekursiivisten nimipalvelimien avaaminen voi olla? Aika iso. Open Resolver Project on kerännyt luettelon 33 miljoonaa avaa rekursiiviset nimipalvelimet. Hakkerit voivat lähettää väärennettyjä kyselyjä niin monelle näistä kuin he haluavat spewata isc.org-tietoja Web-palvelimellasi, nimipalvelimellasi tai reunareitittimellä, kunnes ne tukehtuvat.

Näin DNS-pohjaiset DDoS-hyökkäykset toimivat. Onneksi meillä on muutama tapa torjua heitä.

Kuinka sää myrskyssä

Ensimmäinen käsittelyjärjestys on instrumentointi DNS-infrastruktuurillesi, joten tiedät, kun olet hyökkäyksen kohteena. Liian monilla organisaatioilla ei ole aavistustakaan, mikä heidän kyselykuormituksensa on, joten he eivät koskaan tiedä, hyökätäänkö heidät ensiksi.

Kyselykuormituksen määrittäminen voi olla yhtä yksinkertaista kuin BIND: n sisäänrakennetun tilastotuen käyttäminen. BIND-nimipalvelin tyhjentää tiedot tilastotiedostoonsa, kun suoritat rndc-tilastot,esimerkiksi tai määritettävällä tilastovälillä. Voit tutkia kyselytiheyden, pistorasian virheiden ja muiden hyökkäyksen merkkien tilastot. Älä huoli, jos et ole vielä varma, miltä hyökkäys näyttää vielä - osa DNS-valvonnan tavoitetta on perustason perustaminen, jotta voit tunnistaa epänormaalit.

Seuraavaksi tutustu Internetiin päin olevaan infrastruktuuriin. Älä rajoita itseäsi ulkoisiin valtuutettuihin nimipalvelimiin; tutkia kytkin- ja reitittimen infrastruktuuria, palomuureja ja Internet-yhteyksiä. Tunnista mahdolliset yksittäiset vikapisteet. Selvitä, voitko poistaa ne helposti (ja kustannustehokkaasti).

Jos mahdollista, harkitse ulkoisten arvovaltaisten nimipalvelimiesi laajaa maantieteellistä jakaumaa. Tämä auttaa tietysti välttämään yksittäisiä epäonnistumispisteitä, mutta se auttaa myös silloin, kun et ole hyökkäyksen kohteena. Rekursiivinen nimipalvelin, joka ratkaisee verkkotunnuksen jossakin vyöhykkeessäsi, yrittää kysellä sitä lähinnä olevaa arvovaltaista nimipalvelinta, joten maantieteellinen jakelu pyrkii tarjoamaan paremman suorituskyvyn asiakkaillesi ja kirjeenvaihtajillesi. Jos asiakkaasi on ryhmitelty tietyille maantieteellisille alueille, yritä sijoittaa arvovaltainen nimipalvelin heidän lähelleen tarjoamaan nopeimmat vastaukset.

Ehkä kaikkein yksinkertaisin tapa torjua DoS-hyökkäyksiä on ylikuormittaa infrastruktuuria. Hyvä uutinen on, että nimipalvelimien ylikuumeneminen ei välttämättä ole kallista; kykenevä nimipalvelin pystyy käsittelemään kymmeniä tai jopa satoja tuhansia kyselyjä sekunnissa. Etkö ole varma, mikä nimipalvelimesi kapasiteetti on? Voit käyttää kyselytyökaluja, kuten dnsperf, nimipalvelimiesi suorituskyvyn testaamiseen - mieluiten käyttämällä testausympäristöä, joka on samanlainen kuin laboratorion tuotannon nimipalvelimet, eikä itse tuotantopalvelimia.

Päätös siitä, kuinka paljon nimipalvelimesi yliarvioidaan, on subjektiivista: Mikä on online-läsnäolosi arvoinen? Onko Internetiin päin olevassa infrastruktuurissasi muita komponentteja, jotka epäonnistuvat ennen nimipalvelimia? On selvää, että on typerää käyttää rahaa ensimmäisen luokan DNS-infrastruktuurin rakentamiseen rajareitittimen tai palomuurin taakse, joka epäonnistuu hyvissä ajoin ennen kuin nimipalvelimesi edes hikoilevat.

Jos raha ei ole esine, voi olla hyödyllistä tietää, että huipputason DDoS-hyökkäykset DNS-infrastruktuuria vastaan ​​voivat ylittää 100 Gbps.

Anycastin käyttö voi myös auttaa vastustamaan DDoS-hyökkäystä. Anycast on tekniikka, jonka avulla useat palvelimet voivat jakaa yhden IP-osoitteen, ja se toimii erityisen hyvin DNS: n kanssa. Itse asiassa Internetin juuripalvelimet ovat käyttäneet Anycastia vuosia tarjoamaan juurivyöhyketietoja kaikkialla maailmassa ja antaneet kuitenkin juuriluettelon sopia yhteen UDP-pohjaiseen DNS-viestiin.

Anycastin käyttöönottamiseksi nimipalvelimia tukevien isäntien on suoritettava dynaaminen reititysprotokolla, kuten OSPF tai BGP. Reititysprosessi mainostaa naapurireitittimilleen reitti uuteen, virtuaaliseen IP-osoitteeseen, jota nimipalvelimesi kuuntelee. Reititysprosessin on myös oltava tarpeeksi älykäs lopettaa reitin mainostaminen, jos paikallinen nimipalvelin lopettaa vastaamisen. Voit liittää reititysdemonisi nimipalvelimesi terveyteen käyttämällä oman rakenteen koodia - tai voit ostaa tuotteen, joka huolehtii siitä sinulle. Infobloxin NIOS, ei sattumalta, sisältää Anycast-tuen.

Kuinka Anycast puolustaa DDoS-hyökkäyksiä vastaan? Oletetaan, että sinulla on kuusi ulkoista nimipalvelinta kahdessa Anycast-ryhmässä (eli kolme jakavat yhden Anycastin IP-osoitteen ja kolme jakavat toisen). Jokaisessa ryhmässä on yksi jäsen Yhdysvalloissa, yksi Euroopassa ja yksi Aasiassa. Isäntä, joka suorittaa DDoS-hyökkäyksen sinua vastaan, voi lähettää liikennettä - ja siten vain hyökätä - kummankin ryhmän yhdelle jäsenelle mistä tahansa Internetin kohdasta kerrallaan. Elleivät hyökkääjät kykene hankkimaan tarpeeksi liikennettä Pohjois-Amerikasta, Euroopasta ja Aasiasta samanaikaisesti infrastruktuurin suotamiseksi, he eivät onnistu.

Lopuksi on olemassa tapa, jolla voit hyödyntää laajaa maantieteellistä jakelua ja Anycastia samanaikaisesti ilman merkittäviä pääomakustannuksia: Käytä pilvipohjaista DNS-palveluntarjoajaa. Yritykset, kuten Dyn ja Neustar, ylläpitävät omia Anycast-nimipalvelimia palvelinkeskuksissa ympäri maailmaa. Maksat heille isännöimällä vyöhykkeesi ja vastaamalla tiedusteluihisi. Ja voit jatkaa vyöhyketietojesi suoraa hallintaa pyytämällä palveluntarjoajaa määrittämään nimipalvelimet toissijaisiksi vyöhykkeillesi, lataamalla tiedot sisäisestä nimipalvelimesta, jota hallitset ja hallitset. Varmista vain, että suoritat isännän piilossa (ts. Ilman NS-tietueita osoittamaan sitä), tai sinulla on riski, että hyökkääjä kohdistaa sen yhtenä epäonnistumispisteenä.

Yksi varoitus sana käytettäessä pilvipohjaisia ​​DNS-palveluntarjoajia: Useimmat laskuttavat sinua ainakin osittain sen perusteella, kuinka monta kyselyä heidän nimipalvelimesi saavat alueellasi olevista tiedoista. DDoS-hyökkäyksessä nämä kyselyt saattavat lisääntyä dramaattisesti (täysin sinun hallinnan ulkopuolella eivätkä ollenkaan sinun eduksi), joten varmista, että heillä on säännös DDoS-hyökkäysten käsittelemisestä siirtämättä liikenteen kustannuksia sinulle.

Kuinka välttää osallistumista DDoS-hyökkäyksiin

Nyt osaat määrittää DNS-infrastruktuurin vastustamaan DDoS-hyökkäystä. On kuitenkin melkein yhtä tärkeää varmistaa, ettet osallistu DDoS-hyökkäykseen joku muu.

Muista kuvaus siitä, kuinka DNS-palvelimet voivat lisätä liikennettä? Hyökkääjät voivat käyttää sekä avoimia rekursiivisia nimipalvelimia että arvovaltaisia ​​nimipalvelimia vahvistimina, lähettämällä väärennettyjä kyselyitä, jotka aiheuttavat nimipalvelimille yli 100 kertaa niin suuren vastauksen kuin kysely mielivaltaisille kohteille Internetissä. Et tietenkään halua olla tällaisen hyökkäyksen kohteena, mutta et myöskään ole avustaja. Hyökkäys käyttää nimipalvelimiesi resursseja sekä kaistanleveyttäsi. Jos kohde toteuttaa toimenpiteitä estääkseen liikenteen nimipalvelimelta sen verkkoon, hyökkäyksen päätyttyä kohde ei ehkä pysty ratkaisemaan verkkotunnuksia alueillasi.

Jos suoritat avointa rekursiivista nimipalvelinta, ratkaisu on yksinkertainen: Älä. On hyvin harvat organisaatiot, joilla on mitään perustetta rekursiivisille kyselyille avoimen nimipalvelimen suorittamiseen. Google Public DNS ja OpenDNS ovat kaksi, jotka tulevat mieleen, mutta jos luet tätä, luulen, ettet todennäköisesti ole heitä. Muiden tulisi soveltaa rekursiivisiin nimipalvelimiin pääsynvalvontaa varmistaaksemme, että vain valtuutetut kyselijät käyttävät niitä. Tämä tarkoittaa todennäköisesti DNS-kyselyjen rajoittamista sisäisten verkkojemme IP-osoitteisiin, mikä on helppo tehdä kaikilla nimipalvelimen toteutuksilla, jotka ovat suolan arvoisia. (Microsoft DNS -palvelin ei tue kyselyiden IP-osoitteisiin perustuvia käyttöoikeuksien hallintaa. Lue siihen haluamasi.)

Mutta entä jos suoritat arvovaltaisen nimipalvelimen? Ilmeisesti et voi rajoittaa IP-osoitteita, joilta hyväksyt kyselyjä - tai ei kuitenkaan kovin paljon (saatat kieltää kyselyt ilmeisesti tekaistuista IP-osoitteista, kuten RFC 1918 -osoitteista). Mutta voit rajoittaa vastauksia.

Kaksi pitkäaikaista Internetin "valkoista hattua", Paul Vixie ja Vernon Schryver, tajusivat, että DDoS-hyökkäyksissä, joissa vahvistamiseen käytetään arvovaltaisia ​​nimipalvelimia, on tiettyjä kyselymalleja. Erityisesti hyökkääjät lähettävät nimipalvelimille saman kyselyn samalta väärennetyltä IP-osoitteelta (tai osoitelohkolta) uudestaan ​​ja uudestaan ​​tavoitellakseen maksimaalista vahvistusta. Mikään hyvin käyttäytyvä rekursiivinen nimipalvelin ei tekisi niin. Se olisi tallentanut vastauksen välimuistiin ja pyytänyt sitä uudelleen vasta, kun vastauksessa olevien tietueiden elossaoloaika on kulunut.

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