Risponderò (molto) in generale e ti permetterò di fare i conti.
Lo spoofing dell'indirizzo IP funziona come qualsiasi altra forma di spoofing. Spoofing significa fingere di essere qualcuno che non lo sei. Nel contesto della sicurezza delle informazioni, lo spoofing dell'indirizzo IP (d'ora in poi definito come "spoofing") è abbastanza comune in molti attacchi. Ad esempio per i sistemi di destinazione che utilizzano l'indirizzo IP come controllo di sicurezza come gli elenchi di controllo dell'accesso del router, i firewall, le relazioni di fiducia, ecc. Inoltre, viene tipicamente utilizzato negli attacchi Denial of Service. Lo spoofing IP in pratica può variare da banale a molto complesso. In generale ci sono davvero 3 modi comuni per farlo.
Potresti semplicemente impostare il tuo indirizzo IP su qualsiasi cosa desideri usando ifconfig
in Unix o netsh
in Windows. Inoltre, molti strumenti sono dotati di funzionalità di spoofing incorporate come decoy in Nmap o si possono usare vari strumenti di crafting del pacchetto come Scapy. Questo è fantastico e tutto, ma chiunque abbia conoscenze di base sulla rete ti dirà che in molti casi non sarà molto utile. Certi protocolli di datagrammi spoofing come UDP o ICMP sono banali, ma per quanto riguarda TCP? Prima di tutto la maggior parte dei fornitori di servizi Internet ignorano l'indirizzo di origine, quindi puoi iniziare a scattare pacchetti con qualsiasi IP che ti piace e probabilmente verranno consegnati, ma se vuoi davvero avere un'interazione significativa (cioè praticamente qualsiasi cosa diversa da DoS) ) sei sfortunato perché la risposta sarà ovviamente inviata a chiunque tu stia spoofing. Questa è la natura dei protocolli orientati alla sessione come TCP. La stretta di mano a tre vie sta per rovinare tutto il tuo divertimento. Ad esempio: invii i tuoi pacchetti spoofati (SYN [A, ISNa]) oltre quella macchina (B) che risponderà (ACK [A, ISNa + X] SYN [B, ISNb]) a chiunque tu stia spoofing ( A), ma l'unica macchina di risposta B tornerà dalla macchina A è un reset (RST). Ora, se sei sulla stessa LAN del sistema che stai spoofing, questo funziona in modo leggermente diverso in quanto potresti semplicemente intercettare i messaggi. Per aggirare questo piccolo problema con TCP si potrebbe provare a prevedere gli ISN. Per questo motivo si suppone che i numeri di sequenza iniziale (ISN) in TCP siano difficili da indovinare.
In realtà stavo andando avanti, ma non sono molto bravo in questo e sono stanco quindi sto solo chiudendo ... con poche parole. Forse tornerò e finirò in un secondo momento. Scusate.
Il modo più semplice che conosco per fare lo spoofing è tramite il routing sorgente. Usa semplicemente il routing del codice sorgente, mettiti nel percorso e sei a posto. L'unica dipendenza è che almeno un percorso di rete tra te e il tuo target supporta il routing di origine. Non penso che questo sia davvero un grosso problema in questo momento.
Ora per difendersi dallo spoofing cosa devi fare? Tieni aggiornato lo stack TCP / IP. Non estendere le relazioni di trust al di fuori dei firewall a meno che non si tratti di un tunnel crittografato. Non utilizzare gli indirizzi IP per l'autenticazione (sì, le persone lo fanno effettivamente.) Usa filtri anti-spoof su router e firewall, sia anti-contraffazione diretta che inversione del percorso inverso. Non consentire ai pacchetti indirizzati alla sorgente tramite gateway di rete e, in particolare, non gateway Internet. (Alcuni membri del networking sembrano avere un hard-on per il routing di origine sulla rete interna, ma vale sempre la pena di girarlo) In IOS questo è facile come cambiare una impostazione. Si chiama "no ip source-route". È inoltre possibile impostare filtri anti-spoof per generare registri e utilizzare alcune tecniche di apprendimento automatico per rilevare gli indirizzi di origine non previsti su una determinata rete.
Mi dispiace di tagliar corto, ma sono fuori. Cherrio.