PathVis: traceroute visualiseren voor niet-technische gebruikers

Voorzien in de behoefte aan padtransparantie

Zevenmijlslaarzen met daarachter een kruimelpad

De oorspronkelijke blog is Engelstalig. Dit is de Nederlandse vertaling.

De meeste internetgebruikers weten niet hoe hun netwerkverkeer vanaf de bron op de plaats van bestemming komt. Gebruikers kunnen met behulp van tools zoals traceroute datapakketten versturen om informatie over netwerkpaden te verkrijgen. Deze tools laten echter alleen de routes op één moment en naar één bestemming zien en hun uitvoer kan moeilijk te interpreteren zijn. We zijn daarom een tool aan het ontwikkelen die deze beperkingen niet heeft. In deze blog laten we je kennismaken met PathVis: een tool die informatie over internetroutes inzichtelijk maakt. De broncode is beschikbaar op Github.

Waarom padtransparantie nodig is

Mensen gebruiken het internet zonder stil te staan bij de manier waarop hun datapakketten zich verplaatsen. Voor de meeste gebruikers is communiceren via het internet iets dat 'gewoon werkt'. Deze moeiteloosheid heeft bijgedragen aan het enorme succes van het internet.

Het gevolg is echter dat het internetgebruikers geen inzicht biedt in de manier waarop hun gegevens vanaf de bron naar de plaats van bestemming worden gestuurd of hoe deze paden veranderen door de tijd. De route die datapakketten op het internet afleggen is onzichtbaar voor de gebruiker. De meeste routewijzigingen op het internet zijn goedaardig, bijvoorbeeld wanneer een switch uitvalt en het verkeer via een andere switch moet worden omgeleid. Er zijn echter ook routewijzigingen, zoals routekapingen (route hijacks), die kwaadaardig zijn en ervoor zorgen dat netwerkverkeer wordt omgeleid naar een derde partij.

Dat soort kwaadaardige wijzigingen kunnen de privacy van de gebruiker aantasten, omdat diens netwerkverkeer gevoelige informatie kan bevatten, zowel in de metadata als in de inhoud van de datapakketten. Zonder de mogelijkheid om routes te controleren zullen gebruikers niet in de gaten hebben dat hun gegevens zijn onderschept. Transparante routes kunnen gebruikers meer inzicht geven, wat om tal van verschillende redenen wenselijk kan zijn, zoals:

  • Gebruikersprivacy: bijvoorbeeld om te controleren of gebruikersverkeer door rechtsgebieden gaat waar de Algemene Verordening Gegevensbescherming van toepassing is.

  • Gegevensbeveiliging: zodat bijvoorbeeld wordt gewaarschuwd als verkeer mogelijk wordt omgeleid via niet-vertrouwde netwerken ter ondersteuning van een man-in-the-middle-aanval.

  • Duurzaamheid: bijvoorbeeld om er in de toekomst achter te komen wat de CO2-voetafdruk is van netwerken waar het internetverkeer langsgaat.

  • Beveiliging van de bevoorradingsketen: net als bij de traditionele beveiliging van de bevoorradingsketen zou het goed zijn als organisaties ook kunnen nagaan hoe veilig de leveranciers van hun netwerkuplinks zijn.

  • Data-autonomie: technisch onderlegde gebruikers krijgen meer zicht op wie hun (versleutelde) data verwerkt.

Padtransparantie levert op zich geen uitgebreide informatie over bijvoorbeeld het CO2-gebruik of de hardware-eigenschappen van een netwerk op, maar vertelt internetgebruikers wel welke netwerken hun gegevens zoal passeren. Het is aan de netwerken zelf (autonome systemen) om aanvullende informatie te publiceren.

Bestaande tooling: traceroute

De meest populaire tool voor het blootleggen van routes op het internet is traceroute, die oorspronkelijk werd ontwikkeld in 1987. Het kan het pad naar een andere internetbestemming laten zien en maakt deel uit van vrijwel alle besturingssystemen, waaronder Linux, macOS en Windows.

Traceroute werkt door de time-to-live-velden (TTL) in datapakketten stapsgewijs te verhogen. Het TTL-veld geeft aan na hoeveel hops een datapakket moet worden gedropt, wat voorkomt dat datapakketten eindeloos op het internet blijven rondgaan. Een traceroute begint met het versturen van een pakket met een TTL-waarde van 1, waardoor de eerste router op het pad het pakketje dropt en een melding terugstuurt. Vervolgens wordt een pakket met een TTL van 2 verstuurd, waarop wordt gereageerd door de tweede router die het pakket tegenkomt. Door de TTL voortdurend te verhogen totdat de bestemming is bereikt, is het mogelijk om de route door het netwerk in kaart te brengen. Elke router die een traceroutepakket ontvangt, verlaagt de TTL-waarde met 1 alvorens het pakket door te sturen naar de volgende hop in het netwerk. Wanneer het TTL-veld 0 bereikt, wordt het pakket gedropt en stuurt de router een ICMP-bericht terug naar de afzender.

