Comprensione del livello 7 DoS

10

Recentemente ho letto questo articolo su come un hacker solitario (The Jester) conduce, tra le altre cose, i suoi attacchi DoS su layer 7 invece che su layer 4. Inoltre, a un certo punto, è stato in grado di eseguire con successo un sito Web utilizzando solo un telefono abilitato 3G come piattaforma di attacco.

Sono curioso di sapere come è stato effettivamente fatto. Sarebbe un semplice script HTML in grado di causare un impatto così grande? Soprattutto considerando che l'articolo sembra suggerire che è in grado di negare il servizio senza dover distribuire l'attacco.

Ad esempio, e apprezzo che questo sia solo di base, trovando un grande elemento in una pagina e richiedendo costantemente un gran numero di esso:

<html>
<meta http-equiv="refresh" content="1" />
<img src="https://i.stack.imgur.com/jSusZ.png"width="5" height="5"/>
<img src="https://i.stack.imgur.com/jSusZ.png"width="5" height="5"/>
<img src="https://i.stack.imgur.com/jSusZ.png"width="5" height="5"/>
<img src="https://i.stack.imgur.com/jSusZ.png"width="5" height="5"/>
<img src="https://i.stack.imgur.com/jSusZ.png"width="5" height="5"/>
<img src="https://i.stack.imgur.com/jSusZ.png"width="5" height="5"/>

(x100)

</meta>
</html>

Questo è un AV vitale, seppur molto semplice, per un DoS di livello 7?

    
posta XOR 16.02.2012 - 12:38
fonte

2 risposte

10

Questa è una forma perfettamente funzionante di attacco DOS.

Nel tuo esempio vorrei costruire un simile attacco come, ad esempio, che XSS inietti una pagina online molto popolare con un sacco di traffico nascosto alla mia pagina di destinazione, potrebbe alla fine DOS la pagina di destinazione causando una variazione dell'effetto slashdot . Questa è una forma di attacco DOS di livello 7.

Ci sono molti esempi di attacchi DOS di livello 7. Fondamentalmente significa che stai sfruttando le falle nella logica dell'applicazione che potrebbe essere qualsiasi cosa, dall'applicare l'applicazione nei loop intensivi della CPU, facendo sì che l'applicazione consumi tutte le risorse locali o semplicemente che il livello 7 consumi tutta la larghezza di banda.

Un altro esempio di DOS Layer 7 potrebbe essere se prendo il tuo nome utente e provi ad accedere a un'applicazione da qualche parte con la password sbagliata, essenzialmente lasciando il tuo account bloccato impedendoti di accedere.

Il DOS Layer 4 può essere un attacco di flood TCP che invia un gruppo di pacchetti TCP SYN a un host che lascia l'host con connessioni semiaperte, potenzialmente consumando tutte le risorse disponibili.

Modifica: un buon esempio di DOS di layer 7 è Slowloris. La citazione su come funziona segue:

Slowloris holds connections open by sending partial HTTP requests. It continues to send subsequent headers at regular intervals to keep the sockets from closing. In this way webservers can be quickly tied up. In particular, servers that have threading will tend to be vulnerable, by virtue of the fact that they attempt to limit the amount of threading they'll allow.

    
risposta data 16.02.2012 - 13:11
fonte
9

Un DoS normalmente riguarda l'esaurimento delle risorse. Esistono molte risorse diverse che puoi esaurire, ma una delle più facili da determinare dall'esterno è le richieste simultanee perché ottieni improvvisamente le risposte HTTP 503 quando raggiungi il limite.

Ad esempio, se riesci a trovare una pagina con un tempo di caricamento lento, ad esempio 10 secondi, devi solo effettuare 11 richieste al secondo per utilizzare tutte le connessioni disponibili. Non hai nemmeno bisogno di mantenere la connessione dopo aver effettuato la richiesta poiché l'app continuerà a fare tutto il lavoro per generare la pagina prima di scoprire che non ci sei più. Perseguirà anche il tempo di attesa per il timeout della connessione TCP.

Mettere % in una funzione di ricerca scritta male può causare come % il simbolo jolly MySQL che farà sì che la ricerca restituisca ogni riga nel database.

Una variante di questo è l'attacco di Slow-Loris in cui si effettua una semplice richiesta ma si riduce la velocità con cui si riceve la risposta fino a semplici byte al secondo. Per ottenere un DoS qui, devi solo mantenere aperte più connessioni attive di quelle consentite dal sito.

Da una memoria vaga, l'impostazione predefinita di Apache MaxChildren è qualcosa come 50 che è probabilmente raggiungibile da un telefono cellulare.

Una terza variante ha a che fare con il controllo di una singola risorsa unica. Esempi di questo sono le tabelle MyISAM durante la lettura e la scrittura simultanea e file di sessione PHP. Con una singola richiesta lenta che blocca la risorsa, tutte le richieste successive che richiedono la stessa risorsa attenderanno semplicemente fino al termine della richiesta lenta.

Un esempio di questo potrebbe essere un sacco se si alternano richieste di lettura e scrittura a un forum o si effettua una richiesta di accesso (che richiede il file di sessione PHP) dove si limita la velocità con cui si riceve la risposta. Tutte le richieste con lo stesso ID di sessione non inizieranno nemmeno fino a quando non sarà terminata, ma continueranno a legare un figlio Apache mentre aspettano.

Alcuni software di web serving (come nginx e Node.js) sono progettati per gestire molte richieste simultanee ma sono ancora suscettibili alle altre tecniche di esaurimento, come il blocco di un particolare file di sessione per bloccare le connessioni di quel utente e il massimo di database. / p>

Puoi anche indirizzare CPU, memoria, spazio su disco, utilizzo del disco, file aperti, larghezza di banda della rete interna, connessioni di rete aperte (che l'applicazione fa se stiamo parlando di layer 7, non di quelli diretti che fai), e puoi scegliere come target uno di questi su qualsiasi server che la tua richiesta tocca come il database o la SAN o il server di ricerca o altro.

    
risposta data 16.02.2012 - 13:22
fonte

Leggi altre domande sui tag