Quando pensiamo a un indirizzo IP pubblico, normalmente lo consideriamo semplicemente come l'indirizzo che permette di raggiungere un server.
Dal punto di vista della sicurezza, però, un IP pubblico è anche un punto di osservazione sull'infrastruttura.
Partendo da un singolo indirizzo è possibile, in determinate condizioni, ottenere informazioni sul servizio che vi risponde, sui nomi associati e sulla tecnologia utilizzata.
Questo non significa che avere un IP pubblico sia un problema.
Internet funziona proprio grazie agli indirizzi pubblici.
Il punto è sapere quali servizi sono associati a quell'indirizzo e perché sono esposti.
Cos'è un IP pubblico?
Un indirizzo IP pubblico è un indirizzo raggiungibile attraverso Internet.
Per esempio:
203.0.113.25
può identificare un server o un altro dispositivo direttamente esposto.
Un'organizzazione può avere uno o molti IP pubblici:
203.0.113.25
203.0.113.26
203.0.113.27
Ognuno potrebbe avere una funzione diversa.
Un IP non identifica necessariamente un solo sito
È importante ricordarlo.
Lo stesso indirizzo IP può ospitare più domini:
203.0.113.25
├── example.com
├── www.example.com
├── shop.example.com
└── api.example.com
Questo è molto comune con hosting condivisi, reverse proxy e infrastrutture moderne.
Di conseguenza, trovare un IP non significa automaticamente aver identificato un singolo server dedicato a una sola applicazione.
Cosa può essere osservato?
A seconda della configurazione, un IP pubblico può fornire informazioni come:
- porte raggiungibili;
- servizi esposti;
- protocolli utilizzati;
- certificati TLS;
- hostname associati;
- banner dei servizi;
- informazioni relative al sistema o all'applicazione.
Naturalmente, la quantità di informazioni varia molto da infrastruttura a infrastruttura.
Un esempio semplice
Supponiamo di trovare:
203.0.113.25
e di osservare che risponde sulla porta HTTPS.
Una verifica potrebbe mostrare:
443/tcp
HTTPS
A questo punto sappiamo che c'è un servizio web raggiungibile.
Se il certificato presenta:
example.com
api.example.com
abbiamo già ottenuto ulteriori informazioni.
Possiamo quindi passare da:
IP
a:
IP
↓
HTTPS
↓
Hostname
↓
Applicazione
Reverse DNS
Un altro elemento utile è il reverse DNS.
Normalmente:
hostname → IP
è una risoluzione DNS diretta.
Il reverse DNS prova invece a risalire dal:
IP → hostname
Per esempio:
203.0.113.25 → server.example.com
Non tutti gli IP hanno un record reverse DNS significativo.
Quando presente, però, può fornire informazioni aggiuntive.
IP e servizi dimenticati
Uno degli aspetti più interessanti riguarda gli IP che appartengono a vecchie infrastrutture.
Un'azienda potrebbe aver spostato il proprio sito:
Vecchio server
↓
Nuovo server
ma il vecchio IP potrebbe essere ancora attivo.
Se esiste ancora un servizio raggiungibile, bisogna capire perché.
Potrebbe essere:
- un sistema ancora necessario;
- un ambiente di emergenza;
- un servizio legacy;
- un componente dimenticato;
- un'infrastruttura che dovrebbe essere dismessa.
Un IP pubblico non è automaticamente vulnerabile
Questo è uno dei concetti più importanti.
La presenza di un IP pubblico è normale.
Anche avere:
80/tcp
443/tcp
aperti può essere perfettamente legittimo per un server web.
La domanda corretta non è:
"Questo IP è pubblico?"
ma:
"Cosa è esposto su questo IP e dovrebbe esserlo?"
Il problema nasce dai servizi inattesi
Immaginiamo un server web:
80 → HTTP
443 → HTTPS
Tutto normale.
Poi troviamo:
3306 → database
oppure:
6379 → servizio di cache
La situazione merita un approfondimento.
Non perché il servizio sia necessariamente vulnerabile, ma perché database e servizi infrastrutturali spesso non dovrebbero essere direttamente accessibili da Internet.
Gli IP fanno parte dell'attack surface
Per questo un inventario degli asset pubblici dovrebbe includere anche gli indirizzi IP.
Per esempio:
| IP | Hostname | Servizio | Proprietario | Stato | | ------------ | ----------------------------------------- | -------- | ------------ | ------------- | | 203.0.113.25 | www.example.com | Web | IT | Attivo | | 203.0.113.26 | api.example.com | API | Dev | Attivo | | 203.0.113.27 | old.example.com | Legacy | — | Da verificare |
L'ultimo caso è quello che dovrebbe attirare l'attenzione.
Cosa controllare periodicamente
Per gli IP pubblici è utile verificare:
- quali IP appartengono all'organizzazione;
- quali hostname vi sono associati;
- quali porte risultano raggiungibili;
- quali servizi rispondono;
- quali certificati sono presenti;
- se esistono sistemi legacy;
- se esistono IP non più necessari;
- se ogni IP ha un proprietario.
In sintesi
Un IP pubblico non è una vulnerabilità.
È semplicemente un elemento della superficie pubblica.
Il problema nasce quando l'organizzazione non sa più cosa ci sia dietro quell'indirizzo.
Una buona gestione dovrebbe permettere di passare da:
IP pubblico
a:
IP
↓
Hostname
↓
Servizio
↓
Applicazione
↓
Proprietario
↓
Motivo per cui è pubblico
Quando uno di questi passaggi manca, vale la pena approfondire.
MiHakero può aiutare a osservare gli asset pubblicamente rilevabili e a collegare informazioni su hostname, servizi e configurazioni, così da rendere più semplice capire cosa è realmente esposto.