Come funziona NTP
La legge di Segal afferma
Un uomo con un orologio sa che ore sono . Un uomo con due orologi non è mai sicuro.
Linformatico David L. Mills ha creato NTP allinizio degli anni 80 per sincronizzare gli orologi dei computer con un riferimento orario standard. Dallinizio di NTP, un gruppo di volontari con il progetto del pool NTP ha mantenuto un grande “cluster virtuale di timeserver disponibile al pubblico che fornisce un servizio NTP affidabile e facile da usare per milioni di clienti” in tutto il mondo per molte distribuzioni Linux e appliance di rete.
Come descritto in dettaglio su NTP .org, NTP funziona in modo gerarchico passando il tempo da uno strato allaltro. Ad esempio, Stratum 0 funge da orologio di riferimento ed è il server dellora più accurato e con la massima precisione (ad esempio, orologi atomici, orologi GPS e orologi radio .) I server Stratum 1 prendono il loro tempo dai server Stratum 0 e così via fino a Stratum 15; Stratum 16 cl Gli ock non sono sincronizzati con nessuna origine. Il tempo su un client viene stabilito tramite uno scambio di pacchetti con uno o più server stratum. Questi pacchetti inseriscono i timestamp su ogni messaggio e il tempo impiegato per trasmettere i messaggi sono fattori nellalgoritmo per stabilire il consenso per il tempo che dovrebbe essere sul client.
NTP può fornire una fonte temporale accurata attraverso il consenso con più server di input. Può anche identificare quali time server disponibili sono imprecisi. Una sfida è che NTP è stato costruito in un periodo in cui la comunità Internet era più amichevole. Durante lavvio di NTP, i server NTP non erano interessati alla verifica dellutente. Allinizio degli anni 80, era comune che i server NTP fossero pubblicamente disponibili come risorsa che gli sviluppatori potevano utilizzare per risolvere e confermare la propria soluzione NTP.
Il protocollo standard per NTP è UDP (User Datagram Protocol). Questa decisione progettuale ha creato opportunità di abuso. UDP, che è senza connessione, è un protocollo best-effort e, quindi, più suscettibile allo spoofing e alla perdita di pacchetti rispetto al protocollo TCP (Transmission Control Protocol). Sebbene i volontari del progetto di pool NTP abbiano continuato a promuovere NTP, la motivazione per molti amministratori di rete e imprenditori a riparare i propri dispositivi non è così forte. Fin dal suo inizio, il protocollo di rete NTP è stato integrato in innumerevoli sistemi, molti dei quali non sono stati patchati e potrebbero eseguire codice che ha 20 revisioni o più.
Attacchi relativi alle vulnerabilità NTP
Cory Doctorow ha recentemente scritto sulla potenziale ricaduta di NTP obsoleti per Boing / Boing:
NTP è il modo in cui virtualmente ogni computer con cui interagisci mantiene il proprio orologio preciso, che è una funzione così fondamentale per il funzionamento di Internet che non può essere sopravvalutato … Inoltre, le vulnerabilità in NTP avevano trasformato i molti server temporali di Internet in moltiplicatori di forza per attacchi Denial of Service, trasformando gli attacchi semplicemente punitivi in attacchi quasi inarrestabili .
Il metodo utilizzato per i recenti attacchi DDoS non si basa su vulnerabilità ma su una cattiva configurazione. I servizi NTP rispondono a una richiesta di query per un elenco di server monitorati. Una singola piccola richiesta con unorigine falsificata può generare un elenco di 600 server ed essere inviata a una destinazione. Anche se non vi è alcuna vulnerabilità, quando centinaia o migliaia di questi server vengono reindirizzati a un obiettivo inconsapevole, alle vittime non interessa la semantica del problema che causa loro dolore; vogliono solo sollievo.
La sincronizzazione dellora sui sistemi, o la sua mancanza, può essere un fattore che contribuisce in modo significativo alle vulnerabilità che possono compromettere le funzioni di base di un sistema. Oltre allabuso di NTP che contribuisce agli attacchi DDoS, manca della sincronizzazione dellora su una rete crea unopportunità per attacchi di replay (cioè attacchi di riproduzione) che coinvolgono il ritardo ripetuto falso o malevolo di una trasmissione di dati autentica.
Ad esempio, un attacco di replay può verificarsi quando un utente tenta per fornire una prova dellidentità a un altro utente. Un malintenzionato nel mezzo intercetterebbe il messaggio e gli impedirebbe di raggiungere la destinazione prevista. Lutente malintenzionato invia quindi una richiesta di conferma dellidentità e include la prova del furto come convalida. Se il il tempo non è sincronizzato, la finestra in cui è consentito lo scambio può essere aumentata oltre ciò che è considerato sicuro e consente il sotterfugio. Di conseguenza, gli utenti validi possono essere indotti a pensare di avere successo ha confermato lidentità di un impostore che si finge un utente legittimo. In tutta onestà, questo tipo di attacco replay è raro ed estremamente impegnativo da eseguire con successo senza accesso alla rete, al percorso di comunicazione e a una macchina compromessa in quel percorso.
Molti esperti di sicurezza, come Shaun Kelly , hanno notato che NTP è stato utilizzato per manipolare i log e cambiare lora su un sistema informatico, alterando la sequenza degli eventi.Quando gli orologi non sono sincronizzati, gli analisti di rete hanno molte più difficoltà a eseguire la correlazione dei log su sistemi disparati. La manipolazione di NTP può rendere lidentificazione delle attività di rete e la sequenza di eventi che portano a un attacco molto più difficile da individuare.
Altre applicazioni che sarebbero a rischio perché il tempo non funziona correttamente includono il trading ad alta velocità e le telecamere di sicurezza. Anche molti algoritmi di crittografia sensibili al fattore tempo che coinvolgono scambi di chiavi e token sono a rischio a causa di debolezze NTP.
Best practice per NTP
Il resto di questo post descrive in dettaglio le best practice per configurare il proprio server NTP e richiedere un server NTP pubblico.
Usa NTP pubblico per host esterni. Se unazienda sta costruendo capacità, servizi o altre piattaforme incorporate che devono essere implementate al di fuori dellazienda, gli amministratori di rete potrebbero prendere in considerazione la richiesta di un server NTP pubblico dal pool di server disponibili menzionato in precedenza.
È importante notare che la maggior parte dei server NTP pubblici specifica le regole di ingaggio. Se unazienda dispone di più dispositivi allinterno dellazienda che utilizzeranno NTP, avrebbe senso impostare la propria gerarchia con cui sincronizzarsi invece di competere per laccesso ai server disponibili pubblicamente.
Configura il tuo interno Servizio gerarchico NTP per la tua rete. È possibile acquistare appliance NTP Stratum 1 o Stratum 0 da utilizzare internamente a un costo inferiore a quello di un server tipico. È anche possibile configurare un server NTP privato a un costo molto basso. La fattibilità della creazione di un server NTP commerciale off the shelf (COTS) è dimostrata in un recente tentativo di configurare un computer Raspberry Pi come server Stratum-1. Se decidi di configurare tu stesso, considera le seguenti best practice:
- Standardizza in base allora UTC. Allinterno di unazienda, standardizza tutti i sistemi in base al tempo universale coordinato (UTC). La standardizzazione in UTC semplifica la correlazione dei registri allinterno dellorganizzazione e con le parti esterne, indipendentemente dal fuso orario in cui si trova il dispositivo da sincronizzare.
- Protezione del servizio orario di rete. Limita i comandi che possono essere utilizzati sui server stratum. Non consentire query pubbliche dei server stratum. Consentire solo a reti / host noti di comunicare con i rispettivi server di strato.
- Considera le esigenze aziendali di crittografia. Molti amministratori cercano di proteggere le proprie reti con comunicazioni crittografate e autenticazione crittografata. Vorrei introdurre una nota di cautela qui perché sebbene ci siano servizi crittografici associati a NTP per proteggere le comunicazioni NTP, luso della crittografia introduce più fonti di problemi, come la richiesta di gestione delle chiavi, e richiede anche un sovraccarico computazionale più elevato.
- Ricorda la legge di Segal. Idealmente, funzionerebbe per avere tre o più server Stratum 0 o Stratum 1 e utilizzare quei server come master principali. Ricorda la legge di Segal: avere due NTP server rende difficile sapere quale sia preciso. Due server Stratum 0 fornirebbero un timestamp più accurato perché utilizzano unorigine ora considerata definitiva.
La presenza di tre o più origini ora consentirebbe alla rete di mantenere tempo preciso anche se uno dei master primari fallisce. Idealmente, i server NTP dovrebbero trovarsi in tre posizioni geograficamente diverse. Questo gruppo di maestri primari sarebbe la fonte di tempo per limpresa. Sarebbero considerati maestri nascosti perché fornirebbero servizi solo ai server di strato secondario. Questa configurazione consentirebbe a quei server di fornire tempo ai master secondari collocati che stanno effettivamente fornendo servizi a unorganizzazione. I master primari rimangono nascosti e sono accessibili solo dallinfrastruttura NTP che fornisce servizi altrove. Tale catena di fornitura dovrebbe consentirti di fornire un orario preciso in tutta la tua organizzazione e disporre di più fonti che confermano unorigine temporale precisa.
Le posizioni che hanno più dispositivi che necessitano di sincronizzare lora possono aggiungere ulteriori server Stratum 2 o Stratum 3 e fare in modo che si affidino ai master secondari e luno allaltro per distribuire ulteriormente il carico su un sistema e fornire servizi a un gruppo più ampio di client NTP.
Impostando un servizio NTP interno sullultima revisione di codice stabile e standardizzarne lutilizzo, la fattibilità di attacchi di rete basati sul tempo o processi che dipendono dal tempo sono più difficili da cooptare. Lidentificazione dellordine degli eventi in una compromissione diventa più facile perché i tempi nei log possono ora essere sistemi di registrazione. Per le forze dellordine e altre agenzie investigative, servizi NTP accurati possono essere molto costruttivi nella valutazione delle prove e nel sequenziare una catena di eventi.
Conclusione e sguardo al futuro
Man mano che gli attacchi diventano più sofisticati, il nostro team di analisti di rete al CERT trova sempre più servizi connessi a Internet che non sono ben distribuiti allinterno di una rete. Langston ha scritto nel suo recente post sulle best practice DNS, molti di questi servizi costituiscono la base per la sicurezza e il funzionamento di applicazioni di rete interne ed esterne.
Questo è lultimo di una serie di post di blog che offrono il meglio pratiche su queste strutture fondamentali per aiutare le agenzie governative e altre imprese ad affrontare le fonti nascoste di vulnerabilità allinterno delle loro reti. Rachel Kartch, responsabile del nostro team, ha pubblicato il primo post di questa serie, Attacchi di tipo Distributed Denial of Service: Four Best Practices for Prevention and Response.