2013-02-20 13 views
5

Come sviluppatore Java, parteciperò a un progetto Web. Quindi sto cercando di essere informato su diversi aspetti della sicurezza web.Problema agli sviluppatori di attacchi DoS o agli amministratori di sistema

Ora sono arrivato al soggetto di attacco DoS e sto cercando di capire cosa posso/dovrei fare come sviluppatore Java. O potrebbe essere il lavoro di amministratore di sistema.

Ciò che mi viene in mente inizialmente è implementare le funzionalità in modo tale che una singola richiesta non possa richiedere troppo tempo e risorse. Ad esempio, per mettere dei limiti sulla quantità dei dati elaborati. Ma non sono sicuro che questo sarà applicabile in tutti i casi.

Devo prestare attenzione a DoS a causa di molte richieste?

Qualsiasi consiglio sarà apprezzato. Molte grazie in anticipo!

risposta

3

Gli attacchi DoS sono di solito la preoccupazione dell'IT. Se stai sviluppando un'applicazione web, di solito è dietro un front controller (apache, nginx, ecc.) Che inoltra richieste al tuo contenitore di applicazioni (Tomcat, Rails, ecc.). I controllori anteriori hanno di solito/sempre la logica per affrontare questo problema

Se sei uno sviluppatore di applicazioni, quindi concentrarsi su attacchi XSS (http://en.wikipedia.org/wiki/Cross-site_scripting) e che è totalmente all'interno responsabilità dello sviluppatore dell'applicazione

2

direi che riguarda principalmente gli amministratori di sistema, ma ciò non significa che lo sviluppatore non debba adottare misure per evitarlo.

Dal attacco DoS di solito è di circa impantanando il sistema verso il basso con le richieste in modo che non possa gestire le richieste reali (Denial of Service), wikipedia ha questo da dire circa la prevenzione da attacchi DoS:

La difesa contro attacchi Denial of Service in genere comporta l'uso di una combinazione di rilevamento degli attacchi, classificazione del traffico e strumenti di risposta, con l'obiettivo di bloccare il traffico che identificano come illegittimo e consentire al traffico che identificano come legittimo.

A mio parere questi sono compiti di amministratore di sistema, dal momento che sono quelli che dovrebbero essere la configurazione del firewall, router, switch, ecc

4

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.

Problemi correlati