apache MaxRanges... a quanto?
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.
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.
- ZeroUno
- Staff

- Messaggi: 5441
- Iscritto il: ven 2 giu 2006, 14:52
- Nome Cognome: Matteo Rossini
- Slackware: current
- Kernel: slack-current
- Desktop: ktown-latest
- Distribuzione: 01000000-current
- Località: Roma / Castelli
- Contatta:
apache MaxRanges... a quanto?
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).
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-
ilmich
- Master

- Messaggi: 1646
- Iscritto il: lun 16 lug 2007, 17:39
- Slackware: 15.0 64bit
- Kernel: 5.15.27
- Desktop: kde
- Località: Roma
Re: apache MaxRanges... a quanto?
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.
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.
- targzeta
- Iper Master

- Messaggi: 6643
- Iscritto il: gio 3 nov 2005, 14:05
- Nome Cognome: Emanuele Tomasi
- Slackware: 64-current
- Kernel: latest stable
- Desktop: IceWM
- Località: Carpignano Sal. (LE) <-> Pisa
Re: apache MaxRanges... a quanto?
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.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..
Emanuele
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
-
ilmich
- Master

- Messaggi: 1646
- Iscritto il: lun 16 lug 2007, 17:39
- Slackware: 15.0 64bit
- Kernel: 5.15.27
- Desktop: kde
- Località: Roma
Re: apache MaxRanges... a quanto?
si hai ragione, mi sono espresso malespina 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
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
- ZeroUno
- Staff

- Messaggi: 5441
- Iscritto il: ven 2 giu 2006, 14:52
- Nome Cognome: Matteo Rossini
- Slackware: current
- Kernel: slack-current
- Desktop: ktown-latest
- Distribuzione: 01000000-current
- Località: Roma / Castelli
- Contatta:
Re: apache MaxRanges... a quanto?
Metterlo a 0 significa unlimited.
La mia domanda è appunto, mettendolo al valore di default (200) mi possono borbandare e fare un DoS?
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-
ilmich
- Master

- Messaggi: 1646
- Iscritto il: lun 16 lug 2007, 17:39
- Slackware: 15.0 64bit
- Kernel: 5.15.27
- Desktop: kde
- Località: Roma
Re: apache MaxRanges... a quanto?
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
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.- ZeroUno
- Staff

- Messaggi: 5441
- Iscritto il: ven 2 giu 2006, 14:52
- Nome Cognome: Matteo Rossini
- Slackware: current
- Kernel: slack-current
- Desktop: ktown-latest
- Distribuzione: 01000000-current
- Località: Roma / Castelli
- Contatta:
Re: apache MaxRanges... a quanto?
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.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.
Packages finder: slakfinder.org | Slackpkg+, per aggiungere repository a slackpkg
Codice: Seleziona tutto
1011010 1100101 1110010 1101111 - 0100000 - 1010101 1101110 1101111-
ilmich
- Master

- Messaggi: 1646
- Iscritto il: lun 16 lug 2007, 17:39
- Slackware: 15.0 64bit
- Kernel: 5.15.27
- Desktop: kde
- Località: Roma
Re: apache MaxRanges... a quanto?
allora forse non ho capito bene io
comunque l'argomento mi interessa perchè sono in procinto di lanciare un servizio web (nn basato su apache ma la tematica è importante).
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.
mi descrivi questa via per favore?!?!?ZeroUno ha scritto:Il punto ora è usare MaxRanges per impedire questa di via
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.
- ZeroUno
- Staff

- Messaggi: 5441
- Iscritto il: ven 2 giu 2006, 14:52
- Nome Cognome: Matteo Rossini
- Slackware: current
- Kernel: slack-current
- Desktop: ktown-latest
- Distribuzione: 01000000-current
- Località: Roma / Castelli
- Contatta:
Re: apache MaxRanges... a quanto?
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
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.
http://cve.mitre.org/cgi-bin/cvename.cg ... -2011-3192
Questo script da solo può sdraiare un server.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.
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- ZeroUno
- Staff

- Messaggi: 5441
- Iscritto il: ven 2 giu 2006, 14:52
- Nome Cognome: Matteo Rossini
- Slackware: current
- Kernel: slack-current
- Desktop: ktown-latest
- Distribuzione: 01000000-current
- Località: Roma / Castelli
- Contatta:
Re: apache MaxRanges... a quanto?
Ecco l'attacco (ho aperto la porta 80)
la swap va in diminuzione (ora ho stoppato lo script però)
apache 2.2.16
------
apache di slackware-current
lo script dice
"Host does not seem vulnerable"
Codice: Seleziona tutto
$ free
total used free shared buffers cached
Mem: 4043740 3820544 223196 0 568 404004
-/+ buffers/cache: 3415972 627768
Swap: 4606132 2947992 1658140Codice: 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.00apache 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-
ilmich
- Master

- Messaggi: 1646
- Iscritto il: lun 16 lug 2007, 17:39
- Slackware: 15.0 64bit
- Kernel: 5.15.27
- Desktop: kde
- Località: Roma
Re: apache MaxRanges... a quanto?
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.
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.
- ZeroUno
- Staff

- Messaggi: 5441
- Iscritto il: ven 2 giu 2006, 14:52
- Nome Cognome: Matteo Rossini
- Slackware: current
- Kernel: slack-current
- Desktop: ktown-latest
- Distribuzione: 01000000-current
- Località: Roma / Castelli
- Contatta:
Re: apache MaxRanges... a quanto?
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.
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