From Erik\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'s IT-Security notes
Jump to: navigation, search

Hur fungerar DNS-attackerna?

Av Erik Zalitis

Bakgrund

En Halvar Flake refererade till en nyligen upptäckt sårbarhet i DNS-protokollet. Han visste inte exakt hur den fungerade, men lade ut en kvalificerad gissning på sin blogg. Gissningen var korrekt och han ombads att ta bort sin postning av säkerhetsforskaren Dan Kaminsky, som hade upptäckt den men valt att inte publicera detaljerna. [2] Det var dock försent och under veckorna som gick, fick tillverkarna bråttom att fixa felet. Några veckor senare dök en modul som kunde utnyttja sårbarheten upp i verktyget Metasploit. [3]

Analys

Så fort verktyg som kan användas av halvkunniga individer ("Scriptkiddies") dyker upp, brukar attackerna ta fart. Jag tror dock att faran är något överdriven, efter det finns ett par väldigt klara kriterier som måste vara uppfyllda för att kunna genomföra attackerna. Det vi måste oroa oss för är DNS-servers som är nåbara från Internet. I andra hand DNS-servrar på våra interna nät. Jag finner det osannolikt att vi kommer råka ut för attacker mot våra interna DNS-er från Internet. Däremot är attacker från interna system möjliga. Dock finns det idag, så vitt jag vet, ingen virus- eller worm-kod som använder detta. I framtiden är det högst möjligt att någon kommer skriva sådan kod för att styra om klienter och servrar.

Hur attacken kan fungera

Antagande: jag vill att alla som använder DNS-servern ns.offerlamm.se ska komma till min onda sajt zalitis.se när de surfar till cnn.com. Ns.offerlamm.se har är en DNS-server som är sårbar och svarar rekusivt på frågor.

Utförande (Enligt Halvar Flake) Jag ställer frågor mot DNS-serverna hos ns.offerlanmm.se efter de påhittade domänerna pucko01.com, pucko02.com osv. DNS-servern kontaktar root-servrarna och kommer tillsist att fråga vem som är ansvarig för domänen puckoxx.com. Jag bombar då DNS-servern med påhittade svar (Referals) från root-servern för toppnivå-domänen .com (jag anger root-serverns avsändaradress som min egen) I dessa påhittade svar påstår jag att ansvarig namnserver för puckoxx.com är ns.cnn.com och lägger med en A-post för den som säger att ns.zalitis.se har 83.227.137.196 som ip. Denna ip leder i själva verket till zalitis.se. Dessutom sätter jag en riktigt lång Time to live, så att den ligger kvar så länge som möjligt i offerlammets cache. När detta finns i Offerlamm.se-cachen och borde det kunna användas för att lura iväg deras användare. Detta är ett hypotetiskt exempel.

Begränsning

Varje DNS-fråga har ett TXID (TransaktiongID). Svaret måste ha samma transaktionsid som frågan för att svaret ska godtas. TransaktionsID-t kan ha 65536 olika värden. I medeltal krävs det att du skickar 32768 påhittade svar med olika transaktionsidn för att få lyckas [1]

Attacken kräver att man kan ställa rekursiva frågor till DNS-servern. Om en DNS-server inte är tillgänglig från attackerarens nät eller vägrar svara rekursivt, fungerar inte denna attack.

Det är rekommenderat att alla DNS-servrar som är nåbara från Internet inte svarar rekursivt.

Det är en stor bonus om DNSen ligger bakom en router som har anti-spoofing-skydd. Om DNSen ligger på en DMZ, attackeraren sitter in på vårt nät och påstår att han är en root-DNS-server på Internet, kommer ett korrekt säkrad router att kasta bort trafiken efter den kommer in på fel nätverksport i routern.

Exakt hur varje mjukvarutillverkare löser problemet är upp till dem. Jag har inte koll på detta. Men US-Cert [1] anger tre möjliga sårbarheter som måste adresseras: - För liten TXID-rymd. 32768 svar kan man snabbt generera. - I vissa lägen kan man bomba DNS-servern med samma fråga efter en resurspost (RR) och få den att inte använda cachen. Det förenklar ett angrepp. - Många DNS-servrar använder samma källport (oftast 53) i trafikfrågorna. Det förenklar attackerna. Om DNS-server använder olika källportar (1025-65535) för varje fråga, försvårar detta attackerna ytterligare.

Vad måste vi göra? - Patcha alla servrar. Särskilt de som tar fran svar åt den som frågar från andra domäner än sina egna. (Detta är vad som menas med att svara rekursivt)

Referenser

1] US-Cert. Vulnerability Note VU#800113. http://www.kb.cert.org/vuls/id/800113

2] http://www.theregister.co.uk/2008/07/21/dns_flaw_speculation/

3] Metaploit modul http://metasploit.com/dev/trac/browser/framework3/trunk/modules/auxiliary/spoof/dns/baliwicked_host.rb?rev=5579

Länkar

http://blogs.zdnet.com/security/?p=1520 (Referens till Halvars beskrivning av hur man attackerar)