Chiunque abbia installato per la prima volta un personal firewall sarà caduto nella tentazione di voler individuare in modo preciso i responsabili di eventuali scansioni delle proprie porte o tentativi di intrusione rilevati e memorizzati nei log del programma.
Prima di cominciare questa discussione, che divideremo in due articoli, è bene infrangere ogni aspettativa troppo positiva a riguardo. Non è assolutamente possibile per un comune utente della rete venire a conoscenza in modo legale della persona fisica o dell'utenza telefonica a cui è assegnato un indirizzo IP in un determinato istante. Solo la polizia postale e le forze dell'ordine possono accedere a tali dati che, per legge, vengono conservati dai provider per un certo periodo di tempo proprio per documentare eventuali abusi sulla rete.
Quali sono allora le informazioni a cui possiamo risalire a partire da un IP? Quali sono gli strumenti che ci permettono di farlo? Perché dovremmo voler risalire a tali informazioni?
I motivi per farlo possono essere vari. Nel caso per esempio gli IP provengano dai log del proprio webserver,
si possono catalogare tali dati a fine statistico in modo da avere informazioni più dettagliate sui visitatori.
Molte volte invece la sorgente può rivelarsi non propriamente amichevole: nel caso di tentativi ripetuti ed insistenti di violare un sistema gli IP conservati nei file di log di server o firewall possono essere analizzati per essere segnalati agli
abuse delle reti o dei domini di appartenenza.
Non da ultimo mettiamoci la curiosità: gli strumenti di cui parleremo
forniscono un metodo come un altro per scoprire sul
campo la struttura e il funzionamento della grande rete.
Quelli che seguono sono alcuni semplici strumenti standard. Verranno descritti il loro funzionamento,
le informazioni che ci permettono di ottenere e alcuni esempi chiarificatori.
Nella descrizione si è sempre cercato di utilizzare strumenti comunemente già
disponibili sul pc oppure online. Questo non toglie che esistano programmi più
sofisticati e forse
più semplici da usare che racchiudono queste ed altre funzioni in modo integrato. Uno di questi è sicuramente l'ottimo VisualRoute,
disponibile in versione shareware limitata a 30 giorni di prova, che permette
anche la visualizzazione geografica degli host tramite una comoda cartina.
NsLookup
Nslookup è disponibile da riga di comando solo nelle versioni Windows 2000/XP/2003.
Per le versioni precedenti è necessario ricorrere a strumenti di terze parti.
Attraverso questo comando è possibile compiere interrogazioni
direttamente sui server DNS.
Ogni volta che impartiamo al nostro browser l'ordine di navigare
su un determinato sito o indichiamo al nostro programma di posta elettronica il
server SMTP o POP3 da utilizzare, adoperiamo un nome e non un indirizzo IP.
Questo perché per un essere umano risulta molto più facile ricordare un nome come
http://www.google.it oppure la sequenza di numeri
http://216.239.59.104.
Il protocollo TCP/IP d'altra parte fonda il suo funzionamento e le sue politiche
di instradamento dei pacchetti sugli IP e non certo sui nomi.
I DNS (Domain Name Server), chiamati anche semplicemente Name Server, si occupano di
trasformare nomi nei corrispettivi indirizzi IP e possono venire interrogati
dalle applicazioni ogni volta che questo si renda necessario. In riferimento al caso
precedente il
nostro browser, rilevando come destinazione un nome di dominio, provvederà
preventivamente e in modo a noi trasparente ad interrogare un server DNS che
gli fornirà il corretto IP. Solo a questo punto partirà la vera richiesta del
browser che utilizzerà l'indirizzo numerico ottenuto per collegarsi al sito e scaricare la pagina.
Vista la mole di dati è impossibile che i DNS possiedano le informazioni di tutti
i nomi a livello mondiale e per questo motivo il sistema è stato organizzato come un enorme database
distribuito gerarchicamente. Ogni server contiene solo le informazioni relative ad un sottoinsieme dei nomi. Si dice che un DNS è di fiducia o autoritativo per un determinato nome se lo gestisce direttamente.
Cosa succede se interrogo un name server
su un nome di cui non è autoritativo? La richiesta in genere viene automaticamente
rediretta ad un DNS di gerarchia superiore in grado di indicargli quale sia il server autoritativo
cercato che potrà così essere consultato. Una volta raggiunto l'obiettivo il
nostro DNS fornirà il
risultato e nel contempo lo memorizzerà nella sua cache in modo da poterlo
fornire più velocemente in futuro.
Quali sono le informazioni che ci può fornire un server DNS?
In realtà sono molte di più di una semplice associazione nome-ip. Troviamo indicazioni sui DNS
autoritativi, sulle macchine che gestiscono server di posta elettronica per quel dominio, eventuali alias cioè nomi ausiliari associati e altri. Questi dati sono memorizzati nel database del name server in campi chiamati Resource Records (RR) e sono contraddistinti con una sigla che ne identifica il contenuto.
Ecco i più importanti:
|
E infine alcuni esempi di utilizzo del comando.
Con il seguente chiediamo informazioni ai DNS di default, quelli del nostro provider, sull'IP assegnato al nome www.html.it. La richiesta di default
è relativa al record di tipo A cioè all'indirizzo:
nslookup www.html.it Server: host171-70.pool8021.interbusiness.it Address: 80.21.70.171 Risposta da un server non di fiducia: Nome: www.html.it Address: 212.110.13.99
Le prime due righe indicano il DNS a cui è stata fatta la richiesta. Le
successive contengono la risposta che in questo caso è 212.110.13.99. Si noti che essendo il
server scelto non autoritativo per il dominio html.it questo è stato
chiaramenteindicato nella risposta.
Con l'esempio seguente invece non siamo interessati ad ottenere il campo
relativo all'indirizzo ma quello relativo ai server DNS autoritativi per il
dominio. Lo facciamo richiedendo il record NS attraverso l'opzione -type.
nslookup -type=NS html.it Server: host171-70.pool8021.interbusiness.it Address: 80.21.70.171 Risposta da un server non di fiducia: html.it nameserver = dns1.grapesnet.net html.it nameserver = dns2.grapesnet.net dns1.grapesnet.net internet address = 212.110.0.190 dns2.grapesnet.net internet address = 212.90.2.112
In risposta otteniamo il nome e l'IP del DNS primario e di quello secondario. Come si può notare html.it
si appoggia al provider grapesnet.net.
Questa volta vogliamo ottenere informazioni sui server di posta di html.it e
lo facciamo indicando il record MX. La richiesta inoltre la vogliamo fare
direttamente a uno dei server autoritativi scoperti al punto precedente e lo
indichiamo subito dopo il nome.
nslookup -type=MX html.it 212.110.0.190 Server: dns1.grapesnet.net Address: 212.110.0.190 html.it MX preference = 10, mail exchanger = mail.html.it html.it MX preference = 20, mail exchanger = backupmx.grapesnet.net html.it nameserver = dns1.grapesnet.net html.it nameserver = dns2.grapesnet.net mail.html.it internet address = 212.110.12.123 backupmx.grapesnet.net internet address = 212.90.2.114 dns1.grapesnet.net internet address = 212.110.0.190 dns2.grapesnet.net internet address = 212.90.2.112
Come vediamo esistono due server di posta mail.html.it e backupmx.grapesnet.net
i cui server DNS sono gli stessi del dominio principale. Di tutti i server
indicati viene fornito anche l'IP. Si noti che questa volta è assente
l'indicazione sulla risposta proveniente da un server non di fiducia perché ora
il DNS scelto per le interrogazioni è autoritativo.
Altro aspetto interessante è il cosiddetto Reverse Name Lookup. In questo caso si procede in senso inverso, quello che conosco è un indirizzo IP e voglio sapere quale nome gli è stato assegnato dal DNS.
La richiesta la facciamo indicando il record PTR e indicando l'IP invece
che il nome. Proviamo ad inserire l'IP ottenuto nel primo esempio:
nslookup -type=PTR 212.110.13.99 Server: host171-70.pool8021.interbusiness.it Address: 80.21.70.171 Risposta da un server non di fiducia: 99.13.110.212.in-addr.arpa name = html.it 99.13.110.212.in-addr.arpa name = forum.html.it 99.13.110.212.in-addr.arpa name = www.html.it 99.13.110.212.in-addr.arpa name = job.html.it 99.13.110.212.in-addr.arpa name = cgipoint.html.it 99.13.110.212.in-addr.arpa name = cgi.html.it 99.13.110.212.in-addr.arpa name = webnews.html.it 99.13.110.212.in-addr.arpa name = b2b.html.it 99.13.110.212.in-addr.arpa name = libri.html.it 99.13.110.212.in-addr.arpa name = netfree.html.it 99.13.110.212.in-addr.arpa name = statistiche.html.it 99.13.110.212.in-addr.arpa name = saibal.html.it 99.13.110.212.in-addr.arpa name = test1.html.it 99.13.110.212.in-addr.arpa name = test2.html.it
Abbiamo scoperto una cosa molto interessante, allo stesso indirizzo IP sono associati sia il dominio di secondo livello html.it sia ben altri 13 sottodomini di terzo livello che si suppone siano tutti gestiti sulla stessa macchina.
Nel prossimo articolo, che andrà online mercoledì prossimo, tratteremo gli strumenti di Traceroute e di Whois.
Traceroute
Questo strumento è disponibile da riga di comando in praticamente tutte le
versioni di Windows e Linux. Windows identifica il comando come Tracert e
a tale versione d'ora in poi si farà riferimento.
Lo scopo di Traceroute è visualizzare in successione tutti i nodi della rete
internet attraverso i quali transitano i pacchetti per raggiungere il sistema
che abbiamo indicato come destinazione. Il comando viene spesso usato a scopo
diagnostico perché per ogni nodo indica la latenza cioè il tempo che i pacchetti
impiegano per raggiungerlo.
La cosa interessante è che, se non specificato
diversamente, il comando trasla automaticamente tutti gli indirizzi ip nei
relativi nomi attraverso un implicito reverse name lookup. Spesso i router delle
dorsali internet possiedono nomi con palesi riferimenti geografici e questo ci
permette di localizzare il percorso e spesso anche la destinazione.
Alcuni esempi:
Questo è il risultato di un traceroute eseguito verso il sito della RAI
tracert www.rai.it Rilevazione instradamento verso www.rai.it [212.162.68.64] su un massimo di 30 punti di passaggio: 1 47 ms 63 ms 47 ms 192.168.100.1 2 47 ms 62 ms 47 ms host1xx-70.pool8021.interbusiness.it [80.21.70.1xx] 3 63 ms 47 ms 62 ms r-bo74-bo83.opb.interbusiness.it [151.99.101.121] 4 62 ms 47 ms 62 ms r-rm213-bo74.opb.interbusiness.it [151.99.101.197] 5 62 ms 63 ms 62 ms r-rm156-vl3.opb.interbusiness.it [151.99.29.144] 6 63 ms 62 ms 63 ms r-tin-pomezia-rm156.opb.interbusiness.it [151.99.98.6] 7 63 ms 62 ms 63 ms 217.222.6.194 8 62 ms 63 ms 62 ms host37-11.pool217222.interbusiness.it [217.222.11.37] 9 63 ms 62 ms 62 ms host2-138.pool81119.interbusiness.it [81.119.138.2] 10 62 ms 63 ms 47 ms 212.162.64.228 11 * * * Richiesta scaduta. 12 * * * Richiesta scaduta.
Nella prima colonna troviamo il numero del nodo attraversato. Successivamente
vi sono tre diverse rilevazioni dei tempi impiegati per raggiungere il nodo.
Queste possono variare notevolmente a seconda del traffico di rete. Infine
troviamo l'indirizzo IP del nodo e il suo eventuale nome recuperato attraverso i
server DNS.
Cosa notiamo di interessante?
Il nodo numero 3 presenta nella prima parte
del nome la stringa r-bo74-bo83 in cui bo assomiglia tanto alla
sigla della provincia di Bologna che, per inciso, è proprio quella da cui sto
scrivendo in questo momento! I nomi della rete Interbusiness di Telecom Italia
adottano questa convenzione e la cosa è confermata dal successivo nodo in cui
troviamo r-rm213-bo74: probabilmente un server nei pressi di Roma che
collega la tratta verso Bologna. Il nodo 6 risulta ancora più esplicativo.
I nodi contraddistinti da una richiesta scaduta sono macchine che non
rispondo ad una richiesta di traceroute e possono essere considerati
Firewall.
Un altro esempio questa volta verso un server localizzato negli USA:
tracert www.grc.com Rilevazione instradamento verso grc.com [204.1.226.226] su un massimo di 30 punti di passaggio: 1 62 ms 47 ms 62 ms 192.168.100.1 2 46 ms 63 ms 47 ms host1xx-70.pool8021.interbusiness.it [80.21.70.1xx] 3 47 ms 47 ms 62 ms r-bo74-bo83.opb.interbusiness.it [151.99.101.121] 4 47 ms 63 ms 62 ms r-rm213-bo74.opb.interbusiness.it [151.99.101.197] 5 47 ms 63 ms 62 ms r-rm83-vl3.opb.interbusiness.it [151.99.29.139] 6 140 ms 141 ms 156 ms pal9-ibs-resid-4-it.pal.seabone.net [195.22.218.45] 7 234 ms 250 ms 250 ms mia1-pal8-racc3.seabone.net [195.22.197.50] 8 250 ms 250 ms 266 ms POS3-0.IG2.MIA4.ALTER.NET [65.208.85.113] 9 234 ms 250 ms 250 ms 0.so-2-0-0.xl1.mia4.alter.net [152.63.7.221] 10 250 ms 250 ms 250 ms 0.so-0-0-0.tl1.atl5.alter.net [152.63.10.102] 11 250 ms 266 ms 250 ms 0.so-1-3-0.tl1.chi2.alter.net [152.63.70.29] 12 250 ms 250 ms 266 ms 0.so-7-0-0.xl1.chi2.alter.net [152.63.68.81] 13 266 ms 265 ms 250 ms pos6-0.br3.chi2.alter.net [152.63.68.1] 14 250 ms 266 ms 250 ms 204.255.174.234 15 296 ms 313 ms 312 ms p16-1-1-1.r21.snjsca04.us.bb.verio.net [129.250.5.132] 16 313 ms 312 ms 313 ms p16-1-1-1.r21.lsanca01.us.bb.verio.net [129.250.2.186] 17 313 ms 312 ms 297 ms ge-1-2.a04.lsanca01.us.da.verio.net [129.250.29.65] 18 * * * Richiesta scaduta. 19 * * * Richiesta scaduta.
Anche in questo caso possiamo fare delle congetture in realtà altamente
probabili:
- nodo 3: Bologna
- nodo 4 e 5: Roma
- nodo 6: Palermo
- nodo 7, 8 e 9: Miami
- nodo 10: Atlanta
- nodo 11, 12 e 13: Chicago
- nodo 15: San Jose - California
- nodo 16 e 17: Los Angeles - California
Alcune di queste sigle possono non risultare di evidente interpretazione ma
consultando la seguente pagina si potranno avere numerose utili informazioni a
riguardo:
http://www.sarangworld.com/TRACEROUTE/showdb-2.php3
Whois
Whois è un vero e proprio protocollo che permette di accedere a due principali tipi di database online: uno relativo allo spazio degli indirizzi IP e l'altro ai nomi di dominio entrambi registrati da opportuni enti. Si noti bene che a differenza dei server DNS che sono essenziali per il corretto funzionamento di internet, i server Whois offrono un servizio puramente informativo.
IP Whois
Agli albori di internet gli indirizzi IP venivano assegnati ai richiedenti da IANA
(Internet Assigned Numbers Authority) senza particolare ordine. Con il passare del tempo si è pensato di razionalizzare questa distribuzione e di suddividere tra quattro
organizzazioni su base geografica la gestione e la registrazione degli IP non ancora assegnati:
- ARIN per il Nord
America -
RIPE NCC
per l'Europa
APNIC per l'Asia e la zona del Pacifico-
LACNIC
- per l'America meridionale e la zona caraibica
Ad ognuna di queste organizzazioni sono stati assegnati grossi blocchi di indirizzi
IP di cui sono unici responsabili. Questa suddivisione regionale è consultabile in questo documento
http://www.iana.org/assignments/ipv4-address-space. Come si può notare analizzandone il contenuto sono comunque molte le zone assegnate direttamente a grosse società USA e quelle gestite da più enti contemporaneamente.
Ognuna delle organizzazioni di cui sopra rende disponibile un servizio Whois relativo alla propria
zona consultabile via web.
Quello di RIPE, relativo all'Europa, è disponibile all' indirizzo http://www.ripe.net/db/whois/whois.html
ed è quello che verrà utilizzato di seguito.
A cosa ci può servire una interrogazione ad un server IP Whois?
La risposta la otteniamo facilmente analizzando un esempio. Quello che segue è il risultato
di una richiesta di informazioni per l'indirizzo
192.138.228.1 (sono state eliminate alcune voci per rendere l'output più leggero):
inetnum: 192.138.228.0 - 192.138.228.255 netname: SIEMENS-NET descr: Siemens AG Oesterreich descr: Abt. PSE RD country: AT admin-c: AF2545-RIPE tech-c: AS65-RIPE tech-c: AS3750-RIPE mnt-by: RIPE-NCC-LOCKED-MNT status: NOT-SET changed: mah@ic.co.at 19920525 changed: ripe-dbm@ripe.net 19920527 changed: chytil@eunet.co.at 19931021 changed: waltraud@eunet.co.at 19950620 changed: ripe-dbm@ripe.net 19990706 changed: ripe-dbm@ripe.net 20000225 changed: ripe-dbm@ripe.net 20030116 changed: ripe-dbm@ripe.net 20040503 source: RIPE route: 192.138.228.0/24 descr: Siemens AG origin: AS8971 remarks: Siemens AG mnt-by: AS8971-MNT changed: Andreas.Lamprecht@siemens.at 20020603 source: RIPE role: ... interrotto person: ... interrotto
Da una rapida analisi scopriamo subito che tale indirizzo fa parte di una rete assegnata alla nota società tedesca Siemens (campo netname: e descr:).
Altra osservazione importante è che l'IP fa parte dell'intervallo di indirizzi 92.138.228.0-192.138.228.255 (campo inetnum:) tutto assegnato alla stessa azienda. Questo non significa che siano tutti utilizzati ma semplicemente che tale blocco risulta essere registrato a nome Siemens
che potrà usarlo liberamente.
Altra informazione che possiamo estrapolare dai dati forniti si trova nel campo country:, qui troviamo AT che significa Austria. Contrariamente a quanto si poteva immaginare quindi tale indirizzo appartiene ad una rete austriaca e non tedesca.
Per un elenco delle sigle (Country Code) delle nazioni si può consultare il seguente documento:
http://www.iana.org/cctld/cctld-whois.htm
Completano il quadro una serie di riferimenti a persone responsabili della
registrazione della rete (role: e person:)
Si fa notare infine la presenza di un pulsante "Advanced Search" sulla pagine whois di RIPE che
consente di ottenere ricerche più mirate. Interessante è la voce "Alternative Database" che permette di fare ricerche su server Whois diversi da RIPE. Questo si rivela indispensabile se l'IP è extraeuropeo e la ricerca normale non ha avuto successo.
Domain Whois
Questo genere di server Whois contiene le registrazioni dei nomi di dominio
invece che delle reti.
Ogni nazione possiede un proprio NIC (Network Information Center) il cui sito mette a disposizione un servizio di registrazione e di ricerca dei
propri domini. I siti relativi a tali enti
nazionali possono essere raggiunti seguendo i link di questa pagina: http://www.iana.org/cctld/cctld-whois.htm.
Per quanto riguarda i domini generici come .com, .org, .edu etc si può consultare
la pagina http://www.iana.org/gtld/gtld.htm.
Dopo aver scelto la voce di interesse dalle pagine indicate selezionare il link
"URL for registration services"
per accedere al sito del NIC relativo. Qui potremo accedere, oltre che alle
opzioni
di registrazione, anche a quelle di Whois.
Quali sono le informazioni ricavabili da questo genere di ricerche?
Proviamo ad andare sulla pagina di ricerca del NIC italiano e ad inserire html.it.
Questa è la risposta:
domain: html.it x400-domain: c=it; admd=0; prmd=html; org: HTML.it Srl org-unit: HTML.it Srl descr: HTML.it Srl admin-c: MV943-ITNIC tech-c: DS287-ITNIC postmaster: DS287-ITNIC zone-c: DS287-ITNIC nserver: 212.110.0.190 dns1.grapesnet.net nserver: 212.90.2.112 dns2.grapesnet.net dom-net: 212.110.0.0 mnt-by: GRAPESNET-MNT created: 19980805 expire: 20050115 changed: vas@grapesnet.com 20031210 source: IT-NIC person: Massimiliano Valente ... interrotto ... source: IT-NIC person: Domain Staff address: Grapes Network Services SpA ... interrotto ... source: IT-NIC
Come si può vedere otteniamo il nome della società che possiede il nome di dominio (campo org:), gli indirizzi e i nomi dei server DNS registrati come autoritativi per il
dominio (nserver:), il nome del mantainter del dominio (mnt-by:), la data di registrazione e di scadenza (created: ed expire:) oltre ai dati di una persona referente per il dominio e per il mantainer (person:).
Una ultima nota pratica: essendo molti i NIC a cui fare riferimento può risultare
decisamente più comodo consultare uno dei tanti siti che in modo trasparente
provvedono ad interrogare l'opportuno server Whois in base alla
richiesta effettuata.
Uno di questi è http://www.allwhois.com
Risorse Online
Alcune pagine web che forniscono utili strumenti online:
http://www.all-nettools.com/toolbox
http://www.kloth.net/services/http://www.all-nettools.com/toolbox
http://tatumweb.com/iptools.htm