Perché ruotare salt e chiavi è la mossa di sicurezza di WordPress più sottoutilizzata

I salt e le chiavi di WordPress proteggono ogni sessione del tuo sito. Quasi nessuno li cambia mai. Ecco perché ruotarli con regolarità è una delle vittorie di sicurezza più economiche a disposizione.

A padlock on a laptop, representing WordPress security keys

Apri il file wp-config.php di un qualsiasi sito WordPress. Più o meno a metà c’è un blocco di otto definizioni con nomi come AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT e NONCE_SALT. Ognuna è una lunga stringa casuale. Sono i salt e le chiavi di WordPress. Proteggono ogni cookie di autenticazione e ogni nonce che il tuo sito emette. Quasi nessuno li cambia mai dopo la prima installazione del sito. Questo articolo spiega cosa fanno davvero, perché ruotarli conta e come farlo in sicurezza.

Cosa fanno salt e chiavi

Quando accedi a WordPress, il sito imposta un cookie che dimostra che la tua sessione è valida. Quel cookie contiene un token. Il token è firmato usando una combinazione delle chiavi e dei salt in wp-config.php. Senza conoscerli entrambi, un aggressore non può falsificare un cookie valido né modificarne uno esistente senza invalidarlo.

Gli stessi segreti vengono usati da WordPress per generare e validare i nonce, i token monouso che proteggono l’invio dei moduli e le azioni di amministrazione dalla falsificazione di richiesta cross-site (CSRF). Sono fondamentali per gran parte della sicurezza di WordPress.

Se i segreti trapelano, qualsiasi token firmato con essi resta valido finché i segreti non cambiano. È questa la parte che conta per la rotazione.

Quando i segreti possono trapelare

Potresti pensare che il tuo wp-config.php non sia mai stato esposto. Probabilmente non lo è stato deliberatamente. Ma diversi scenari comuni possono far trapelare il contenuto del file.

Un archivio di backup lasciato nella directory principale. Se è stato scaricabile anche solo per una breve finestra, chiunque abbia indovinato il nome ha il file. Abbiamo visto archivi di backup nominati con marche temporali prevedibili che qualsiasi aggressore può enumerare.

Un server mal configurato che ha servito i file PHP come testo semplice invece di eseguirli. Le brevi configurazioni errate durante i deploy sono sorprendentemente comuni.

Il portatile compromesso di uno sviluppatore o di un collaboratore. Il wp-config.php si trovava da anni in una copia locale del sito. Se la sua macchina è stata violata, lo è stato anche il file.

Una compromissione precedente del sito stesso. Se un aggressore ha avuto accesso al filesystem in un qualsiasi momento del passato, ha letto wp-config.php e ora ha i tuoi segreti per sempre, a meno che tu non abbia ruotato.

Cosa fa davvero la rotazione

Ruotare salt e chiavi fa due cose importanti. Primo, invalida ogni sessione esistente sul sito. Ogni utente connesso, compreso qualsiasi aggressore che stia ancora cavalcando un cookie catturato, deve accedere di nuovo. Secondo, invalida ogni nonce in sospeso. Qualsiasi invio di modulo che si affidi a un token emesso prima della rotazione verrà rifiutato.

Il primo effetto è la vittoria di sicurezza. Se un aggressore aveva un cookie di sessione valido prima della rotazione, non ce l’ha più.

È proprio questo a rendere la rotazione così preziosa: recide l’accesso persistente che un segreto trapelato concede in silenzio.

Il costo è minimo

L’attrito della rotazione è un giro di nuovo accesso. Tutto qui. Ogni utente, te compreso, verrà disconnesso la prossima volta che apre il sito. Accedono di nuovo con le loro credenziali abituali e sono di nuovo dentro.

Per un blog personale questo è invisibile. Per un sito aziendale con più dipendenti, invia una rapida email per avvisare che il cambiamento sta arrivando e che dovranno accedere di nuovo. Cinque minuti di preavviso evitano confusione.

Come ruotare

La meccanica è semplice. Visita il generatore ufficiale di chiavi segrete di WordPress su api.wordpress.org. Produce un nuovo set di otto definizioni ogni volta che lo carichi. Copia l’intero blocco. Apri wp-config.php sul tuo server, via SFTP o tramite l’editor di file del tuo host. Incolla il nuovo blocco al posto di quello esistente. Salva il file.

Alla richiesta di pagina successiva, ogni sessione esistente viene invalidata. La prossima volta che carichi l’amministrazione, accedi da zero.

Prima di farlo in produzione, fai un backup di wp-config.php. Il rischio è di incollare il nuovo blocco nel punto sbagliato e rompere il file. Il backup ti dà un rollback immediato.

Ogni quanto ruotare

Per un piccolo sito a basso rischio, la rotazione annuale è una base ragionevole. Per un sito aziendale con più utenti, trimestrale o semestrale. Per un sito ad alto traffico con amministratori che entrano ed escono, dopo ogni cambio di personale.

Ruota sempre dopo uno di questi eventi. Una compromissione confermata o sospetta. L’uscita di un dipendente o collaboratore con accesso amministratore. La comparsa di un file di backup in un posto in cui non sarebbe dovuto essere. Qualsiasi trasferimento importante del server che abbia comportato il trasferimento di file su un canale non sicuro.

Combinata con altro hardening

La rotazione dei salt è una delle diverse mosse a basso sforzo e alto impatto che si potenziano quando usate insieme. Abbinala al 2FA su ogni account amministratore, ad aggiornamenti regolari di plugin e core, a un audit di chi ha accesso, e a un wp-config.php pulito che non stia in alcuna cartella pubblica.

Il costo totale in tempo è un’ora o due l’anno. Il valore è chiudere una delle categorie più durature di compromissione di WordPress. Economico, facile e quasi universalmente saltato.

Ti serve una mano?

Se vuoi far ruotare salt e chiavi del tuo sito WordPress nell’ambito di una più ampia pulizia di sicurezza, Defyn può occuparsene. È uno dei piccoli lavori che facciamo a ogni onboarding.

Avatar Claire Smith
Sponsored Loved this story? Defyn turns articles like this into the websites your competitors wish they had. Talk to us → defyn.com.au