Jak działa NTP
Prawo Segala stanowi
Mężczyzna z zegarkiem wie, która jest godzina . Człowiek posiadający dwa zegarki nigdy nie jest pewien.
Informatyk David L. Mills stworzył NTP we wczesnych latach 80., aby zsynchronizować zegary komputerowe ze standardowym czasem odniesienia. Od momentu powstania NTP, grupa wolontariuszy z projekt puli NTP utrzymywał duży, publicznie dostępny „wirtualny klaster serwerów czasu zapewniający niezawodną i łatwą w użyciu usługę NTP milionom klientów” na całym świecie dla wielu dystrybucji Linuksa i urządzeń sieciowych.
Jak szczegółowo opisano w NTP .org, NTP działa w sposób hierarchiczny, przechodząc z jednej warstwy do drugiej. Na przykład Stratum 0 służy jako zegar odniesienia i jest najdokładniejszym i najbardziej precyzyjnym serwerem czasu (np. zegary atomowe, zegary GPS i zegary radiowe .) Serwery Stratum 1 pobierają swój czas od serwerów Stratum 0 i tak dalej, aż do Stratum 15; Stratum 16 cl blokady nie są synchronizowane z żadnym źródłem. Czas na kliencie jest ustalany poprzez wymianę pakietów z co najmniej jednym serwerem warstwy. Pakiety te umieszczają znaczniki czasu w każdej wiadomości, a czas potrzebny na przesłanie wiadomości jest czynnikami w algorytmie ustalania konsensusu dla czasu, który powinien znajdować się na kliencie.
NTP może zapewnić dokładne źródło czasu poprzez konsensus z wiele serwerów wejściowych. Może również zidentyfikować, które dostępne serwery czasu są niedokładne. Jednym z wyzwań jest to, że NTP powstał w czasach, gdy społeczność internetowa była bardziej przyjazna. Podczas tworzenia NTP serwery NTP nie zajmowały się weryfikacją użytkowników. We wczesnych latach osiemdziesiątych powszechne było, że serwery NTP były publicznie dostępne jako zasoby, których deweloperzy mogli używać do rozwiązywania problemów i potwierdzania własnego rozwiązania NTP.
Standardowym protokołem NTP jest protokół User Datagram Protocol (UDP). Ta decyzja projektowa stworzyła możliwości nadużyć. Protokół UDP, który jest bezpołączeniowy, jest protokołem z największą starannością i dlatego jest bardziej podatny na fałszowanie i utratę pakietów niż protokół kontroli transmisji (TCP). Podczas gdy wolontariusze projektu puli NTP kontynuowali rozwój NTP, motywacja wielu administratorów sieci i właścicieli firm do łatania własnego sprzętu nie jest tak silna. Od samego początku protokół sieciowy NTP został zintegrowany z niezliczonymi systemami, z których wiele nie zostało poprawionych i może uruchamiać kod mający 20 lub więcej wersji starszych.
Ataki związane z lukami w zabezpieczeniach NTP
Cory Doctorow niedawno napisał o potencjalnym następstwie przestarzałego NTP dla Boing / Boing:
NTP to fakt, że praktycznie każdy komputer, z którym pracujesz, utrzymuje dokładny zegar, co jest funkcją tak fundamentalną dla funkcjonowania Internetu, którego nie można przecenić … Co więcej, luki w protokole NTP zmieniły wiele serwerów czasu w Internecie w mnożniki siły dla ataków Denial of Service, czyniąc z samych ataków karnych ataki niemal nie do powstrzymania .
Metoda stosowana w ostatnich atakach DDoS nie opiera się na lukach, ale na złej konfiguracji. Usługi NTP odpowiadają na zapytanie o listę monitorowanych serwerów. Pojedyncze małe żądanie ze sfałszowanym źródłem może wygenerować listę 600 serwerów i zostać wysłane do celu. Chociaż nie ma luki w zabezpieczeniach, kiedy setki lub tysiące tych serwerów jest przekierowywanych na nieświadomy cel, ofiary nie przejmują się semantyką problemu, który sprawia im ból; chcą tylko ulgi.
Synchronizacja czasu w systemach lub jej brak może być istotnym czynnikiem przyczyniającym się do powstawania luk, które mogą zagrozić podstawowym funkcjom systemu. Oprócz nadużyć NTP przyczyniających się do ataków DDoS, brak synchronizacji czasu w sieci stwarza okazję do ataków typu replay (tj. ataków z odtwarzaniem) obejmujących fałszywe lub wrogie powtarzające się opóźnienie autentycznej transmisji danych.
Na przykład atak typu replay może wystąpić, gdy użytkownik próbuje aby dostarczyć dowód tożsamości innemu użytkownikowi. Złośliwy aktor w środku przechwyciłby wiadomość i uniemożliwiłby jej dotarcie do zamierzonego celu. Następnie złośliwy użytkownik wysyła żądanie potwierdzenia tożsamości i dołącza skradziony dowód jako weryfikację. Jeśli czas nie jest zsynchronizowany, okno, w którym wymiana jest dozwolona, może zostać wydłużone poza to, co jest uważane za bezpieczne i pozwala na podstęp. W rezultacie ważnych użytkowników można oszukać, aby myśleli, że odnieśli sukces ly potwierdził tożsamość oszusta podającego się za legalnego użytkownika. Trzeba przyznać, że tego typu atak typu replay jest rzadki i niezwykle trudny do pomyślnego przeprowadzenia bez dostępu do sieci, ścieżki komunikacyjnej i skompromitowanej maszyny na tej ścieżce.
Wielu ekspertów ds. Bezpieczeństwa, takich jak Shaun Kelly , zauważyli, że protokół NTP był używany do manipulowania dziennikami i zmiany czasu w systemie komputerowym, zmieniając sekwencję zdarzeń.Gdy zegary nie są zsynchronizowane, analitykom sieciowym znacznie trudniej jest przeprowadzić korelację dzienników w różnych systemach. Manipulowanie protokołem NTP może znacznie utrudnić identyfikację działań sieciowych i sekwencji zdarzeń prowadzących do ataku.
Inne aplikacje, które byłyby zagrożone z powodu niewłaściwego czasu, obejmują szybki handel i kamery bezpieczeństwa. Wiele algorytmów szyfrowania zależnych od czasu, obejmujących wymianę kluczy i tokenów, jest również zagrożonych z powodu słabych punktów NTP.
Sprawdzone metody dotyczące protokołu NTP
Pozostała część tego posta zawiera szczegółowe informacje na temat najlepszych praktyk dotyczących konfigurowania własnego serwera NTP i żądania publicznego serwera NTP.
Użyj publicznego NTP dla zewnętrznych hostów. Jeśli przedsiębiorstwo tworzy możliwości, usługi lub inne wbudowane platformy, które mają być wdrożone poza przedsiębiorstwem, administratorzy sieci mogą rozważyć zażądanie publicznego serwera NTP z puli dostępnych serwerów wspomnianej wcześniej.
Należy zauważyć, że większość publicznych serwerów NTP określa reguły zaangażowania. Jeśli przedsiębiorstwo ma wiele urządzeń w przedsiębiorstwie, które będą używać NTP, sensowne byłoby skonfigurowanie własnej hierarchii do synchronizacji zamiast konkurowania o dostęp do publicznie dostępnych serwerów.
Skonfiguruj własny wewnętrzny Hierarchiczna usługa NTP dla Twojej sieci. Istnieje możliwość zakupu urządzeń Stratum 1 lub Stratum 0 NTP do użytku wewnętrznego za mniej niż koszt typowego serwera. Możliwe jest również skonfigurowanie prywatnego serwera NTP bardzo niskim kosztem. Możliwość skonfigurowania komercyjnego serwera NTP z półki (COTS) została udowodniona w niedawnych próbach skonfigurowania komputera Raspberry Pi jako serwera Stratum-1. Jeśli zdecydujesz się skonfigurować własną, weź pod uwagę następujące sprawdzone metody:
- Standaryzuj na czas UTC. W przedsiębiorstwie należy ustandaryzować wszystkie systemy zgodnie z uniwersalnym czasem koordynowanym (UTC). Standaryzacja na UTC upraszcza korelację dzienników w organizacji i ze stronami zewnętrznymi, niezależnie od strefy czasowej, w której znajduje się synchronizowane urządzenie.
- Zabezpieczanie sieciowej usługi czasu. Ogranicz komendy, których można używać na serwerach warstwy. Nie zezwalaj na publiczne zapytania serwerów warstwy. Zezwalaj tylko znanym sieciom / hostom na komunikację z odpowiednimi serwerami warstwy.
- Rozważ biznesową potrzebę kryptografii. Wielu administratorów próbuje zabezpieczyć swoje sieci za pomocą szyfrowanej komunikacji i szyfrowanego uwierzytelniania. Wprowadziłbym tutaj uwagę ostrzegawczą, ponieważ chociaż istnieją usługi kryptograficzne związane z NTP do zabezpieczania komunikacji NTP, użycie szyfrowania wprowadza więcej źródeł problemów, takich jak wymaganie zarządzania kluczami, a także wymaga większego obciążenia obliczeniowego.
- Pamiętaj o prawie Segala. Idealnie byłoby mieć trzy lub więcej serwerów Stratum 0 lub Stratum 1 i używać tych serwerów jako głównych serwerów głównych. Pamiętaj o prawie Segala: posiadanie dwóch NTP serwery utrudniają określenie, który z nich jest dokładny. Dwa serwery Stratum 0 zapewniłyby dokładniejszą sygnaturę czasową, ponieważ używają źródła czasu, które jest uważane za ostateczne.
Obecność trzech lub więcej źródeł czasu pozwoliłaby sieci na utrzymanie dokładny czas, nawet jeśli jeden z głównych mistrzów zawiedzie. Idealnie byłoby, gdyby serwery NTP znajdowały się w trzech różnych geograficznie lokalizacjach. Ta grupa głównych mistrzów byłaby źródłem czasu dla przedsięwzięcia. Zostaliby uznani za ukrytych mistrzów, ponieważ świadczą usługi tylko dla serwerów warstwy drugorzędnej. Taka konfiguracja umożliwiłaby tym serwerom dostarczenie czasu do kolokowanych drugorzędnych serwerów głównych, które faktycznie świadczą usługi na rzecz organizacji. Główne serwery główne pozostają ukryte i dostęp do nich ma tylko infrastruktura NTP, która świadczy usługi w innym miejscu. Ten łańcuch dostaw powinien umożliwiać dostarczanie dokładnego czasu w całej organizacji i mieć wiele źródeł potwierdzających dokładne źródło czasu.
Lokalizacje, w których jest więcej urządzeń wymagających synchronizacji czasu, mogą dodawać dodatkowe serwery Stratum 2 lub Stratum 3 i pozwól im polegać na drugorzędnych nadrzędnych, jak również na sobie nawzajem, w celu dalszego rozłożenia obciążenia w systemie i świadczenia usług większej grupie klientów NTP.
Konfigurując wewnętrzną usługę NTP w najnowszej wersji stabilnego kodu i standaryzacji jego wykorzystania, trudniej jest dokooptować wykonalność ataków sieciowych opartych na czasie lub procesów zależnych od czasu. Identyfikacja kolejności zdarzeń w kompromisie staje się łatwiejsza, ponieważ czasy w dziennikach mogą być teraz systemami zapisu. Dla organów ścigania i innych agencji śledczych dokładne usługi NTP mogą być bardzo konstruktywne w ocenie dowodów i sekwencjonowaniu łańcucha zdarzeń.
Podsumowanie i patrzenie w przyszłość
W miarę jak ataki stają się coraz bardziej wyrafinowane, nasz zespół analityków sieciowych w CERT coraz częściej znajduje usługi internetowe, które nie są dobrze wdrożone w sieci. Jak Mark Langston napisał w swoim niedawnym poście na temat najlepszych praktyk DNS, że wiele z tych usług stanowi podstawę bezpieczeństwa i działania aplikacji sieciowych wewnętrznych i zewnętrznych.
Jest to najnowszy z serii postów na blogu, w których przedstawiono najlepsze praktyki w tych fundamentalnych strukturach, aby pomóc agencjom rządowym i innym przedsiębiorstwom w usuwaniu ukrytych źródeł luk w ich sieciach. Kierowniczka naszego zespołu, Rachel Kartch, opublikowała pierwszy post z tej serii, Distributed Denial of Service Attacks: Four Best Practices for Prevention and Response.