Password spraying e credential stuffing si manifestano entrambi come un cumulo di accessi falliti, ma la forma del cumulo è diversa, e lo è anche la contromisura. Se il Suo unico alert è «cinque errori su un singolo account», non rileverà nessuno dei due attacchi.
Tre attacchi, tre forme
La Credential Stuffing Prevention Cheat Sheet di OWASP li distingue così:
| Attacco | Cosa fa l'attaccante |
|---|---|
| Brute force | Prova molte password tratte da un dizionario su un singolo account |
| Credential stuffing | Prova coppie username/password ottenute dalla violazione di un altro sito |
| Password spraying | Prova una singola password debole su un gran numero di account diversi |
OWASP osserva che in molti casi le difese sono le stesse e che funzionano anche contro il brute force.
Cosa cercare nei log
La strategia di detection di MITRE per il password spraying è individuare un volume elevato di autenticazioni fallite con una sola password, o con un piccolo insieme di password, su molti account utente entro una finestra temporale. Per il credential stuffing si tratta invece di più errori con coppie username/password distinte provenienti da un singolo indirizzo IP o da una singola sessione in una finestra breve.
Gli attaccanti si adattano alle contromisure più ovvie:
- Spraying rallentato. MITRE descrive strumenti di APT28 che effettuavano circa quattro tentativi all'ora per ogni account bersaglio, nell'arco di giorni o settimane. L'attività di Quad7 usava un solo tentativo di accesso nell'arco di 24 ore, sfuggendo alle soglie di rilevamento del brute force. I contatori per singolo account non lo individueranno.
- Spraying distribuito. MITRE rileva anche che APT28 ha usato un cluster Kubernetes per spray distribuiti su larga scala. Un conteggio per solo indirizzo IP di origine non lo coglierà, perché nessun indirizzo fallisce spesso. Conti quindi anche gli account distinti con accessi falliti per finestra temporale su tutte le origini, e scomponga gli stessi dati per ASN e user agent.
- Protocolli più discreti. Gli attaccanti possono ricorrere a tentativi LDAP e Kerberos, che hanno meno probabilità di generare eventi molto visibili come il "logon failure" di Windows con event ID 4625, tipicamente causato da connessioni SMB fallite. Raccolga i fallimenti LDAP e Kerberos oltre agli eventi 4625.
Gli attaccanti puntano di solito ai servizi di gestione sulle porte più comuni: SSH (22/TCP), RDP (3389/TCP), SMB (445/TCP), LDAP (389/TCP), Kerberos (88/TCP) e le interfacce di gestione web sulle porte 80 e 443. Prendono di mira anche SSO, applicazioni cloud con autenticazione federata e posta esposta su Internet come Office 365 e OWA.
Microsoft 365: usare bene lo smart lockout
Lo smart lockout di Microsoft Entra è sempre attivo. Per impostazione predefinita blocca un account dopo 10 tentativi falliti nei tenant Azure Public, oppure dopo tre nei tenant Azure US Government. Il primo blocco dura un minuto e si allunga con i fallimenti successivi. Microsoft non rivela il ritmo di crescita.
- Tiene traccia degli ultimi tre hash di password errate, quindi ripetere la stessa password sbagliata non aumenta il contatore. Così il refuso ripetuto di un utente non lo blocca. Serve a poco contro uno spray, in cui ogni account vede la password una volta sola.
- Le posizioni abituali e quelle non abituali hanno contatori di blocco separati, quindi un attaccante che arriva da una nuova posizione può essere bloccato mentre l'utente reale continua a lavorare.
- I valori personalizzati richiedono Microsoft Entra ID P1 o superiore. Acceda al Microsoft Entra admin center almeno come Authentication Policy Administrator e vada su Entra ID > Authentication methods > Password protection. Lì può impostare la Lockout threshold e la Lockout duration in secondi (predefinita 60).
- Entra blocca per impostazione predefinita anche alcuni accessi in base a segnali di traffico IP e di comportamento e restituisce
AADSTS50053 - IdsLocked, indipendentemente dal fatto che la password fosse valida. Consideri come presi di mira gli account che mostrano questo codice, ma non lo interpreti come prova che la password fosse sbagliata o corretta.
Lo smart lockout non garantisce che un utente legittimo non venga mai bloccato. MITRE ricorda l'altra faccia della medaglia: una policy troppo severa può causare un denial of service, con tutti gli account coinvolti nell'attacco bloccati.
Configurazioni ibride
Con la pass-through authentication, la soglia di Entra deve essere inferiore a quella di AD DS in locale, e la soglia di AD DS dovrebbe essere almeno due o tre volte più alta. La durata del blocco in Entra deve essere superiore a quella di AD DS. L'esempio di Microsoft è una soglia di 10 contro 20 e 120 secondi contro 60. La durata in Entra si imposta in secondi e in AD DS in minuti, quindi verifichi le unità di misura.
Il tracciamento degli hash non è disponibile con la pass-through authentication. Per leggere i valori di AD DS, apra Group Policy Management, modifichi la policy che contiene le impostazioni di blocco e vada su Computer Configuration > Policies > Windows Settings > Security Settings > Account Policies > Account Lockout Policy.
La Sua pagina di login e i servizi esposti
Il lockout è un controllo per singolo account. A nostro avviso, una campagna di stuffing che prova ogni account una o due volte spesso non raggiungerà mai la soglia, quindi non lo consideri la Sua difesa principale. MITRE avverte che lo stuffing può causare numerosi fallimenti e blocchi, ma dipende dalla Sua policy. Le sue mitigazioni per entrambe le tecniche aggiungono:
- Autenticazione a più fattori (MFA), attivata sui servizi esposti su Internet ove possibile.
- Policy di conditional access che bloccano gli accessi da dispositivi non conformi o da fuori degli intervalli IP definiti dall'organizzazione.
- Blocco delle richieste a rischio, come quelle provenienti da servizi di anonimizzazione o proxy.
- Password policy basate sulle linee guida NIST.
- Per lo stuffing, reset proattivo degli account noti per comparire in credenziali violate, subito oppure dopo aver rilevato tentativi di brute force.
Per un'applicazione sviluppata internamente, la Authentication Cheat Sheet di OWASP contiene sezioni sulla protezione dagli attacchi automatizzati, sui CAPTCHA e su logging e monitoraggio.
Da dove iniziare
- Elenchi tutti i login esposti su Internet: Microsoft 365 o OWA, VPN, RDP, SSH, SSO e i Suoi form web. Chiuda ogni porta di gestione che non debba restare aperta.
- Verifichi soglia e durata dello smart lockout in Entra ID > Authentication methods > Password protection. Con la pass-through authentication, le confronti con la lockout policy di AD DS secondo le regole sopra indicate.
- Costruisca due query sui log di accesso. La prima conta gli account distinti con accessi falliti per indirizzo IP di origine per ora. La seconda ignora l'origine: conta gli account distinti con errori per finestra temporale nel complesso, poi li scompone per ASN e user agent. Imposti alert su entrambe e mantenga
AADSTS50053come vista separata. - Attivi l'MFA su ogni servizio esposto su Internet, poi aggiunga regole di conditional access per i dispositivi non gestiti e per i servizi di anonimizzazione.
- Confronti gli account del personale con le violazioni note, ad esempio con il nostro controllo delle password compromesse, e resetti quelli che risultano presenti. Se Le mancano le persone per controllare i log ogni giorno, il monitoraggio gestito colma questa lacuna.
