2. Background (Contesto)
2. Background (Contesto)
Un diagramma semplificato del problema di TCP SYN flooding (inondazione TCP SYN) è illustrato di seguito:
204.69.207.0/24
host <----- router <--- Internet <----- router <-- attacker
TCP/SYN
<---------------------------------------------
Source: 192.168.0.4/32
SYN/ACK
no route
TCP/SYN
<---------------------------------------------
Source: 10.0.0.13/32
SYN/ACK
no route
TCP/SYN
<---------------------------------------------
Source: 172.16.0.2/32
SYN/ACK
no route
[etc.]
Assumiamo:
-
L'"host" è la macchina obiettivo.
-
L'attaccante risiede all'interno del prefisso "valido", 204.69.207.0/24.
-
L'attaccante lancia l'attacco utilizzando indirizzi sorgente che cambiano casualmente; in questo esempio, gli indirizzi sorgente sono rappresentati come provenienti da [4], che generalmente non sono presenti nelle tabelle di routing globali di Internet e, pertanto, non raggiungibili. Tuttavia, qualsiasi prefisso non raggiungibile potrebbe essere utilizzato per perpetrare questo metodo di attacco.
Degno di menzione è anche un caso in cui l'indirizzo sorgente è falsificato per sembrare provenire da un'altra rete legittima che appare nelle tabelle di routing globali. Ad esempio, un attaccante che utilizza un indirizzo di rete valido potrebbe seminare il caos facendo apparire l'attacco come proveniente da un'organizzazione che, in realtà, non ha originato l'attacco ed era completamente innocente. In tali casi, l'amministratore di un sistema sotto attacco potrebbe essere propenso a filtrare tutto il traffico proveniente dall'apparente sorgente di attacco. L'aggiunta di un tale filtro risulterebbe quindi in una negazione del servizio a sistemi terminali legittimi e non ostili. In questo caso, l'amministratore del sistema sotto attacco diventa involontariamente complice dell'attaccante.
A complicare ulteriormente le cose, gli attacchi TCP SYN flood risulteranno nell'invio di pacchetti SYN-ACK a uno o più host che non hanno alcun coinvolgimento nell'attacco, ma che diventano vittime secondarie. Questo consente all'attaccante di abusare di due o più sistemi contemporaneamente.
Attacchi simili sono stati tentati utilizzando flooding UDP e ICMP. Il primo attacco (flooding UDP) utilizza pacchetti falsificati per cercare di connettere il servizio UDP chargen al servizio UDP echo presso un altro sito. Gli amministratori di sistema NON dovrebbero MAI consentire ai pacchetti UDP destinati alle porte di diagnostica del sistema dall'esterno del loro dominio amministrativo di raggiungere i loro sistemi. Il secondo attacco (flooding ICMP) utilizza una caratteristica insidiosa nei meccanismi di replica broadcast della subnet IP. Questo attacco si basa su un router che serve una grande rete broadcast multi-accesso per incapsulare un indirizzo broadcast IP (come uno destinato a 10.255.255.255) in un frame broadcast di Livello 2 (per ethernet, FF:FF:FF:FF:FF:FF). L'hardware NIC Ethernet (hardware MAC-layer, specificamente) ascolterà solo un numero selezionato di indirizzi in operazione normale. L'unico indirizzo MAC che tutti i dispositivi condividono in comune nell'operazione normale è il broadcast del mezzo, o FF:FF:FF:FF:FF:FF. In questo caso, un dispositivo prenderà il pacchetto e invierà un interrupt per l'elaborazione. Pertanto, un'inondazione di questi frame broadcast consumerà tutte le risorse disponibili su un sistema terminale [9]. È forse prudente che gli amministratori di sistema considerino di garantire che i loro router di confine non consentano ai pacchetti broadcast diretti di essere inoltrati attraverso i loro router come impostazione predefinita.
Quando un attacco TCP SYN viene lanciato utilizzando un indirizzo sorgente non raggiungibile, l'host obiettivo tenta di riservare risorse in attesa di una risposta. L'attaccante cambia ripetutamente l'indirizzo sorgente fasullo su ogni nuovo pacchetto inviato, esaurendo così ulteriori risorse dell'host.
In alternativa, se l'attaccante utilizza l'indirizzo host valido di qualcun altro come indirizzo sorgente, il sistema sotto attacco invierà un gran numero di pacchetti SYN/ACK a quello che ritiene essere l'originatore della sequenza di stabilimento della connessione. In questo modo, l'attaccante danneggia due sistemi: il sistema obiettivo di destinazione, così come il sistema che sta effettivamente utilizzando l'indirizzo falsificato nel sistema di routing globale.
Il risultato di entrambi i metodi di attacco è prestazioni estremamente degradate, o peggio, un crash del sistema.
In risposta a questa minaccia, la maggior parte dei fornitori di sistemi operativi ha modificato il proprio software per consentire ai server obiettivo di sostenere attacchi con tassi di tentativo di connessione molto elevati. Questa è una parte benvenuta e necessaria della soluzione al problema. Il filtraggio in ingresso (ingress filtering) richiederà tempo per essere implementato in modo pervasivo e per essere completamente efficace, ma le estensioni ai sistemi operativi possono essere implementate rapidamente. Questa combinazione dovrebbe rivelarsi efficace contro lo spoofing dell'indirizzo sorgente. Vedere [1] per informazioni sugli aggiornamenti software del fornitore e della piattaforma.