Perché rinnovare salts e chiavi è la mossa di sicurezza WordPress più trascurata

Le salts e le chiavi di WordPress proteggono ogni sessione del tuo sito. Quasi nessuno le cambia mai. Ecco perché rinnovarle con regolarità è uno dei guadagni di sicurezza più economici disponibili.

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à troverai 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. Ciascuna è una lunga stringa casuale. Sono le salts e le chiavi di WordPress: proteggono ogni cookie di autenticazione e ogni nonce che il tuo sito emette. Quasi nessuno le cambia dopo la prima installazione del sito. Questo articolo spiega cosa fanno davvero, perché il rinnovo è importante e come rinnovarle in sicurezza.

Cosa fanno salts e chiavi

Quando accedi a WordPress, il sito imposta un cookie che dimostra la validità della tua sessione. Quel cookie contiene un token firmato con una combinazione delle chiavi e delle salts presenti in wp-config.php. Senza conoscerle entrambe, un aggressore non può falsificare un cookie valido né modificarne uno esistente senza invalidarlo.

WordPress usa gli stessi segreti per generare e convalidare i nonce, i token monouso che proteggono l’invio dei moduli e le azioni di amministrazione dalla falsificazione di richieste tra siti (CSRF). Sono alla base di gran parte della sicurezza di WordPress.

Se i segreti trapelano, qualsiasi token firmato con essi resta valido finché i segreti non cambiano. È proprio questo il punto che conta per il rinnovo.

Quando i segreti possono trapelare

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

Un archivio di backup nella radice del sito. Se è stato scaricabile anche solo per una breve finestra, chiunque abbia indovinato il nome del file lo possiede. 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 deployment 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 file system in un qualsiasi momento passato, ha letto wp-config.php e ora possiede i tuoi segreti per sempre, a meno che tu non li abbia rinnovati.

Cosa fa davvero il rinnovo

Rinnovare salts e chiavi fa due cose importanti. Primo, invalida tutte le sessioni esistenti sul sito: ogni utente connesso, compreso un aggressore che stia ancora usando un cookie rubato, deve accedere di nuovo. Secondo, invalida tutti i nonce in sospeso: qualsiasi invio di modulo basato su un token emesso prima del rinnovo verrà rifiutato.

Il primo effetto è il guadagno di sicurezza. Se un aggressore aveva un cookie di sessione valido prima del rinnovo, ora non ce l’ha più.

Il resto è dettaglio, ma è proprio quel primo effetto la ragione per cui il rinnovo vale la pena.

Il costo è basso

L’unico attrito del rinnovo è un giro di nuovo accesso. Tutto qui. Ogni utente, tu compreso, verrà disconnesso al successivo accesso al sito. Rientra con le solite credenziali ed è di nuovo dentro.

Per un blog personale è invisibile. Per un sito aziendale con più collaboratori, invia una breve e-mail avvisando che la modifica è in arrivo e che dovranno accedere di nuovo. Cinque minuti di preavviso evitano la confusione.

Nessuna perdita di dati, nessun tempo di inattività: solo sessioni da rinnovare.

Come rinnovare

La procedura è semplice. Visita il generatore ufficiale di chiavi segrete di WordPress all’indirizzo api.wordpress.org: produce un nuovo set di otto definizioni a ogni caricamento. Copia l’intero blocco. Apri wp-config.php sul tuo server, tramite SFTP o l’editor di file del tuo host. Incolla il nuovo blocco al posto di quello esistente. Salva il file.

Alla richiesta di pagina successiva, tutte le sessioni esistenti vengono invalidate. La prossima volta che apri l’area di amministrazione, accedi ex novo.

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

Con quale frequenza rinnovare

Per un piccolo sito a basso rischio, un rinnovo annuale è una base ragionevole. Per un sito aziendale con più utenti, trimestrale o semestrale. Per un sito ad alto traffico con amministratori che vanno e vengono, dopo ogni cambio di personale.

Rinnova sempre dopo uno di questi eventi: una compromissione confermata o sospetta; l’uscita di un collaboratore o di un fornitore con accesso da amministratore; la comparsa di un file di backup in un luogo in cui non dovrebbe trovarsi; qualsiasi trasloco di server importante che abbia comportato il trasferimento di file su un canale non protetto.

In altre parole, rinnova secondo un calendario e anche ogni volta che accade qualcosa che potrebbe aver esposto il file.

Combinato con altro hardening

Il rinnovo delle salts è una delle diverse mosse a basso sforzo e alto impatto che si potenziano a vicenda quando usate insieme. Abbinalo alla 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 si trovi in nessuna cartella pubblica.

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

Serve una mano?

Se desideri rinnovare le salts e le chiavi del tuo sito WordPress nell’ambito di una pulizia di sicurezza più ampia, Defyn può occuparsene. È uno dei piccoli lavori che svolgiamo a ogni avvio della collaborazione.

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