BLOG – Tijdsynchronisatie met hoge precisie is essentieel voor het functioneren van vele diensten die zijn verbonden met internet. Atoomklokken leveren hiervoor het tijdsignaal, de tijdinformatie wordt vervolgens aan computers en andere apparaten doorgegeven via het Network Time Protocol (NTP) op internet.
Er zijn tientallen (gratis) tijddiensten (NTP-servers) beschikbaar, van NIST in de Verenigde Staten tot diensten van leveranciers als Apple, Google, CloudFlare en Microsoft. De bekende en veelgebruikte NTP-pool pakt het anders aan. Het is als het ware een laag die over NTP-servers heen ligt. De pool beheert zelf dus geen NTP-servers. De meer dan 4.700 NTP-servers die onderdeel zijn van de pool, worden allemaal ter beschikking gesteld door heel veel vrijwilligers. En met behulp van DNS wordt vervolgens de capaciteit verdeeld over de vele clients.
Populairste tijddienst
Keuze genoeg qua NTP-aanbod dus, zou je denken. Maar uit een steekproef blijkt dat de NTP-pool verreweg de meest gebruikte tijddienst is, populairder nog dan NIST en de grote cloud- en contentproviders als Microsoft en Google. Dat maakt de NTP-pool een belangrijke factor voor de goede werking van het internet. Dus het is interessant om te achterhalen hoe de NTP-pool werkt en hoe bepaald wordt welke NTP-server aan een client wordt toegewezen.
Hiervoor voerden we een steekproef uit. We stuurden met behulp van zo’n tienduizend RIPE Atlas probes DNS-query’s naar de dns-servers van de NTP-pool en analyseerden hoeveel unieke ip-adressen (de NTP-servers zelf) werden geretourneerd. We deden deze analyse gedurende een periode van 24 uur.
Uit de resultaten bleek dat tien procent van de wereldwijde Atlas probes wordt bediend door maximaal 12 NTP-servers en dertig procent door meer dan honderd NTP-servers. Het roept de vraag op waarom sommige clients over een meer diverse groep servers beschikken dan andere clients.
Geolocatie bepalend
Het antwoord hierop ligt bij GeoDNS, de op maat gemaakte autoritatieve DNS-servers die door de NTP-pool wordt gebruikt om clients aan NTP-servers toe te wijzen. Uit onze analyse blijkt dat de geolocatie van de client bepalend is. Dus als je in Japan bent, zul je uitsluitend bediend worden door de 21 NTP-servers die gevestigd zijn in Japan. Ben je daarentegen in Kameroen, dan heb je maar een NTP-server tot je beschikking, ook al staan er wereldwijd meer dan 4.700 servers in de NTP-pool. Alleen als er in je eigen land helemaal geen NTP-servers zijn, word je bediend door NTP-servers elders op je continent. Clients in Bolivia worden bijvoorbeeld bediend door de 46 servers die voor Zuid-Amerika bedoeld zijn.
Het doel van deze beperkte toewijzing op basis van geolocatie is volgens de beheerders van de NTP-pool ‘het minimaliseren van het risico op asymmetrische routering en gedropte pakketten’. Het probleem van asymmetrische routering zien we echter bij de meeste paden op het internet. Pakketverlies is mogelijk ook minder een probleem, zo ontdekten we op basis van een kleinschalige analyse. We vergeleken daarbij het pakketverlies en de precisie van elke probe naar elke NTP-server als ze andere tijdservers op andere continenten zouden gebruiken. Met uitzondering van de Zuid-Amerikaanse servers, die vanuit andere continenten moeilijk te bereiken zijn, leverde dit maar weinig problemen op. Onze conclusie is dat de NTP-pooltoewijzingen niet zo strikt hoeven te zijn.
In de onderstaande afbeelding is te zien hoeveel NTP-servers alle gebruikers uit een land ter beschikking staan, als ze de pool gebruiken. Gezien het feit dat de NTP-pool uit meer dan 4.700 NTP-servers bestaat, is dit een uitermate scheve verdeling te noemen: Afrikaanse en Zuid-Amerikaanse clients worden door veel minder servers bediend dan Noord-Amerikaanse of West-Europese clients.
Implicaties toewijzing
Het lijkt klein bier, maar de implicaties die de manier van toewijzing door de NTP-pool voor gebruikers heeft, worden duidelijk als we kijken naar het aantal NTP-servers waaraan ze worden toegewezen.
Maar het daadwerkelijke probleem is dat gebruikers uit 27 landen, met in totaal 767 miljoen inwoners en 465 miljoen internetgebruikers, worden bediend door maar een vrijwillige server/netwerk als ze de NTP-pool gebruiken, ondanks het grote totaal aantal servers. Het gaat hierbij om de landen die in de afbeelding roodgekleurd zijn.
Veiligheidsrisico’s
De beperkte toewijzing heeft op meerdere manieren gevolgen voor de veiligheid. Ten eerste kan al het NTP-verkeer van landen zonder NTP-servers in hun landzone worden overgenomen door een malafide NTP-server. Een aanvaller hoeft hiervoor namelijk alleen maar een NTP-server aan de zone voor dat land toe te voegen. Dus, wie in Bolivia een NTP-server toevoegt aan de NTP-pool, trekt meteen al het NTP-verkeer vanuit Bolivia daar naartoe. Als die NTP-server valse tijdinformatie verstuurt, kan hij worden gebruikt om tijdverschuivingsaanvallen uit te voeren. In het recente verleden hebben we hier al voorbeelden van gezien. Zo gaven de US Navy Naval Observatory’s NTP servers in november 2021 een tijd weer die maar liefst twaalf jaar incorrect was. Dit resulteerde in de uitval van verschillende systemen.
De NTP-pool heeft weliswaar zijn eigen monitoringsysteem, dat NTP-servers die zich misdragen herkent en uit de pool verwijdert, maar dat kan helaas eenvoudig om de tuin worden geleid. Een malafide NTP-server geeft daarvoor de juiste tijd terug aan de monitor en een valse tijd aan alle clients. Een vastberaden aanvaller kan zo de klokken van alle NTP-pool-apparaten in een land verzetten.
Tot slot: ook al heeft de huidige opzet van de NTP-pool te kampen met genoemde problemen, we mogen het geheel niet uit het oog verliezen. Namelijk dat we de vrijwilligers van de NTP-pool, die deze dienst al meer dan twintig jaar runnen, veel dank verschuldigd zijn. Ze vormen de populairste tijddienst op het internet, waar werkelijk miljoenen apparaten gebruik van maken. Het is een van de weinige diensten die (nog) niet zijn vervangen door grote cloud- en contentoperators. Desalniettemin kan het systeem nog verder worden verbeterd om de beperkende toewijzing en potentiële veiligheidsincidenten te voorkomen.
(Deze blog is gebaseerd op de resultaten van een peer-reviewed artikel dat hier beschikbaar is.)
Marco Davids is research engineer bij SIDN Labs
Giovane Moura is datascientist bij SIDN Labs en universitair docent bij TU Delft
Leuk stuk over één van de vele vergeten protocollen waarop een heleboel diensten zijn gebouwd. En als deze inderdaad zo makkelijk zijn te manipuleren als de onderzoekers zeggen dan hebben we een due diligence discussie. Want hoewel we veel dank verschuldigd zijn aan vrijwilligers willen bedrijven (en overheden) graag wat meer zekerheden over de aansprakelijkheden in de keten. En gezien de statistiek in figuur 1 klopt de uitspraak over cloud providers hierdoor ook niet helemaal als deze een groei laten zien terwijl de dienst van vrijwilligers sinds 2017 een afname in het aantal resolvers laat zien. Eerlijk of niet is dit namelijk een trend die al langer gaande is met essentiële diensten die op internet services zijn gebouwd als gevolg van nieuwe compliance eisen.