Si chiama attacco di "fame di risorse", che si applica a qualsiasi situazione in cui il lavoro sulla parte della parte attaccata è maggiore del lavoro richiesto dall'aggressore.
L'hashing è in realtà molto 'economico' rispetto al tempo di esecuzione della ricerca del database per confermarlo.
Ci sono alcune attenuazioni che puoi applicare. Nel caso di un attacco, prima di tutto vuoi aumentare il "costo" per l'aspirante attaccante. I CAPTCHA possono aiutare in questo, ma hanno un impatto negativo sull'accessibilità in generale. Quindi l'opzione migliore è di averli "disattivati" e quindi attivarli in base a un trigger lato server.
Puoi limitare le richieste ma è facile andare in giro. È possibile ritardare e limitare globalmente l'elaborazione di ciascuna richiesta di accesso in modo che ogni IP possa emettere solo una richiesta di accesso alla volta e deve attendere prima che il server inizi ad elaborarlo. Se emettono un'altra richiesta prima che la richiesta sia completata, puoi scaricarla a basso costo. Ma questo ha il lato negativo che è più complesso da implementare e che potrebbe influenzare i client dietro un router NAT. Tutti gli altri sarebbero felici di aspettare un paio di secondi con un dialogo di tipo "please wait" - di nuovo aumenta il costo per l'attaccante in quanto richiedono più risorse da cui attaccare.
Se il tuo sistema può renderti consapevole di un attacco in tempo reale, puoi lavorare con i tuoi host per bloccare o limitare il traffico problematico (ad esempio da regioni che non fornisci o servi) in modo che gli attaccanti in pratica saturino le proprie rotte nei tuoi server o indirizza gli aggressori in vari sinkhole e honeypot.
In fin dei conti si tratta di essere esattamente come qualsiasi altro attacco di tipo Denial of Service distribuito, nel senso che si tratta di gestire il carico. In definitiva, se si tratta di un sistema basato su cloud, potresti voler semplicemente aumentare la capacità (anche se devi essere consapevole dei costi).
In definitiva, la risposta è leggere la sicurezza per comprendere l'intero paesaggio. Dai un'occhiata a Security.SE: se potessi avere un solo libro sulla sicurezza web, quale sarebbe? per i suggerimenti.