Een andere tool voor het blootleggen van routes is mtr, dat op vergelijkbare wijze werkt, maar constant alle tussenliggende hops pingt.

Waarom traceroute niet voldoende is voor padtransparantie

Hoewel traceroute voor iedereen beschikbaar is, is het een tool voor experts zoals netwerk engineers, voor wie command line-interfaces bekend terrein zijn. Het is echter minder aantrekkelijk of informatief voor gebruikers zoals service engineers, die de end-to-end-communicatiediensten van het internet gebruiken in plaats van beheren.

Bovendien toont traceroute alleen de actuele status van het pad naar een bestemming. Om latere wijzigingen te detecteren, moet de gebruiker traceroute handmatig opnieuw uitvoeren en de uitvoer vergelijken met de vorige uitvoer. Er zijn maar weinig gebruikers bereid om dat te doen voor één bestemming, laat staan voor meerdere.

Ten slotte is een inherente beperking van traceroute dat de resulterende weergave eenrichtingsverkeer is: alleen de route die datapakketten afleggen vanaf de gebruiker naar een plaats van bestemming wordt gemonitord. Het retourpad van datapakketten kan anders zijn, maar dat kan met traceroute niet worden gemeten.

Andere tools voor padtracering en hun beperkingen

Er zijn meer methoden om te monitoren hoe het verkeer op het internet wordt gerouteerd dan alleen traceroute. Looking glasses verschaffen informatie over routeringstabellen op het internet en zijn uitermate geschikt voor het detecteren van grootschalige incidenten op het internet zoals routekapingen. Ze geven echter geen compleet beeld van de netwerken waarlangs het verkeer van een gebruiker naar andere hosts wordt gerouteerd.

Nog een tool is tracemon, die gebruikmaakt van het RIPE Atlas-netwerk om de paden van de traceerpakketten naar de host te visualiseren, wat van pas komt als een serviceprovider zijn bereikbaarheid wil optimaliseren. Maar net als looking glasses geeft het geen compleet beeld van het interdomeinpad dat door de gegevens van een gebruiker wordt gevolgd.

Bij 'clean slate'-internetarchitecturen zien we dat de SCION-protocollen wel inzicht geven in de interdomeinpaden van datapakketten. In SCION kan de gebruiker het pad opgeven dat een pakket door het netwerk moet afleggen ('path control'). SCION doet dit door een pad op AS-niveau (Autonoom Systeem) aan de header van het pakket toe te voegen, waardoor padtransparantie ontstaat. De padinformatie in de header is beschermd tegen onrechtmatige wijzigingen door middel van MAC's (Message Authentication Codes), wat betekent dat een host de juistheid van het gegevenspad kan controleren. Hoewel SCION potentiële voordelen heeft voor interdomeincommunicatie (zoals path control), moet het eerst op grote schaal worden gebruikt voordat het van praktische waarde is voor het vergroten van de transparantie van het internet.

Visuele benadering van padtracering met PathVis

We ontwikkelden PathVis met de bovengenoemde vereisten voor padtransparantie, met andere gebruikers dan network engineers in gedachten. PathVis is een tool waarmee traceroutes inzichtelijk worden gemaakt voor niet-experts en experts worden voorzien van aanvullende informatie uit openbare bronnen die beschikbaar zijn op het internet. Het is bedoeld om te laten zien hoe het netwerkverkeer van een gebruiker zich over het internet verplaatst.

Figuur 1 geeft weer hoe PathVis route-informatie visualiseert. De gegevens worden regelmatig ververst omdat het traceroute telkens voor elke openstaande verbinding opnieuw uitvoert. Vervolgens geeft PathVis de actieve paden weer en laat het in een diagram zien hoe het hostsysteem via de tussenliggende hops met al zijn bestemmingen verbonden is.

Schematische weergave van een route die internetverkeer aflegt, gegenereerd door de tool PathVis van SIDN Labs.

Figuur 1: Een demonstratie van PathVis tijdens het ECP Jaarfestival.

Boven aan de grafiek wordt de oorspronkelijke host weergegeven als ‘You’ (in geel boven aan figuur 1). De externe eindpunten waarmee open verbindingen bestaan, worden onder aan figuur 1 in oranje weergegeven. De oorspronkelijke host en de eindpunten zijn met elkaar verbonden via tussenliggende hops, die in het midden worden afgebeeld in de kleur blauw. Voor elke router tonen we het AS-nummer (Autonoom Systeem), het IP-adres (Internet Protocol) en een klein vinkje dat aangeeft dat de ROA is gevalideerd. Route Origin Validation is onderdeel van de beveiligingsstandaard RPKI, die bedoeld is om de routering op het internet veiliger te maken.

Als een pad verandert, registreert PathVis een wijziging en wordt er een waarschuwing naar de gebruiker gestuurd. De gebruiker kan op de waarschuwing klikken om de wijziging in het netwerk te inspecteren.

Feedback verzamelen: PathVis demonstreren op conferenties

