50% van de DNS-infrastructuur van het .nl-domein beschermd met RPKI.
Routing hijacks zijn een gevaar voor de beschikbaarheid en betrouwbaarheid van het DNS en andere services. Ze kunnen ertoe leiden dat DNS-nameservers van domeinnamen onbereikbaar worden of dat DNS-aanvragen naar malafide nameservers worden omgeleid. De oorzaak kan kwade opzet zijn, maar ook een configuratiefout (‘fat fingers’). Resource Public Key Infrastructure (RPKI) kan vaak tegen routing hijacks beschermen. In dit artikel laten we zien hoe goed netwerken van 2nd-level .nl-nameservers van RPKI gebruikmaken.
Figuur 1: Aandeel .nl-domeinnamen waarvan alle of een deel van de nameservers deel uitmaakt van netwerken waarvoor RPKI uitgerold is op 19 januari 2021. Actuele getallen vind je op stats.sidnlabs.nl.
Wat is een route hijack?
Een route hijack zorgt ervoor dat verkeer op het internet bij een verkeerd netwerk uitkomt. Dat kan doordat bij de ontwikkeling van het Border Gateway Protocol (BGP) veiligheid niet meegenomen is. BGP bepaalt de routes die datastromen op het internet volgen van hun bron naar hun bestemming. Het protocol werd in 1989 gestandaardiseerd. Een voorbeeld van een route hijack is de volgende: een kwaadwillend netwerk AS64496 verstuurt berichten dat het de beheerder is van de IP-adressen-range 192.0.2.0/24, terwijl dat in werkelijkheid AS65551 is. Routers op het internet die de berichten van AS64496 ontvangen en voor wie AS64496 dichterbij is dan AS65551 zullen ervoor kiezen verkeer voor AS65551 naar het kwaadwillende AS64496 te sturen. In de praktijk gebeurt zoiets ook nog vaak door een misconfiguratie zoals te zien is op @bgpstream, maar het effect is hetzelfde. Als de nameserver van de domeinnaam example.nl onder het adres 192.0.2.1 bereikbaar is, kan een hijack grote gevolgen hebben. Als de aanvaller nu op hetzelfde adres een malafide nameserver opzet, kan deze als antwoord op DNS-queries voor example.nl valse informatie terugsturen. Dit soort aanvallen komen ook écht voor. In april 2018 kaapten kwaadwillenden op deze manier een deel van het DNS-verkeer van cloudprovider Amazon. In het geval van misconfiguratie is het waarschijnlijker dat onder het adres helemaal geen nameserver staat die iets van example.nl weet en daardoor verdwijnen de queries voor example.nl in een zwart gat. Het gevolg is dat example.nl en alle diensten die hieraan gekoppeld zijn, onbereikbaar worden.
Wat is RPKI?
Resource Public Key Infrastructure (RPKI) is een security-uitbreiding van BGP, waarmee de eigenaar van een adres-range met hulp van public-key cryptografie kan vastleggen vanuit welk AS de adressen bereikbaar zijn. In ons eerdere voorbeeld kan de eigenaar van 192.0.2.0/24 RPKI gebruiken om aan te geven dat die adressen bereikbaar zijn vanuit AS65551. Hiervoor publiceert de eigenaar van 192.0.2.0/24 een Route Origin Authorisation (ROA) dat alle ASen bevat vanuit waar de adressen geadverteerd mogen worden. Als een router een bericht ontvangt dat 192.0.2.0/24 bij AS64496 bereikbaar is, kan een router in de ROA controleren of AS64496 ook bij de toegestane ASen hoort. Zo niet, dat wordt het bericht genegeerd. RPKI beschermt echter niet in het geval wanneer AS64496 zich voordoet alsof het op het pad naar AS12345 (192.0.2.0/24) ligt. ASPA (A Profile for Autonomous System Provider Authorization) zou hier kunnen helpen, maar is nog niet af.
Ons onderzoek
Sinds december 2020 publiceren we dagelijks op stats.sidnlabs.nl het aantal nameservers van .nl-domeinnamen dat een IP-adres heeft waarvoor RPKI uitgerold is. Domeinnamen met alleen maar beveiligde nameservers zijn in principe beschermd tegen de eenvoudige manier van route hijacking zoals we die hierboven beschreven en voor mogelijke misconfiguraties. Routers moeten dan wel de handtekeningen in de ROA’s valideren. In sommigen gevallen zijn niet alle adressen van de nameservers beveiligd. Hierdoor wordt een domeinnaam maar gedeeltelijk beschermd. Voor onze analyse onderzoeken we elke dag voor elke .nl-domeinnaam de nameservers en hun IP-adressen. Deze data komen van het OpenINTEL-project. Met hulp van data van een route collector bepalen we dan bij welke prefix het IP-adres van een nameserver hoort en vanuit welk ASen het prefix geadverteerd wordt. Met deze informatie kunnen we bepalen of het prefix beschermd is met RPKI of niet. Hiervoor maken we gebruik van Routinator, een RPKI validator van NLnet Labs. Routinator kan ons ook vertellen of een prefix van een AS dat geadverteerd wordt in strijd is met een ROA.
Bijna 50% bescherming
In figuur 1 zie je dat op 19 januari 2021 48% van de .nl-domeinnamen nameservers gebruikt waarvan alle IP-adressen een ROA hebben. Dit is een stijging van 8% ten opzichte van 8 maanden geleden. Nog zo’n 22% van de .nl-domeinnamen heeft tenminste een deel van hun nameservers voorzien van een ROA. Populaire domeinnamen zijn zelfs iets vaker beschermd. Om de populariteit van domeinnamen te bepalen gebruiken we de methode van ‘DNS Magnitude’. Deze geeft ons een inschatting van de populariteit van een domeinnaam op basis van DNS-queries. Hierdoor blijkt, dat 53% van de 1.000 populairste .nl-domeinnamen nameservers met een ROA hebben. Van de 100.000 populairste .nl-domeinnamen is dit nog steeds 49%.
De grote invloed van DNS providers
Vaak maken domeinnamen gebruik van nameservers van een DNS-provider of van de registrar. Als deze nameservers dan in netwerken staan met een ROA, worden hierdoor meteen duizenden domeinnamen tegelijkertijd beschermd. Helaas is dit vaak nog niet het geval. Van de 10 nameservers die voor de meeste .nl-domeinnamen verantwoordelijk zijn, zijn er 7 niet beschermd door RPKI. Deze zijn verantwoordelijk voor 33% van alle .nl-domeinnamen. Als de beheerder van deze servers RPKI zouden uitrollen in hun netwerken, zou dat dus een groot positief effect hebben op de verdere bescherming van .nl.
DNSSEC & RPKI: Een goede combinatie
Als we het over veiligheid in het DNS hebben, moeten we het natuurlijk ook over DNSSEC hebben. DNSSEC en RPKI zijn 2 beveiligingstandaarden die elkaar aanvullen. Als een aanvaller zich met hulp van een routing hijack voordoet als de nameserver van een domeinnaam, dan kan een validerende DNS-resolver deze aanval ontdekken als de domeinnaam met DNSSEC is beveiligd. Alleen beschermt DNSSEC niet tegen het geval waarbij een nameserver door een routing hijack helemaal onbereikbaar wordt. Hiervoor is RPKI een deel van de oplossing. Uit ons onderzoek blijkt dat 23% van alle .nl-domeinnamen is beschermd door zowel DNSSEC als RPKI. Echter, 8% van de domeinnamen maakt helemaal geen gebruik van deze technologieën. Voor het uitrollen van RPKI zijn de netwerkbeheerders verantwoordelijk, maar dat zijn vaak niet dezelfde bedrijven als die de nameservers beheren. Dit betekent dat het gebruik van DNSSEC niet perse betekent dat RPKI ook ‘aan’ staat. Naast RPKI kan een beheerder ook meerdere nameservers gebruiken en deze spreiden over verschillenden netwerken. Als een netwerk dan, bijvoorbeeld door een route hijack, onbereikbaar wordt, dan kan een DNS-resolver nog steeds queries naar een van de andere nameservers sturen. Alle .nl-domeinnamen hebben minimaal 2 nameservers, maar meer dan 44% hebben alle nameservers in hetzelfde AS. Deze nameservers staan echter bovengemiddeld vaak in netwerken met een ROA: meer dan 80%.
Hoe bereiken we meer RPKI-deployment?
In dit artikel hebben we laten zien dat RPKI-deployment in netwerken waar DNS-infrastructuur gehost wordt nog veel beter kan. Een manier hoe we dat kunnen bereiken is als grotere DNS-providers en registrars ervoor zorgen dat hun nameservers in netwerken met een ROA staan. Je kunt zelf controleren of het netwerk waarin je nameserver staat RPKI heeft uitgerold. Dit doe je bijvoorbeeld op stat.ripe.net. Hiervoor heb je alleen het IP-adres van je nameserver nodig. Naast de uitrol van RPKI, is het ook belangrijk dat routers ongeldige routes niet accepteren. Alleen dan is ook de eindgebruiker beschermd. Een eerste studie toont aan, dat ook hier nog veel ruimte te winnen valt.
DNS is niet genoeg
Als je zelf een domeinnaam hebt en die bijvoorbeeld gebruikt voor een website, dan is niet alleen de veiligheid van de nameservers zelf belangrijk. Als het netwerk waarin de webserver staat gekaapt wordt, is de impact net zo groot of nog groter. In een volgende schrijven we daarom over ons onderzoek naar hoe goed webservers van .nl-domeinnamen beschermd zijn met RPKI.
Deze blog is overgenomen van SIDN Labs. Lees het artikel hier.