Come fermare l'attacco brute force che sta facendo DDoSing sul nostro server?

2

Abbiamo un'applicazione web che è stata frequentemente colpita con nome utente e password casuali per trovare un tentativo di accesso riuscito. Abbiamo introdotto CAPTCHA, generazione di token casuali, ma ciò non ha impedito all'hacker di colpire il nostro server web. La nostra CPU del server Web raggiunge il 99% del livello di utilizzo e rallenta il sito Web per utenti autentici.

Abbiamo bisogno di sapere se ci sono modi per smettere di colpire il web server (magari sul lato client stesso). Non so se sia possibile. Qualcuno può dire come gestirlo?

Informazioni aggiuntive: l'hacker colpisce il nostro sito da 1000 IP diff, ne abbiamo bloccati tutti, ma ogni volta viene fornito con un nuovo set di IP. Inoltre, ha milioni + nome utente e password rubati da qualche sito web e li sta usando sul nostro sito.

    
posta whoami 24.03.2017 - 07:37
fonte

3 risposte

10

Quello che hai non è tanto un problema di forza bruta, ma un problema di carico. Nello specifico, devi pensarci come uno scenario DDoS. Più IP che colpiscono il tuo server e consumano risorse.

Le protezioni a livello di account non faranno nulla, dovrai gestire l'attacco a livello di traffico.

I servizi di mitigazione DDoS sono esattamente ciò di cui hai bisogno, ma a seconda della complessità dell'attacco potrebbero essere troppo costosi. Potresti provare a lavorare con la tua società di hosting o ISP per vedere cosa potrebbero essere in grado di fare.

    
risposta data 24.03.2017 - 08:39
fonte
5

Cerca strumenti come fail2ban che ti consentano di limitare il numero di tentativi di accesso da un singolo indirizzo IP. Il bando automatico di un IP dopo 3 tentativi di accesso falliti per 1 ora ridurrà efficacemente il numero di tentativi di password da 1000 IP a meno di 1 al secondo, senza influenzare troppo gli utenti legittimi.

    
risposta data 24.03.2017 - 08:54
fonte
2

Ciò di cui hai bisogno è combinare più soluzioni insieme per ottenere i risultati desiderati. Come sottolineato da Dmitry e Schroeder, è necessario distribuire questo server in un ambiente con bilanciamento del carico adeguato per ridurre il carico di un server. Da lì, dovresti anche usare qualcosa come Fail2Ban per prevenire un abuso eccessivo da un singolo IP. Fail2Ban sarebbe facilmente in grado di controllare i log di accesso di Apache / Nginx affinché gli errori di autenticazione blocchino tali IP.

Se la larghezza di banda non è tanto preoccupante quanto il carico generale, semplicemente non impedisce a Fail2Ban di bloccare quelle connessioni in entrata che potrebbero essere sufficienti a ridurre il carico a sufficienza sul server.

    
risposta data 24.03.2017 - 15:35
fonte

Leggi altre domande sui tag