Uso normale vs. negazione del servizio? Quante richieste sono necessarie per parlare di un diniego di servizio?

26

Recentemente ho usato uno strumento per scaricare un sito Web e come parte dello strumento si poteva regolare il numero di connessioni parallele. Così ora mi sono trovato a chiedere: a partire da quante richieste un fornitore potrebbe classificarlo come un diniego di servizio. Ho cercato su Google, ma non ho trovato numeri specifici o almeno suggerimenti su quali dimensioni stiamo parlando. C'è qualche definizione per es. come 100 richieste al secondo?

Quindi la mia domanda è: quante richieste sono necessarie per affermare che un denial of service è in corso?

Aggiornamento: il background tecnico è sicuramente interessante. Capisco che un pacchetto dannoso uno potrebbe essere sufficiente a causare un Denial of Service o l'effetto Slashdot è un altro. Ma quello che volevo sapere era più di una regola di stile firewall: alcuni server / fornitori di servizi bloccano gli utenti che inviano troppe richieste in un determinato intervallo di tempo. Di quale dimensione stiamo parlando qui? O è troppo specifico? Se sì, come sarebbe la tua regola?

La domanda aveva anche una componente legale - lasciatemi illustrare un alto (!) scenario teorico:

Un fornitore di un servizio controlla i suoi registri e vede che c'è stato traffico elevato da un singolo IP. Ora il provider va in tribunale (per qualsiasi motivo) e lo etichetta come tentativo di diniego del servizio. Il giudice probabilmente chiederebbe la loro definizione di un DoS. "Qualsiasi cosa oltre l'uso normale" sarebbe la loro risposta. Quindi, dove è la soglia tra l'uso normale e l'uso normale "nessuno" (che potrebbe essere interpretato come un tentativo di DoS anche se il server rimane totalmente non impressionato e questo è probabilmente uno scenario altamente costruito; -)

    
posta Lonzak 23.03.2016 - 14:29
fonte

4 risposte

5

Ho discusso su come rendere questa risposta, potrebbe essere meglio come commento.

Diamo un'occhiata alla tua domanda da entrambi gli angoli.

Dall'host

Qualcosa diventa un DoS quando la parte del traffico, o quello che sta facendo quel traffico, fa sì che il server non sia disponibile per gli altri. Alcuni esempi;

  • Esecuzione di un rapporto di lunga esecuzione 500 volte
  • distruggere l'aggiornamento molto velocemente su un sito web che non può gestirlo
  • utilizzando la larghezza di banda più ampia per riempire il tubo di caricamento in modo che gli altri ne perdano la velocità.
  • raschiare il sito Web in un modo che fa sì che l'host non risponda agli altri.

Tutti questi esempi sono possibili, ma non verosimili. Quando parliamo di un attacco DoS stiamo parlando di una persona / cliente che fa tutto questo, e la maggior parte dei server web è impostata per gestire centinaia o migliaia di richieste allo stesso tempo. Ecco perché DDoS è così popolare. Perché richiede più di un client per sovraccaricare un server normale (in circostanze normali).

Per aggiungere complicazioni, molti clienti potrebbero iniziare a utilizzare il tuo sito per la prima volta dopo un po 'di marketing. A volte non è nemmeno il tuo marketing che lo fa scattare. Ad esempio, una diffusa diffusione di telefoni cellulari potrebbe causare un picco nel traffico sul tuo sito. Può essere molto difficile dire al traffico DDoS dal traffico legit.

Però ci sono alcune regole di base. Quello che stai cercando in pratica è un utilizzo anormale.

  • Ci sono utenti che scaricano molto più di altri?
  • Ci sono utenti che rimangono connessi più a lungo di altri?
  • Ci sono utenti che si ricollegano molto più di altri?

Queste guide e altre, possono aiutarti a capire quale traffico fa parte di un attacco DDoS e applicare un qualche tipo di filtro.

Dal punto di vista dell'utente

Quando decidi di raschiare un sito web devi prima controllare e vedere se hanno una politica. Alcuni siti lo fanno, altri no. Alcuni siti considereranno il furto e altri no. Se un sito non ha una politica, devi fare la tua chiamata.

Il tuo obiettivo, se non hanno una politica dichiarata, è quello di affermare chiaramente che il tuo scraping (non mascherare l'agente utente o l'intestazione che il tuo strumento potrebbe utilizzare) e cercare di avere un impatto minimo possibile . A seconda del tuo bisogno di raschiare, puoi racimolare solo poche pagine o hai davvero bisogno dell'intero sito? Riesci a racimolare un tasso di "utente normale", forse 1 pagina ogni 5 secondi o giù di lì (incluso il contenuto multimediale)? Se si desidera acquisire rapidamente i dati, è sufficiente acquisire i file di testo e non acquisire le immagini e altri supporti multimediali? È possibile escludere query a esecuzione prolungata e file multimediali di dimensioni maggiori.

