Come funziona "traceroute over TCP", quali sono i rischi e come può essere mitigato?

21

C'è un'utilità chiamata tcptraceroute e questo miglioramento chiamato intrace utilizzato come un traceroute standard, ma funziona su TCP.

  • In che modo il flag syn in TCP viene utilizzato per raggiungere la funzionalità simile a traceroute (quando ICMP è disattivato)

  • Quali informazioni possono essere divulgate (o altri rischi)?

  • Come può essere mitigato? (router, host, ... entrambi?)

Questo è stato descritto come simile al comando nmap quando ha superato il flag -sS. Se questo è accurato, cosa significa in realtà?

    
posta random65537 18.07.2013 - 23:19
fonte

3 risposte

38

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).

    
risposta data 19.07.2013 - 00:03
fonte
7

Sia traceroute che tcptraceroute funzionano con lo stesso principio di base:

  1. Invia un pacchetto con un TTL veramente basso
  2. Guarda chi ha restituito un TTL ICMP superato alla scadenza TTL
  3. Se il mittente è destinazione, fermati
  4. Altrimenti, incrementa il TTL di 1 e torna al passaggio 1

L'unica differenza è quale tipo di pacchetto viene inviato (l'impostazione predefinita è UDP su Linux, ICMP su Windows e TCP sta diventando un'opzione più popolare). Tutti genereranno messaggi di errore ICMP da dispositivi utili in mezzo quando scade il TTL.

  • Pertanto, non c'è nulla di speciale nel pacchetto UDP / ICMP / TCP che lo rende traceroute-y. Il flag SYN viene utilizzato perché i dispositivi intermedi come i firewall spesso consentono SYN ma bloccano altri pacchetti TCP che non fanno parte di una connessione stabilita.
  • Le stesse informazioni sono fornite con il traceroute normale, ma è più probabile che sia consentito rispetto al traceroute normale. Prendi un sito web come amazon.com. Il traceroute basato su UDP si ferma a 205.251.248.5, che è probabilmente un firewall di qualche tipo. Traceroute basato su TCP sulla porta 80 - che conosciamo permessi "amazon.com" - fa un passo avanti fino a 72.21.194.212.
  • Traceroute può essere mitigato impedendo il blocco dei pacchetti o bloccando le risposte ICMP. Il primo è il motivo per cui tcptraceroute è diventato più popolare; qualsiasi sito che consenta la connettività su almeno una porta TCP, come un sito Web, consente i pacchetti. Il blocco delle risposte ICMP ha l'effetto collaterale di rompere i fondamentali necessari per la rete IP, che varia da leggermente scortese a selvaggiamente controproducente.

nmap -sS eseguirà una scansione SYN, dove vengono inviati solo i pacchetti SYN. Tuttavia, non eseguirà un traceroute in sé e per sé; devi combinarlo con l'opzione --traceroute (e poi penso che stai ancora scansionando, non solo eseguendo un traceroute, quindi se vuoi tracciare consiglio tcptraceroute o traceroute -T se il tuo sistema operativo lo supporta).

    
risposta data 18.07.2013 - 23:52
fonte
2
  • How is the syn flag in TCP used to achieve traceroute like functionality (when ICMP is off)

Qualsiasi pacchetto IP attiverà una risposta "Time Exceeded" ICMP da un router intermedio quando il valore TTL raggiunge lo zero. Questo potrebbe essere TCP, UDP, ICMP o qualsiasi altro. Finché i router che intervengono passeranno il pacchetto, la traccia funzionerà. Il traceroute tradizionale utilizza le richieste echo ICMP, ma questo è solo per convenzione.

Si noti che ICMP è consentito o meno sul server di destinazione è del tutto irrilevante poiché sono i router intermedi che stanno restituendo il tempo Risposte superate L'unica cosa che potresti perdere è una risposta dall'host di destinazione finale, ma con traceroute è la risposta meno importante, poiché ciò che traceroute ti fornisce è l'elenco dei router intermedi.

L'utilizzo di un flag SYN sul pacchetto TCP potrebbe potenzialmente ottenere un SYN / ACK dal server di destinazione, o forse no, se la porta non è aperta o un criterio blocca il pacchetto. Ma ancora, il server di destinazione è il meno importante. Si potrebbe facilmente inviare una continuazione UDP o TCP se tutto ciò che ti interessa era la lista hop.

Alcuni router sono configurati per trattare i pacchetti PING in modo diverso; rotta diversa, priorità diversa, ecc. L'uso dei pacchetti TCP potrebbe invece fornire risultati diversi che dovrebbero essere più indicativi del percorso che il traffico TCP richiederebbe.

  • What information can be disclosed (or other risks)?

Niente che non sia pubblico. Se la tua sicurezza dipende dal tenere segreto questo tipo di informazioni, allora dovresti sederti e riconsiderare le decisioni che ti hanno portato qui.

  • How can this be mitigated? (routers, hosts, ...both?)

Non c'è nulla da mitigare. Certo, potresti sempre scollegare il tuo server, che mitigherà ogni genere di cose. Altrimenti, prima di impiegare una strategia di mitigazione, dovresti considerare cosa stai guadagnando e cosa stai rinunciando. In questo caso, non sembra che tu abbia qualcosa da guadagnare.

    
risposta data 19.07.2013 - 07:23
fonte

Leggi altre domande sui tag