Det främsta hotet mot DNS - och lösningen

I det här kapitlet kan du läsa om hoten mot DNS och de risker som dåligt uppdaterade namnservrar utgör. Men vi berättar också om olika sätt att hindra angriparna från att ställa till med skador, eller åtminstone försvåra för dem.

Ända sedan människor i stor skala började utnyttja internet för affärstransaktioner, bankärenden och så vidare har illasinnade krafter på olika sätt försökt exploatera det för egen vinning. Dessa brottslingar kan bland annat försöka utnyttja brister i DNS för att lura intet ont anande internetanvändare.

DNS-programvarorna utvecklas förstås hela tiden och man täpper till säkerhetshål allt eftersom dessa upptäcks. Men samtidigt som DNS distribuerade karaktär och frånvaron av centralstyrning har varit nyckeln till internets framgång och stora spridning, får just dessa egenskaper som konsekvens att det är svårt att driva igenom verkligt heltäckande förändringar i systemet.

Ingen har överblick över samtliga auktoritativa namnservrar och rekursiva resolvrar som används vid DNS-uppslagningar på internet, så det finns risk att råka ut för dåligt uppdaterade namnservrar och resolvrar som är känsliga för attacker av olika slag.

Ett knep som de kriminella har använt är så kallat nätfiske (phishing), vilket i sin ursprungliga form egentligen inte kräver att man utnyttjar några tekniska brister i DNS. Vid nätfiske lockar man – ofta via länkar i ett falskt mejl som utnyttjar välkända varumärken, logotyper och liknande – in användare på en falsk webbplats som utger sig för att vara till exempel en internetbank. På den falska sajten försöker man få användarna att uppge känsliga uppgifter, exempelvis kreditkortsnummer och lösenord.

Ibland har nätfiskarna gjort en så kallad felstavningsregistrering och använder ett domännamn som ligger nära namnet på det företag vars kunder man vill blåsa. Denna typ av missbruk motarbetas oftast av toppdomänerna genom att företag kan hävda sin rätt till sådana domännamn i kraft av till exempel registrerade varumärken.

I Sverige har flera bankers kunder utsatts för nätfiskeangrepp, men det har oftast varit ganska lätt att inse att mejlet varit falskt, inte minst på grund av lurendrejarnas bristande kunskaper i svenska språket. De flesta användare har inte låtit sig luras vid sådana attacker.

Cacheförgiftning och ”Kaminskybuggen”

Det kan vara svårare att lista ut att man blir lurad när de fula nätfiskarna utnyttjar domännamnssystemets öppna arkitektur genom så kallad cacheförgiftning. Då behöver angriparna inte lura användaren att själv klicka på en länk till deras falska webbplats.

I stället hittar de en rekursiv resolver som är dåligt uppdaterad. Tack vare brister i DNS-programvaran kan angriparna förse resolvern med ett falskt svar som uppger en felaktig IP-adress för det efterfrågade domännamnet.

Eftersom svaret sparas i resolverns cacheminne, med ett TTL-värde som anges av angriparen, så kommer alla användare som sedan ställer frågan om det aktuella domännamnet att få det falska svaret och därmed ledas in på angriparens falska webbplats som finns på en server med den felaktiga IP-adressen. Om sajten är välgjord har man ingen anledning att tro att något är fel. Det går inte att se på webbadressen i webbläsaren att informationen på en sajt kommer från en falsk server.

Låt oss säga att du ska logga in och göra affärer på adressen www.braigabolaget.se. Om då din internetoperatör har slarvat med att uppdatera sina rekursiva resolvrar så kan en eller flera av dem ha cacheförgiftats för att ge fel svar på just domännamnet www.braigabolaget.se. Har du otur svarar en förgiftad resolver på din DNS-fråga och du leds via en felaktig IP-adress intet ont anande in på en kopia av Braiga bolagets webbplats som ligger på skurkarnas server.

Väl där kan du luras att till exempel uppge inloggningsuppgifter eller ditt kreditkortsnummer som de sedan använder för att handla med själva.

Figur 9. Cacheförgiftning där användaren får ett falskt svar på sin DNS-uppslagning.
Figur 9. Cacheförgiftning där användaren får ett falskt svar på sin DNS-uppslagning.

En annan variant är att angriparen lägger sig emellan användaren och den besökta webbplatsen och bara byter ut delar av informationen på sajten. Syftet är förstås detsamma, att snappa upp intressant information som kan missbrukas på olika sätt.

Sommaren 2008 väckte datasäkerhetsforskaren Dan Kaminsky stor uppmärksamhet då han upptäckte en allvarlig brist i DNS som sedermera ofta har kallats Kaminskybuggen. Vad han visade var ett enkelt sätt att utföra en cacheförgiftning.

Dan Kaminsky förvarnade alla leverantörer av DNS-programvaror om buggen innan han gick ut offentligt med sin upptäckt. Därför kunde de utveckla uppgraderingar som försvårar genomförandet av denna sorts cacheförgiftning.

Möjligheten att genomföra cacheförgiftningar beror dock på en brist i själva DNS-arkitekturen, så uppgraderingarna löser inte problemet slutgiltigt. Dessutom stöter man på problemet att alla måste uppdatera sina rekursiva resolvrar för att de ska vara säkra.

