slowhttptest: DoS contro Apache con la vulnerabilità range header (ma non solo)

Il 19 agosto scorso, sulla Full Disclosure Mailing List, è comparso un messaggio di Kingcope con allegato “killapache.pl” uno script PERL che ha messo a nudo una vulnerabilità in Apache in grado di consentire un DoS del webserver (dunque un DoS Layer 7 di cui ho già parlato in precedenza anche se mi riferivo a DDoS) open source. Basta che ad eseguire lo script da un solo PC per mettere in ginocchio Apache e la macchina che lo esegue a causa dell’elevato consumo di RAM e CPU. Lo script è tutt’altro che perfetto e non sempre affidabile nello sfruttare la vulnerabilità. Dai test che ho potuto effettuare spesso il bersaglio veniva riconosciuto come non vulnerabile pur essendolo.

A distanza di meno di una settimana dal messaggio di Kingcope la possibilità di sfruttare la vulnerabilità “range header handling” di Apache è stata inclusa nel tool slowhttptest versione 1.1. Il team di Apache ha rilasciato da pochi minuti una nuova release del web server, Apache HTTP Server 2.2.20, proprio per correggere la vulnerabilità, ma si può far ricorso comunque a slowhttptest per effettuare dei test sui propri web server o su server che non siano aggiornati (è probabile che le maggiori distribuzioni Linux includano l’aggiornamento tra le patch di sicurezza rilasciate nelle prossime ore). Vediamo come installarlo e utilizzarlo.

Installazione di slowhttptest:

$ tar -xzvf slowhttptest-1.1.tar.gz

$ cd slowhttptest-1.1

$ ./configure --prefix=/usr/local/
$ make

$ sudo make install

Per verificare la tenuta di Apache allo sfruttamento della vulnerabilità range header possiamo far riferimento alla documentazione presente su ApacheRangeTest, per esempio si potrà eseguire il seguente comando:

slowhttptest -R -u http://127.0.1.1/ -t GET -c 1000 -a 10 -b 3000 -r 500

Se invece avete necessità di verificare la resistenza di Apache a un “normale” DoS (una sorta di stress test un po’ brutale) basterà usare slowhttptest nel modo che segue:

./slowhttptest -c 1000 -B -g -o my_server_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://www.mioserverditest.com -x 10

Per il significato dei parametri passati rimando a slowhttptest installazione e uso.

Importante: evitate di lanciare attacchi DoS con slowhttptest su server che non siano di vostra proprietà, si tratta di azioni punibili penalmente.

Riferimenti:

Rapache, gestione semplice dei Virtual Host e dei moduli di Apache

Rapache è un tool molto utile creato da Emanuele Gentili. Si tratta di una GUI minimalista che permette di fare due cose e di farle bene: creare dei Virtual Host in Apache e selezionare/deselezionare i moduli di cui abbiamo bisogno per il nostro web server.
La creazione dei Virtual Host permette di modificare direttamente il file /etc/hosts nel caso non si abbia una Name Server a disposizione sulla propria macchina locale. Per quanto riguarda i moduli, come detto, è possibile caricarli con un clic senza dover mettere mano al file di configurazione di Apache.

Rapache 0.4, rilasciato da pochi giorni, è facilmente installabile su Ubuntu impostando i repository consigliati sul blog di Emanuele Gentili (che al momento in cui scrivo è irraggiungibile…) in /etc/apt/sources.list.