Hoe NTP werkt
De wet van Segal stelt
Een man met een horloge weet hoe laat het is . Een man met twee horloges weet het nooit zeker.
Computerwetenschapper David L. Mills creëerde NTP in het begin van de jaren tachtig om computerklokken te synchroniseren met een standaardtijdreferentie. Sinds de oprichting van NTP heeft een groep vrijwilligers met het NTP-poolproject heeft een groot, publiekelijk beschikbaar “virtueel cluster van tijdservers onderhouden die betrouwbare, gebruiksvriendelijke NTP-service bieden voor miljoenen klanten” over de hele wereld voor veel Linux-distributies en netwerkapparatuur.
Zoals beschreven bij NTP .org werkt NTP op een hiërarchische manier door de tijd van het ene stratum naar het andere door te geven. Stratum 0 dient bijvoorbeeld als referentieklok en is de meest nauwkeurige en nauwkeurigste tijdserver (bijv. atoomklokken, gps-klokken en radioklokken .) Stratum 1-servers nemen hun tijd van Stratum 0-servers enzovoort tot Stratum 15; Stratum 16 cl ocks worden met geen enkele bron gesynchroniseerd. De tijd op een client wordt bepaald door een uitwisseling van pakketten met een of meer stratum-servers. Deze pakketten plaatsen tijdstempels op elk bericht en de tijd die nodig is om de berichten te verzenden, zijn factoren in het algoritme voor het tot stand brengen van de consensus voor de tijd die bij de client moet zijn.
NTP kan een nauwkeurige tijdsbron bieden door middel van consensus met meerdere invoerservers. Het kan ook identificeren welke beschikbare tijdservers onnauwkeurig zijn. Een uitdaging is dat NTP is gebouwd in een tijd dat de internetgemeenschap vriendelijker was. Tijdens het begin van NTP waren NTP-servers niet bezig met gebruikersverificatie. In het begin van de jaren tachtig was het gebruikelijk dat NTP-servers openbaar beschikbaar waren als bron die ontwikkelaars konden gebruiken om problemen op te lossen en hun eigen NTP-oplossing te bevestigen.
Het standaardprotocol voor NTP is User Datagram Protocol (UDP). Deze ontwerpbeslissing creëerde mogelijkheden voor misbruik. UDP, dat geen verbinding heeft, is een best-effort protocol en daarom gevoeliger voor spoofing en verlies van pakketten dan Transmission Control Protocol (TCP). Hoewel vrijwilligers van het NTP-poolproject NTP zijn blijven bevorderen, is de motivatie voor veel netwerkbeheerders en bedrijfseigenaren om hun eigen uitrusting te patchen niet zo sterk. Sinds de oprichting is het NTP-netwerkprotocol geïntegreerd in talloze systemen, waarvan er vele “niet zijn gepatcht en mogelijk code uitvoeren die 20 revisies of meer oud is.
Aanvallen gerelateerd aan NTP-kwetsbaarheden
Cory Doctorow schreef onlangs over de mogelijke gevolgen van verouderde NTP voor Boing / Boing:
NTP is hoe vrijwel elke computer waarmee je communiceert zijn klok nauwkeurig houdt, wat een functie is die zo fundamenteel is voor de het functioneren van het internet dat het niet overdreven kan worden … Wat meer is, kwetsbaarheden in NTP hadden de vele tijdservers op het internet tot krachtvermenigvuldigers voor Denial of Service-aanvallen gemaakt, waardoor alleen bestraffende aanvallen bijna niet te stoppen waren .
De methode die wordt gebruikt voor recente DDoS-aanvallen is niet afhankelijk van kwetsbaarheden, maar van een slechte configuratie. NTP-services reageren op een verzoek om een lijst met bewaakte servers. Een enkel klein verzoek met een vervalste bron kan een lijst van 600 servers genereren en naar een doelwit worden verzonden. Ook al is er geen kwetsbaarheid, wanneer honderden of duizenden van deze servers worden omgeleid naar een onwetend doelwit, geven de slachtoffers niet om de semantiek van het probleem dat hen pijn doet; ze willen alleen verlichting.
Tijdsynchronisatie op systemen, of het ontbreken daarvan, kan een belangrijke factor zijn die bijdraagt aan kwetsbaarheden die de basisfuncties van een systeem in gevaar kunnen brengen. Naast NTP-misbruik dat bijdraagt aan DDoS-aanvallen, kan gebrek tijdsynchronisatie op een netwerk creëert de mogelijkheid voor replay-aanvallen (dwz afspeelaanvallen) waarbij sprake is van de neppe of kwaadwillige herhaalde vertraging van een authentieke datatransmissie.
Een replay-aanval kan bijvoorbeeld plaatsvinden wanneer een gebruiker probeert om een identiteitsbewijs te verstrekken aan een andere gebruiker. Een kwaadwillende actor in het midden zou het bericht onderscheppen en voorkomen dat het het beoogde doel bereikt. De kwaadwillende gebruiker stuurt vervolgens een verzoek om identiteitsbevestiging en voegt het gestolen bewijs toe als validatie. tijd niet gesynchroniseerd is, kan het tijdsbestek dat de uitwisseling is toegestaan worden verlengd tot voorbij wat als veilig wordt beschouwd en wordt de uitvlucht mogelijk gemaakt. Als gevolg hiervan kunnen geldige gebruikers worden misleid door te denken dat ze succesvol zijn heeft de identiteit bevestigd van een bedrieger die zich voordeed als een legitieme gebruiker. Eerlijk gezegd is dit type replay-aanval ongebruikelijk en buitengewoon uitdagend om met succes uit te voeren zonder toegang tot het netwerk, het communicatiepad en een gecompromitteerde machine op dat pad.
Veel beveiligingsexperts, zoals Shaun Kelly , hebben opgemerkt dat NTP is gebruikt om logboeken te manipuleren en de tijd op een computersysteem te wijzigen, waardoor de volgorde van gebeurtenissen wordt gewijzigd.Wanneer klokken niet gesynchroniseerd zijn, hebben netwerkanalisten het veel moeilijker om logcorrelaties tussen verschillende systemen uit te voeren. De manipulatie van NTP kan het identificeren van netwerkactiviteiten en de opeenvolging van gebeurtenissen die tot een aanval leiden, veel moeilijker te lokaliseren.
Andere toepassingen die gevaar lopen omdat de tijd niet goed werkt, zijn onder meer handel op hoge snelheid en beveiligingscameras. Veel tijdgevoelige versleutelingsalgoritmen met betrekking tot sleuteluitwisseling en tokens lopen ook gevaar vanwege NTP-zwakheden.
NTP Best Practices
De rest van dit bericht beschrijft best practices voor het configureren van je eigen NTP-server en het aanvragen van een openbare NTP-server.
Gebruik openbare NTP voor externe hosts. Als een onderneming is het bouwen van mogelijkheden, services of andere embedded platforms die bedoeld zijn om buiten de onderneming te worden geïmplementeerd, kunnen netwerkbeheerders overwegen om een openbare NTP-server aan te vragen uit de eerder genoemde pool van beschikbare servers.
Het is belangrijk op te merken dat de meeste openbare NTP-servers engagementsregels specificeren. Als een onderneming meerdere apparaten binnen de onderneming heeft die NTP zullen gebruiken, zou het zinvol zijn om hun eigen hiërarchie op te zetten om mee te synchroniseren in plaats van te concurreren om toegang tot de openbaar beschikbare servers.
Configureer uw eigen interne Hiërarchische NTP-service voor uw netwerk. Het is mogelijk om Stratum 1- of Stratum 0 NTP-apparaten aan te schaffen voor intern gebruik voor minder dan de kosten van een typische server. Het is ook mogelijk om tegen zeer lage kosten een eigen NTP-server op te zetten. De haalbaarheid van het opzetten van een commercial off the shelf (COTS) NTP-server wordt bewezen door een recente poging om een Raspberry Pi-computer te configureren als een Stratum-1-server. Als u besluit om uw eigen te configureren, overweeg dan de volgende best practices:
- Standaardiseren naar UTC-tijd. Standaardiseer binnen een onderneming alle systemen naar gecoördineerde universele tijd (UTC). Standaardiseren naar UTC vereenvoudigt de logboekcorrelatie binnen de organisatie en met externe partijen, ongeacht in welke tijdzone het apparaat dat wordt gesynchroniseerd zich bevindt.
- Beveiliging van de netwerktijdservice. Beperk de opdrachten die op de stratum-servers kunnen worden gebruikt. Sta geen openbare zoekopdrachten van de stratum-servers toe. Sta alleen bekende netwerken / hosts toe om te communiceren met hun respectievelijke stratum-servers.
- Overweeg de zakelijke behoefte aan cryptografie. Veel beheerders proberen hun netwerken te beveiligen met gecodeerde communicatie en gecodeerde authenticatie. Ik zou hier een waarschuwing willen introduceren, want hoewel er cryptografische services zijn gekoppeld aan NTP voor het beveiligen van NTP-communicatie, introduceert het gebruik van codering meer bronnen voor problemen, zoals het vereisen van sleutelbeheer, en het vereist ook een hogere rekenkundige overhead.
- Onthoud de wet van Segal. Idealiter zou het werken om drie of meer Stratum 0 of Stratum 1 servers te hebben en die servers als primaire masters te gebruiken. Onthoud de wet van Segal: twee NTPs hebben servers maakt het moeilijk om te weten welke correct is. Twee Stratum 0-servers zouden een nauwkeuriger tijdstempel bieden omdat ze een tijdbron gebruiken die als definitief wordt beschouwd.
De aanwezigheid van drie of meer tijdbronnen zou het netwerk in staat stellen om nauwkeurige tijd, zelfs als een van de primaire meesters faalt. Idealiter zouden NTP-servers zich op drie geografisch ongelijksoortige locaties bevinden. Deze groep primaire meesters zou de bron van tijd zijn voor de onderneming. Ze zouden als verborgen meesters worden beschouwd omdat ze alleen diensten zouden verlenen aan de secundaire stratum-servers. Deze configuratie zou die servers in staat stellen om tijd te geven aan opgezette secundaire masters die daadwerkelijk diensten aan een organisatie verlenen. De primaire masters blijven verborgen en worden alleen benaderd door de NTP-infrastructuur die elders diensten levert. Die toeleveringsketen moet u in staat stellen om in uw hele organisatie nauwkeurige tijd te bieden en over meerdere bronnen te beschikken die een nauwkeurige tijdsbron bevestigen.
Locaties met meer apparaten die hun tijd moeten synchroniseren, kunnen extra Stratum 2- of Stratum 3-servers toevoegen en laat ze zowel op de secundaire masters als op elkaar vertrouwen om de belasting van een systeem verder te verdelen en services te leveren aan een grotere groep NTP-clients.
Door een interne NTP-service op te zetten op de laatste revisie van stabiele code en standaardisering van het gebruik ervan, zijn de levensvatbaarheid van tijdgebaseerde netwerkaanvallen of processen die afhankelijk zijn van tijd moeilijker te coöpteren. De identificatie van de volgorde van gebeurtenissen in een compromis wordt gemakkelijker omdat de tijden in de logboeken nu registratiesystemen kunnen zijn. Voor wetshandhavingsinstanties en andere opsporingsinstanties kunnen nauwkeurige NTP-services zeer constructief zijn bij het evalueren van bewijsmateriaal en het sequencen van een reeks gebeurtenissen.
Inpakken en vooruitkijken
Naarmate aanvallen geavanceerder worden, vindt ons team van netwerkanalisten bij CERT steeds vaker internetgerichte diensten die niet goed binnen een netwerk worden geïmplementeerd. Zoals Mark Langston schreef in zijn recente post over DNS Best Practices dat veel van deze services de basis vormen voor de beveiliging en werking van interne en externe netwerktoepassingen.
Dit is de laatste in een reeks blogposts die de beste praktijken op deze fundamentele structuren om overheidsinstanties en andere ondernemingen te helpen verborgen bronnen van kwetsbaarheden in hun netwerken aan te pakken. Onze teamleider, Rachel Kartch, publiceerde het eerste bericht in deze serie, Distributed Denial of Service Attacks: Four Best Practices for Prevention and Response.