È possibile sfruttare il DOS attivando un numero elevato di eccezioni dell'applicazione?

2

Un aspetto chiave di un DOS o di un DDOS sembra essere quello di sfruttare la potenza computazionale richiesta dal lato degli attaccanti per massimizzare l'impatto sul lato bersaglio. Questo articolo wiki elenca molti esempi di tali attacchi.

Quindi immagina un sito Web .Net con una pagina che per qualsiasi motivo si blocca su una richiesta GET standard. L'esperto residente .Net Jon Skeet è entrato nell'esecuzione delle eccezioni .Net per un po '. Il suo take away sembra essere che durante il normale funzionamento l'impatto sulle prestazioni non vale la pena di preoccuparsi, in quanto il numero di eccezioni dovrebbe essere abbastanza piccolo.

Ma cosa succederebbe se questo sito Web che si arrestava in modo incontrollato fosse inondato da richieste che avrebbero attivato eccezioni sul lato server? Potrebbe essere un attacco fattibile che dovrebbe essere preso in considerazione durante il test di vulnerabilità di un sito web?

    
posta Bananenaffe 05.02.2018 - 15:01
fonte

2 risposte

3

Le eccezioni sono molto veloci. Anche se eseguono il traceback completo e ne ricavano un bel codice HTML.

Se riscontri un'eccezione perché hai fornito argomenti illegali, potrebbe non esserci nemmeno una singola query sql creata che lo renderebbe più veloce della normale richiesta.

I miei siti web registrano sempre le eccezioni nel database, ma quel database non fa parte del sistema live, quindi rallentarlo non influisce sulle prestazioni dell'intero sistema ma solo sul monitoraggio di parte di esso.

    
risposta data 05.02.2018 - 16:17
fonte
0

Questo è davvero uno dei casi in cui gli stessi strumenti usati dai "difensori" possono essere usati anche dagli "attaccanti". C'è un libro che era unico per il suo tempo, in quanto fu il primo a documentare i modi in cui la crittografia poteva essere usata non solo come difensiva, ma anche come offensiva (Crittografia Maliziosa: Esporre Cryptovirology, FWIW).

Tuttavia, ti ho detto che ti manca il collo di bottiglia più significativo, che deve essere misurato usando gli stessi profiler che gli sviluppatori di software utilizzerebbero. Determinare il collo di bottiglia più significativo usando i profiler e usarlo; non presupporre automaticamente che troverai il collo di bottiglia nel codice ricco di eccezioni.

Il problema computazionale con le eccezioni è che ci sono classi di ottimizzazioni che può disabilitare, ma ci concentriamo troppo su questo. Il vero problema, che non discutiamo abbastanza spesso, è che le eccezioni sono come goto , ma in tre dimensioni (che si estendono non solo una funzione, ma più livelli di chiamate di funzione, per creare potenzialmente "codice spaghetti") ; se usati in modo inappropriato (cosa facile, come nel caso di goto ), possono trasformare la manutenzione in un serio mal di testa! Pertanto, il collo di bottiglia più significativo delle eccezioni è molto più probabile misurato in ore umane, piuttosto che in microsecondi CPU ...

Quindi, dal punto di vista della sicurezza, e ad un livello molto più alto del livello macchina ... a un livello personale , tu potrebbe certamente usare le eccezioni come una forma di negazione del servizio. DEFCON 23 ha presentato un'idea simile in una presentazione dal titolo Repsych: Psychological Warfare in Reverse Engineering . L'obiettivo, tuttavia, non è quello di abbattere un sistema ma di convincere gli sguardi indiscreti a arrendersi e andarsene . È una negazione del servizio interpersonale . Potresti usare questa tua idea con un successo moderato, per esempio per gli analisti antivirus.

Altrimenti, penso che dovresti concentrarti sull'utilizzo del tuo profiler per determinare il collo di bottiglia più significativo.

    
risposta data 05.02.2018 - 21:24
fonte

Leggi altre domande sui tag