Credential stuffing: cos'è, come funziona e come difendersi

Il credential stuffing è un attacco automatizzato in cui i criminali provano su un servizio coppie di email e password già rubate in altre violazioni, sperando che le persone le abbiano riutilizzate. Non sfrutta un bug del software, ma un'abitudine molto diffusa: usare la stessa password in più posti. In questa guida vediamo come funziona, come riconoscerlo e quali difese adottare, anche se gestisci un'applicazione PHP con un form di login.
Cos'è il credential stuffing e perché funziona
Il termine indica l'inserimento massivo ("stuffing") di credenziali già compromesse in una pagina di accesso. Chi attacca non deve indovinare nulla: parte da elenchi di email e password che circolano dopo precedenti furti di dati, e verifica dove funzionano ancora.
Il meccanismo regge su un fatto semplice: molte persone usano la stessa combinazione per la posta, un e-commerce, un gestionale o un account aziendale. Se uno solo di quei servizi viene violato, tutti gli altri diventano a rischio. L'esito tipico è l'account takeover, cioè la presa di controllo dell'account di un utente legittimo.
Per questo motivo il problema non riguarda solo chi subisce la prima violazione. Può colpire la tua azienda anche se i tuoi sistemi non sono mai stati bucati, perché la fuga di dati è avvenuta altrove.
Come funziona un attacco, passo dopo passo
Un attacco di questo tipo è quasi sempre industrializzato. Gli strumenti sono script o software che gestiscono migliaia di tentativi, spesso distribuiti su molti indirizzi IP per non farsi notare.
- Raccolta delle credenziali: l'attaccante ottiene elenchi di email e password da violazioni precedenti, acquistati o scambiati in ambienti criminali.
- Automazione: uno strumento invia le coppie al form di login del servizio bersaglio, simulando un normale browser.
- Elusione dei controlli: vengono ruotati indirizzi IP e user agent per aggirare i blocchi più semplici.
- Selezione degli account validi: le coppie che funzionano vengono salvate in un nuovo elenco.
- Sfruttamento: gli account compromessi vengono usati direttamente, rivenduti o impiegati come punto di ingresso per altri attacchi.
Anche una percentuale di successo molto bassa può essere redditizia. Il costo per chi attacca è minimo e il numero di tentativi enorme.
Differenza tra credential stuffing, brute force e password spraying
Sono tecniche vicine, spesso confuse. La differenza sta nell'origine delle password provate e nel modo in cui vengono distribuiti i tentativi.
| Tecnica | Cosa prova | Su cosa si concentra |
|---|---|---|
| Credential stuffing | Coppie email/password reali già trapelate | Molti account, un tentativo o pochi per ciascuno |
| Brute force | Molte combinazioni generate o prese da dizionari | Di solito un singolo account alla volta |
| Password spraying | Poche password molto comuni | Molti account, per restare sotto le soglie di blocco |
Se vuoi approfondire la tecnica più "classica", trovi una guida dedicata su come difendersi da un attacco brute force. Molte contromisure si sovrappongono, ma il credential stuffing richiede attenzioni in più, perché ogni tentativo usa una password che potrebbe essere davvero corretta.
Perché è un rischio concreto per le aziende
Il pericolo non si limita ai profili dei clienti. Le credenziali dei dipendenti, riutilizzate tra servizi personali e professionali, possono aprire la porta a posta elettronica, strumenti collaborativi, portali fornitori e accessi remoti.
Un caso frequente riguarda gli accessi esposti su Internet, come le VPN. Se non c'è un secondo fattore, una password riutilizzata basta per entrare nella rete: ne parliamo in attacchi alle vulnerabilità delle VPN aziendali. Una volta dentro, l'attaccante può cercare di muoversi verso i sistemi centrali, come descritto in attacchi ad Active Directory.
Le conseguenze possono includere furto di dati, frodi, interruzione del servizio e costi di gestione dell'incidente. In presenza di dati personali, può essere necessario valutare gli obblighi di notifica previsti dal GDPR. Per stimare l'impatto economico puoi partire dalle voci descritte in quanto costa un attacco hacker a una PMI.

