Skip to main content
  1. Concetti/

NTP Security - Network Time Protocol e Sicurezza Temporale

·6 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Mappa Globale
#

Cosa fa
#

NTP (Network Time Protocol) sincronizza i clock di tutti i dispositivi della rete su una fonte temporale comune. Usa UDP porta 123. Senza NTP, ogni dispositivo ha il proprio orologio che deriva nel tempo, rendendo impossibile correlare eventi di sicurezza e rompendo protocolli che dipendono dal tempo come Kerberos.

TL;DR
#

NTP e' invisibile quando funziona. Diventa critico quando viene attaccato o mal configurato. Due impatti principali per la security:

  1. Senza NTP corretto - i log di 10 macchine diverse non sono correlabili, il SIEM non puo' ordinare gli eventi, la forensics post-incidente diventa un puzzle impossibile
  2. Con NTP attaccato - Kerberos smette di funzionare, i certificati TLS risultano expired, tutta l'infrastruttura di autenticazione collassa

Perche' NTP e' critico per la Security
#

Log e Correlazione SIEM
#

Il SIEM correla eventi da sorgenti eterogenee (firewall, endpoint, server, applicazioni) ordinandoli nel tempo. Se gli orologi di queste sorgenti sono sfasati anche di pochi minuti, la correlazione produce falsi positivi e falsi negativi.

Scenario: un attaccante esegue lateral movement tra tre server in 2 minuti. Se il clock del server A e' indietro di 8 minuti rispetto al server B, il SIEM vede gli eventi in ordine sbagliato e non li correla come un unico attacco.

Important

SIEM come Wazuh e Splunk richiedono timestamp sincronizzati per funzionare correttamente. Il drift accettabile e' in genere sotto i 500ms. Piu' di qualche secondo inizia a creare problemi di correlazione.

Kerberos e la Finestra di 5 Minuti
#

Kerberos usa i timestamp come difesa contro il replay attack: un ticket Kerberos vale solo se il timestamp e' entro 5 minuti dall'orologio del server. Oltre i 5 minuti (skew), il ticket viene rifiutato come potenzialmente replayed.

Skew del clockImpatto Kerberos
< 5 minutiFunziona normalmente
5 minuti esattiSoglia limite - ticket accettati marginalmente
> 5 minutiTutti i ticket rifiutati - autenticazione AD impossibile
> 15 minutiAmbiente di fatto inutilizzabile

Un attacco NTP che sposta il clock di un domain controller o di un client di 6 minuti puo' bloccare l'intero accesso a un'infrastruttura Windows.

TLS e Validita' dei Certificati
#

I certificati X.509 hanno campi Not Before e Not After. Se il clock del client e' nel futuro, un certificato valido appare come non ancora valido. Se e' nel passato, un certificato scaduto da anni appare come valido.

Dev parallel: Come un sistema di event-sourcing distribuito dove i microservizi non hanno un clock sincronizzato: gli eventi arrivano fuori ordine al message broker, la ricostruzione dello stato dell'aggregato e' corrotta. NTP per i dispositivi di rete e' esattamente la sincronizzazione degli orologi che garantisce l'ordine causale degli eventi nel tuo sistema Kafka/RabbitMQ.


Attacchi NTP
#

NTP Amplification Attack
#

L'NTP Amplification e' un attacco DDoS di tipo reflection. Il principio e' identico agli altri reflected DDoS (DNS, Memcached): l'attaccante spofa l'IP della vittima come sorgente delle richieste, i server NTP rispondono alla vittima con risposte molto piu' grandi delle richieste.

Il vettore specifico NTP e' il comando monlist (o MON_GETLIST): restituisce gli ultimi 600 client che si sono connessi al server NTP. Una richiesta di ~100 byte genera una risposta di ~48.000 byte.

sequenceDiagram
  participant ATK as Charlie (Attaccante)
  participant NTP as Server NTP (internet)
  participant V as Franco (Vittima)

  Note over ATK: Spoofa l'IP della vittima come sorgente

  ATK->>NTP: UDP request monlist (src: IP vittima) ~100 byte
  ATK->>NTP: UDP request monlist (src: IP vittima) ~100 byte
  ATK->>NTP: (x1000 server NTP mal configurati)

  NTP-->>V: Response monlist ~48000 byte
  NTP-->>V: Response monlist ~48000 byte
  NTP-->>V: (x1000 response convergono sulla vittima)

  Note over V: Flood da ~48 GB/s su 100 MB request
  Note over V: Connessione satura - servizi inaccessibili

