Bibliografia:
Computer Networking. Autori: James F. Kurose (University of Massachusetts, Amherst) Keith W. Ross (Polytechnic Institute of NYU).
Un attacco IP spoofing può precedere una varietà di altri attacchi. In un attacco IP spoofing l'indirizzo IP di un utente malintenzionato appare come un indirizzo IP accreditato. Ad esempio, se un utente malintenzionato convince un host che rientra tra gli host di fiducia, potrebbe ottenere l'accesso privilegiato ad una macchina della rete. L'utente malintenzionato potrebbe inoltre intercettare il traffico, nel quale potrebbe trovare le credenziali, come username e password. Come altro esempio, negli attacchi DoS (negazione del servizio) e DDoS (negazione del servizio con la partecipazione di molti attaccanti), l'IP spoofing consente di nascondere l'identità della sorgente dell'attacco.
Per capire come si realizza un attacco IP spoofing, si ricordi il formato del pacchetto di livello3. L'attaccante può modificare il campo contenente l'indirizzo IP sorgente, sostituendolo con un indirizzo IP "attendibile".
A livello di Trasporto, invece, si ricordi che la fase di apertura connessione consiste nello scambio di tre pacchetti (three-way handshake):
Il trasmettitore invia un segmento SYN al ricevitore, contenente anche un numero di sequenza.
Il destinatario risponde con un segmento di conferma (un ACK) e con un proprio numero di sequenza (un SYN).
Il mittente invia un segmento ACK per confermare il segmento ricevuto, e da questo momento in poi inizia il trasferimento dei dati.
La figura illustra la fase three-way handshake del TCP.
Per "dirottare" una connessione in fase di apertura tra un mittente legittimo e una destinazione, l'attaccante ha bisogno di conoscere i numeri di sequenza utilizzati nei segmenti TCP. Se l'attaccante riesce ad indovinare o a predire i numeri di sequenza TCP corretti, può inviare un segmento ACK verso la destinazione. Se questo segmento di conferma giunge al destinatario prima del segmento di conferma della sorgente, l'attaccante stabilisce la connessione "fidata" con il destinatario.
Per realizzare questo attacco IP Spoofing, l'attaccante deve riuscire ad indovinare i numeri di sequenza dei segmenti TCP. Se l'attaccante si trova nella stessa sottorete del destinatario, può usare un software per la cattura dei pacchetti per leggere il numero di sequenza del segmento.
Se l'attaccante si trova nella stessa subnet del destinatario, potrebbe lanciare un attacco man-in-the-middle. In una delle sue varianti dell'attacco man-in-the-middle, l'attaccante convince gli host a consegnare tutti i frame al suo computer. Ad esempio, l'utente malintenzionato potrebbe inviare una serie di messaggi ARP non richiesti ai sistemi. Questi frame ARP indicano una falsa associazione tra IP di un host e il suo MAC addres. Ad esempio potrebbero far credere che l'indirizzo IP del gateway-router ha l'indirizzo MAC che appartiene al computer dell'aggressore. In questo modo, l'utente malintenzionato acquisisce tutto il traffico, lo memorizza per analizzarlo in seguito, e lo trasmette al router legittimo. Gli utenti non notano nulla di sospetto.
Usare le access control list (ACL) sulle interfacce dei router. Le ACL possono essere usate per filtrare i pacchetti entranti, scartando tutti i pacchetti che hanno nel campo indirizzo-IP-sorgente un indirizzo che appartiene ad un host interno. Allo stesso modo, le ACL devono impedire che il traffico in uscita partecipi ad un attacco SYN Flood o DDoS, impedendo che escano pacchetti con indirizzo-IP-sorgente non appartenente a nessun host della rete.
Criptare il traffico tra due router o tra un sistema terminale ed un router, tramite il tunnel realizzato con il protocollo IPsec. Se tra due dispositivi si crea un tunnel, un attaccante può ancora catturare pacchetti, ma non può analizzarli perchè sono incomprensibili.
Autenticare gli interlocutori con uno scambio di messaggi criptati.
L'attacco alla riservatezza ha lo scopo di rubare informazioni personali (username, password, numero della carta di credito, indirizzo e-mail) o dati sensibili. L'attaccante si limita a copiare i dati, quindi il tentativo di intrusione non viene rilevato facilmente. Anche se ci fosse la registrazione degli accessi ai file, in mancanza di sospetti, nessuno leggerebbe mai il registro degli accessi.
Software per l'analisi di protocolli, come Wireshark, che si può scaricare a http://www.wireshark.org, viene usato per catturare i pacchetti che transitano sul segmento di rete, dove si trova il computer dell'attaccante. Inoltre alcuni protocolli, ad esempio Telnet e http, inviano testo in chiaro, quindi un attaccante riesce a leggere il contenuto dei pacchetti, entrando in possesso di informazioni riservate.
Un attacco alla riservatezza inizia con la scansione degli indirizzi delle macchine della rete. A tale scopo si possono generare comandi ping con indirizzi IP di tentativo. Quando si ottiene un elenco di indirizzi IP dai quali si ottiene la risposta, l'analisi prosegue con la scansione delle porte (UDP o TCP) per scoprire quali servizi sono disponibili sulle macchine individuate.
Spesso gli impiegati si liberano di molti documenti senza alcuna precauzione, quindi le informazioni riservate potrebbero anche essere trovate tra i rifiuti.
Un attaccante potrebbe anche collegarsi sugli stessi cavi di trasmissione e copiare tutte le informazioni in transito.
Il Social Engineering consiste nell'ottenere informazioni riservate dopo aver stabilito un rapporto di fiducia con la vittima.
L'attacco Man in the middle può anche servire per alterare i dati. Un attaccante che intercetta i dati provenienti da una sorgente può modificarli e poi inviarli al vero destinatario.
Una serie di attacchi di entità trascurabile, può produrre grossi guadagni all'attaccante. Ad esempio, se l'attaccante è riuscito a rubare molti numeri di carte di credito, può trasferire piccoli importi sul suo conto, che quindi non vengono notati dai titolari, La somma delle transazioni però potrebbe essere significativa.
La manipolazione dei dati può essere effettuata anche da appositi virus che, sullo schermo dell'utente, mostrano i dati reali che l'utente compone sulla tastiera, ma nella transazione verrebbero immessi dati modificati.
Tra i dispositivi di rete si possono stabilire relazioni di fiducia. Ad esempio, un certo host potrebbe essere autorizzato a comunicare attraverso un host, usando determinate porte, mentre agli altri host viene negata la comunicazione attraverso il firewall. Se un attaccante riesce a compromettere l'host che ha una relazione di fiducia con il firewall, l'attaccante usa quell'host per far passare, attraverso il firewall, comunicazioni che verrebbero bloccate. Un altro esempio di relazione di fiducia eiste tra un server web e un database server. Il server web accede al database che potrebbe essere ospitato su un server separato. Se l'attacacnte riesce a conquistare il controllo del server web, può compromettere anche il database server.
L'attacco alle password ha lo scopo di rubare le credenziali degli utenti, allo scopo di accedere alle risorse del sistema con particolari permessi. Esistono numerosi modi in cui un attaccante può rubare le credenziali di accesso. Il cavallo di troia è un programma che dichiara di svolgere una certa operazione di interesse per l'utente ma, al suo interno, nasconde un programma che esamina i dati inseriti dall'utente e, quando riconosce le password, le comunica all'attaccante. I software per la cattura dei pacchetti acquisiscono i frame che transitano sul canale condiviso. Se le password viaggiano in chiaro, l'attaccante riesce a rubare le credenziali di accesso alle risorse della rete. I Keylogger sono software che sono in esecuzione in background, all'insaputa dell'utente e senza palesare la loro presenza. Registrano in un file tutti i tasti digitati dall'utente. L'attaccante esamina questo file per estrarre le password digitate dall'utente del computer. Un attacco di forza bruta consiste nel provare tutte le combinazioni di caratteri fino a trovare la password corretta. Un attacco basato su un dizionario consiste nel provare in successione le parole di un elenco di possibili password.
Un altro attacco all'integrità dei dati è denominato Botnet. Un software su una macchian che può essere controllato da remoto, agisce come un robot (potrebbe essere un cavallo di troia o una back door). Con il termine botnet si indica un gruppo di computer infettati con un software robot, ed ogni computer del gruppo viene detto zombie. Poichè una botnet potrebbe estendersi a molti computer, l'attaccante può compromettere l'integrità di grandi quantità di dati.
Una sessione di Hijacking si crea quando l'attaccante completa la fase di apertura connessione, inviando il terzo pacchetto prima dell'host autorizzato.
Lo scopo degli attacchi alla disponibilità dei dati è quello di ridurre l'utilizzo o impedire l'accesso ai dati del sistema. Ad esempio, se l'attaccante consuma tempo di CPU, o satura la memoria di una macchina, questa sarà inutilizzabile da parte degli utenti autorizzati.
I tipi di attacchi possono essere i seguenti:
Denial of service (DoS): un utente malintenzionato lancia un attacco DoS ad un sistema inviando, in continuazione, richieste, o trasferendo dati, fino ad esaurire le risorse del sistema. Oppure, se conosce una vulnerabilità del sistema operativo o delle applicazioni, l'attaccante potrebbe forzare un errore non gestito dal sistema operativo della macchina vittima, inviando dei dati in un formato non previsto che quindi provocano il crash del sistema operativo in funzione sulla macchina.
Distributed denial of service (DDoS): gli attacchi DDoS generano un grosso volume di traffico diretto ad un sistema vittima. In questo tipo di attacco, vengono compromessi molti host con un software ideato per lanciare l'attacco simultaneamente.
SYN flood: si ricordi che la fase di apertura di una connessione TCP consiste di tre pacchetti. L'attaccante invia un pacchetto di richiesta apertura connessione, inviando un segmento con la flag SYN impostata a valore 1, ma falsificando l'indirizzo IP del mittente. L'host vittime prepara le risorse (buffer e variabili) e risponde con il pacchetto di conferma, per accettare la connessione (SYN+ACK). Ma questo pacchetto si perde nella rete perchè è destinato ad un host inesistente. L'host vittima, così resta in attesa del terzo pacchetto che non arriverà mai. L'attaccante invia una serie di richieste di apertura connessione, tutte con indirizzo IP sorgente falso, fino ad esaurire le risorse dell'host destinatario e renderlo inutilizzabile.
attacchi ICMP: Il protocollo ICMP serve per la diagnostica delle reti. Un attaccante può usare i pacchetti ping per interrompere il servizio del computer destinatario. Ad esempio l'attacco "ping of death" usa i pacchetti ICMP di dimensione superiore a quella aspettata. In un'altra variante, i segmenti vengono frammentati allo scopo di sovrascrivere i segmenti contenuti nel buffer del destinatario. L'attacco "Smurf", invece, usa il traffico ICMP diretto a una sottorete per saturare il canale del sistema destinatario con i pacchetti di risposta. Più precisamente, l'attaccante invia un ping all'indirizzo di broadcast di una sottorete, sostituendo il suo indirizzo IP con quello del sistema da attaccare, i compuer della sottorete, inviano i pacchetti di risposta al sistema destinatario, saturando la banda e riducendo la capacità del canale.
Infine, resta da considerare che l'attaccante può agire anche sull'ambiente in cui è ospitato il sistema, ad esempio con disturbi elettromagnetici, interruzioni dell'alimentazione, incendi e altri comportamenti dolosi.
Dopo aver chiarito il significato di sicurezza della rete, resta da considerare quali informazioni possono essere intercettate da un intruso e quali operazioni questi può compiere. Nel modello di analisi della sicurezza delle reti, si assume che ci siano due sistemi A e B in comunicazione attraverso la rete, e che ci possa essere un intruso che intercetta i pacchetti in transito. Nel modello, i due sistemi vengono chiamati Alice (sistema A) e Bob (sistema B, mentre l'intruso viene chiamato Trudy. Alice, Bob e Trudy non sono necessariamente utenti che, ad esempio, vogliono scambiare e-mail in modo riservato, potrebbero essere anche dispositivi di rete che, ad esempio, si scambiano informazioni di routing, o potrebbe essere un utente che usa una applicazione di rete per fare acquisti. Alice, il mittente, vuole inviare, in modo sicuro, dati a Bob, il ricevitore, godendo dei servizi di riservatezza, autenticazione e integrità dei dati. Alice e Bob non si scambiano solo dati, ma anche messaggi di controllo della trasmissione, come fa il protocollo TCP. Sebbene questi messaggi siano criptati, quindi incomprensibili ad un intruso, è sempre possibile:
intercettare e registrare i messaggi di controllo e i dati in transito;
modificare il contenuto di un messaggio, inserire nuovi messaggi, cancellare i messaggi.
A meno che non vengano prese contromisure appropriate, queste possibilità consentono ad un intruso di predisporre una grande varietà di attacchi alla sicurezza: analizzare i dati per rubare password e informazioni riservate, impersonare un'altra entità, dirottare una sessione in corso, negare il servizio agli utenti della rete, sovraccaricare le risorse di un sistema, ecc.