Hvordan NTP fungerer
Segals lov hedder
En mand med et ur ved, hvad klokken er . En mand med to ure er aldrig sikker.
Computerforsker David L. Mills oprettede NTP i begyndelsen af 1980erne for at synkronisere computerure til en standard tidsreference. Siden starten af NTP har en gruppe frivillige med NTP-poolprojektet har opretholdt en stor, offentligt tilgængelig “virtuel klynge af timeservere, der giver pålidelig, nem at bruge NTP-service til millioner af klienter” rundt om i verden til mange Linux-distributioner og netværksapparater.
Som beskrevet på NTP .org, NTP fungerer på en hierarkisk måde ved at overføre tid fra et lag til et andet. F.eks. fungerer Stratum 0 som et referenceur og er den mest nøjagtige og højeste præcisionstidsserver (f.eks. atomure, GPS-ure og radioure) .) Stratum 1-servere tager deres tid fra Stratum 0-servere og så videre op til Stratum 15; Stratum 16 cl ocks er ikke synkroniseret med nogen kilde. Tiden for en klient fastlægges gennem udveksling af pakker med en eller flere stratum-servere. Disse pakker sætter tidsstempler på hver besked, og den tid det tager at sende meddelelserne er faktorer i algoritmen til etablering af konsensus for den tid, der skal være på klienten.
NTP kan give en nøjagtig tidskilde gennem konsensus med flere input-servere. Det kan også identificere, hvilke tilgængelige tidsservere der er unøjagtige. En udfordring er, at NTP blev bygget i en tid, hvor internetsamfundet var venligere. Under NTPs start var NTP-servere ikke bekymret for brugerbekræftelse. I begyndelsen af 1980erne var det almindeligt, at NTP-servere var offentligt tilgængelige, da en ressourceudvikler kunne bruge til fejlfinding og bekræftelse af deres egen NTP-løsning.
Standardprotokollen for NTP er User Datagram Protocol (UDP). Denne designbeslutning skabte muligheder for misbrug. UDP, som er forbindelsesløs, er en protokol, der er bedst mulig og derfor mere modtagelig for spoofing og tab af pakker end Transmission Control Protocol (TCP). Mens frivillige fra NTP-poolprojekter fortsatte med at fremme NTP, er motivationen for mange netværksadministratorer og virksomhedsejere til at lappe deres eget udstyr ikke så stærk. Siden starten er NTP-netværksprotokollen blevet integreret i utallige systemer, hvoraf mange ikke er blevet patchet og kunne køre kode, der er 20 versioner gamle eller mere.
Angreb relateret til NTP-sårbarheder
Cory Doctorow skrev for nylig om det potentielle nedfald af forældet NTP for Boing / Boing:
NTP er, hvordan næsten enhver computer, du interagerer med, holder uret nøjagtigt, hvilket er en funktion, der er så grundlæggende for Internets funktion, at det ikke kan overvurderes … Hvad mere er, sårbarheder i NTP havde gjort Internets mange tidsservere til tvangsmultiplikatorer for Denial of Service-angreb, hvilket blot gjorde straffeangreb til næsten ustoppelige .
Den metode, der anvendes til nylige DDoS-angreb, er ikke afhængig af sårbarheder, men dårlig konfiguration. NTP-tjenester svarer på en forespørgsel om en liste over overvågede servere. En enkelt lille anmodning med en falsk kilde kan generere en liste med 600 servere og sendes til et mål. Selvom der ikke er nogen sårbarhed, når hundreder eller tusinder af disse servere omdirigeres til et ubevidst mål, bryder ofrene sig ikke om semantikken i problemet, der forårsager dem smerte; de vil bare have lindring.
Tidssynkronisering på systemer eller mangel på dem kan være en væsentlig medvirkende faktor til sårbarheder, der kan kompromittere systemets grundlæggende funktioner. Ud over NTP-misbrug, der bidrager til DDoS-angreb, mangler af tidssynkronisering på et netværk skaber en mulighed for replay-angreb (dvs. afspilningsangreb), der involverer den falske eller ondsindede gentagne forsinkelse af en autentisk datatransmission.
For eksempel kan et replay-angreb forekomme, når en bruger forsøger at fremvise identitetsbevis til en anden bruger. En ondsindet aktør i midten opfanger beskeden og forhindrer den i at komme til sit tilsigtede mål. Den ondsindede bruger sender derefter en anmodning om identitetsbekræftelse og inkluderer det stjålne bevis som en validering. Hvis tid synkroniseres ikke, kan vinduet, hvor udveksling er tilladt, øges ud over det, der betragtes som sikkert, og som giver mulighed for underskud. Som et resultat kan gyldige brugere blive lokket til at tro, at de har succes bekræftede identiteten af en bedrager, der udgør en legitim bruger. For at være retfærdig er denne type gentagelsesangreb usædvanlig og ekstremt udfordrende at udføre med succes uden adgang til netværket, kommunikationsstien og en kompromitteret maskine i den retning.
Mange sikkerhedseksperter, såsom Shaun Kelly , har bemærket, at NTP er blevet brugt til at manipulere logfiler og ændre tiden på et computersystem og ændre hændelsessekvensen.Når ure ikke synkroniseres, har netværksanalytikere meget sværere ved at udføre logkorrelation på tværs af forskellige systemer. Manipulationen af NTP kan gøre identifikationen af netværksaktiviteter og hændelsessekvenser, der fører til et angreb, meget sværere at finde ud af.
Andre applikationer, der vil være i fare, fordi tiden ikke fungerer korrekt, inkluderer højhastighedshandel og sikkerhedskameraer. Mange tidsfølsomme krypteringsalgoritmer, der involverer nøgleudvekslinger og tokens, er også i fare på grund af NTP-svagheder.
NTP bedste praksis
I resten af dette indlæg beskrives bedste fremgangsmåder til konfiguration af din egen NTP-server og anmodning om en offentlig NTP-server.
Brug offentlig NTP til eksterne værter. Hvis en virksomhed bygger kapaciteter, tjenester eller andre indlejrede platforme, der er beregnet til at blive implementeret uden for virksomheden, vil netværksadministratorer måske overveje at anmode om en offentlig NTP-server fra puljen af tilgængelige servere, der er nævnt tidligere.
Det er vigtigt at bemærke, at de fleste af de offentlige NTP-servere specificerer regler for engagement. Hvis en virksomhed har flere enheder inden for virksomheden, der bruger NTP, ville det være fornuftigt at oprette deres eget hierarki, der skal synkroniseres med i stedet for at konkurrere om adgang til de offentligt tilgængelige servere.
Konfigurer din egen interne NTP hierarkisk service til dit netværk. Det er muligt at købe Stratum 1 eller Stratum 0 NTP-apparater til intern brug til mindre end prisen for en typisk server. Det er også muligt at oprette en privat NTP-server til en meget lav pris. Muligheden for at oprette en reklame fra hylden (COTS) NTP-serveren fremgår af en nylig indsats for at konfigurere en Raspberry Pi-computer som en Stratum-1-server. Hvis du beslutter at konfigurere din egen, skal du overveje følgende bedste praksis:
- Standardiser til UTC-tid. Inden for en virksomhed skal du standardisere alle systemer til koordineret universel tid (UTC). Standardisering til UTC forenkler logkorrelation inden for organisationen og med eksterne parter, uanset hvilken tidszone den enhed, der synkroniseres, er placeret i.
- Sikring af netværkstids-tjenesten. Begræns de kommandoer, der kan bruges på stratum-serverne. Tillad ikke offentlige forespørgsler på stratum-serverne. Tillad kun kendte netværk / værter at kommunikere med deres respektive stratum-servere.
- Overvej forretningens behov for kryptografi. Mange administratorer forsøger at sikre deres netværk med krypteret kommunikation og krypteret godkendelse. Jeg vil introducere en advarsel her, for selvom der er kryptografiske tjenester forbundet med NTP til sikring af NTP-kommunikation, indfører brugen af kryptering flere kilder til problemer, såsom at kræve nøglehåndtering, og det kræver også en højere beregningsomkostning.
- Husk Segals lov. Ideelt set fungerer det at have tre eller flere Stratum 0 eller Stratum 1 servere og bruge disse servere som primære mestre. Husk Segals lov: at have to NTP servere gør det svært at vide, hvilken der er nøjagtig. To Stratum 0-servere giver et mere nøjagtigt tidsstempel, fordi de bruger en tidskilde, der betragtes som endelig.
Tilstedeværelsen af tre eller flere tidskilder gør det muligt for netværket at vedligeholde nøjagtig tid, selvom en af de primære mestre fejler. Ideelt set ville NTP-servere være placeret på tre geografisk forskellige steder. Denne gruppe af primære mestre ville være kilden til tid for virksomheden. De ville blive betragtet som skjulte mestre, fordi de kun ville levere tjenester til de sekundære stratum-servere. Denne konfiguration vil give disse servere mulighed for at give tid til samordnede sekundære mestre, der faktisk leverer tjenester til en organisation. De primære mestre forbliver skjulte og har kun adgang til NTP-infrastrukturen, der leverer tjenester andre steder. Denne forsyningskæde skal give dig mulighed for at give nøjagtig tid på tværs af din organisation og have flere kilder, der bekræfter en nøjagtig tidskilde.
Steder, der har flere enheder, der har brug for at få deres tid synkroniseret, kan tilføje yderligere Stratum 2- eller Stratum 3-servere og få dem til at stole på de sekundære mestre såvel som hinanden for yderligere at distribuere belastningen på et system og levere tjenester til en større gruppe af NTP-klienter.
Ved at oprette en intern NTP-tjeneste ved den seneste revision af stabil kode og standardisering af dens anvendelse er levedygtigheden af tidsbaserede netværksangreb eller processer, der er afhængige af tid, sværere at co-opt. Identifikationen af rækkefølgen af begivenheder i et kompromis bliver lettere, fordi tiderne i logfilerne nu kan være registrerede systemer. For retshåndhævelse og andre efterforskningsagenturer kan nøjagtige NTP-tjenester være meget konstruktive til at evaluere bevismateriale og sekventering af en kæde af begivenheder.
Indpakning og fremadretning
Efterhånden som angreb bliver mere sofistikerede, finder vores team af netværksanalytikere hos CERT i stigende grad internet-vendte tjenester, der ikke er godt implementeret i et netværk. Som Mark Langston skrev i sit nylige indlæg om DNS Best Practices, mange af disse tjenester udgør grundlaget for sikkerhed og drift af interne og eksterne netværksapplikationer.
Dette er det seneste i en række blogindlæg, der tilbyder de bedste praksis med disse grundlæggende strukturer til at hjælpe regeringsorganer og andre virksomheder med at løse skjulte kilder til sårbarheder i deres netværk. Vores teamleder, Rachel Kartch, offentliggjorde det første indlæg i denne serie, Distribueret Denial of Service Attacks: Four Best Practices for Prevention and Response.