Om du inte vet huruvida du använder en Kaminsky-säker resolver så kan du enkelt testa det på www.kaminskybuggen.se, där du också kan läsa vad som bör göras för att åtgärda problemet.

Även om uppgraderingarna av DNS-programmen gör att denna form av cacheförgiftning tar längre tid och blir svårare att genomföra, så finns bristerna i domännamnssystemet kvar. Så länge problemen kvarstår kommer skurkar att kunna utveckla nya metoder att utnyttja dem. Grundproblemet är att DNS inte från början byggdes upp med tanke på säkerheten. Vägen till att långsiktigt klara av säkerhetshoten är därför de säkerhetstillägg till DNS som har tagits fram och som går under beteckningen DNSSEC (DNS Security Extensions).

DNSSEC

Säkerhetstilläggen DNSSEC har utvecklats i syfte att säkra domännamnssystemet från missbruk som cacheförgiftning. För att råda bot på problemet med att det går att lura rekursiva resolvrar med falsk information används kryptografiska signaturer. Genom så kallad asymmetrisk kryptering säkerställer DNSSEC både att DNS-svaret kommer från rätt källa och att innehållet i det – viktigast av allt då vilken IP-adress som motsvarar ett visst domännamn – inte har ändrats under överföringen.

När en domän signeras med DNSSEC så flaggas detta i zonfilen för den överordnade zonen. Om domänen braigabolaget.se har signerats finns det i .se-zonfilen, utöver NS-posten som pekar ut vilken namnserver som är auktoritativ för domänen, även en så kallad DS-post (DS = Delegation Signer) för den.

När en resolver gör en DNS-uppslagning på domännamnet braigabolaget.se kan den ur DS-posten utläsa att domänen är signerad och vem som publicerar nycklar för den. Då kommer resolvern att leta efter extra DNS-poster även i svaret från den auktoritativa namnservern för braigabolaget.se. Försöker en nätfiskare lura resolvern med ett falskt svar som inte innehåller några sådana extraposter så kommer det inte att fungera.

DNSSEC-posterna i zonfilen på braigabolaget.se-domänens auktoritativa namnserver innehåller den digitala signaturen och information om vem som utfärdat den. När en rekursiv resolver får ett svar på en DNS-uppslagning så följer alltså DNSSEC-posterna med IP-adressen och övrig information. Resolvern kan då kontrollera signaturen, eftersom publika DNSSEC-nycklar görs tillgängliga på internet av den som utfärdat en signatur.

Genom att följa en så kallad chain of trust kan resolvern även kontrollera att signaturen som följer med DNS-svaret om braigabolaget.se har skapats av rätt nyckel, så att ingen information kan ha ändrats på vägen från den auktoritativa namnservern till resolvern. En chain of trust slutar hos vad som kallas ett ”trust anchor”, eller tillitsankare, en slutgiltig instans som garanterar att rätt nyckel har använts.

I nuläget är IIS trust anchor för signerade .se-zoner. I en inte alltför avlägsen framtid kommer internets rot förhoppningsvis att signeras och då börjar roten fungera som en sådan garant för hela DNS-trädet.

(Detta har förverkligats sedan denna text skrevs. internets rotzon signerades under sommaren 2010. Läs mer)

Genom chain of trust elimineras risken för att nätfiskaren ska kunna förfalska DNSSEC-posterna och leda resolvern till en falsk nyckel. Först när allt har säkerställts skickar resolvern vidare IP-adressen till den stubb-resolver som har bett om DNS-uppslagningen.

Införandet av DNSSEC

Ett allmänt införande av DNSSEC ses av många som en nödvändighet för att internet ska fortsätta att blomstra och utvecklas. Problemet är detsamma som med de dåligt uppdaterade resolvrarna: det är svårt att genomdriva omfattande förändringar i hela systemet. Inte bara för att de som är innehavare av domännamn måste signera sina domäner. För att DNSSEC ska fungera för alla internetanvändare krävs också att alla resolvrar uppdateras och konfigureras så att de får stöd för tekniken.

Trots att själva DNSSEC-standarden har funnits i många år har tekniken hittills inte slagit igenom på bred front. Den svenska toppdomänen .SE har legat i framkant och var först i världen om att erbjuda en fullständig DNSSEC-tjänst i februari 2007 och sedan dess har några ytterligare toppdomäner följt efter. I och med Dan Kaminskys upptäckt 2008 ökade intresset avsevärt för DNSSEC och den svenska tjänsten rönte mycket uppmärksamhet internationellt.

Uppmärksamheten gjorde att allt fler domäninnehavare faktiskt också började signera sina domäner och nu kan snöbollen vara i rullning. Ytterligare ett steg för att underlätta DNSSEC-införandet är att ICANN, i väntan på att roten signeras, har upprättat ett särskilt register där toppdomänerna kan publicera sina DNSSEC-nycklar, vilket gör DNSSEC heltäckande genom att domännamn kan signeras ända upp till den högsta nivån i DNS. Även här var IIS först bland toppdomänerna när man publicerade nycklarna för .se-domänen där i januari 2009.

Ytterligare en fördel med DNSSEC är att om DNS-strukturen säkras mot missbruk och förfalskningar så kan samma katalog även användas till att publicera annan information som ställer högre krav på säkerhet.