compromittering van internet en onze netwerken gebeurt helaas
RPKI vermindert de kans op prefix hijacking
"Misbruik van internet is een bekend fenomeen en bestaat in veel vormen.”
- Mike Mulder - netwerk engineer iunxi
Het internet bestaat doordat verschillende partijen hun netwerk aan elkaar koppelen en dataverkeer uitwisselen. Elke partij heeft in zijn netwerk éen of meer blokken van IP reeksen (een prefix genaamd) en zo’n systeem van prefixen vormt een Autonomous System (AS). Elke partij heeft dan een eigen uniek AS nummer (ASN). Momenteel bestaan er op het internet circa 770000 prefixen, originated vanuit 63800 verschillende AS-en.
Om elkaars prefixen bereikbaar te maken moet men van elkaar weten wie welke prefix in zijn AS heeft. Hiervoor gebruikt men het routing protocol BGP. In feite wordt er bij het koppelen vanuit gegaan dat elke partij correcte prefix-informatie met elkaar uitwisselt. Tot op heden wordt dit eigenlijk altijd zonder meer vertrouwd omdat het helaas zo is dat je de BGP informatie die je van de transitprovider leert onmogelijk zelf kunt verifiëren. Foutieve info van je transit-provider, bewust of onbewust geïnjecteerd door een internet partij, wordt zonder blikken of blozen geaccepteerd. Op het moment dat bijvoorbeeld AS12345 een (deel van een) prefix uit AS54321 adverteert, kan het AS12345 verkeer van AS54321 naar zich toe trekken. Dit noemt men ‘prefix hijacking’. Dit betreft dus zowel opzettelijke als onbedoelde hijacks door bijvoorbeeld een type of denk fout door de netwerk engineer.
RPKI – Resource Public Key Infrastructure
Met Resource Public Key Infrastructure – RPKI – is het mogelijk om als ISP zelf controle uit te voeren op de betrouwbaarheid van de BGP routinginformatie. Het is daarvoor wel noodzakelijk dat je van je upstream transitprovider(s) de full-routing table krijgt, en geen default-route. De ontwikkeling van RPKI is al langer gaande en is inmiddels terechtgekomen in een praktisch toepasbaar stadium zodat de ISP’s tot adoptie kunnen overgaan. De bijbehorende software is stabiel en de features die nodig zijn op de routers zijn inmiddels gesupport via de softwarepakketten van de grote router-vendoren (Cisco, Juniper, Extreme, Huawei, etc.)
RIPE heeft hierop de RPKI Deployathon georganiseerd om belangstellende partijen te informeren en aan te moedigen RPKI binnen hun netwerk te gaan faciliteren. Het omvat in hoofdlijnen de volgende taken:
- aanmaken van ROA’s
- implementeren van een Validator
- configureren van RPKI policies op de edge routers
- de te gebruiken taktiek
Naast de uitleg van de techische vaardigheden is er ook voldoende ruimte voor discussie en argumentatie. Erg interessant om van de verschillende professionals te horen hoe zij de laatste stand van zaken in de internetwereld zien.
ROA – Route Origin Authorisations
Een Route Origin Authorisations – ROA – is een cryptografisch gecertificeerd routing object in de database van een IRR; de Europese ROA’s worden opgeslagen bij IRR RIPE. Een ROA bevat de volgende informatie:
- geautoriseerd AS-nummer
- prefix
- max-length
Deze gegevens worden opgeslagen in een gigantische database en elke LIR (zoals iunxi) dient zijn informatie correct in de database in te voeren en bij te houden. RIPE heeft hiervoor een webinterface beschikbaar gesteld via de RIPE portal waar elke RIPE member zijn ROA’s kan aanmaken en bewerken.
Een Validator zal deze informatie ophalen en verwerken tot een tabel met data waaraan de routers hun BGP tabel kunnen matchen. Op basis van deze vergelijking worden de routes in de BGP tabel gemarkeerd als zijnde VALID, UNKNOWN en INVALID. Het is uiteindelijk de bedoeling dat de met INVALID gemarkeerde prefixen worden gedropt en dus niet in de routetabel van de router terecht komen.
Een prefix is VALID als de BGP info (prefix, prefix length en ASN) overeenkomt. Een prefix is UNKNOWN als er niet kan worden gevalideerd (geen ROA voor aangemaakt of de IRR database is onbeschikbaar). Een prefix is INVALID als éen van de parameters in de ROA niet overeenkomt met de gegevens in de BGP tabel op de router.
Validator
De Validator is een stukje software welke op een server draait en beschikbaar is gesteld door RIPE, NLnetLabs of CloudFlare. Elke leverancier heeft net iets andere tooltjes of mogelijkheden in zijn Validator ingebouwd, waardoor het in sommige gevallen prettiger werkt. In de basis doen ze allemaal hetzelfde.
policies in de core
De policies in de core van het netwerk bepalen uiteindelijk wat je met de gemarkeerde prefixen doet: droppen of accepteren. Een gedropte prefix komt dus niet in de routetabel en zal dus onbereikbaar zijn voor jou en je klanten. Of je de met INVALID gemarkeerde prefixen dropt is een keuze, een afweging van je eigen strategie.
In eerste instantie is het van belang dat alle ISP’s minimaal hun ROA’s op orde brengen, dat is al een geweldige stap dichterbij een volledig valide routetabel. Een groot aantal partijen heeft inmiddels de ROA’s bij hun IRR geregistreerd zodat het steeds zinvoller wordt om de BGP tabel te valideren en de mogelijkheid tot prefix-hijacking steeds kleiner te maken.