Spazio di indirizzi pubblico e privato
IP pubblico
192.0.2.10
univoco globalmente: instradabile da ovunque
Intervalli privati
non instradabili sulla rete pubblica
Perché gli intervalli IP privati non dovrebbero mai risolversi pubblicamente
L'RFC 1918 ha riservato tre intervalli IPv4 (10.0.0.0/8, 172.16.0.0/12 e 192.168.0.0/16) specificamente all'uso all'interno di reti private, proprio perché non ci sono abbastanza indirizzi IPv4 pubblici affinché ogni dispositivo di ogni rete privata ne abbia uno globalmente univoco. Questi intervalli vengono riutilizzati, contemporaneamente, all'interno di milioni di reti non correlate nel mondo. Il tuo router di casa quasi certamente assegna indirizzi 192.168.x.x; e lo stesso fa praticamente quello di tutti gli altri.
Cosa significa che un dominio pubblico si risolva in questo intervallo
Poiché questi indirizzi hanno significato solo all'interno della rete locale che li richiede, un dominio pubblico che si risolve in uno di essi è, nel migliore dei casi, un errore di configurazione, e nel peggiore un tentativo deliberato di far fare a un sistema esposto al pubblico una richiesta a qualunque cosa si trovi a quell'indirizzo nella sua rete interna. La rete Internet pubblica non ha un'idea coerente di a cosa si riferisca 10.0.0.5: è una macchina diversa a seconda della rete che lo chiede.
| Intervallo | Nome | Perché è bloccato |
|---|---|---|
| 10.0.0.0/8 | Privato (RFC 1918) | Riutilizzato all'interno di milioni di reti non correlate |
| 172.16.0.0/12 | Privato (RFC 1918) | Come sopra |
| 192.168.0.0/16 | Privato (RFC 1918) | Come sopra: l'intervallo comune dei router domestici |
| 127.0.0.0/8 | Loopback | Rimanda alla macchina stessa che interroga |
| 169.254.0.0/16 | Link-local | Include 169.254.169.254, l'endpoint dei metadati cloud |
| 100.64.0.0/10 | Spazio di indirizzamento condiviso (RFC 6598) | Carrier-grade NAT: spesso assente dalle blocklist fatte a mano |
| 0.0.0.0/8 | Non specificato | Non è una vera destinazione instradabile |
| 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 | Intervalli di documentazione | Riservati agli esempi, mai pensati per essere attivi |
- Un dominio pubblico legittimo non ha motivo di risolversi mai in un indirizzo di un intervallo privato: se ne vedi uno, trattalo come un segnale da indagare, non come un risultato normale.
- IPv6 ha i propri intervalli privati/riservati equivalenti, cioè gli indirizzi unique local (fc00::/7) e link-local (fe80::/10), che richiedono lo stesso identico trattamento.
Filtrare questi intervalli al momento della risoluzione, invece di fidarsi che un dominio dall'aspetto pubblico si risolva sempre in un indirizzo dall'aspetto pubblico, è l'aspettativa minima per qualsiasi strumento che risolve domini per conto di un utente.
L'intervallo che la maggior parte delle blocklist dimentica
100.64.0.0/10, lo «spazio di indirizzamento condiviso» definito dall'RFC 6598, non gode neppure lontanamente del riconoscimento di 10.0.0.0/8 o 192.168.0.0/16, pur essendo altrettanto non instradabile su Internet. Esiste specificamente per il carrier-grade NAT, permettendo a un ISP di indirizzare internamente un gran numero di connessioni dei clienti senza consumare spazio IPv4 pubblico per ciascuna. Essendo più recente e meno noto dei classici intervalli RFC 1918, è quello che più comunemente manca in una blocklist fatta a mano: esattamente il tipo di lacuna che emerge solo quando qualcuno punta deliberatamente un dominio a un indirizzo al suo interno.
Il «fail closed» conta quanto l'elenco stesso
Una blocklist vale quanto ciò che accade quando un indirizzo non può essere analizzato affatto. Un input malformato, una notazione insolita o un valore che non corrisponde chiaramente a nessun intervallo noto non dovrebbero mai essere considerati «probabilmente a posto» per impostazione predefinita: il default sicuro è rifiutare tutto ciò che non può essere classificato con certezza come pubblico, invece di rifiutare solo gli indirizzi che corrispondono in modo positivo a un intervallo noto come dannoso. Questa postura «fail closed» è ciò che rende una blocklist robusta contro gli intervalli a cui nessuno ha ancora pensato di aggiungere, non solo contro quelli noti già in elenco.
Devi controllare gli indirizzi DNS pubblici di un dominio? Usa lo strumento Domain IP Lookup.
Strumenti gratuiti su questo argomento
Per approfondire
L'SSRF trasforma un server in un proxy involontario
Attaccante
costruisce un URL ad hoc
Server vulnerabile
lo recupera, ingannato dall'SSRF
169.254.169.254
l'endpoint dei metadati
Credenziali
restituite all'attaccante
Endpoint metadati cloud: la superficie d'attacco nascosta
Un solo indirizzo IP dall'aspetto non instradabile dà alle istanze cloud accesso a credenziali e configurazione, ed è un bersaglio SSRF molto comune.
Lo stesso indirizzo, quattro modi diversi di scriverlo
Attacchi SSRF: come viene sfruttato il DNS
Il server-side request forgery spesso parte da un semplice nome di dominio che il tuo server è stato indotto a risolvere e a richiamare.
Lo stesso dominio, due risposte diverse
Prima richiesta
si risolve in un IP pubblico
Convalida
superata: sembra sicuro
Scade il TTL
pochi secondi dopo
Seconda richiesta
si risolve in 127.0.0.1
Cos'è il DNS rebinding e perché dovrebbe interessarti
Un dominio che prima si risolve in un indirizzo sicuro e poi in uno interno: il DNS rebinding trasforma il DNS stesso in una superficie di attacco.