Repository 32bit  Forum
Repository 64bit  Wiki

apache MaxRanges... a quanto?

Se avete problemi con l'installazione e la configurazione di Slackware postate qui. Non usate questo forum per argomenti generali... per quelli usate Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

apache MaxRanges... a quanto?

Messaggioda ZeroUno » mer nov 23, 2011 19:28

L'ultima versione di apache introduce un nuovo parametro 'MaxRanges' per risolvere una vulnerabilità che causa un DoS.

Il default per questo parametro è '200'

Ma a quanto è opportuno settarlo?
200 è il giusto per ovviare al DoS?
Cosa può comportare un abbassamento di tale valore (a livello funzionale e prestazionale).
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4393
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current

Re: apache MaxRanges... a quanto?

Messaggioda miklos » gio nov 24, 2011 14:06

quello che ti posso dire io è che l'http 1.1 introduce una nuova funzionalita che consente di fare richieste tramite i ranges.. ovvero anzichè richiedere un file per intero, puoi per esempio dirgli di farti dare dal tot byte in poi, oppure dal byte x al byte y e via dicendo.

quindi immagino che questa direttiva limiti il numero di richieste di questo tipo, superato il quale il server le ignora e ti restituisce tutta la risorsa richiesta.
non mi è mai capitato di trovarmi di fronte ad una applicazione che fa questo tipo di richieste.. quindi per come la vedo io potresti persino metterlo a zero se non intendi supportare una qualsiasi forma di resume dei download e non vedere alcuna differenza.
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1211
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: apache MaxRanges... a quanto?

Messaggioda targzeta » gio nov 24, 2011 14:15

miklos ha scritto:quello che ti posso dire io è che l'http 1.1 introduce una nuova funzionalita che consente di fare richieste tramite i ranges.. ovvero anzichè richiedere un file per intero, puoi per esempio dirgli di farti dare dal tot byte in poi, oppure dal byte x al byte y e via dicendo.
...
non mi è mai capitato di trovarmi di fronte ad una applicazione che fa questo tipo di richieste..
Penso che tutti i software sfruttino questa possibilità. Ad esempio, se vuoi provare, 'wget -c' fa esattamente questo. Ma credo che anche i vari browser se per un motivo o per un altro non riescono a scaricare completamente un file, possono riprendere da dove si è interrotta la comunicazione. Ovviamente il tutto funziona se, appunto, dall'altra parte il server è abilitato a supportare questo tipo di richieste.

Emanuele
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6163
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: apache MaxRanges... a quanto?

Messaggioda miklos » gio nov 24, 2011 14:23

spina ha scritto:Penso che tutti i software sfruttino questa possibilità. Ad esempio, se vuoi provare, 'wget -c' fa esattamente questo. Ma credo che anche i vari browser se per un motivo o per un altro non riescono a scaricare completamente un file, possono riprendere da dove si è interrotta la comunicazione

si hai ragione, mi sono espresso male :D
quello che ho provato a spiegare è che, per me, ai fini del funzionamento del server (inteso come performance generali e non come banda consumata) questo valore non ha una fondamentale utilità se il tuo sito web non ha file da scaricare..
immagino che il limite imposto sia dovuto al fatto che se sparo 2000 richieste di questo tipo saturo di piu' di un equivalente attacco fatto con richieste normali
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1211
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: apache MaxRanges... a quanto?

Messaggioda ZeroUno » gio nov 24, 2011 14:52

Metterlo a 0 significa unlimited.

La mia domanda è appunto, mettendolo al valore di default (200) mi possono borbandare e fare un DoS?
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4393
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current

Re: apache MaxRanges... a quanto?

Messaggioda miklos » gio nov 24, 2011 14:58

secondo me si.. perchè a logica, il fatto che limiti il numero di richieste di questo tipo, non vuole dire che le blocchi, perchè la richiesta viene fatta in modo 'tradizionale' e non annullata.
quindi in ogni caso, un attacco ddos andrebbe a buon fine, solo che un attacco ddos fatto con richieste con ranges ha un effetto piu' rapido.

EDIT:
riporto il pezzo preso dalla documentazione
Codice: Seleziona tutto
The MaxRanges directive limits the number of HTTP ranges the server is willing to return to the client. If more ranges then permitted are requested, the complete resource is returned instead.
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1211
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: apache MaxRanges... a quanto?

Messaggioda ZeroUno » gio nov 24, 2011 17:12

miklos ha scritto:secondo me si.. perchè a logica, il fatto che limiti il numero di richieste di questo tipo, non vuole dire che le blocchi, perchè la richiesta viene fatta in modo 'tradizionale' e non annullata.
quindi in ogni caso, un attacco ddos andrebbe a buon fine, solo che un attacco ddos fatto con richieste con ranges ha un effetto piu' rapido.

Un DDoS è possibile ovviamente in altre vie. Il punto ora è usare MaxRanges per impedire questa di via. Le altre andranno chiuse in altri modi. E' chiaro che se un milione di pc mi si connettono contemporaneamente con anche una singola connessione tcp mi sdraiano il sistema, ma per questa ce ne sono altre di soluzioni. Ora stiamo parlando di MaxRanges.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4393
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current

Re: apache MaxRanges... a quanto?

Messaggioda miklos » gio nov 24, 2011 18:30

allora forse non ho capito bene io :D comunque l'argomento mi interessa perchè sono in procinto di lanciare un servizio web (nn basato su apache ma la tematica è importante).
ZeroUno ha scritto:Il punto ora è usare MaxRanges per impedire questa di via

