Hoe te weten of de BGP van een operator veilig is

De BGP (Border Gateway-protocol) is een van de fundamentele protocollen van het internet, aangezien het verantwoordelijk is voor het uitwisselen van routeringsinformatie tussen de verschillende autonome systemen die in de wereld bestaan. Elke internetoperator heeft bijvoorbeeld zijn eigen AS en om te communiceren met de AS van een andere operator moet u het BGP-protocol gebruiken.

Als dit protocol niet correct is geconfigureerd, kan dit onderbrekingen op het internet veroorzaken of kunnen de verkeersroutes worden gewijzigd zodat al het verkeer van een bepaald AS door een ander gaat zonder het te vragen. Cloudflare heeft een gratis tool om de veiligheid van het BGP-protocol te controleren gemakkelijk en snel.

CloudFlare

BGP-protocol: wat het is, waar het voor is en hoe het werkt

Het internet is onderverdeeld in autonome systemen (AS), een autonoom systeem is een set routers van dezelfde operator die routes uitwisselt om van een vertrekpunt naar een bestemming te komen. Het is essentieel dat een operator binnen zijn AS perfect bijgewerkte routes heeft, omdat we anders de connectiviteit met een specifieke bestemming zouden kunnen verliezen.

An AS is als een "klein" internet waardoor alleen de betreffende operator kan communiceren, bijvoorbeeld als u een Movistar-klant bent en wilt communiceren met een andere Movistar-klant, zal al het verkeer door de AS gaan en niet naar het internet gaan (in principe hangt het af van hoe het is geconfigureerd). Elke operator in Spanje heeft bijvoorbeeld ten minste één autonoom systeem (ze zouden over meerdere AS kunnen beschikken).

Binnen een autonoom systeem wisselen de routers van de operators de verschillende routes uit om intern van een oorsprong naar een bestemming te komen, zonder andere AS te gebruiken. De routeringsinformatie wordt dynamisch geleverd door routeringsprotocollen binnengateway (IGP - Interior Gateway Protocol), deze routing is intern in de AS zelf en maakt in de overgrote meerderheid van de gevallen gebruik van specifieke protocollen zoals OSPF of IS-IS, maar er zijn ook andere IGP-protocollen zoals RIP of EIGRP.

Het BGP (Border Gateway Protocol) is een extern , extern gateway-protocol of wordt ook wel een "grens" genoemd. Dit protocol wordt gebruikt uitwisselingsroutes tussen verschillende AS , deze taak is essentieel zodat we connectiviteit kunnen hebben van één bron naar een bestemming, wanneer het verkeer door verschillende AS moet gaan.

Als onze operator bijvoorbeeld Movistar is en we willen communiceren met iemand die Vodafone heeft, is het noodzakelijk dat ons verkeer via de Movistar AS gaat en ook dat van Vodafone om zijn bestemming correct te bereiken. Terwijl IGP-protocollen routes binnen de AS delen, is BGP verantwoordelijk voor het delen van routes met andere AS's om connectiviteit te hebben tussen verschillende operators.

Wanneer we een BGP-protocol configureren, hebben we zowel interne verbindingen (iBGP) die binnen de AS worden gemaakt, als externe sessies (eBGP) die tussen verschillende AS worden gemaakt.

Enkele kenmerken van BGP zijn dat het een keuze van lusvrije routes garandeert, het routebeslissingen neemt op basis van het netwerkbeleid dat is gedefinieerd (traffic engineering), zoals het aantal AS-sprongen van oorsprong naar bestemming, hoewel we de LOCAL-PREF attribuut om dit gedrag te wijzigen, de routes kunnen ook worden aangepast op basis van andere attributen die in BGP bestaan.

Waarom is BGP niet veilig?

Als het BGP-protocol niet correct is geconfigureerd, kan dit leiden tot aanvallen zoals de BGP-kaping. Als je door B moet gaan om van bron A naar bestemming C te komen, is het mogelijk dat knooppunt B knooppunt A zal "misleiden" om zijn verkeer door een ander AS te laten gaan, of dat het je niet direct de juiste route zal geven en de connectiviteit is op, omdat je op geen enkele manier bij C kunt komen als B je de informatie niet geeft. De BGP-kaping werkt precies zo: hij kaapt de BGP-sessie en verzendt valse informatie naar een AS zodat deze nooit zijn "buurman" bereikt, of op een kwaadaardige manier arriveert (via een router van een andere AS onder onze controle, voor voorbeeld).

Om ervoor te zorgen dat BGP veilig is, moeten we de verspreiding van routes op een kwaadaardige of foutieve manier beschermen (door menselijk falen kunnen we de connectiviteit aan een volledig AS overlaten). Het is essentieel dat de verschillende BGP-routers de mogelijkheid hebben om de informatie die ze ontvangen op een of andere manier te valideren, zodat ze deze ongewenste routes zelf kunnen afwijzen en hun routering niet kunnen wijzigen.

Standaard heeft BGP geen beveiligingsprotocol om dit te voorkomen, de implementatie van onjuiste routefiltering is afhankelijk van elke AS. Normaal gesproken is het verlies van routes het gevolg van menselijk falen, maar het kan ook te maken hebben met de actie van een cybercrimineel, zoals in het verleden is gebeurd. BGP kan veilig zijn als alle AS's alleen reclame maken voor legitieme routes, dat wil zeggen wanneer ze van u zijn.

RPKI schiet te hulp

RPKI (Resource Public Key Infrastructure) biedt ons de oplossing, er zijn momenteel miljoenen routes op het internet, dus handmatig controleren is een onmogelijke taak. Dit beveiligingsraamwerk kan een route koppelen aan een specifiek autonoom systeem. RPKI gebruikt cryptografie tussen de verschillende BGP-routers zodat de knooppunten de informatie op een veilige manier valideren voordat ze deze aan de routers doorgeven, om 100% zeker te stellen dat het een legitieme route is. We raden je aan er meer over te lezen RPKI op het Cloudflare-blog waar u technische informatie kunt vinden.

Hoe de tool werkt om te detecteren of onze ISP BGP met RPKI gebruikt

Deze tool is verantwoordelijk voor het controleren of onze operator BGP op een veilige manier implementeert, wat het doet is een legitieme Cloudflare-route aankondigen, maar ze zorgen ervoor dat deze aankondiging niet geldig is. Als we de website kunnen laden waar we die route hosten, betekent dit dat we deze kunnen bereiken en dat onze ISP deze als geldig heeft geaccepteerd, anders hebben we er geen toegang toe omdat de operator deze als ongeldig heeft gemarkeerd.

Het eerste wat we moeten doen is op internet gaan is BGP al veilig? en klik op «Test uw ISP», zoals u hier kunt zien:

Na een paar seconden zal het ons informeren over het resultaat van de test die we hebben uitgevoerd, onze operator is Masmóvil, en het lijkt erop dat het deze BGP-beveiligingen niet implementeert:

Net hieronder krijgen we een ranglijst met verschillende internetoperators in de wereld, en het zal aangeven of ze BGP correct hebben geconfigureerd of niet. Zo hebben andere operators in Spanje zoals Vodafone, Orange of Movistar deze BGP-bescherming ook niet, zo blijkt uit Cloudflare-tests. Sommige operators (of bedrijven met AS) die hun werk heel goed hebben gedaan, zijn Telia, NTT en ook Cloudflare, hoewel andere zoals Cogent of TATA gedeeltelijk veilig zijn omdat ze peer-filteren.