Tutti gli strumenti di tracerouting si basano sul seguente principio: inviano pacchetti con una vita breve e attendono pacchetti ICMP che segnalano la morte di questi pacchetti. Un pacchetto IP ha un campo chiamato "TTL" (come "Time To Live") che viene decrementato ad ogni hop; quando raggiunge 0, il pacchetto muore e il router su cui è in corso deve inviare un messaggio ICMP "Time Exceeded" . Quel messaggio ICMP contiene l'indirizzo IP di detto router, quindi lo rivela.
Nessuno degli strumenti a cui ti colleghi può fare qualcosa se alcuni firewall bloccano i pacchetti ICMP "Time Exceeded". Tuttavia, il blocco di tali pacchetti tende a rompere Internet (perché gli host modificano in modo adattivo il TTL nei pacchetti che inviano per far fronte a lunghi percorsi di rete, e hanno bisogno di questi ICMP per questo processo), quindi, in generale, il " Tempo superato "I pacchetti ICMP non sono bloccati.
Ciò che spesso è bloccato , tuttavia, è il tipo di pacchetti di breve durata che traceroute
invia. Questi sono i pacchetti con il TTL artificialmente basso. Se sono bloccati da un firewall, non arrivano mai a morire "di vecchiaia", e quindi non ha superato il tempo ICMP. Per l'elaborazione TTL e l'ICMP "Time Exceeded", il tipo di pacchetto non ha importanza; questo si verifica a livello IP. Ma i firewall guardano anche al contenuto dei pacchetti. L'obiettivo è imbrogliare i firewall in modo che consentano il flusso del pacchetto di breve durata (e quindi la morte).
Plain traceroute
utilizza i pacchetti UDP o ICMP "Echo", entrambi i tipi vengono regolarmente bloccati da (over) amministratori di sistema zelanti. tcptraceroute
invece utilizza un pacchetto TCP "SYN", ovvero il tipo di pacchetto che si verificherebbe come primo passaggio nel TCP "stretta di mano a tre vie". Questo tipo di pacchetto non è solitamente bloccato dal firewall, almeno finché la porta di destinazione è "consentita". tcptraceroute
non completerà alcun handshake TCP; si basa solo sulle idee che i pacchetti SYN non sono sparati a vista dai firewall.
intrace
fa un ulteriore passo avanti in quanto attende una connessione TCP esistente (lo fa controllando tutti i pacchetti, a la tcpdump
). Quando vede una connessione e l'utente preme INVIO, intrace
invierà pacchetti short-live che appaiono come parte della connessione osservata. intrace
può farlo perché ha visto i pacchetti, e quindi conosce gli indirizzi IP, le porte e i numeri di sequenza. Tutti i firewall rilevanti lasceranno passare questi pacchetti, poiché (ovviamente) consentono alla connessione TCP osservata di procedere. I pacchetti di breve durata sono regolati in modo che non interrompano la connessione TCP (sono semplici pacchetti "ACK" senza dati da soli, quindi il sistema operativo di destinazione li ignorerà semplicemente).
Modifica: noto che non ho risposto a una parte della domanda. Ecco qui: non ci sono rischi. Non c'è nulla da mitigare.
traceroute
rivela gli indirizzi IP dei router coinvolti nei pacchetti di routing. Gli indirizzi IP non sono pensati per essere segreti e sono piuttosto facili da ottenere per gli aggressori con vari mezzi (la scansione di massa viene in mente, ma anche cercando i sacchetti della spazzatura per le stampe delle mappe di rete - la moda moderna del riciclaggio rende molto più facile l'immersione dei cassonetti e attività più pulita di quello che era una volta). Tuttavia, un mito relativamente diffuso è che mantenere i vostri indirizzi segreti in qualche modo garantisce la sicurezza. Corrispondentemente, molti amministratori di sistema considerano traceroute
una violazione grave, da correggere e bloccare il prima possibile. In pratica, però, questo è tutto baloney. Se rivelare alcuni indirizzi IP interni è un grosso problema, significa che la tua rete è condannata.
Preoccuparsi della segretezza degli indirizzi IP è come innescare un piano di risposta agli incidenti principali perché un estraneo ha appreso il menu presso la caffetteria della società. È sproporzionato. Certo, avere una conoscenza precisa e approfondita dell'infrastruttura di rete può solo aiutare gli aggressori; ma non in quantità veramente significative. Mantenere segreto gli indirizzi IP non vale la pena interrompere la connettività attraverso un eccessivo filtraggio (ad esempio, bloccando la "frammentazione richiesta" ICMP è mortale per qualsiasi cliente dietro un collegamento ADSL + PPPoE).