Elaborato guida luigi n46-766 - Corso di Laurea in Ingegneria

Transcript

Elaborato guida luigi n46-766 - Corso di Laurea in Ingegneria
Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Elaborato finale in Reti di Calcolatori
Tecnologie per la Sicurezza di Rete:
Un attacco DDos ad infrastruttura Cloud
Anno
no Accademico 2013/2014
Candidato:
Luigi Guida
matr. N46000766
1
2
Indice
Introduzione .................................................................................................................... 4
Capitolo 1 – Denial of Service ........................................................................................ 5
1.1
Generalità ............................................................................................................ 5
1.2
Tipologie ............................................................................................................. 6
Capitolo 2 – Attacco a CloudFlare................................................................................ 10
2.1
Panoramica........................................................................................................ 10
2.2
Cos’è CloudFlare .............................................................................................. 10
2.3
Network Time Protocol..................................................................................... 12
2.3.1
Caratteristiche del protocollo ....................................................................... 14
2.3.2
Descrizione del protocollo ............................................................................ 15
2.3.3
Funzionamento del Protocollo ...................................................................... 16
2.4
Attacco DDoS NTP Amplification da 400Gbps ............................................... 18
2.4.1
Denial-of-Service Riflesso Amplificato ......................................................... 18
2.4.2
NTP Amplification......................................................................................... 20
2.4.3
Dinamica dell’attacco ................................................................................... 23
2.4.4
Sistemi difensivi in risposta all’attacco ........................................................ 25
Capitolo 3 – Prevenzione .............................................................................................. 27
3.1
Contrastare attacchi DDos Ntp ....................................................................... 27
Conclusioni ................................................................................................................... 29
Appendice A ................................................................................................................. 31
Bibliografia e Sitografia ................................................................................................ 35
3
Introduzione
La sicurezza delle reti è da sempre uno degli obiettivi principali che le
organizzazioni, sia pubbliche che private, di qualsiasi ambito, si pongono. “Essere
sicuri” vuol dire essere in grado di fronteggiare qualsiasi evento e, nel caso
specifico, riuscire a garantire l’integrità e la continuità dei processi gestiti dai
sistemi nei confronti degli attacchi informatici, qualsiasi sia la loro natura. In
misura sempre maggiore, l’attenzione nella sicurezza delle reti è focalizzata sullo
sviluppo delle proprie infrastrutture, alle quali viene affidata la funzione di
protezione dai possibili assalti di malintenzionati. Con l’avvento di nuovi scenari,
che vengono a crearsi con la continua evoluzione delle reti e nel caso specifico di
Internet, risultano necessari dei cambiamenti, anche per quanto concerne la
gestione sicura delle reti. Oltre all’ausilio delle consuete apparecchiature, di uso
largamente diffuso, quali firewall, sistemi di rilevamento IDS (Intrusion Detection
System) e di prevenzione delle intrusioni IPS (Intrusion Prevention System), sta
diventando sempre più di uso comune, da parte degli utenti della rete, di affidarsi
per la propria sicurezza a soggetti terzi, aziende cioè, che sviluppano sistemi di
sicurezza
all’avanguardia
servendosi
di
infrastrutture
proprietarie
e
tecnologicamente avanzate. Proprio una di tali aziende si è resa protagonista
dell’attacco DoS che verrà esposto.
Nella prima parte dell’elaborato si definirà cos’è un attacco DoS e inoltre,
verranno descritte le varie tipologie di questo attacco.
In seguito, si esporranno, in primo luogo, alcune informazioni inerenti l’attacco
scelto come oggetto del lavoro svolto. Particolare attenzione verrà rivolta al CDN
che ha subito tale violazione e soprattutto alle caratteristiche principali del
protocollo NTP, dove la sua vulnerabilità ha rivestito un ruolo fondamentale. Si
passerà poi, alla descrizione dettagliata dell’attacco fornendo informazioni, oltre
che sulle dinamiche, sugli strumenti utilizzati e sulle conseguenze provocate.
Infine, verranno delineati i sistemi di sicurezza utilizzati dall’azienda per
fronteggiare l’attacco e come in generale questo tipo di attacco può essere evitato.
4
Capitolo 1 – Denial of Service
1.1 Generalità
L’attacco Denial of Service, che letteralmente vuol dire “negazione del servizio”
provoca il malfunzionamento di un sistema informatico esaurendone le sue risorse
fino ad impedire l’erogazione di servizi.
Sul piano organizzativo ed operativo, quando accade un attacco DoS la situazione
risulta estremamente critica ed è caratterizzata dalla difficoltà di controllare
l’erogazione dei servizi informatici e peggio ancora di riportare quest’ultimi alla
normalità operativa in tempi accettabili.
In generale, questi attacchi possono essere di due tipi:
•
Denial of Service (DoS) è un attacco coordinato da una singola fonte con
l’obiettivo di sopraffare e disabilitare il servizio di destinazione;
•
Distributed Denial of Service (DDoS) è un attacco coordinato e sferrato
simultaneamente da più fonti, con la finalità, anch’esso, di disabilitare il
servizio di destinazione. Le sorgenti, in questo caso, tipicamente fanno
parte di una o più “botnet” (insiemi di computer compromessi) e possono
essere sparse in una regione oppure disseminate in tutto il globo.
Gli attacchi DoS sono universalmente definiti come violazioni delle norme di
comportamento accettabili, contrastano lo spirito e le regole stabilite dal Internet
Activities Board (IAB) nel documento “Ethics and the Internet” (RFC 1087);
nella maggior parte dei paesi sono considerati alla stregua dei reati convenzionali
ed in nessun caso se ne legittima l’utilizzo. Gli attacchi DoS sono utilizzati da vari
gruppi di individui ed organizzazioni per promuovere la rispettiva causa.
Le motivazioni sono l’elemento fondamentale che li contraddistingue:
•
Hacktivisti1 mossi da rivendicazioni sociali e politiche;
•
aggressori che sfidano le leggi e l’operato dei governi;
•
aggressori con motivazioni economiche.
1
Hacktivista: composto dalle parole hacker e activist, è colui che effettua azioni di pirateria informatica
con intenti di attivismo politico
5
1.2 Tipologie
Attualmente si definiscono due macro tipologie di attacchi DoS:
•
DoS di tipo “Network Flood”: conosciuti anche come attacchi volumetrici,
inviano volumi di traffico irrilevante (UDP, TCP o richieste di
connessione SYN). Il loro obiettivo è di consumare la larghezza di banda
della rete e d’inondare i dispositivi presenti su tale rete, rendendo
inaccessibile il soggetto colpito o addirittura l’intera rete.
•
DoS contro le applicazioni: sferrati contro le applicazioni, continuano ad
inondarle con richieste apparentemente legittime (“Application Flood
Attack”) o che sfruttano debolezze di design o implementative delle
applicazioni stesse (“Directed Application Attack”), fino al momento in
cui i sistemi non rispondono più. Solitamente, tali attacchi passano
inosservati, poiché il volume di traffico da essi generato non è rilevante e
determina un consumo lento delle risorse che però metterà fuori servizio
l’applicazione.
Per entrambe le tipologie, alcune tra le tecniche più utilizzate negli ultimi anni per
colpire la rete troviamo:
SYN Flood: adoperato per esaurire le risorse del bersaglio, inondandole
con una massa di connessioni half-open, fino a consumarle del tutto.
L’aggressore invia di continuo richieste di connessioni aperte (TCP/SYN)
al sistema vittima avvalendosi, a tal scopo, di un indirizzo sorgente
falsificato. Il destinatario conferma la ricezione della richiesta (SYNACK)
all’indirizzo sorgente falsificato aprendo così una connessione per ogni
singola richiesta. Il processo TCP standard per la gestione della
connessione (three-way handshake) non viene tuttavia mai completato, in
quanto l’indirizzo sorgente falsificato non invia più alcuna risposta e
quindi la vittima dell’attacco viene generalmente sommersa con
connessioni incomplete (half-open).
HTTP Flood: solitamente, sono indirizzati verso servizi che generano
volumi e carichi ingenti, come operazioni di ricerca all’interno di un sito
oppure attività di database estremamente pesanti, in modo da consumare
6
un numero maggiore di risorse e causando ritardi a livello di risposta ed
eventualmente anche una condizione di fail.
Esistono diverse forme di attacchi di tipo HTTP flood:
-
“GET” o “PUT” flood: in tal caso, l’aggressore invia richieste
HTTP di tipo GET o POST alla pagina principale del sistema
scelto come bersaglio finché i dispositivi di rete (server, pipe di
rete, ecc.) vengono sopraffatti e non sono più in grado di gestire
le richieste. Questo attacco può inoltre prevedere l’aggiunta di
una stringa di query alle richieste HTTP allo scopo di bypassare
i componenti per la trasmissione di contenuti (CDN) o i servizi
di caching; ciò genera un traffico che colpisce direttamente il
sito Web senza passare per i componenti infrastrutturali quali
CDN e caching.
-
Attacchi HTTP “lenti”: simili ai SYN Flood, vengono sferrati
a livello HTTP in modo tale che il server web esaurisca le sue
risorse attraverso connessioni nuove aperte di continuo. Gli
Attacker inviano una richiesta “GET”, riducendo la dimensione
della finestra. Ciò costringe il server web ad inviare la sua
risposta in pacchetti più piccoli rispetto al solito, forzando le
connessioni in modo tale da rimanere aperte più a lungo del
normale e riempiendo la tabella delle connessioni del server. Si
tratta di un attacco “lento e silenzioso”, in quanto non genera
segni evidenti di attacco quali un consumo elevato della CPU o
della banda di rete. Lo stesso attacco può essere sferrato
utilizzando comandi POST, con cui l’aggressore simula di dover
inviare un grande blocco di dati che di fatto non viene mai
inviato.
-
HTTP flood su una risorsa mirata: l’aggressore analizza il sito
della vittima allo scopo di individuare una risorsa che genera un
carico particolarmente pesante sui server come, ad esempio, le
operazioni di ricerca di un sito oppure attività su database molto
pesanti. Generalmente, l’aggressore sferra il proprio attacco
7
contro il servizio con volumi di traffico estremamente ridotti.
Un server configurato per poter gestire migliaia di connessioni
al secondo può essere completamente sopraffatto e messo fuori
servizio da 20 connessioni al secondo di questo tipo di attacco.
-
UDP Flood: vengono inviati alla vittima pacchetti contenenti
datagrammi UDP; la vittima a questo punto controlla la porta di
un’applicazione correlata; non trovandone alcuna, è costretta a
rispondere con un pacchetto ICMP Destination Unreachable.
Tale attacco viene sferrato in modo continuativo finché la pipe
di rete, il firewall oppure altri dispositivi di rete che operano
presso
la
vittima
non
vengono
totalmente
sopraffatti.
L’aggressore può anche falsificare l’indirizzo IP dei pacchetti
UDP, non svelando alcun dato e rimanendo pertanto totalmente
anonimo.
-
ICMP Flood: questo tipo di attacco DoS viene attualmente
bloccato dai firewall e dalla policy dei dispositivi di rete, inoltre
comprende alcune tecniche piuttosto note, quali:
o Ping Flood: dove si sommerge la rete con traffico
ICMP. L’aggressore invia un ingente volume di
richieste “ping” ICMP, falsificando l’indirizzo sorgente
con l’indirizzo della vittima che, a questo punto, viene
sommersa da tutte le risposte.
o Smurf Attack: anche in tal caso si vuole inondare il
bersaglio
con
traffico
ICMP,
ma
ciò
avviene
amplificando l’effetto sfruttando Gateway/Router IP
mal configurati che processano richieste “ping” inviate
ad indirizzi broadcast e con indirizzo mittente
falsificato, corrispondente all’IP della vittima. Gli host
che ricevono il “ping” ICMP risponderanno poi alla
vittima dell’attacco sommergendola interamente.
-
Low rate DoS (LDOS): viene utilizzato per rallentare il
throughput TCP del sistema vittima senza che l’aggressore sia
8
intercettato. Si sfruttano i punti deboli del timing TCP per
generare l’elaborazione TCP presso la vittima, la quale, a causa
di ciò, entra ripetutamente in uno stato di ritrasmissione; questo
si ripercuote negativamente sul throughput del protocollo di
trasporto TCP.
-
Peer-to-Peer: questo attacco è usato per generare un elevato
numero di richieste di connessioni quasi simultanee indirizzate
alla vittima. I bug presenti nel server software peer-to-peer
permettono agli aggressori di dirottare i client negli hub peer-topeer. I client a questo punto andranno a disconnettersi dalla rete
peer-to-peer, connettendosi, così, al sito della vittima; si creerà
in tal modo una vera e propria ondata di richieste di
connessione.
9
Capitolo 2 – Attacco a CloudFlare
2.1
Panoramica
Di recente, per l’esattezza il 10 Febbraio 2014, si è scatenato un attacco DDos di
tipo UDP Flood ai danni di CloudFlare, azienda americana della Silicon Valley,
che offre svariati servizi di cloud. La particolarità di tale attacco è stata l’elevata
proporzione di traffico dati registrata dal CDN (Content Delivery Network)
colpito.
L’attacco ha usato una ben nota falla nel protocollo NTP (Network Time
Protocol), utilizzato per il settaggio degli orologi dei server connessi alla rete.
Tale protocollo basato per l’appunto su UDP, è stato sovvertito usando richieste di
sincronizzazione attraverso il comando MONLIST dove il sistema, scelto per la
sua vulnerabilità, rigetta fuori un gran volume di dati, che saranno utilizzati per la
saturazione delle risorse della vittima.
2.2
Cos’è CloudFlare
CloudFlare è un caching reverse proxy, ovvero un server che si pone tra
l’infrastruttura dove risiede un sito web e il visitatore; inoltre, svolge funzioni di
caching dei contenuti (salva temporaneamente in memoria i contenuti per poterli
servire più velocemente).
Quando arriva una richiesta, CloudFlare controlla se il visitatore è affidabile, e
solo in caso positivo, dopo aver prelevato i contenuti (immagini, CSS e
JavaScript) dalla cache e aver applicato varie ottimizzazioni su tali contenuti, li
restituisce al visitatore stesso che non si accorgerà di tali passaggi.
CloudFlare protegge e accelera qualsiasi sito web online. In pratica il traffico dati,
relativo ad un determinato sito web, viene instradato attraverso tale rete globale
che viene definita “intelligente”.
Il CDN CloudFlare è realizzato in maniera autonoma e differente dalle legacy
solitamente utilizzate, per di più sfrutta una rete indipendente caratterizzata da un
10
posizionamento dei propri edge-points, scelto in maniera molto precisa per
diminuire quanto più possibile i tempi di attesa percepiti dall’utente.
Figura 1 Overview di CloudFlare
www.cloudflare.com
CloudFlare è caratterizzato da 24 centri dati dislocati in tutto il mondo. Il CDN fa
la cache dei file sui nodi periferici della rete, cosi da risultare quanto più vicino
possibile alla posizione dell'utente e allo stesso tempo fornisce ad essi contenuti
dinamici. Attraverso l’instradamento Anycast 2 l’utente accederà ai contenuti
richiesti utilizzando il nodo a lui più vicino.
Da un punto di vista della sicurezza, CloudFlare oltre che a comportarsi da
firewall, sfrutta la conoscenza di una comunità diversificata di siti web per offrire
una modalità all’avanguardia per il proprio servizio di sicurezza. La tecnologia di
CloudFlare rileva automaticamente nuovi attacchi che sorgono contro qualsiasi
sito web sulla sua rete; una volta che viene identificata la presenza di un nuovo
attacco, il CDN lo bloccherà sia per il particolare sito web che per l'intera
comunità. Un'altra importante funzione che esso svolge è quella di eseguire
automaticamente un controllo dell'integrità del browser per tutte le richieste ad un
determinato sito web, valutando le intestazioni HTTP per verificare la presenza di
minacce. Se viene trovata una minaccia, la richiesta verrà negata. I visitatori
indesiderati non vengono catalogati attraverso l’uso di programmi di analisi
2
Indirizzamento Anycast: Avviene un'associazione uno-a-molti tra indirizzi di rete e ricevitori: ogni
indirizzo destinatario identifica un insieme di ricevitori, ma soltanto uno tra questi ricevitori è scelto per
ricevere i dati da una qualsiasi delle sorgenti. Inoltre, consente nel caso si è attaccati di dirottare tutti i
pacchetti destinati all’indirizzo Anycast, mitigando la minaccia.
11
popolari, ma è il sistema stesso che si fa carico di salvare informazioni dalla rete e
di metterle a disposizione degli utenti, in modo da poter utilizzare le risorse
catalogate in database per una migliore gestione e prevenzione nei confronti di
mal intenzionati.
Alcune delle altre funzionalità offerte da CloudFlare sono:
•
Mantere on-line la porzione di sito statica anche se il server di
riferimento va in crash
•
Global Anycast DNS
•
Ottimizzazione
nella
gestione
delle
pagine
(caricamento,
ridimensionamento, ecc.)
•
Sistema di difesa contro attacchi DDos
•
WAF
(Web
Application
Firewall)
con
regole
definite
appositamente
2.3
•
Strumenti di analisi specifici
•
Railgun (ottimizzatore web)
Network Time Protocol
Il Network Time Protocol (NTP) è un protocollo impiegato per sincronizzare gli
orologi di dispositivi differenti collegati tramite una rete a commutazione di
pacchetto, caratterizzata, quindi, da inaffidabilità e tempi di latenza variabili. Il
sistema utilizzato per rappresentare l'ora è l'attuale standard ufficiale per la misura
di tempo nel mondo, il Tempo Universale Coordinato (UTC)3.
L’ora standard UTC viene distribuita sui vari dispositivi, ma dato che risulterebbe
complicato ed oneroso dotarli tutti di ricevitori specifici per la diffusione del
tempo, si preferisce equipaggiare solo un certo numero di computer che facciano
da time-server primari per sincronizzare un numero molto più elevato di server
secondari e client connessi da una rete comune, per esempio su Internet.
NTP permette di leggere l'orologio del server, trasmettere la lettura ad uno o più
client e regolare l'ora di ciascun client come da richiesta. L'accuratezza di ciascun
3
Il tempo coordinato universale: conosciuto anche come tempo civile e abbreviato con la sigla UTC, è
il fuso orario di riferimento da cui sono calcolati tutti gli altri fusi orari del mondo. Esso è derivato dal
tempo medio di Greenwich(GMT),con il quale coincide a meno di approssimazioni infinitesimali.
12
server è definita dallo strato: al livello gerarchicamente posto più in alto (relativo
ai server primari che accedono direttamente ad un orologio campione) è assegnato
il numero 1, poi scendendo nella gerarchia di rete (server secondari) il numero
dello strato verrà incrementato di uno ad ogni successivo livello di
sincronizzazione.
Di solito nelle configurazioni NTP viene utilizzata la tecnica della ridondanza,
dove server multipli e percorsi di reti diversificati,
determinano una grande
accuratezza ed affidabilità. Alcune configurazioni vengono implementate
attraverso l’uso di servizi di autenticazione crittografica per prevenire attacchi
accidentali o dolosi al protocollo.
In figura, viene riprodotta una possibile configurazione di Server Ntp, naturalmente in maniera
molto semplificata:
preso BX, un calcolatore stand-alone, esso viene sincronizzato dal server A1 di strato S1. Nel caso
di BY, invece, per
avere una maggiore
affidabilità
per
la
sincronizzazione,
il
calcolatore
è
stato
configurato con due
possibili server A1 e
A2. Se si considera
un'organizzazione (es
l’insieme di B1 e B2
come in figura 2),
valutando il fatto di
dover sincronizzare i
Figura 2 Schema di una configurazione NTP
vari
calcolatori
della
propria rete locale, in una soluzione classica avremo: definiti due calcolatori della propria rete (B1
e B2), come server locali NTP, essi si sincronizzano su tre server primari (A1, A2, A3), infine
viene sincronizzato il resto dei propri calcolatori dell’organizzazione (C1, C2, ... CN) sui server
locali (B1, B2). Questa configurazione riduce il traffico di rete verso i server primari e rende la
configurazione di tutti i calcolatori della rete locale dipendente solo dai server locali B1 e B2, che
possono essere facilmente riconfigurati su altri server esterni in caso di necessità. B1 e B2
rappresentano quindi server NTP di strato 2.
13
2.3.1 Caratteristiche del protocollo
La RFC958 è stato il primo documento per la standardizzazione del protocollo
NTP e risale al 1985.
Questo è costruito sul modello dell’ User Datagram Protocol (UDP), che fornisce
un meccanismo di trasporto senza connessione. NTP si è evoluto a partire dal
Time Protocol e dal messaggio di Timestamp ICMP risultandone una sostituzione
adeguata per entrambi.
NTP determina i meccanismi per sincronizzare l'ora, teoricamente, fino a
precisioni dell'ordine dei nanosecondi, preservando una data non ambigua, almeno
per questo secolo. Attraverso tale protocollo si specificano la precisione e l'errore
stimato dell'orologio locale e le caratteristiche dell'orologio di riferimento a cui
può essere sincronizzato. Tuttavia, il protocollo in sé definisce solo la
rappresentazione dei dati ed il formato dei messaggi, ma non gli algoritmi di
sincronizzazione o le tecniche di filtraggio.
Il servizio per cui questo protocollo è stato progettato ha l’intento di connettere
alcuni orologi di riferimento primari, sincronizzati agli standard temporali
nazionali, a risorse centrali accessibili come i gateway. Questi dialogano tra di
loro in NTP per controllare mutuamente gli orologi primari e ridurre gli errori
dovuti a guasti o problemi di propagazione. Alcuni degli host appartenenti alla
rete locale e funzionanti da orologi di riferimento secondari, dialogano in NTP
con uno o più dei detti gateway. Per ridurre l'overhead del protocollo, gli host
ridistribuiscono l'ora ai restanti host di rete locale. Gli host selezionati, per
aumentare l'affidabilità, vengono equipaggiati con radio-orologi meno accurati e
costosi, per poi essere utilizzati come backup nel caso di malfunzionamento degli
orologi primari o secondari o dei percorsi di comunicazione tra di essi.
La configurazione standard di una sottorete di orologi primari e secondari è
organizzata gerarchicamente, dove gli orologi più accurati sono vicino al vertice e
quelli meno in basso. NTP fornisce informazioni utilizzate per organizzare la
gerarchia sulla base della precisione o dell'errore stimato, inoltre funge anche da
rudimentale algoritmo di routing nell’organizzazione della sottorete stessa.
14
2.3.2 Descrizione del protocollo
In NTP non vengono menzionati meccanismi di ricerca, acquisizione o
l'autenticazione dei peer. L'integrità dei dati si basa sui checksum IP e UDP.
Inoltre, non si forniscono servizi per la raggiungibilità, la gestione di circuito,
l'individuazione dei duplicati o la ritrasmissione.
Il servizio può operare in due distinte modalità:
•
In modalità simmetrica, i server ed i client risultano indistinguibili, ma
mantengono una piccola quantità di informazione di stato;
•
In modalità asimmetrica, i server non hanno bisogno di mantenere alcuna
informazione di stato sul client se non quella contenuta nella richiesta del
client stesso. Inoltre, risulta necessario un singolo formato di messaggio
NTP, semplificando cosi l'implementazione e permettendo di utilizzare
svariati meccanismi di interrogazione sollecitata o non sollecitata.
Nella modalità più comune (asimmetrica) un client manda un messaggio NTP ad
uno o più server ed elabora le risposte ricevute. Il server scambia indirizzi e porte,
riempie o sovrascrive certi campi del messaggio, ne ricalcola il checksum e lo
rispedisce immediatamente. Attraverso l'informazione inclusa nel messaggio NTP
si permette di determinare, a ciascun peer, client o server, le caratteristiche di
temporizzazione degli altri peer, tra cui il valore atteso delle accuratezze dei loro
orologi. A partire da tale informazione ogni peer è in grado di scegliere l'ora
migliore da differenti orologi, aggiornare il suo orologio locale e stimare la sua
accuratezza.
In generale, la sincronizzazione degli orologi richiede periodi lunghi e confronti
multipli per mantenere una temporizzazione accurata. Se per mantenere l'ora
locale con la precisione di un secondo, è necessario che vengano effettuati pochi
confronti, per regolare l'ora locale con precisioni di alcuni decimi di millisecondo,
invece, sono richiesti periodi di ore o giorni, e decine o centinaia di confronti. Per
fortuna, la frequenza dei confronti può essere ridotta e quasi sempre non disturba
le normali operazioni della rete.
15
2.3.3 Funzionamento del Protocollo
La distinzione tra il client e il server risulta significativa solo per la modalità con
la quale essi interagiscono nello scambio di richieste e risposte. Lo stesso formato
di messaggio NTP è valido per entrambi i peer e racchiude i medesimi dati relativi
all'altro peer.
Nella modalità asimmetrica il client manda periodicamente un messaggio NTP al
server, il quale risponde entro un certo intervallo. Considerando che il server si
limita a scambiare indirizzi e porte, a riempire i campi di informazione richiesti e
a rispedire il messaggio, i server operanti in tale modalità non hanno bisogno di
memorizzare alcuna informazione di stato tra le richieste dei client.
Nella modalità simmetrica, invece, non vi è più alcuna distinzione tra client e
server. Ogni peer mantiene una tabella dove il numero di entrate equivale ai peer
attivi. Per ogni entrata vi è un codice che identifica: il peer in maniera univoca,
l'informazione di stato e una copia dei valori di Timestamp di Origine e Timestamp
di Ricezione, i quali sono stati ricevuti per ultimi da quel peer. Il peer manda
periodicamente un messaggio NTP a ciascuno dei peer in tabella, includendo
l'ultima copia dei Timestamp. L'intervallo per la trasmissione dei messaggi NTP è
regolato dal mittente e non è influenzato dall'eventuale arrivo di messaggi NTP,
provenienti da altri peer.
La modalità con cui un peer opera è data dal controllo dei campi UDP Porta di
Sorgente e Porta di Destinazione :
Se entrambi questi campi contengono il numero della porta di servizio NTP 123
allora il peer sta operando in modalità simmetrica.
Se i due campi sono diversi e il campo Porta di Destinazione contiene 123, si
tratta di una richiesta proveniente da un client ad un server.
Se i due campi sono diversi e il campo Porta di Sorgente contiene 123, si tratta di
una risposta di un server ad una richiesta di un client trasmessa precedentemente.
Un client, quando vuole sincronizzare il proprio orologio manda un pacchetto
NTP con tutti i campi a 0 tranne Indicatore di Intercalare, Stato e Timestamp di
Trasmissione (non è necessario che il suo orologio sia corretto; impostare il valore
del campo Timestamp di Trasmissione è importante, sia come semplice metodo
16
per verificare che la risposta del server sia legittima, sia per i vari calcoli che
vengono effettuati).
Il server, quando riceve un pacchetto di richiesta di sincronizzazione, copia dalla
richiesta il campo Timestamp di Trasmissione nel campo del messaggio di
risposta Timestamp di Origine e riempie i restanti campi in modo opportuno.
Quando
la
risposta
del
server
è
ricevuta,
il
client
determina
un
“DestinationTimestamp” che è il tempo di arrivo in accordo col proprio orologio
nel formato NTP.
Dichiarando:
Timestamp
ID quando viene generato
Timestamp di Origine
richiesta inviata dal client
Timestamp di Ricezione
richiesta ricevuta dal server
Timestamp di Trasmissione
risposta inviata dal server
DestinationTimestamp
risposta ricevuta dal client
possiamo definire due quantità molto importanti: il roundtrip delay(d) e l'offset (t)
dell'orologio:
=
=
−
−
−
−
+
2
−
dove:
d: Rappresenta il tempo che una richiesta impiega per raggiungere il server
sommato al tempo che la risposta impiega per tornare indietro. La prima quantità
della relazione rappresenta il tempo relativo al client, tra la trasmissione della
richiesta e la ricezione della risposta; mentre il secondo addendo rappresenta il
tempo di elaborazione sul server della richiesta, prima che spedisca la relativa
risposta.
17
t: Rappresenta la differenza di tempo tra due orologi ed, in questo frangente, è
l'ammontare di tempo da sommare al proprio orologio per sincronizzarlo con
quello della sorgente di riferimento. Questo valore è il risultato più importante del
protocollo NTP, poiché consente di ottenere la sincronizzazione del proprio
orologio.
Mentre l'offset può normalmente avere segno negativo (l'orologio locale è in
anticipo rispetto all'orologio di riferimento), un delay negativo è possibile soltanto
nelle modalità simmetriche.
2.4
Attacco DDoS NTP Amplification da 400Gbps
Gli attacchi di tipo DDos in rete sono, negli ultimi periodi, all’ordine del giorno.
Essi fino a qualche tempo fa non venivano visti come una vera e proprio minaccia
dato che non lasciavano danni nei sistemi che li subivano; l’unico problema che
comportavano era la congestione temporanea di risorse e sistemi, che finivano per
essere vittima di tali attacchi per un tempo molto limitato, quasi trascurabile. Ciò
che di recente accade, diversamente dal passato, è la quantità di dati che i
Cracker
4
riescono a generare e a convogliare applicando tecniche di
amplificazione, vuoi attraverso l’uso di DNS (attacco a SpamHaus 2013), vuoi,
come nel caso da noi preso in considerazione, attraverso l’Amplificazione NTP.
2.4.1 Denial-of-Service Riflesso Amplificato
In un attacco Denial-of-Service di riflessione, un utente malintenzionato può
inviare un pacchetto con un indirizzo IP sorgente falsificato. Il Cracker falsifica
l'indirizzo d'origine del pacchetto, sostituendo il proprio indirizzo sorgente con
4
Cracker versus Hacker: Anche se hanno alcune tecniche di utilizzo similari, l'hacker è colui che sfrutta
le proprie capacità per esplorare, divertirsi, apprendere, senza creare reali danni. Al contrario, il cracker è
colui che sfrutta le proprie capacità al fine di distruggere (i cracker fanno spesso utilizzo di attacchi DoS),
ingannare e arricchirsi.
18
l'indirizzo della vittima, tale pacchetto verrà inviato ad uno specifico server su
internet che risponderà tempestivamente.
Tutto ciò determina principalmente due effetti: la vera fonte dell'attacco è
nascosta ed è molto difficile da rintracciare e, se si usano molti server Internet, un
attacco può essere costituito da un numero enorme di pacchetti che colpisce la
vittima da tutto il mondo.
Ma ciò che rende gli attacchi Denial-of-Service di riflessione davvero potenti è
quando questi sono anche amplificati: un piccolo pacchetto che viene inviato da
un client suscita una grande risposta dal parte del server (o dei server).
In questo caso, un utente malintenzionato può inviare un piccolo pacchetto da un
indirizzo IP sorgente falsificato ad un server (o a più server) il quale invierà
grandi quantità di dati, come risposta al pacchetto ricevuto, alla vittima.
In Attacchi di amplificazione, un aggressore trasforma una piccola quantità di
banda proveniente da un piccolo numero di macchine in un enorme carico di
traffico atto a colpire una vittima in Internet. Fino ad ora il protocollo più
popolare per gli attacchi di amplificazione è stato DNS(Domain Name System)5,
dove il fattore di amplificazione è quantificato intorno a 8x. Quindi, un utente
malintenzionato può generare un attacco 8x più grande della larghezza di banda a
cui aveva accesso.
Un altro protocollo che spaventa gli esperti del settore, soprattutto in chiave futura
per attacchi di amplificazione, è attraverso l’uso di SNMP, che si stimi abbia un
fattore di amplificazione pari a 650x anche se per ora non è stato ancora possibile
riscontrare effetti del genere.
Nel caso in esame, invece, il protocollo scelto per l’attacco è stato NTP, che ha
determinato un fattore di amplificazione intorno al 200x, come mai visto in
passato.
5
DNS: Meccanismo utilizzato per la risoluzione di nomi degli Host della rete in indirizzi IP e viceversa. Il
servizio è realizzato tramite un database distribuito, costituito dai server DNS.
19
2.4.2 NTP Amplification
Il problema del protocollo NTP, che è stato la causa di quanto accaduto, è
principalmente dovuto all’obsolescenza del protocollo stesso. La sua vulnerabilità
è da attribuire soprattutto alle prime versioni di tale protocollo che però risultano
ancora utilizzate da parecchi dispositivi collegati alla rete. Configurazioni
negligenti di server NTP possono portare a svariati problemi tra i quali quella di
diventare, da parte di tali server, partecipanti inconsapevoli di attacchi DDoS.
I server che eseguono il Network Time Protocol (NTP) sulla base di
implementazioni di ntpd precedenti alla versione 4.2.7p26, che utilizzano la
configurazione di “query senza restrizioni” di default, sono suscettibili di un
attacco Denial-of-Service di tipo Riflessione/Amplificazione.
Un utente malintenzionato, armato di un elenco di “server NTP aperti” su Internet,
può facilmente creare un attacco DDoS con NTP. Infatti, i server NTP che si
prestano a tali scopi non sono difficili da trovare: strumenti comuni come
Metasploit6 e NMAP7 sono in grado di individuare i server NTP che supportano
comandi utili alla causa dei Cracker, comandi cioè capaci di provocare un
amplificazione del messaggio.
Alcuni
messaggi
di
controllo
NTP
forniscono
significativi
fattori
di
amplificazione di larghezza di banda (BAF). Infatti, NTP oltre che per la
sincronizzazione dell'ora, può anche implementare altre funzioni quali la gestione
di server, manutenzione e monitoraggio.
Come già detto NTP si basa sul protocollo UDP (User Datagram Protocol) per
inviare e ricevere messaggi, il quale non convalida la fonte (indirizzo IP) del
mittente. L'attacco NTP DRDOS (distribuited reflective denial-of-service) è simile
agli attacchi DoS riflettenti utilizzati sui“risolutori DNS aperti”.
6
Metasploit : progetto di sicurezza informatica che fornisce informazioni sulle vulnerabilità, semplifica le
operazioni di penetration testing ed aiuta nello sviluppo di sistemi di rilevamento di intrusioni.
7
NMAP: software libero creato per effettuare port scanning.
20
Figura 3 Amplificazione di un attacco
www.cloudflare.com
Colui che genera l’attacco invia un pacchetto sulla porta
orta 123 di un server Ntp
aperto, dove il proprio indirizzo sorgente è l’indirizzo
l’
IP
P della vittima
predestinata.. Il server NTP risponde a questa richiesta, ma il numero di byte
inviati in risposta risulta essere una quantità amplificata rispetto alla richiesta
richi
iniziale, determinando così un attacco Dos ai danni della vittima che si ritroverà a
ricevere questo insieme di risposte inviate da parte del
del server NTP.
NTP Un modo per
amplificare questo tipo di attacco è attraverso
attraver o l’uso del comando MONLIST. Gli
aggressori hanno approfittato proprio di tale comando; MONLIST è un comando
remoto della versione precedente di NTP che trasmette al richiedente un elenco
degli ultimi 600 ospiti che si sono connessi al server (questa
uesta risposta è molto più
grande rispetto alla richiesta
richiesta inviata e così lo rende ideale per un attacco di
amplificazione). Una risposta a tale comando sarà caratterizzata da una lista
contenente informazioni
nformazioni sui client NTP che hanno contattato questo server NTP.
NTP
Tali informazioni consistono nell'indirizzo
nell
o IP del client, la sua versione NTP e il
numero di richieste;
te; quindi come risulta evidente tale comando rappresenta una
funzionalità di debug utile nel caso di uso legittimo.
legittimo In più, un server NTP
localizzato può aiutare a costruire un profilo di rete. Tuttavia,
Tu
, come strumento
DDoS, risulta fondamentale perché con una piccola query si possono reindirizzare
diversi Megabyte
egabyte di traffico dati.
21
Nello
specifico,
i
due
tipi
di
messaggio
REQ_MON_GETLIST
e
REQ_MON_GETLIST_1, amplificano la richiesta originale, rispettivamente, di
un fattore fino a 3660 e 5500. Questo fattore di amplificazione di banda (BAF) è
un moltiplicatore della larghezza di banda, ed è basato sul numero di byte di
payload UDP inviati dal server rispetto ai byte di payload UDP generati dalla
richiesta. In questo attacco possono essere utilizzati anche altri tipi di messaggi,
ma sono REQ_MON_GETLIST e REQ_MON_GETLIST_1 a creare il maggiore
impatto. Da tali considerazioni riusciamo a capire che, se la lista dei client NTP
che un server NTP restituisce risulta completa, questo determina un
amplificazione rispetto al pacchetto iniziale contente la query di circa 206x. In
pratica, un utente malintenzionato con una connessione 1Gbps può teoricamente
generare più di 200Gbps di traffico DDoS.
22
2.4.3 Dinamica dell’attacco
L’attacco subito da CloudFlare è stato, in termini di flusso di dati generato, il più
potente di sempre, infatti, si stima che siano stati inoltrati verso tale azienda circa
400 Gbps di flusso di dati. Ciò vuol dire che i server attaccati hanno ricevuto ogni
secondo 400 Gigabit di dati. La maggior parte delle connessioni di rete sono di
dimensioni nell’ordine di 100 Mbps, 1 Gbps o 10 Gbps, quindi risulta evidente
cosa un attacco di tale portata possa causare. La saturazione dell’intero sistema
risulta inevitabile, infatti si avrebbe rapidamente anche considerando una banda di
notevoli dimensioni.
Per rendere possibile un attacco di tali proporzioni chi lo ha effettuato si è servito
di 4.529 server NTP in esecuzione su 1.298 reti diverse. In media, ciascuno di
questi server mandava 87 Mbps di traffico verso la vittima designata.
La cosa più interessante è che risulta molto probabile che il Cracker abbia
utilizzato, inizialmente, un singolo server in esecuzione su una rete che ha
permesso all'indirizzo IP sorgente contraffatto di dare avvio alle richieste.
Mentre i server NTP, che supportano MONLIST, sono meno comuni dei risolutori
DNS aperti, essi però tendono a girare su server più robusti con un maggior
numero di collegamenti alla rete. In combinazione con il fattore di amplificazione
elevato, questo permette di utilizzare un numero molto inferiore di server NTP per
generare grandi attacchi. Facendo un confronto, l'attacco via DNS a Spamhaus
dello scorso anno aveva utilizzato 30.956 resolver DNS aperti per generare un
attacco DDos con un volume di dati di circa 300 Gbps. Nel nostro caso, con un
numero di server vulnerabili inferiore di circa 7 volte, l’Attacker è stato in grado
di generare un attacco del 33% più grande dell'attacco subito da Spamhaus.
23
Figura 4 Globally Distributed Threat
www.cloudflare.com
La mappa sopra riportata mostra la distribuzione globale dei 4.529 server NTP
utilizzati per l’attacco.
La tabella seguente, invece, elenca i nomi di alcune delle maggiori reti, coinvolte
a livello globale, dalle quali proveniva il traffico dei dati usato per l’attacco, con
accanto il numero di server NTP coinvolti per ognuna di esse.
Figura 5 Principali reti participanti
www.cloudflare.com
24
2.4.4 Sistemi difensivi in risposta all’attacco
Il noto hosting provider francese OVH, paradossalmente, si è reso conto di essere
sotto attacco e mentre mostrava alla rete le proprie informazioni in merito,
simultaneamente, come si evince dalla tabella precedente, risultava essere una
delle maggiori fonti attivamente partecipanti all’attacco NTP su larga scala in
esame. Tutto ciò ha una spiegazione:
Spesso, quando si ha a che fare con questi attacchi, capita che il proprietario di
una rete contenente un server aperto (qualsiasi sia la sua tipologia, NTP, DNS,
etc) si rende conto di ricevere un elevato numero di query verso tale server; di tale
richieste riesce anche a definirne l’indirizzo di origine. In pratica, sta vedendo un
elevato numero di pacchetti UDP con un indirizzo IP sorgente contraffatto e
assume l’host associato a quell’indirizzo come colui che sta lanciando l’attacco. In
realtà, è proprio dal server vulnerabile, posseduto da tale proprietario della rete,
scelto dal Craker per amplificare il suo attacco, che vengono lanciati gli attacchi
all’host intestatario dell’indirizzo IP.
L’attacco a dispetto delle elevate dimensioni, ha provocato la congestione della
rete globale gestita da CloudFlare per un tempo molto inferiore a quanto si
potesse prevedere per quanto detto fino a questo momento. I sistemi di sicurezza
dell’azienda, utilizzati per la gestione di attacchi ai layer 3/4 (strati trasporto e
rete) del modello ISO, sono riusciti a mitigare la minaccia facendo si che i siti
clienti del provider attaccato, avessero le proprie pagine web irraggiungibili per
un tempo relativamente modesto. Dato che attacchi ai Layer 3 e 4 sono difficili se
non impossibili da attenuare con una soluzione locale, con CloudFlare, invece,
tutto il traffico generato dall’attacco che normalmente andrebbe a colpire
l'infrastruttura del server viene mitigato, indirizzandolo automaticamente alla rete
Anycast globale del CDN. La natura della rete Anycast di CloudFlare determina
intrinsecamente l’aumento della superficie di assorbimento dell’attacco. Il sistema
di sicurezza è configurato in modo tale che un attacco deve creare un flusso di dati
superiore ai 5 Gbps per attivare gli allarmi. Anche in tal caso però, le difese di rete
automatizzate fermano gli attacchi senza la necessità di alcun intervento manuale.
Quando il flusso dei dati di un attacco supera le decine di Gigabit di dati al
secondo, un team addetto inizia a monitorare l'attacco, applicando filtri e
25
spostando il traffico per garantire che la sede del cliente aggredito rimanga on-line
e che nessun’altro all’interno della rete ne rimanga influenzato.
Una volta reindirizzato il traffico dell’attacco, viene sfruttata la notevole capacità
globale della rete di ClaudFlare, caratterizzata da un’infrastruttura con i diversi
server sparsi per il globo, di assorbire le inondazioni del traffico dovuto
all’attacco per annientare la minaccia. Ciò significa che CloudFlare è in grado di
impedire, anche ad un singolo pacchetto di traffico appartenete all’attacco, di
raggiungere un sito da esso protetto .
Utilizzando Anycast, ognuno dei 23 centri dati sparsi in tutto il mondo possono
condividere lo stesso indirizzo IP. Quando viene inviata una richiesta a un
indirizzo Anycasted IP, i router si dirigeranno alla macchina sulla rete che è più
vicina alla richiesta. In circostanze normali, questo aiuta a garantire che i visitatori
del sito siano indirizzati automaticamente al più vicino data-center sulla rete, per
garantire le migliori prestazioni. Quando c'è un attacco, invece, l’uso di Anycast
permette di disperdere e diluire il traffico dell’attacco su tutta la rete dei centri dati
in modo efficace. Siccome ogni centro ha lo stesso indirizzo IP per il cliente
CloudFare, il traffico non potrà essere reindirizzato in nessun luogo particolare.
Di conseguenza, invece di un attacco molti-a-uno, si ottiene un attacco molti-amolti evitando cosi che ci sia un single point-of-failure.
26
Capitolo 3 – Prevenzione
3.1
Contrastare attacchi DDos Ntp
La migliore soluzione per contrastare il problema degli attacchi DDoS NTP è
attraverso l’uso della prevenzione.
A seguito dell’attacco massiccio in esame, monitorando le reti precedentemente
elencate, utilizzate dagli aggressori per l’attacco, si è potuto verificare che
l'attenzione al problema ha contribuito nella chiusura di molti dei server NTP
vulnerabili. I risultati sono incoraggianti:
Dopo una settimana e mezzo, più del 75% dei server vulnerabili coinvolti
nell'attacco sono stati riconfigurati e ad ora non sono più vulnerabili.
Il progetto Open NTP è uno dei primi in tal senso, infatti esso mira a evidenziare i
server NTP aperti, in modo tale che una volta messi in luce possano essere
riconfigurati in maniera tale da non contribuire ad attacchi futuri.
NTP e tutti gli altri attacchi di amplificazione basati su UDP si basano su
l'indirizzo IP di origine spoofing (contraffazione). Una corretta configurazione
farebbe si che gli attaccanti non possano falsificare l'indirizzo IP sorgente e quindi
l’attacco si ritorcerebbe contro l’aggressore. Quindi se si sta eseguendo una
configurazione di rete, risulta necessario assicurarsi che tale configurazione si sta
27
attuando seguendo linee guida dettate dal BCP38 per prevenire cosi l’invio di
request provenienti da pacchetti con indirizzi fasulli. È possibile, inoltre,
verificare se una rete attualmente in uso segue BCP38 utilizzando gli strumenti
del MIT di Project Spoofer . Se risulta che tale rete è una rete vulnerabile, e che
permette il profilarsi di pacchetti provenienti da indirizzi IP sorgente corrotti, si
può facilmente porre le modifiche del caso implementando BCP38.
28
Conclusioni
Per comprendere come approcciare le strategie di mitigazione più opportune, di
attacchi Dos in generale, è utile conoscere e valutare le possibilità offerte per
attuare gli attacchi DoS, che del resto sono in continua evoluzione.
In funzione della disgregazione e dell’impatto che un aggressore intende arrecare,
c’è sempre una tecnica o un tool in grado di aiutarlo. È importante considerare che
il ciclo di vita di un tool ha spesso una durata estremamente breve, generalmente
solo di alcuni mesi. Questo ciclo di vita così breve, sottolinea l’importanza e
l’efficacia delle azioni difensive da intraprendere contro gli attacchi DoS, ma
evidenzia anche il grado di resistenza e le grandi capacità della comunità di
aggressori nella creazione di nuove metodologie e tool per gli attacchi DoS.
Considerando lo scenario che attualmente si presenta e le tendenze evolutive del
fenomeno, si comprende che, per potersi difendere adeguatamente non risulta
sufficiente applicare una patch ad una vulnerabilità, bensì nasce la necessità di
creare una ben definita struttura atta a risolvere problematiche di varia natura e a
valutare eventuali scenari non considerati inizialmente.
Anche la dinamica comportamentale di un attacco (multi-vettore, improvviso e
senza sintomi premonitori, con un target globale piuttosto che mirato ad una
singola organizzazione) accresce ulteriormente l’impatto degli attacchi DoS,
rendendo perciò indispensabile prepararsi preventivamente a rispondere con
efficacia.
L’effettiva salvaguardia della sicurezza delle informazioni attraverso un’attenta
gestione dei rischi richiede l’integrazione all’interno di un’organizzazione,
incaricata di creare, aggiornare, eliminare e mantenere tali informazioni, di un
adeguato sistema di gestione della sicurezza sviluppato secondo 3 elementi, quali
processi , organizzazioni e tecnologia.
Diverse aziende di sicurezza stanno nascendo e altre si stanno muovendo in tal
senso, proponendo soluzioni per supportare l’utenza della rete nella definizione
ed attuazione di processi di contrasto nei confronti di quelli che potranno essere i
futuri attacchi DoS.
29
Un modello, in parte già utilizzato da diverse aziende, sul quale basare il proprio
sistema di difesa potrebbe essere il seguente:
•
valutare il livello di rischio (ricadute operative, d’immagine, business)
derivante da eventuali attacchi DoS e conseguentemente identificare lo
scopo e le priorità nel definire il processo di contrasto agli attacchi DoS;
•
strutturare il processo di gestione dell’incidente di sicurezza (DoS Incident
Response Plan);
•
definire come utilizzare gli strumenti di sicurezza presenti e quali ulteriori
funzionalità e strumenti predisporre;
•
definire le architetture IT più idonee a sopperire situazioni di attacco
mirato alla propria azienda o di livello globale (Service Provider, Internet);
•
verificare periodicamente il livello di resistenza delle difese messe in atto
(Security Assessment periodico).
E’ evidente che difendersi dagli attacchi DoS è complesso da un punto di vista
tecnico, ma risulta estremamente critico ed indispensabile per l’impatto
economico che tali attacchi possono avere sul business di tutte le organizzazioni.
30
Appendice A
A.1 Formato dell'intestazione UDP
Un pacchetto NTP consiste dell'intestazione UDP seguita dalla porzione dati NTP.
Il formato dell'intestazione UDP
0
1
2
3
01234567890123456789012345678901
Porta di Sorgente
Porta di Destinazione
Lunghezza
Checksum
Porta di Sorgente
Numero di porta della sorgente UDP. Nel caso di modalità asimmetrica e di
richiesta del client questo campo è assegnato dall'host con ruolo di client, mentre
per la risposta del server viene copiato dal campo Porta di Destinazione della
richiesta del client. Nel caso di modalità simmetrica, ad entrambi i campi Porta di
Sorgente e Porta di Destinazione viene assegnato il numero della porta di servizio
NTP, 123.
Porta di Destinazione
Numero di porta della destinazione UDP. Nel caso di modalità asimmetrica e di
richiesta del client a questo campo è assegnato il numero della porta di servizio
NTP, 123, mentre per la risposta del server viene copiato dal campo Porta di
Sorgente della richiesta del client. Nel caso di modalità simmetrica, ad entrambi i
campi Porta di Sorgente e Porta di Destinazione viene assegnato il numero della
porta di servizio NTP, 123.
Lunghezza
Lunghezza della richiesta o della risposta, compresa l'intestazione UDP, in byte.
Checksum
Somma di controllo standard UDP.
31
A.2 Formato dei dati NTP
Il formato della porzione dati NTP, segue immediatamente l'intestazione UDP
0
1
2
3
01234567890123456789012345678901
II Stato
Tipo
Precisione
Errore Stimato
Tasso di Deriva Stimato
Identificatore dell'Orologio di Riferimento
Timestamp di Riferimento (64 bit)
Timestamp di Origine (64 bit)
Timestamp di Ricezione (64 bit)
Timestamp di Trasmissione (64 bit)
Indicatore di Intercalare
Codice che avverte dell'imminenza di un secondo intercalare, da inserire alla fine
dell'ultimo giorno del mese corrente. I bit sono codificati come segue:
00
nessun avvertimento
01
+1 secondo (il minuto seguente ha 61 secondi)
10
-1 secondo (il minuto seguente ha 59 secondi)
11
riservato per usi futuri
Stato
Codice che indica lo stato dell'orologio locale. I valori sono definiti come segue:
0
l'orologio opera correttamente
1
perdita di portante
2
perdita di sincronismo
3
errore di formato
4
guasto all'interfaccia (Tipo 1) o al link (Tipo 2)
(codici aggiuntivi riservati per usi futuri)
32
Tipo dell'Orologio di Riferimento (Tipo)
Codice che indica il tipo dell'orologio di riferimento. I valori sono definiti come
segue:
0
non specificato
1
riferimento primario (per esempio radioorologio)
2
riferimento secondario che usa un host Internet attraverso NTP
3
riferimento secondario che usa qualche altro host o protocollo
4
occhio e orologio da polso
(codici aggiuntivi riservati per usi futuri)
Precisione
Intero con segno nel range da +32 a -32 indicante la precisione dell'orologio
locale, in secondi arrotondati alla più vicina potenza del due.
Errore Stimato
Numero a virgola fissa che indica l'errore stimato dell'orologio locale nell'istante
in cui è stato regolato per l'ultima volta, in secondi con il punto decimale tra i bit
15 e 16.
Tasso di Deriva Stimato
Numero a virgola fissa con segno indicante il tasso di deriva stimato dell'orologio
locale, in unità adimensionali con il punto decimale alla sinistra del bit più
significativo.
Identificatore dell'Orologio di Riferimento
Codice che identifica lo specifico orologio di riferimento. Nel caso del tipo 1
(riferimento primario), si tratta di una stringa ASCII allineata a sinistra e riempita
con zeri a destra che identifica l'orologio,
Nel caso del tipo 2 (riferimento secondario) si tratta dell'indirizzo Internet a 32 bit
dell'host di riferimento. Negli altri casi il campo è riservato per usi futuri e deve
essere messo a zero.
33
Timestamp di Riferimento
Ora locale in cui l'orologio locale è stato regolato o corretto per l'ultima volta.
Timestamp di Origine
Ora locale in cui la richiesta è partita dal client verso il server.
Timestamp di Ricezione
Ora locale in cui la richiesta è arrivata al server.
Timestamp di Trasmissione
Ora locale in cui la risposta ha lasciato il server per tornare al client.
34
Bibliografia e Sitografia
J.F. Kurose, K.W. Ross, Reti di Calcolatori e Internet. Un approccio top-down,
Mondatori , 2008
ISCOM, La sicurezza delle reti. Dall’analisi del rischio alle strategie di
protezione, AR, 2004
White-paper IKS, Dos Attack, 2013
Cloudflare: www.cloudflare.com
Public Safety Canada – Network Time Protocol Vulnerability:
www.publicsafety.gc.ca/cnt/rsrcs/cybr-ctr/2014/av14-001-eng.aspx
Team Cymru – Secure NTP Template:
www.team-cymru.org/ReadingRoom/Templates/secure-ntp-template.html
InfoSec – NTP reflection attack:
www.isc.sans.edu/forums/diary/NTP+reflection+attack/17300
Network Time Protocol (NTP):
www.web.tiscali.it/zinna_romano/RFC/RFC958InItaliano.htm
NTP Scanning Project:
www.openntpproject.org
Cert – Vulnerability Note VU#348126:
www.kb.cert.org/vuls/id/348126
35