I segnali che indicano un attacco in corso
Riconoscere questi attacchi non è semplice, perché i singoli tentativi sembrano normali login falliti. Conta il quadro d'insieme, che emerge dai log dell'applicazione e dal traffico verso la pagina di accesso.
- Un aumento improvviso di tentativi di login falliti, anche distribuiti su molti account diversi.
- Richieste al form di accesso provenienti da molti indirizzi IP, ma con comportamenti identici.
- Accessi riusciti da paesi o orari insoliti per quell'utente.
- Picchi di traffico sull'endpoint di login, senza corrispondenza con la navigazione del resto del sito.
- Segnalazioni di utenti che trovano modifiche al profilo, ordini o dati che non riconoscono.
Un tasso di errore anomalo sul login, osservato nel tempo, è spesso il primo campanello d'allarme. Per questo conviene definire in anticipo quali metriche monitorare e chi riceve l'avviso.
Come difendersi dal credential stuffing
Non esiste una singola misura risolutiva. Funziona la combinazione di controlli sull'identità, sulla pagina di accesso e sul monitoraggio.
Le misure per utenti e organizzazioni
- Autenticazione a più fattori: è la difesa più efficace, perché una password rubata da sola non basta. Meglio app di autenticazione o chiavi di sicurezza rispetto agli SMS.
- Password uniche: un password manager permette di avere una password diversa e robusta per ogni servizio, senza doverle ricordare.
- Controllo delle password compromesse: verificare le nuove password rispetto a elenchi di credenziali note come violate, e imporre il cambio quando emergono.
- Formazione: spiegare ai dipendenti perché non vanno riutilizzate le password aziendali su servizi personali.
- Accessi esposti protetti: VPN, webmail e portali devono richiedere sempre il secondo fattore.
Le misure per chi sviluppa in PHP
Se gestisci un'applicazione web, il form di login è il punto da rafforzare. Non basta bloccare un IP dopo pochi errori, perché gli attacchi li distribuiscono. Servono controlli su più livelli.
- Limitazione dei tentativi per account, per indirizzo IP e per sessione, con ritardi progressivi invece di blocchi definitivi che potrebbero danneggiare gli utenti reali.
- Messaggi di errore generici, che non rivelino se è sbagliata l'email o la password.
- Challenge adattive, come un CAPTCHA o una verifica aggiuntiva, attivate solo quando il comportamento è sospetto.
- Salvataggio corretto delle password, con le funzioni native
password_hash()epassword_verify(), così un furto del database non regala password in chiaro. - Log e allarmi sugli accessi, con notifica all'utente quando avviene un login da un dispositivo nuovo.
Se usi un CMS, valgono gli stessi principi: la guida su come proteggere un sito WordPress dagli attacchi mostra come applicarli a un caso molto comune.
Come verificare le difese della tua azienda
Dire di avere l'autenticazione a più fattori non basta: bisogna sapere se copre davvero tutti gli accessi esposti. Spesso restano dimenticati portali vecchi, pannelli di amministrazione o servizi in cloud attivati senza passare dall'IT.
Un buon punto di partenza è un inventario degli accessi raggiungibili da Internet, seguito da una verifica di quali richiedono il secondo fattore e quali limitano i tentativi. Un test di sicurezza condotto da specialisti permette poi di controllare se i login resistono a tentativi automatizzati, in modo controllato e concordato. Una soluzione come FRED, il penetration test automatizzato può aiutare a individuare esposizioni e punti deboli in modo ripetibile.
Conclusione
Il credential stuffing è efficace perché sfrutta un comportamento umano, non una falla tecnica. La risposta migliore unisce password uniche, autenticazione a più fattori, limitazioni sensate sul login e un monitoraggio attento. Se vuoi capire quanto sono esposti gli accessi della tua azienda a Milano, puoi consultare gli altri approfondimenti del blog di Fred for Security o contattare il team per valutare insieme quali verifiche siano più adatte al tuo contesto.
Domande frequenti
Il credential stuffing è la stessa cosa del brute force?
No. Il brute force indovina la password provando molte combinazioni per uno stesso account. Il credential stuffing usa invece coppie di email e password reali, già trapelate da altre violazioni, e le prova su molti servizi e account diversi. Per questo ogni singolo tentativo ha più probabilità di riuscire.
L'autenticazione a due fattori blocca il credential stuffing?
Nella grande maggioranza dei casi sì, perché la sola password rubata non basta per completare l'accesso. Non è però una protezione assoluta: alcuni metodi di secondo fattore, come gli SMS, possono essere aggirati. Conviene preferire app di autenticazione o chiavi di sicurezza e affiancarle ad altri controlli.
Come posso sapere se le mie credenziali sono state rubate?
Puoi controllare il tuo indirizzo email su servizi di notifica delle violazioni, come Have I Been Pwned, e attivare gli avvisi di compromissione del tuo password manager. Se trovi una violazione, cambia subito la password su quel servizio e su ogni altro sito in cui l'avevi riutilizzata.
Anche un piccolo sito PHP può subire credential stuffing?
Sì. Gli attacchi sono automatizzati e colpiscono qualsiasi form di login raggiungibile da Internet, indipendentemente dalle dimensioni del sito. Se l'area riservata non limita i tentativi, non monitora gli accessi anomali e non offre un secondo fattore, è un bersaglio facile e poco costoso per chi attacca.