Ping : Un canale oscuro di comunicazione – Passa al lato oscuro !

Il lato oscuro del Ping.

Il protocollo Internet Control Message Protocol  lavora a livello IP. L’ICMP non è un protocollo di trasporto. Si tratta di un protocollo senza connessione utilizzato per trasmettere messaggi di errore e altri informazioni a indirizzi unicast. I pacchetti ICMP sono incapsulati all’interno di datagramm IP. I primi 4 byte dell’intestazione sono gli stessi per ogni messaggio ICMP, con il resto dell’intestazione diverso per i diversi tipi di messaggi ICMP.

Passa al lato oscuro del PING
PING – informazioni arbitrarie in tunneling nella parte “dati” dei pacchetti ICMP_ECHO e ICMP_ECHOREPLY

Esistono 15 diversi tipi di messaggi ICMP.

I tipi ICMP di cui ci occupiamo sono il tipo 0x0 e il tipo 0x8.
L’ICMP tipo 0x0 specifica un ICMP_ECHOREPLY (la risposta) e un tipo 0x8 indica un ICMP_ECHO (la query). La linea d’azione normale è la seguente per un tipo 0x8 per ottenere una risposta di tipo 0x0 da un server di ascolto.  (Normalmente, questo server è in realtà il kernel del sistema operativo dell’host di destinazione. La maggior parte del traffico ICMP è, per impostazione predefinita, gestito dal kernel). Questo è ciò che il “programma ping” fa.

Ping invia uno o più pacchetti ICMP_ECHO a un host. Lo scopo può essere solo quello di determinare se un host è effettivamente raggiungibile. I pacchetti ICMP_ECHO hanno anche la possibilità  di includere una sezione dati. Questa sezione di dati viene utilizzata quando viene specificata l’opzione percorso di registrazione o, nel caso più comune (solitamente il valore predefinito), per memorizzare le informazioni di Timing per determinare il percorso di andata e ritorno.



Da man

“Un’intestazione IP senza opzioni è di 20 byte. Un pacchetto ICMP ECHO_REQUEST contiene un ulteriore valore di 8 byte di intestazione ICMP seguito da un file quantità di dati arbitraria. Quando viene fornita una dimensione di pacchetto, questo indicava il valore di dimensione di questo dato in più (il valore predefinito è 56). Così l’importo di i dati ricevuti all’interno di un pacchetto IP di tipo ICMP ECHO_REPLY saranno sempre essere superiore di 8 byte allo spazio dati richiesto (l’intestazione ICMP)…”.

Sebbene il carico utile sia spesso un’informazione contatore, non c’è nessun controllo da parte di qualsiasi dispositivo per quanto riguarda il contenuto dei dati. Così, come si scopre, questa quantità di anche i dati possono essere di contenuto arbitrario. Ecco il canale segreto, il lato oscuro di Ping !

Teoria di base del firewall e i canali nascosti

Il principio di base della teoria dei firewall è semplice: serve per schermare una rete da un’altra.

Questo aspetto può essere ulteriormente chiarito in tre norme:

1. Tutto il traffico che passa tra le due segmenti di rete deve passare attraverso il firewall.
2. Solo il traffico autorizzato dal firewall può passare.
3. Il firewall è immune da compromessi.

Un canale nascosto è un luogo in cui possono passare informazioni anche se non sia normalmente utilizzato per lo scambio di informazioni. Pertanto, come di conseguenza, i canali nascosti sono impossibili da individuare e contrastare  utilizzando la “normale politica di sicurezza” del sistema . In teoria,  quasi tutti i processi o bit di dati possono essere imbarcati in un canale nascosto.

Un firewall, nel senso più elementare del termine, cerca di preservare la sicurezza. A tal fine  applica le tre regole di cui sopra.
I canali nascosti, tuttavia, per definizione, non sono soggetti a una logica  di “normale politica di sicurezza”.

La premessa Loki

Il concetto del progetto Loki è semplice: informazioni arbitrarie in tunneling nella parte “dati” dei pacchetti ICMP_ECHO e ICMP_ECHOREPLY.

Loki sfrutta il canale nascosto esistente all’interno del traffico ICMP_ECHO. Questo è possibile  perché i dispositivi di rete non filtrano il contenuto “dati” di ICMP_ECHO. Semplicemente li fanno passare, li abbandonano o li restituiscono. I pacchetti trojan sono mascherati come traffico comune ICMP_ECHO. Possiamo incapsulare (tunnel) tutte le informazioni che vogliamo. Da qui in poi, il traffico Loki farà riferimento a al traffico ICMP_ECHO che riporta le informazioni sul tunnel. (I lettori più esperti noteranno che Loki è semplicemente una forma di steganografia).

Loki non è uno strumento OSCURO. Può essere utilizzato come porta di servizio di un sistema mediante la fruizione di un metodo segreto per ottenere l’esecuzione di comandi su un computer remoto.

O utilizzato come clandestinely leeching information off di un macchina. Ma potrebbe  essere utilizzato come un metodo di comunicazione segreto tra utente-macchina o utente-utente. In sostanza il canale è semplicemente un modo per mescolare segretamente dati (la riservatezza e l’autenticità possono essere aggiunte mediante crittografia).

 Ricordate !

Se il traffico ICMP_ECHO è consentito, allora questo canale nascosto esiste.  Se questo esiste, quindi è un canale imbattibile per creare una backdoor (una volta che il sistema è stato compromesso).  Anche con firewall di nuova concezione e filtraggio dei pacchetti e con tutti meccanismi di difesa in atto, questo canale continua ad esistere (a condizione, naturalmente, non neghino il passaggio del traffico ICMP_ECHO).  Con una logica di true su ICMP_ECHO , il canale può funzionare per tutta la durata di la sua esistenza.

p.s.

Questo in risposta ad un collega che “il mio server è sicuro mi gioco le ….” azz lo pingo !

Non giocartele mai, potrebbero, un giorno molto lontano, servire 🙂 .

p.s. di p.s.

Ah non è l’unico canale aperto che ho trovato. Al prossimo articolo ……