Il tuo obiettivo è quello di rispettare il costo dell'host di hosting e gli altri utenti del sito. Più lento di solito è meglio in questo caso. Se possibile contatta il proprietario del sito e chiediglielo. E non importa cosa, segui le regole nel file robots.txt. Può avere un limite di velocità e limiti di pagina che dovresti seguire.

    
risposta data 23.03.2016 - 18:36
fonte
44

Abbastanza da causare il rifiuto del servizio a qualcuno. Potrebbe essere 1 richiesta malevola inaspettata, che causa un carico eccessivo sul server. Potrebbero essere diverse milioni di richieste previste, da un annuncio TV con una risposta davvero buona.

Non esiste un valore specifico, dal momento che tutti i server falliranno a diversi livelli: la pubblicazione di contenuti statici è molto più semplice sul server rispetto alla generazione di contenuti altamente personalizzati per ciascun utente, quindi i servizi generalmente autenticati avranno un "problema" inferiore soglia di quelli non autenticati. I server che inviano lo stesso file a più utenti potrebbero essere in grado di gestire più traffico rispetto ai server che inviano file distinti a più utenti, poiché possono conservare il file in memoria. Un server con una connessione veloce a Internet sarà in genere in grado di gestire più traffico di uno con una connessione lenta, ma la distinzione potrebbe dipendere meno da ciò se il traffico generato è associato alla CPU.

Ho visto sistemi che falliscono a 3 richieste al secondo. Ho anche visto sistemi che gestiscono ogni cosa fino a 30.000 richieste al secondo senza perdere tempo. Quale sarebbe un DoS al primo, sarebbe un periodo di traffico basso per il secondo ...

Aggiornato per rispondere all'aggiornamento

In che modo i provider di firewall determinano quando il traffico sta causando un Denial of Service?

Di solito, controllano i tempi di risposta dal server e accelerano il traffico se superano un limite prestabilito (questo può essere deciso su base tecnica o su base marketing - attendere x secondi fa allontanare le persone) , o se le risposte del server cambiano da esito positivo (200) a errore del server (50x).

Qual è la definizione legale di "rifiuto del servizio"?

Come quello originale che ho dato - non è negazione del servizio se il servizio non è stato negato. Potrebbe essere offensivo, ma non sarebbe la stessa cosa.

    
risposta data 23.03.2016 - 14:43
fonte
5

Quando scarichi (o graffi) un sito web, invii sostanzialmente molte richieste GET per ogni URL nel sito web di destinazione.

Questo è un esempio di richiesta GET dal sito Web del World Wide Web Consortium:

GET /pub/WWW/TheProject.html HTTP/1.1

Host: www.w3.org

Come puoi vedere, il problema principale non è la richiesta, ma la risposta del server web, che ti invia l'intera risorsa identificata dall'URL specificato.

Pertanto, possiamo dire che

Max number of requests per second = (Factor of Safety * Bandwidth)/ Max size of a webpage

A giudicare da una rapida ricerca su Google, la dimensione media di una pagina web è di circa 2 Mb e la larghezza di banda di un server web può variare da pochi Mbps a qualche Tbps.

Il fattore sicurezza è legato al fatto che, per causare un attacco DoS, potrebbe non essere necessario inviare un numero di richieste corrispondente al 100% della larghezza di banda. Ad esempio, se il server web ha una larghezza di banda di 100 Mbps e il 50% di esso viene utilizzato in un dato istante per altri utenti, è sufficiente inviare un numero di richieste corrispondente al 50%, o anche a una percentuale minore, della larghezza di banda .

50% di 100 Mbps = 50 Mbps, che corrisponde a 25 richieste GET medie al secondo.

D'altra parte, se nessun altro sta visitando il sito Web, è necessario utilizzare almeno l'80% della larghezza di banda per causare un DoS e l'80% di 100 Mbps = 80 Mbps, che corrisponde a 40 Ottieni richieste al secondo.

Chiaramente, per fare (involontariamente) un enorme sito Web con una larghezza di banda di 1 Tbps, è necessario inviare almeno (80% di 1 Tbps) / 2 Mbps = 400.000 richieste GET al secondo. E così via.

Per avere una misurazione più accurata, dovresti trovare la dimensione massima di una pagina web nel sito web di destinazione e la sua larghezza di banda.

Avviso: poiché potresti potenzialmente metterti nei guai per aver causato un Denial of Service, è meglio arrotondare il numero di richieste al secondo ottenute attraverso la formula precedente.

    
risposta data 23.03.2016 - 15:18
fonte
4

Per costruire la risposta di Matthew rispetto al commento di Philip Rowlands:

La regola generale per definire il traffico DoS è contesto .

Se hai appena lanciato un annuncio TV sul superbowl, puoi supporre che il conseguente flusso di traffico sia contestualmente non dannoso (indipendentemente dal fatto che l'interruzione del servizio sia irrilevante).

Dove, se è solo un altro martedì mattina e il tuo sito è invaso da richieste per nessun motivo identificabile, sarebbe sicuro assumere che il traffico sia malevolo (o almeno sospetto, ad esempio, reddit reddit sconosciuto rispetto a un attacco mirato).

    
risposta data 23.03.2016 - 15:10
fonte

Leggi altre domande sui tag