Fattore di amplificazione: fino a 600x. Un attaccante con 1 Gbps di banda puo' generare 600 Gbps sulla vittima.

Difesa: disabilitare monlist sui server NTP pubblici (aggiornare a versione recente di ntpd, abilitata per default da ntpd 4.2.7p26 in poi). I provider NTP moderni come pool.ntp.org hanno gia' disabilitato monlist.

NTP Spoofing
#

L'NTP Spoofing inietta risposte NTP false per alterare il clock di un client. L'obiettivo e' spostare il clock abbastanza da rompere i meccanismi di sicurezza time-dependent.

sequenceDiagram
  participant C as Client
  participant ATK as Charlie (MITM)
  participant NTP as Server NTP legittimo

  C->>ATK: NTP Request (Charlie e' in posizione MITM)
  ATK->>NTP: Forwarda la request (opzionale)
  ATK-->>C: Risposta NTP falsa: "sono le 3:00 AM del 2020-01-01"

  Note over C: Clock aggiornato a 3 anni fa
  Note over C: Certificati TLS "non ancora validi"
  Note over C: Kerberos ticket rifiutati - clock skew > 5 min
  Note over C: Log timestamp falsati - forensics compromessa

Effetti di un NTP Spoofing riuscito:

  • Certificati TLS risultano "not yet valid" o "expired" in base alla data falsa
  • Kerberos blocca tutte le autenticazioni (skew > 5 minuti)
  • I log registrano timestamp falsi - la timeline dell'incidente e' falsata
  • Sessioni SSL/TLS possono essere invalidate

Gerarchia Stratum
#

NTP usa una gerarchia a livelli chiamata stratum per indicare la distanza dalla sorgente primaria (atomic clock o GPS).

StratumDescrizioneEsempio
0Riferimento primario - non e' un server NTPAtomic clock (cesio), GPS, WWVB radio
1Server direttamente connesso a Stratum 0time.nist.gov, time.apple.com
2Sincronizzato da server Stratum 1Pool NTP pubblici (pool.ntp.org)
3-14Sincronizzati dal livello superioreServer NTP aziendali interni
15Ultimo livello accettabile
16Non sincronizzato / inutilizzabile

Architettura enterprise tipica:

  • 2-3 server Stratum 2 interni sincronizzati da Stratum 1 pubblici
  • Tutti i dispositivi aziendali puntano ai server Stratum 2 interni
  • Non esporre mai i dispositivi aziendali direttamente a internet per NTP

NTPsec e Network Time Security (NTS)
#

Il protocollo NTP classico (RFC 5905) non autentica il server: un client non puo' verificare che la risposta provenga da un server fidato. Questo rende facile lo spoofing.

NTPsec e' la versione moderna e sicura di ntpd, con una codebase ridotta (meno superficie di attacco) e varie mitigazioni. Sostituisce il vecchio ntpd su sistemi moderni.

NTS (Network Time Security, RFC 8915) aggiunge autenticazione TLS alle sessioni NTP:

  • Il client verifica il certificato del server NTP prima di accettare i timestamp
  • Impedisce l'NTP Spoofing: le risposte non autenticate vengono rifiutate
  • Usa TLS 1.3 per il key exchange, poi passa a AEAD per i pacchetti NTP
  • Supportato da server moderni: time.cloudflare.com, time.apple.com

Scenario Reale
#

Un incident response team viene chiamato dopo un blackout di Active Directory in un'azienda di 2000 dipendenti. Tutti gli utenti non riescono ad autenticarsi da un'ora. Il team verifica il domain controller: clock in anticipo di 18 minuti rispetto al tempo reale. Kerberos rifiuta tutti i ticket. L'attaccante aveva sfruttato un server NTP interno mal configurato (versione vecchia con monlist attiva e NTP MD5 auth disabilitata) per iniettare un timestamp falso via pacchetti UDP. Fix immediato: sincronizzare manualmente il DC con w32tm /resync /force. Fix permanente: aggiornare i server NTP interni a NTPsec, abilitare NTS, bloccare UDP 123 inbound dall'internet.


Collegato a
#

  • sso-kerberos-saml - Kerberos dipende criticamente da NTP per l'anti-replay
  • ddos-reflected - NTP Amplification e' una variante dei reflected DDoS
  • ssl-tls - i certificati TLS dipendono dal clock corretto per la validazione
  • siem-soar - SIEM richiede timestamp sincronizzati per la correlazione
  • logging - log con timestamp corretti sono la base della forensics

Related