We hebben PathVis op 3 conferenties gedemonstreerd. ICT.OPEN2022 en ACM SIGCOMM 2022 waren conferenties die de academische wereld en de industrie samenbrengen. De derde was het ECP Jaarfestival, dat niet alleen wordt bezocht door techneuten, maar ook door tal van beleidsmakers en ondernemers, voornamelijk uit Nederland. Dit jaar trok het ECP Jaarfestival zo'n 800 bezoekers, van wie sommigen onze stand bezocht.

We hadden 2 redenen om ons werk op deze conferenties te presenteren. De eerste reden was dat we PathVis wilden gebruiken als middel om een discussie over internettransparantie op gang te brengen, te beginnen met vragen als:

  • Kan meer transparantie op het internet gebruikers ten goede komen?

  • Zo ja, welke gebruikers profiteren daar dan van?

  • Zou verbeterde transparantie het vertrouwen van de gebruiker vergroten of – door de gebruiker te overweldigen met technische informatie – juist verkleinen?

We constateerden dat een PathVis-visualisatie voor de meeste gebruikers gemakkelijker te begrijpen is dan een gewone traceroute, maar nog steeds veel begeleiding en context vraagt. De meeste mensen zijn het erover eens dat een grotere transparantie internetgebruikers ten goede kan komen, maar de presentatie van de transparantie-informatie kan nogal overweldigend zijn. Er is dus vervolgonderzoek nodig om te bekijken hoe deze informatie kan worden gepresenteerd op een manier die voorkomt dat gebruikers worden overweldigd en in plaats daarvan ervoor zorgt dat hun vertrouwen in het internet toeneemt.

De tweede reden om ons werk op de conferenties te demonstreren was om feedback van de deelnemers te verzamelen over hoe we transparantie-informatie konden presenteren op een manier waar mensen iets aan hebben. We legden degenen die de demonstraties hadden gezien daarom vragen voor zoals:

  • Wat vindt u van de informatie die door PathVis wordt gepresenteerd en van de manier waarop deze wordt gepresenteerd?

  • Is de informatie die met PathVis wordt verkregen nuttig?

Het idee van padtransparantie trok de aandacht van de bezoekers, waaronder ook de Nederlandse minister van Economische Zaken, die onze stand op het ECP Jaarfestival bezocht. We merkten dat mensen met minder IT-kennis vooral onder de indruk waren van de visualisatie, aangezien ze tot dan toe niet hadden geweten hoe internetroutering werkt. Mensen met kennis van computernetwerken zagen uiteraard de overeenkomsten met het bestaande traceroute, maar waardeerden de visualisatie en de toegevoegde informatie, zoals AS-nummers en RPKI-informatie.

Conclusies en toekomstige werkzaamheden

Het huidige internet biedt slechts beperkte mogelijkheden om paden te monitoren en geen enkele mogelijkheid om als eindgebruiker zelf paden in te stellen. Om deze beperkingen aan te pakken hebben we PathVis gecreëerd, een tool met meer functionaliteit dan het bestaande traceroute. PathVis voegt visualisatie en continue monitoring toe en registreert bovendien wijzigingen in alle openstaande verbindingen op een systeem voor eindgebruikers.

We zijn van plan om PathVis verder uit te breiden door methoden te ontwikkelen waarmee netwerkbeheerders specifieke informatie over hun netwerk kunnen delen, waarna PathVis deze informatie kan visualiseren. Bovendien willen we PathVis gebruiken om een nieuw concept te demonstreren, de Autonomous System Information Service (ASIS), dat we komend jaar in een blogpost introduceren.

Verder hebben we, om PathVis gemakkelijker te kunnen demonstreren, het hulpprogrammaatje Router Spaghetti ontwikkeld, dat gebruikmaakt van Linux Network Namespaces. Ook daar wijden we komend jaar een blogpost aan.

Tot slot merkten we toen we aan PathVis werkten dat het handig zou zijn om een duidelijk omschreven dataformaat te hebben dat een interface vormt tussen computerprogramma's (zoals onze visualisatietool PathVis) en de onderliggende functies voor padtracering. Alle traceringstools hebben een iets andere uitvoer en een universeel dataformaat zou het gemakkelijker maken om op deze tools gebaseerde functies te automatiseren.

Het is open source!

PathVis is open source en beschikbaar op GitHub. We hebben PathVis getest op Linux, macOS en OpenBSD. Windows wordt ook ondersteund, maar dat is niet getest. We sporen je aan om PathVis te downloaden, het te testen en je feedback te sturen naar sidnlabs@sidn.nl.

We zijn in het bijzonder geïnteresseerd in feedback van (en mogelijke samenwerking met) onderzoekers en netwerkbeheerders die werken aan de evolutie van de internetinfrastructuur. Daarnaast zijn we ook geïnteresseerd om samen te werken met mensen die willen helpen met het verbeteren van het ontwerp van de gebruikersinterface van PathVis, omdat ons team niet over deze expertise beschikt.