image

Column: Hoe veilig is het BGP routing protocol dat het net bij elkaar houdt?

maandag 30 september 2002, 12:43 door Redactie, 0 reacties

Er zijn op dit moment ruim 110.000 verschillende reeksen IP adressen
daadwerkelijk in gebruik op het internet. De meeste van die reeksen zijn grote
blokken van ISPs, waaruit zij weer adressen aan hun klanten geven. Sommige
eindgebruikers hebben een eigen reeks die onafhankelijk is van die van hun
ISP. Er zijn geen regels over welke adressen waar op de wereld gebruikt kunnen
worden, dus elke ISP moet van ieder van die 110.000 adresreeksen (prefixes)
weten via welk pad deze bereikbaar is. Daar gebruiken ze het Border Gateway
Protocol (BGP) versie 4 voor. Routers van ISPs (en sommige eindgebruikers)
"praten" BGP met andere routers binnen hetzelfde netwerk en met routers van
andere ISPs waar ze mee verbonden zijn en laten zo weten welke IP adressen op
welke manier bereikbaar zijn.

Het verstoren van BGP-sessies tussen ISP-routers is een zeer effectieve manier
om delen van 't internet lam te leggen. Het succesvol injecteren van foute
informatie in BGP is zelfs nog gevaarlijker: hiermee is het mogelijk IP
adressen van iemand anders over te nemen. Een van de aanbevelingen uit het
"National Strategy to Secure Cyberspace" document dat het Witte Huis onlangs
publiceerde gaat onder andere over BGP:



"R4-1 A public-private partnership should refine and accelerate the
adoption of improved security for Border Gateway Protocol,
Internet Protocol, Domain Name System, and others."

Maar is het wel zo slecht gestel met de veiligheid van het inter-domain
routing systeem en BGP? In tegenstelling tot bijvoorbeeld de DNS kan niet
iedereen zomaar in het protocol participeren en is er geen centrale
"routing-autoriteit". Dit beperkt het aantal mogelijke ingangen voor
aanvallers aanzienlijk. Ieder netwerk (Autonomous System ofwel AS in BGP
jargon) bepaalt geheel autonoom met wie het BGP-verbindingen aangaat en welke
informatie er over die verbinding verstuurd en voor ontvangst geaccepteerd
wordt. Een ISP praat BGP met maar één of twee routers van iedere klant, op
vooraf ingestelde IP adressen. Dit gaat over een enkele continue TCP sessie.
ISPs stellen nagenoeg altijd filters in die ervoor zorgen dat alleen de vooraf
opgegeven IP adresreeksen van de klant geaccepteerd worden. Mocht de klant dus
ineens (per ongeluk of expres) adresreeksen die niet bij hem thuishoren
beginnen te "adverteren" dan negeert de router van de ISP deze informatie. BGP
sessies kunnen optioneel beveiligd worden met een wachtwoord, waardoor een
aanvaller niet meer in staat de TCP sessie waarover de BGP communicatie
plaatsvindt te verstoren.

BGP filtering tussen ISPs onderling gaat vaak anders. In principe kunnen ISPs
hier ook filters op zetten, maar dit wordt al snel onpraktisch omdat deze erg
lang worden en vaak veranderen. Sommige ISPs maken niet handmatig filters aan,
maar genereren ze uit informatie in routingdatabases zoals de RIPE database.
Helaas bevatten deze databases vaak onvolledige of zelfs foute informatie en
is het automatisch installeren van filters in routers niet helemaal zonder
gevaren. Informatie in de routingdatabases was vroeger soms helemaal niet
beschermd, maar nu is een DES of MD5 wachtwoord of PGP verplicht. De gecrypte
wachtwoorden zijn echter voor iedereen op te vragen, en DES is in relatief
korte tijd te kraken met een investering in hardware die het budget van een
gemiddelde criminele organisatie niet overstijgt. (Aanzienlijk sneller wanneer
er een makkelijk wachtwoord gekozen is.) MD5 is (nog) wel redelijk veilig, als
het wachtwoord complex genoeg is, en PGP wordt als zeer veilig beschouwd. Een
kleine inventarisatie van tien willekeurig gekozen ISPs die op de AMS-IX
aangesloten zijn laat zien dat vier als zwakste authenticatietype DES
gebruiken, vier MD5 en twee alleen PGP. Er één ISP die zowel DES als PGP
toelaat, waardoor de beveiliging niet beter is dan alleen met DES.

Veel (misschien wel de meeste) ISPs filteren echter niet op basis van
informatie uit de routingdatabases, maar volstaan met een limiet op het aantal
prefixes dat ze van een andere ISP willen ontvangen. Zodra er meer prefixes
binnenkomen deactiveert de router de BGP sessie. Dit vormt een goede
bescherming tegen onopzettelijke fouten, maar een aanvaller kan nog heel wat
foute routinginformatie kunnen injecteren, binnen de ingestelde limiet. Het is
essentieel dat een ISP op zijn minst routes naar zijn eigen adressen niet van
een andere ISP accepteert. Dan zou de andere ISP bijvoorbeeld een route naar
de webserver van de onoplettende ISP kunnen adverteren, waardoor deze ISP alle
pakketten naar dit IP adres zonder meer naar de andere ISP doorstuurt.

Conclusie: het BGP protocol op zich is, mits goed geconfigureerd, niet door
niet-ISPs te corrumperen. Het doorgeven van foute informatie van de ene ISP
naar de andere is in principe ook goed tegen te gaan, maar in praktijk is dit
vaak in beperkte mate mogelijk. Het protocol biedt echter geen bescherming
tegen manipulaties van de routinginformatie binnen het netwerk van een ISP
(maar een ISP heeft veel meer mogelijkheden om de connectiveit van een klant
te verstoren).


Iljitsch van Beijnum is auteur van href="http://www.oreilly.com/catalog/bgp/">
BGP: Building Reliable Networks with the Border Gateway Protocol.

Nog geen reacties
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.