Cum funcționează NTP
Afirma legea Segal
Un bărbat cu ceas știe la ce oră este . Un bărbat cu două ceasuri nu este niciodată sigur.
Informaticianul David L. Mills a creat NTP la începutul anilor 1980 pentru a sincroniza ceasurile computerului cu o referință de timp standard. De la înființarea NTP, un grup de voluntari cu proiectul NTP pool a menținut un „cluster virtual virtual de servere de timp, disponibil public, care oferă un serviciu NTP ușor de utilizat pentru milioane de clienți” din întreaga lume pentru multe distribuții Linux și dispozitive de rețea.
Așa cum este detaliat la NTP .org, NTP funcționează într-o manieră ierarhică trecând timpul de la un strat la altul. De exemplu, Stratum 0 servește drept ceas de referință și este cel mai precis și mai precis server de timp (de exemplu, ceasuri atomice, ceasuri GPS și radio ceasuri .) Serverele Stratum 1 își iau timpul de la serverele Stratum 0 și așa mai departe până la Stratum 15; Stratum 16 cl ockurile nu sunt sincronizate cu nicio sursă. Timpul pentru un client este stabilit printr-un schimb de pachete cu unul sau mai multe servere de strat. Aceste pachete pun semnele de timp pe fiecare mesaj și timpul necesar pentru a transmite mesajele sunt factori în algoritm pentru stabilirea consensului pentru timpul care ar trebui să fie pe client.
NTP poate furniza o sursă de timp precisă prin consens cu mai multe servere de intrare. De asemenea, poate identifica ce servere de timp disponibile sunt inexacte. O provocare este că NTP a fost construit într-o perioadă în care comunitatea de internet era mai prietenoasă. La începutul NTP, serverele NTP nu erau preocupate de verificarea utilizatorului. La începutul anilor 1980, era obișnuit ca serverele NTP să fie disponibile public, deoarece resursele pe care dezvoltatorii le-ar putea folosi pentru depanarea și confirmarea propriei soluții NTP.
Protocolul standard pentru NTP este User Datagram Protocol (UDP). Această decizie de proiectare a creat oportunități pentru abuz. UDP, care nu are conexiune, este un protocol cu cel mai bun efort și, prin urmare, este mai susceptibil la falsificarea și pierderea pachetelor decât Protocolul de control al transmisiei (TCP). În timp ce voluntarii proiectului NTP pool au continuat să promoveze NTP, motivația multor administratori de rețea și proprietari de afaceri pentru a-și corela propriile echipamente nu este la fel de puternică. De la înființare, protocolul de rețea NTP a fost integrat în nenumărate sisteme, dintre care multe nu au fost corecționate și ar putea rula un cod vechi sau mai mare de 20 de revizii.
Atacuri legate de vulnerabilitățile NTP
Cory Doctorow a scris recent despre potențialul impact asupra NTP învechit pentru Boing / Boing:
NTP este modul în care practic fiecare computer cu care interacționați își păstrează ceasul exact, care este o funcție atât de fundamentală pentru funcționarea Internetului că nu poate fi supraestimată … Mai mult, vulnerabilitățile din NTP au transformat numeroasele servere de timp ale Internetului în multiplicatori de forță pentru atacurile Denial of Service, făcând doar pedepsirea atacurilor în cele aproape de neoprit. .
Metoda folosită pentru atacurile recente DDoS nu se bazează pe vulnerabilități, ci pe o configurație slabă. Serviciile NTP răspund la o solicitare de interogare pentru o listă de servere monitorizate. O singură solicitare mică, cu o sursă falsificată, poate genera o listă de 600 de servere și poate fi trimisă către o țintă. Chiar dacă nu există nicio vulnerabilitate, atunci când sute sau mii de servere sunt redirecționate către o țintă nedorită, victimelor nu le pasă de semantica problemei care le provoacă durere; doresc doar ușurare.
Sincronizarea timpului pe sisteme sau lipsa acestora poate fi un factor semnificativ care contribuie la vulnerabilitățile care pot compromite funcțiile de bază ale unui sistem. În plus față de abuzul NTP care contribuie la atacurile DDoS, lipsa de sincronizare a timpului într-o rețea creează o oportunitate pentru atacuri de redare (adică atacuri de redare) care implică o întârziere repetată falsă sau malefică a unei transmisii autentice de date.
De exemplu, un atac de redare poate apărea atunci când un utilizator încearcă pentru a oferi dovada identității unui alt utilizator. Un actor rău intenționat din mijloc ar intercepta mesajul și ar împiedica să ajungă la ținta dorită. Utilizatorul rău intenționat trimite apoi o cerere de confirmare a identității și include dovada furată ca validare. Dacă timpul nu este sincronizat, fereastra în care este permis schimbul poate fi mărită dincolo de ceea ce este considerat sigur și permite subterfugiul. Ca urmare, utilizatorii valizi pot fi înșelați să creadă că au reușit a confirmat identitatea unui impostor care se prezintă ca un utilizator legitim. În mod corect, acest tip de atac de reluare este neobișnuit și extrem de dificil de executat cu succes fără acces la rețea, calea de comunicații și o mașină compromisă în acea cale.
Mulți experți în securitate, cum ar fi Shaun Kelly , au remarcat faptul că NTP a fost folosit pentru a manipula jurnalele și a schimba ora pe un sistem informatic, modificând succesiunea evenimentelor.Când ceasurile nu sunt sincronizate, analiștii de rețea au o durată mult mai mare de a efectua corelarea jurnalului între sisteme disparate. Manipularea NTP poate face identificarea activităților de rețea și secvența evenimentelor care duc la un atac mult mai greu de identificat.
Alte aplicații care ar putea fi expuse riscului deoarece timpul nu funcționează corect includ tranzacționare de mare viteză și camere de securitate. Mulți algoritmi de criptare sensibili la timp care implică schimburi de chei și jetoane sunt, de asemenea, expuși riscului din cauza punctelor slabe ale NTP.
Cele mai bune practici NTP
Restul acestei postări detaliază cele mai bune practici pentru configurarea propriului server NTP și solicitarea unui server NTP public.
Utilizați NTP public pentru gazde externe. Dacă o întreprindere construiește capabilități, servicii sau alte platforme încorporate care sunt destinate a fi implementate în afara întreprinderii, administratorii de rețea ar putea dori să ia în considerare solicitarea unui server NTP public din grupul de servere disponibile menționat anterior.
Este important să rețineți că majoritatea serverelor NTP publice specifică reguli de implicare. Dacă o întreprindere are mai multe dispozitive în cadrul întreprinderii care vor folosi NTP, ar fi logic să-și configureze propria ierarhie cu care să se sincronizeze, în loc să concureze pentru accesul la serverele disponibile public.
Configurați-vă propriul sistem intern Serviciu ierarhic NTP pentru rețeaua dvs. Este posibil să achiziționați dispozitive Stratum 1 sau Stratum 0 NTP pentru a fi utilizate intern pentru costuri mai mici decât un server tipic. De asemenea, este posibil să configurați un server NTP privat la un cost foarte mic. Fezabilitatea înființării unui server NTP publicitar (COTS) este evidențiată într-un efort recent de configurare a unui computer Raspberry Pi ca server Stratum-1. Dacă decideți să vă configurați, vă rugăm să luați în considerare următoarele bune practici:
- Standardizați la ora UTC. În cadrul unei întreprinderi, standardizați toate sistemele la timpul universal coordonat (UTC). Standardizarea la UTC simplifică corelarea jurnalului în cadrul organizației și cu părțile externe, indiferent în ce fus orar se află dispozitivul care este sincronizat.
- Securizarea serviciului de timp în rețea. Restricționați comenzile care pot fi utilizate pe serverele strat. Nu permiteți interogări publice ale serverelor strat. Permiteți doar rețelelor / gazdelor cunoscute să comunice cu serverele lor de straturi respective.
- Luați în considerare nevoia de criptografie a companiei. Mulți administratori încearcă să își securizeze rețelele cu comunicații criptate și autentificare criptată. Aș introduce aici o notă de precauție, deoarece, deși există servicii criptografice asociate cu NTP pentru securizarea comunicațiilor NTP, utilizarea criptării introduce mai multe surse pentru probleme, cum ar fi necesitatea gestionării cheii și necesită, de asemenea, o cheltuieli de calcul mai mari.
- Amintiți-vă de Legea lui Segal. În mod ideal, ar funcționa să aveți trei sau mai multe servere Stratum 0 sau Stratum 1 și să utilizați aceste servere ca maeștri primari. Amintiți-vă Legea lui Segal: având două NTP serverele face dificil să știți care dintre acestea este exactă. Două servere Stratum 0 ar oferi o marcă de timp mai precisă, deoarece utilizează o sursă de timp considerată definitivă.
Prezența a trei sau mai multe surse de timp ar permite rețelei să mențină timp precis chiar dacă unul dintre maeștrii primari eșuează. În mod ideal, serverele NTP ar fi amplasate în trei locații geografice diferite. Acest grup de maeștri primari ar fi sursa de timp pentru întreprindere. Aceștia ar fi considerați maeștri ascunși, deoarece ar oferi servicii numai serverelor de strat secundar. Această configurație ar permite acelor servere să ofere timp masterelor secundare colocate care oferă de fapt servicii unei organizații. Masterii principali rămân ascunși și sunt accesați doar de infrastructura NTP care oferă servicii în altă parte. Acest lanț de aprovizionare ar trebui să vă permită să furnizați ora precisă în întreaga organizație și să aveți mai multe surse care să confirme o sursă de timp exactă.
Locațiile care au mai multe dispozitive care trebuie sincronizate cu timpul pot adăuga servere suplimentare Stratum 2 sau Stratum 3 și puneți-i pe aceștia să se bazeze pe masterii secundari, precum și unul pe celălalt, pentru a distribui în continuare încărcătura pe un sistem și furnizarea de servicii unui grup mai mare de clienți NTP.
Prin configurarea unui serviciu NTP intern la ultima revizuire a codului stabil și a standardizării utilizării acestuia, viabilitatea atacurilor de rețea bazate pe timp sau a proceselor care sunt dependente de timp sunt mai greu de cooptat. Identificarea ordinii evenimentelor într-un compromis devine mai ușoară, deoarece momentele din jurnale pot fi acum sisteme de înregistrare. Pentru forțele de ordine și alte agenții de anchetă, serviciile NTP precise pot fi foarte constructive în evaluarea probelor și în secvențierea unui lanț de evenimente.
Încheierea și privirea în față
Pe măsură ce atacurile devin mai sofisticate, echipa noastră de analiști de rețea de la CERT găsește din ce în ce mai multe servicii orientate către internet care nu sunt bine implementate într-o rețea. Langston a scris în postarea sa recentă despre cele mai bune practici DNS, multe dintre aceste servicii constituie fundamentul pentru securitatea și funcționarea aplicațiilor de rețea interne și externe.
Acesta este cel mai recent dintr-o serie de postări pe blog care oferă cele mai bune practici privind aceste structuri fundamentale pentru a ajuta agențiile guvernamentale și alte întreprinderi să abordeze sursele ascunse de vulnerabilități din cadrul rețelelor lor. Conducătorul echipei noastre, Rachel Kartch, a publicat prima postare din această serie, Atacuri de refuz al serviciului distribuite: patru bune practici pentru prevenire și răspuns.