7: Sniffing
Concetti di sniffing
Network Sniffing
Il packet sniffing è un processo di monitoraggio e di cattura di tutti i pacchetti che transitano in una rete tramite l’utilizzo di un software o di hardware apposito.
Tipologie di Sniffing
PASSIVE SNIFFING: si riferisce ad una tecnica di sniffing attraverso hub (che non sono più in utilizzo oggi) e può essere effettuata solo in una rete dove i pacchetti sono inviati a tutti i dispositivi.
ACTIVE SNIFFING: è una tecnica che si utilizza in una rete dove ci sono degli switch, consiste nell’iniettare pacchetti ARP nella rete per riempire la CAM (content addressable memory) dello switch. Le tecniche utilizzate includono: MAC flooding, Attacchi DHCP, DNS Poisoning, Switch Port Stealing, ARP Poisoning e attacchi spoofing. Il NIC deve essere in modalità promiscua.
Attacchi MAC
Quando la CAM di uno switch è piena, i pacchetti vengono inviati a tutte le porte dello switch, trasformandolo di fatto in un hub, lo switch quindi viene resettato e rientra in “learning mode”. In genere la CAM viene riempita con IP/MAC fittizi.
Switch Port Stealing
Questa tecnica utilizza il MAC Flooding per sniffare i pacchetti. L’attaccante inonda lo switch con pacchetti ARP appositamente modificati: il pacchetto infatti ha il MAC del target come sorgente e il MAC dell’attaccante come destinatario; se l’attaccante è abbastanza veloce rispetto allo switch allora i pacchetti verranno redirezionati verso di lui e non più al target legittimo.
Attacchi DHCP
I server DHCP mantegono le configurazioni TCP/IP in un database, esse vengono classificate come parametri validi.
Attacco DHCP Starvation
Questa tipologia è un attacco DoS verso il DHCP server. L’attaccante effettua il broadcast di richieste DHCP e fa in modo di farsi “rilasciare” degli indirizzi IP, questo inibisce l’utente ad ottenere o rinnovare il proprio indirizzo IP.
Rouge DHCP Server
L’attaccante abilita un server DHCP fittizio nella rete per rispondere alle richieste DHCP, questo attacco viene utilizzato con l’aiuto del DHCP Starvation: l’attaccante invia configurazioni TCP/IP agli utenti che ne fanno richiesta dopo aver delegittimato il server DHCP genuino.
ARP Poisoning
Il protocollo ARP è stateless e viene usato per mappare gli IP e i MAC dei dispositivi. Tutti i dispositivi infatti, effettuano richieste ARP in broadcast per trovare il MAC di un apparato. Con ARP è possibile inviare risposte anche se non è stata effettuata una richiesta specifica, quindi in una rete è possibile, prima che qualche dispositivo lo chieda, effettuare una richiesta del tipo “Ciao io sono A e ho il MAC XX:XX:XX”, il target registrerà comunque l’informazione.
Minacce
Utilizzando richieste ARP fittizie un attaccante può introdursi nella comunicazione tra due host risultando di fatto in un man-in-the-middle.
Altre minacce:
- Packet sniffing
- Session Hijacking
- VOIP Call Tapping
- Manipolazione dei dati
- Attacchi MITM
- Intercettazioni di dati
- Connection Hijacking
- Connection reset
- Furto di credenziali
- Attacchi DoS
DNS Poisoning
Il DNS Poisoning è una tecnica che imbroglia un server DNS e lo induce a credere di aver ricevuto un’informazione autentica, infatti vengono inseriti degli indirizzi IP sbagliati/falsi nella configurazione DNS che si occupa della traduzione degli indirizzi web in IP.
Intranet DNS Spoofing
Il sistema dell’attaccante deve essere connesso alla rete LAN e abilitato allo sniff dei pacchetti, funziona molto bene contro switch con ARP Poisoning routing.
Host File
Modificare il file hosts del sistema permette all’attaccante un notevole successo: infatti se il sistema trova la query cercata nel proprio file hosts non effettuerà nessuna query al server DNS.
Proxy Server DNS Poisoning
Un attaccante può cambiare le impostazioni del proxy server della vittima e tutte le richieste passeranno non dal proxy originario ma da quello impostato dall’attaccante.
DNS Cache Poisoning
Questa tipologia di attacco consiste nell’alterazione della cache DNS (o nell’aggiunta di record DNS) nella cache del resolver DNS in modo da redirezionare il traffico verso siti malevoli.
8: Denial of Service
Introduzione a DoS e DDoS
L’attacco DoS (Denial of Service) è un tipo di attacco che colpisce computer o reti e riduce, restringe o previene l’accesso alle risorse da parte di utenti legittimi. L’attaccante inonda la vittima con richieste non legittime o semplice traffico per sovracaricarne le risorse.
DDoS (Distributed Denial of Service) è un attacco DoS coordinato che coinvolge un numero elevato di computer zombie (sistemi compromessi in precedenza, botnet) per attaccare un singolo target.
Tecniche di attacco DoS/DDoS
VOLUMETRIC ATTACK: Consuma la banda del target (network o servizio).
PROTOCOL ATTACK: Utilizza risorse come le connection state table presenti negli apparati di rete.
APPLICATION LAYER ATTACK: Consuma le risorse dell’applicazione (o servizio) in modo da renderlo non funzionante agli utenti legittimi.
UDP Flood
L’attaccante invia pacchetti UDP con indirizzo spoofed ad alta frequenza, su porte casuali. Questo comporterà che il server sarà costretto a “controllare” se esistono applicazioni che possano rispondere sulle porte selezionate.
SYN Flood
L’attaccante invia una massiccia quantità di richieste SYN al target con indirizzo IP sorgente fittizio, il target risponderà con SYN+ACK attendendo per l’ACK finale. Il target non riceverà risposta in quanto l’IP sorgente è falso; un three-way handshake incompleto può rimanere in attesa fino a 75 secondi.
Fragmentation Attack
Questa tipologia di attacco riduce drasticamente l’abilità del target di riassemblamento pacchetti. Il target, inondato di pacchetti TCP o UDP frammentati, cercerà di riassemblarli e questo porterà ad una riduzione di performance. I pacchetti frammentati solitamente passano attraverso i sistemi di difesa network inosservati, in quanto riassemblare e ispezionare grandi pacchetti frammentati consumerebbe una quantità eccessiva di risorse di sistema.
Multi-Vector Attack
L’attaccante in questo caso utilizza una combinazione di attacchi volumetrici, di protocollo e application layer. Possono essere lanciati un vettore alla volta o in parallelo per confondere gli analisti.
Tecniche di detection e mitigazione
Le tecniche di detection sono basate sull’identificazione e la discriminazione del traffico malevolo (aumenti costanti di traffico o spike) e eventi circostanziati di aumento non previsto di pacchetti legittimi. Tutte le tecniche di detection definiscono un attacco come una deviazione anormale e notevole dalle soglie prefissate durante il normale traffico di rete.
- ACTIVITY PROFILING: Questo tipo di analisi studia il packet rate medio nella rete, e nei singoli segmenti, per verificare la presenza di traffico malevolo.
- SEQUENTIAL CHANGE-POINT DETECTION: Sono degli algoritmi che filtrano il traffico in base all’indirizzo, la porta o il protocollo e indicizzano i risultati in una scala temporale.
- WAVELET-BASED SIGNAL ANALYSIS: L’analisi wavelet descrive un segnale in ingresso in termini spettrali, quest’analisi permette di filtrare il traffico anomalo dal traffico normale.
Contromisure
Assorbire l’attacco: Utilizzare ulteriori risorse (banda, risorse di sistema)
Degradare servizi: Spegnere i servizi non critici e non necessari
Spegnere i servizi: Spegnere tutti i servizi finché l’attacco non è finito
Prevenzione
- EGRESS FILTERING: Scansionare gli header dei pacchetti IP che lasciano la rete, assicurarsi che traffico non autorizzato o malevolo lasci la rete interna.
- INGRESS FILTERING: Prevenire lo spoofing dell’indirizzo sorgente, protegge dagli attacchi flooding.
- TCP INTERCEPT: La funzionalità TCP Intercept presente nei router, protegge i server TCP da attacchi SYN Flooding. Previene attacchi DoS validando le connessioni TCP.
- RATE LIMITING: Controlla il rate del traffico in ingresso e in uscita, riduce l’alto traffico in ingresso.
Riflessione
Esistono sistemi che sono impostati con un basso livello di sicurezza (honeypot) e fungono da esca per gli attaccanti. Un honeypot serve a raccogliere informazioni sull’attaccante e sulle tecniche di attacco. Utilizzare un approccio defense-in-depth in diversi punti della rete per dirottare il traffico sospetto DoS verso le honeypot.
Mitigazione
- LOAD BALANCING: Bilanciare il carico in un architettura multi-server permette di mitigare gli attacchi DDoS.
- THROTTLING: Questo metodo aiuta i router a farsi carico di un eccessivo traffico in ingresso, così da permettere ai server di poterli gestire correttamente.
- DROP REQUESTS: I server e i router cominciano a droppare pacchetti quando il carico aumenta eccessivamente.
9: Session Hijacking
Concetti di Session Hijacking
Il Session Hijacking è una metodologia di attacco nella quale l’attaccante cerca di inserirsi in una comunicazione TCP tra due computer. L’attaccante, sniffando il traffico, può compromettere la vittima con frodi, furti di identità e/o di credenziali.
Tipologie di Session Hijacking
ACTIVE ATTACK: In un attacco di questo tipo l’attaccante trova una sessione attiva e se ne impossessa.
PASSIVE ATTACK: In un attacco passivo invece viene sniffato e registrato il traffico.
Session Hijacking nel modello OSI
NETWORK LEVEL HIJACKING: Intercettazione (sniff) di pacchetti durante una trasmissione TCP/UDP tra client e server.
APPLICATION LEVEL HIJACKING: Ottenimento della user session applicativa (ad es. HTTP) tramite session ID.
Session Hijacking a livello applicativo
In un attacco session hijacking, un session token deve essere rubato o predetto per poter permettere un accesso non autorizzato al web server (HTTP).
Compromissione di ID di sessione con attacchi client-side
- Gli XSS permettono agli attaccanti di iniettare script malevoli e farli eseguire agli altri utenti che visitano la pagina
- Un codice malevolo scritto in JS può essere incluso in una pagina web e catturare le sessioni degli utenti
- Un trojan potrebbe cambiare le impostazioni del proxy nel browser e inviare le sessioni attraverso una macchina gestita dall’attaccante
Session Hijacking con attacco CRIME
CRIME (Compression Ratio Info-leak Made Easy) è un attacco client-side che sfrutta le vulnerabilità presenti nei protocolli di compressione come SSL/TLS, SPDY e HTTPS.
Session Hijacking a livello network
Questa tipologia di session hijacking si basa sui protocolli utilizzati dalle web application a livello applicativo, l’attaccante ottiene informazioni critiche che vengono poi utilizzate per attaccare il livello applicativo.
TCP/IP Hijacking
Utilizza pacchetti spoofed per impossessarsi della connessione tra vittima e target, l’attaccante deve però risiedere nella stessa network.