mi descrivi questa via per favore?!?!?

dai miei studi fatti in materia, un ddos web non si puo' evitare, a meno di compromessi troppo restrittivi (bannare ip, rifiutare connessioni e simili), si possono solo limitare i danni ( rallentare richieste dallo stesso ip troppo frequenti, dirottare il traffico su una pagina di cortesia.. etc etc etc)
e comunque, sempre secondo le mie conoscenze, un attacco ddos fatto al server web si fa in un unico modo... lo bombardi di richieste web sulla porta in ascolto.

in questo caso, mi sembra che parliamo di limitare i danni, non di prevenire un qualcosa che comunque andrebbe a buon fine visto che il parametro non regola l'esito della risposta(per farla breve non chiude le connessioni), ma solo se accettarla per quello che è, oppure trattarla come una richiesta normale.
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1211
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: apache MaxRanges... a quanto?

Messaggioda ZeroUno » gio nov 24, 2011 19:11

Con un recente exploit è possibile generare un DoS, con un semplice script è possibile generare un DoS da un solo pc casalingo.

http://cve.mitre.org/cgi-bin/cvename.cg ... -2011-3192

The byterange filter in the Apache HTTP Server 1.3.x, 2.0.x through 2.0.64, and 2.2.x through 2.2.19 allows remote attackers to cause a denial of service (memory and CPU consumption) via a Range header that expresses multiple overlapping ranges, as exploited in the wild in August 2011, a different vulnerability than CVE-2007-0086.


Questo script da solo può sdraiare un server.
Io non sono riuscito a simulare la situazione perchè il mio server va in https mentre questo script va in solamente in http, ma non ci ho perso tempo.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4393
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current

Re: apache MaxRanges... a quanto?

Messaggioda ZeroUno » gio nov 24, 2011 19:49

Ecco l'attacco (ho aperto la porta 80)


Codice: Seleziona tutto
$ free
             total       used       free     shared    buffers     cached
Mem:       4043740    3820544     223196          0        568     404004
-/+ buffers/cache:    3415972     627768
Swap:      4606132    2947992    1658140


la swap va in diminuzione (ora ho stoppato lo script però)

Codice: Seleziona tutto
07:38:14 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
07:38:15 PM     all     95.98      0.00      4.02      0.00      0.00      0.00
07:38:16 PM     all     89.05      0.00     10.95      0.00      0.00      0.00
07:38:17 PM     all     88.00      0.00     12.00      0.00      0.00      0.00
07:38:18 PM     all     94.50      0.00      5.50      0.00      0.00      0.00
07:38:19 PM     all     95.50      0.00      4.50      0.00      0.00      0.00
07:38:20 PM     all     85.93      0.00     14.07      0.00      0.00      0.00
07:38:21 PM     all     94.00      0.00      6.00      0.00      0.00      0.00
07:38:22 PM     all     95.02      0.00      4.98      0.00      0.00      0.00
07:38:23 PM     all     93.50      0.00      6.50      0.00      0.00      0.00
07:38:24 PM     all     86.50      0.00     13.50      0.00      0.00      0.00
Average:        all     91.80      0.00      8.20      0.00      0.00      0.00



apache 2.2.16

------

apache di slackware-current

lo script dice
"Host does not seem vulnerable"
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4393
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current

Re: apache MaxRanges... a quanto?

Messaggioda miklos » gio nov 24, 2011 20:35

ora ho capito :)
guardando l'exploit non è un ddos basato sul numero di connessioni, ma di un buco vero e proprio!!!
in pratica si basa sul numero di range che si richiedono e il fatto che essendo sovrapposti incriccano il sistema.

a sto punto quindi il parametro indica il numero di ranges che si possono richiedere(in totale, quindi sia da 1 che da 50 richieste) e non come avevo supposto io, il numero di richieste con ranges.

detto questo secondo me il valore di default va piu' che bene (e aggiungo che, personalmente, se so di non avere la necessita di far scaricare file di grosse dimensioni, lo disabiliterei proprio)

comunque sarebbe carino vedere come si comporta l'exploit anche in presenza di una versione recente, perchè al momento l'exploit non lancia la caterva di connessioni in ogni caso, ma solo se si rende conto che l'apache gli risponde in un certo modo.
ho visto cose che voi astemi non potete immaginare
miklos
Linux 3.x
Linux 3.x
 
Messaggi: 1211
Iscritto il: lun lug 16, 2007 16:39
Località: Roma
Slackware: 14.1 64bit
Kernel: 3.12.6
Desktop: openbox 3.5.2

Re: apache MaxRanges... a quanto?

Messaggioda ZeroUno » ven nov 25, 2011 12:39

La cosa strana è che con apache 2.2.21 mi dice "Host does not seem vulnerable" anche se metto MaxRanges unlimited.


Sinceramente credo che nel mio caso sarebbe anche disabilitabile perchè il mio apache è fondamentalmente un reverse proxy verso un server tomcat e non so quanto se ne possa trarre vantaggio dal fare richieste spezzettate.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111
Avatar utente
ZeroUno
Staff
Staff
 
Messaggi: 4393
Iscritto il: ven giu 02, 2006 13:52
Località: Roma / Castelli
Nome Cognome: Matteo Rossini
Slackware: current
Kernel: slack-current
Desktop: ktown-latest
Distribuzione: 01000000-current


Torna a Slackware

Chi c’è in linea

Visitano il forum: Bing [Bot], Google [Bot] e 3 ospiti