In questo articolo andremo a trattare un argomento che non ho mai approfondito, sia a causa di poco interesse, sia a causa del fatto che è una metodologia di attacco che poco si addice ad un hacking prettamente etico. Non tratterò come di consueto le metodologie di attacco, in quanto sono profondamente contrario all’attuazione dello stesso, per cui se siete qui per scoprire come eseguire un attacco DoS avete sbagliato articolo (e sito). Nel prossimo tratterò invece gli attacchi DDoS, sempre più quotidiani e potenti.
Wikipedia lo definisce come un attacco informatico che mira ad esaurire le risorse di un sistema informatico, mirando quindi a negare la disponibilità del servizio verso client benevoli. Come vedremo ci sono diverse modalità per esaurire la risorse di un servizio, ad esempio:
Solitamente I DoS sono attacchi temporanei, atti a bloccare le risorse per tempi più o meno brevi, ma ci sono anche casi speciali in cui l’attacco porta ad un danneggiamento o distruzione completa del firmware, solitamente detti PDOs o phlashing.
Questi attacchi sono una delle categorie più pericolose per un’azienda o ente che offre servizi via web, in quanto qualunque ‘nemico’ (come aziende concorrenti o governi) con abbastanza risorse potrebbe danneggiare irrimediabilmente la vittima. Chiunque compie questo attacco per divertimento o per “diletto” non ha compreso per nulla le potenzialità e la pericolosità dello stesso.
Gli attacchi, in base alla modalità possono dividersi in:
Gli attacchi provenienti da un singolo host, ormai sempre più remoti (se non a piccoli web services o a client/router privati) sono diversi, tutti sfruttanti caratteristiche peculiari dei protocolli di rete.
È stato il primo attacco DoS, lanciato verso gli anni ‘90. In esso l’attaccante invia un grande numero di richiesto ICMP (Internet Control Message Protocol) ad un indirizzo broadcast. Essendo richieste echo venivano inviate a tutti i nodi partecipanti alla rete i quali rispondevano alla richiesta, invando anche loro un messaggio, questa volta all’indirizzo IP vittima ((lo spoofed IP), il quale veniva inondato letteralmente di pacchetti.
L’attacco, utilizzato alla fine degli anni ‘90, utilizzava una grave vulnerabilità nel protocollo IP dei principali sistemi operativi. L’attaccante inviava un pacchetto IP malformato che causava un buffer overflow alla vittima e il conseguente blocco del servizio.
Questo attacco mira a saturare le risorse della macchina, basandosi su una peculiarità del protocollo TCP, il quale, ogni qualvolta viene aperta una connessione TCP esegue un three way handshake. L’attaccante non esegue di fatto il three way ma invia solo il primo pacchetto SYN, lasciando uno stato aperto (una struttura di memoria fondamentalmente) sul server. Una volta che sul server sono presenti migliaia di connessioni aperte per metà, la memorià andrà ad esaurirsi e l’attacco sarà andato a buon fine.
Per risolvere questo attacco basta utilizzare un SYN Cookie, cioè si crea la struttura dati solo quando l’handshake è completato. In questo modo non possono essere create strutture a metà ma solo complete, quindi ragionevolmente, solamente da parte di host innocui.
Le difese a questa tipologia di attacchi sono ormai molte (ricordiamoci che parliamo di attacchi da un singolo host, principalmente con IP statico) e ben testate.
I firewall sono device di sicurezza che permettono di controllare il traffico tra le due parti di una rete. Tutto il traffico deve passare quindi attraverso il firewall per essere protetto. Ci sono due tipi di firewall:
Gli IDS consistono in una serie di sensori che rilevano dati, e possono essere posizionati sia sugli hosts che sulla rete. Ci sono due approcci alla rilevazione di intrusione:
Gli IDS sono quindi sensori distribuiti atti a raccogliere dati, analizzare, riportare le informazioni utili e nel caso reagire.Idealmente:
Essi si possono dividere in:
I semplici attacchi DoS sono ormai in disuso, in quanto decisamente meno performanti rispetto ad un attacco di negazione del servizio distribuito. Per chi volesse altre difese, sul sito della SANS ci sono ottime fonti, mentre per una più tecnica (ma decisamente completa) descrizione degli stessi consiglio RFC4732.