Jak NTP funguje
Segalův zákon uvádí
Muž s hodinkami ví, kolik je hodin . Muž se dvěma hodinkami si nikdy není jistý.
Počítačový vědec David L. Mills vytvořil NTP počátkem 80. let, aby synchronizoval hodiny počítače se standardním časovým odkazem. Od vzniku NTP skupina dobrovolníků s projekt fondu NTP udržoval velký, veřejně dostupný „virtuální klastr časových serverů poskytujících spolehlivou snadno použitelnou službu NTP pro miliony klientů“ po celém světě pro mnoho linuxových distribucí a síťových zařízení.
Jak je podrobně popsáno na NTP .org, NTP funguje hierarchicky a předává čas z jedné vrstvy do druhé. Například Stratum 0 slouží jako referenční hodiny a je nejpřesnějším a nejpřesnějším časovým serverem (např. atomové hodiny, hodiny GPS a rádiové hodiny) .) Servery Stratum 1 berou čas od serverů Stratum 0 atd. Až do Stratum 15; Stratum 16 cl ocks nejsou synchronizovány s žádným zdrojem. Čas na klientovi je stanoven prostřednictvím výměny paketů s jedním nebo více stratovými servery. Tyto pakety dávají časová razítka na každou zprávu a čas potřebný k přenosu zpráv jsou faktory v algoritmu pro stanovení konsensu pro čas, který by měl být na klientovi.
NTP může poskytnout přesný zdroj času prostřednictvím konsensu s více vstupních serverů. Může také určit, které dostupné časové servery jsou nepřesné. Jednou výzvou je, že NTP bylo vybudováno v době, kdy byla internetová komunita přátelštější. Během vzniku NTP se servery NTP nezabývaly ověřováním uživatelů. Na začátku 80. let bylo běžné, že servery NTP byly veřejně dostupné, protože vývojáři mohli použít řešení problémů a potvrdit své vlastní řešení NTP.
Standardní protokol pro NTP je User Datagram Protocol (UDP). Toto rozhodnutí o návrhu vytvořilo příležitosti ke zneužití. UDP, které je bez připojení, je protokolem nejlepšího úsilí, a proto je náchylnější ke spoofingu a ztrátě paketů než Transmission Control Protocol (TCP). Zatímco dobrovolníci projektu NTP pool pokračovali v prosazování NTP, motivace mnoha správců sítí a vlastníků firem k opravě vlastního vybavení není tak silná. Od svého založení byl síťový protokol NTP integrován do bezpočtu systémů, z nichž mnohé nebyly opraveny a mohl by v nich být spuštěn kód starší než 20 revizí.
Útoky související s chybami zabezpečení NTP
Cory Doctorow nedávno napsal o potenciálním spadu zastaralého NTP pro Boing / Boing:
NTP je způsob, jakým prakticky každý počítač, se kterým komunikujete, udržuje své přesné hodiny, což je funkce tak zásadní pro fungování internetu, které nelze „přeceňovat … A co víc, zranitelnosti v NTP přeměnily mnoho časových serverů na Internetu na multiplikátory pro útoky typu Denial of Service, takže pouze trestaly útoky na téměř nezastavitelné .
Metoda používaná pro nedávné útoky DDoS se nespoléhá na chyby zabezpečení, ale na špatnou konfiguraci. Služby NTP reagují na požadavek na dotaz na seznam monitorovaných serverů. Jeden malý požadavek se zfalšovaným zdrojem může vygenerovat seznam 600 serverů a být odeslán na cíl. Přestože neexistuje žádná zranitelnost, když jsou stovky nebo tisíce těchto serverů přesměrovány na nevědomý cíl, obětem nezáleží na sémantice problému, který jim způsobuje bolest; chtějí jen úlevu.
Časová synchronizace v systémech nebo jejich nedostatek může být významným faktorem přispívajícím k zranitelnostem, které mohou ohrozit základní funkce systému. Kromě zneužívání NTP přispívajícího k DDoS útokům, nedostatek synchronizace času v síti vytváří příležitost pro útoky přehrávání (tj. útoky přehrávání) zahrnující falešné nebo zlomyslné opakované zpoždění autentického přenosu dat.
Například útok opakování může nastat, když se uživatel pokusí poskytnout důkaz totožnosti jinému uživateli. Zlovolný herec uprostřed by zprávu zachytil a zabránil jí dostat se k zamýšlenému cíli. Škodlivý uživatel poté odešle žádost o potvrzení identity a jako odcizení obsahuje odcizený důkaz. Pokud čas není synchronizován, okno, které je povolena výměna, může být zvýšeno nad rámec toho, co je považováno za bezpečné a umožňuje úskok. Výsledkem je, že platní uživatelé mohou být podvedeni, aby si mysleli, že mají úspěch ly potvrdila totožnost podvodníka vydávajícího se za legitimního uživatele. Upřímně řečeno, tento typ přehrávacího útoku je neobvyklý a extrémně náročný na úspěšné provedení bez přístupu k síti, komunikační cestě a kompromitovanému stroji v této cestě.
Mnoho bezpečnostních odborníků, například Shaun Kelly , poznamenali, že NTP se používá k manipulaci s protokoly a ke změně času v počítačovém systému, čímž se mění sled událostí.Když hodiny nejsou synchronizovány, mají síťoví analytici mnohem těžší provádět korelaci protokolů napříč různými systémy. Manipulace s NTP může ztížit identifikaci síťových aktivit a sledu událostí vedoucích k útoku.
Mezi další aplikace, které by byly ohroženy, protože čas nefunguje správně, patří vysokorychlostní obchodní a bezpečnostní kamery. Kvůli slabostem NTP je také ohroženo mnoho šifrovacích algoritmů citlivých na čas zahrnujících výměnu klíčů a tokeny.
Doporučené postupy pro NTP
Zbývající část tohoto příspěvku popisuje doporučené postupy pro konfiguraci vlastního serveru NTP a vyžádání veřejného serveru NTP.
Použít veřejné NTP pro externí hostitele. budování schopností, služeb nebo jiných integrovaných platforem, které mají být nasazeny mimo podnik, mohou správci sítě zvážit požadavek na veřejný server NTP z výše zmíněné skupiny dostupných serverů.
e důležité si uvědomit, že většina veřejných serverů NTP určuje pravidla zapojení. Pokud má podnik v rámci podniku více zařízení, která budou používat NTP, mělo by smysl nastavit vlastní hierarchii, se kterou se budou synchronizovat, místo aby soutěžily o přístup k veřejně dostupným serverům.
Nakonfigurujte si vlastní interní Hierarchická služba NTP pro vaši síť. Je možné zakoupit NTP zařízení Stratum 1 nebo Stratum 0 pro interní použití za méně než náklady na typický server. Je také možné nastavit soukromý NTP server za velmi nízkou cenu. Proveditelnost nastavení komerčního NTP serveru COTS dokazuje nedávná snaha nakonfigurovat počítač Raspberry Pi jako server Stratum-1. Pokud se rozhodnete nakonfigurovat své vlastní, zvažte následující osvědčené postupy:
- Standardizovat na čas UTC. V rámci podniku standardizujte všechny systémy na koordinovaný světový čas (UTC). Standardizace na UTC zjednodušuje korelaci protokolů v organizaci a s externími stranami bez ohledu na to, v jakém časovém pásmu se synchronizované zařízení nachází.
- Zabezpečení síťové časové služby. Omezte příkazy, které lze použít na stratových serverech. Nepovolit veřejné dotazy stratových serverů. Povolte pouze známým sítím / hostitelům komunikovat se svými příslušnými stratovými servery.
- Zvažte obchodní potřebu kryptografie. Mnoho správců se snaží zabezpečit své sítě šifrovanou komunikací a šifrovaným ověřováním. Zde bych zavedl poznámku opatrnosti, protože ačkoliv existují kryptografické služby spojené s NTP pro zabezpečení komunikace NTP, použití šifrování přináší více zdrojů pro problémy, jako je vyžadování správy klíčů, a také vyžaduje vyšší výpočetní režii.
- Pamatujte si Segalův zákon. V ideálním případě by fungovalo mít tři nebo více serverů Stratum 0 nebo Stratum 1 a používat tyto servery jako primární mistři. Pamatujte na Segalův zákon: mít dva NTP servery ztěžují zjištění, který z nich je přesný. Dva servery Stratum 0 by poskytovaly přesnější časové razítko, protože používají zdroj času, který je považován za definitivní.
Přítomnost tří nebo více zdrojů času by umožnila síti udržovat přesný čas, i když některý z hlavních pánů selže. V ideálním případě by servery NTP byly umístěny na třech geograficky odlišných místech. Tato skupina primárních mistrů by byla zdrojem času pro podnik. Byli by považováni za skryté pány, protože by poskytovali služby pouze sekundárním stratum serverům. Tato konfigurace by těmto serverům umožnila poskytovat čas přiděleným sekundárním masterům, kteří ve skutečnosti poskytují služby organizaci. Primární předlohy zůstávají skryté a jsou přístupné pouze prostřednictvím infrastruktury NTP, která poskytuje služby jinde. Tento dodavatelský řetězec by vám měl umožnit poskytnout přesný čas napříč vaší organizací a mít více zdrojů potvrzujících přesný zdroj času.
Místa, která mají více zařízení potřebujících synchronizaci času, mohou přidat další servery Stratum 2 nebo Stratum 3 a nechte je spoléhat na sekundární mastery i na sebe navzájem, aby dále distribuovali zátěž systému a poskytovali služby větší skupině klientů NTP.
Nastavením interní služby NTP na nejnovější revizi stabilního kódu a standardizace jeho použití je těžší kooptovat životaschopnost časově závislých síťových útoků nebo procesů závislých na čase. Identifikace pořadí událostí v kompromisu se stává jednodušší, protože časy v protokolech nyní mohou být systémy záznamu. Pro orgány činné v trestním řízení a další vyšetřovací agentury mohou být přesné služby NTP velmi konstruktivní při hodnocení důkazů a sekvenování řetězce událostí.
Zabalení a pohled dopředu
Jak se útoky stávají sofistikovanějšími, náš tým síťových analytiků v CERT stále častěji nalézá internetové služby, které nejsou v síti dobře nasazeny. Langston napsal ve svém nedávném příspěvku o doporučených postupech DNS, mnoho z těchto služeb tvoří základ pro zabezpečení a provoz interních a externích síťových aplikací.
Toto je nejnovější z řady blogových příspěvků, které nabízejí nejlepší postupy v těchto základních strukturách, které pomáhají vládním agenturám a dalším podnikům řešit skryté zdroje zranitelných míst v jejich sítích. Vedoucí našeho týmu, Rachel Kartch, publikovala první příspěvek v této sérii Distribuované útoky odmítnutí služby: Čtyři nejlepší postupy pro prevenci a reakci.