In primo luogo, non c'è nulla né di voi può fare per prevenire un attacco DoS.
Tutto ciò che puoi fare è rendere sensato il tuo codice (Sviluppatore) e la tua architettura solida (SysAdmin). È uno sforzo comune.
Gli sviluppatori dovrebbero cercare di ridurre al minimo l'utilizzo delle risorse come parte del loro lavoro comunque - non solo per gli attacchi DoS.
Gli sviluppatori devono utilizzare le cache per proteggere il database. Se ogni richiesta richiede la consultazione di un elenco di Paesi, richiedere comunque quell'elenco dal database ogni volta non è una buona pratica.
Gli sviluppatori devono assicurarsi che le richieste non valide vengano interrotte il più rapidamente possibile. per esempio. non consultare affatto l'elenco Paesi, finché non avrai verificato che il loro numero di conto esiste effettivamente.
Gli sviluppatori dovrebbero adottare approcci come REST: trattare ogni richiesta singolarmente piuttosto che mantenere sessioni in memoria. Questo potrebbe interrompere l'utilizzo della memoria da parte di un razzo durante un attacco.Non vuoi che i problemi di memoria e la tua rete siano inondati!
Gli sviluppatori devono rendere scalabile la loro applicazione. Ancora una volta, REST aiuta qui perché non sei legato ad avere le cose archiviate in memoria. Se riesci a eseguire dieci istanze della tua applicazione in una volta sola, gestendo ciascuna un sottoinsieme delle richieste, durerai molto più a lungo in un attacco DoS (e probabilmente dai ai tuoi utenti un'esperienza di navigazione più uniforme).
Gli amministratori di sistema devono fornire i framework di bilanciamento del carico, failover ecc. Per gestire questa scalabilità. Gestiranno anche l'hardware per le istanze. Potresti anche avere l'opzione di aggiungere più istanze automaticamente su richiesta, il che significa che la creazione e l'implementazione automatica del server diventano importanti. Usare VMs piuttosto che box fisici può aiutare con questo.
amministratori di sistema possono configurare firewall e proxy in modo che, quando un attacco accade, possono mantenere il vostro reale del traffico che passa e fermare il traffico attacco. Possono filtrare il traffico in base a un intervallo IP sospetto, bloccare richieste "dall'aspetto sospetto", limitare i livelli di traffico a un flusso delicato, ecc.
Nel complesso, è possibile osservare DoS come "quantità elevate di traffico". Se il codice dell'applicazione e l'architettura non riescono a far fronte all'aumento del traffico da "utenti regolari", allora sei condannato comunque, indipendentemente da un attacco DoS. Quando Facebook è stato minacciato di DoS, ricordo che qualcuno ha sottolineato che "Everyday è un attacco DDoS per Facebook ...". Ma è sviluppato e strutturato in modo tale da far fronte.