secaudit.eu
Protezione

Autenticazione a due fattori per gli amministratori WordPress

Autenticazione a due fattori su WordPress: app TOTP, passkey, codici di backup, perché gli SMS sono più deboli, chi deve usare la 2FA, come introdurla e obblighi NIS2.

Di , AngelForce OÜ 7 min di lettura

Anche in: English Deutsch Français Español Polski Português Türkçe

Con l'autenticazione a due fattori (2FA) su WordPress la sola password non basta più per entrare in bacheca. Dopo la password, il login chiede una seconda prova, di solito un codice di sei cifre generato da un'app sullo smartphone. È una delle protezioni più economiche ed efficaci per gli account amministratore e, poiché il core di WordPress non include l'autenticazione a due fattori, va aggiunta con un plugin.

Questa guida spiega come funzionano i codici, quale secondo fattore scegliere, chi nel team ne ha bisogno, come introdurla senza chiudere fuori nessuno e che legame c'è tra la 2FA, il GDPR (Regolamento generale sulla protezione dei dati) e la direttiva NIS2.

Perché la sola password non basta

Le password trapelano. Quando un altro servizio perde il proprio database utenti, gli attaccanti provano le coppie di email e password rubate nei moduli di login di mezzo web. Si chiama credential stuffing e va a segno ovunque qualcuno abbia riutilizzato una password. Il phishing è la seconda strada: una falsa pagina di login, ben imitata, raccoglie direttamente la password.

Ogni sito WordPress ha un modulo di login pubblico su /wp-login.php, e anche XML-RPC, attivo per impostazione predefinita, accetta le password. Un Amministratore può installare plugin, cioè eseguire codice sul server. A seconda dei plugin in uso, un Editore può vedere i messaggi dei moduli o i dati dei clienti. Una sola password trapelata può quindi trasformarsi in una violazione dei dati personali.

Un secondo fattore spezza questa catena. L'attaccante avrà anche la password, ma non lo smartphone né la chiave di sicurezza dell'utente.

Come funziona l'autenticazione a due fattori su WordPress

Il metodo più diffuso è il TOTP, acronimo di time-based one-time password (password monouso basata sul tempo), standardizzato nella RFC 6238. In parole semplici:

  1. Quando si attiva la 2FA, il plugin mostra un codice QR. Il codice contiene una chiave segreta che l'app di autenticazione memorizza; il server ne conserva una copia.
  2. L'app combina quel segreto con l'ora corrente e calcola un codice breve, di solito di sei cifre. Nella configurazione standard compare un nuovo codice ogni 30 secondi.
  3. Al login, dopo la password corretta, WordPress chiede il codice del momento. Il server esegue lo stesso calcolo e confronta i risultati.
Una password rubata si ferma al secondo passaggio: l'attaccante non ha il codice generato sullo smartphone dell'utente
Stessa password, due esiti: senza il codice dello smartphone il login non riesce.

Poiché entrambe le parti calcolano il codice in modo indipendente, allo smartphone non viene inviato nulla e l'app funziona anche offline. Conta però l'orologio del telefono: se i codici vengono sempre rifiutati, conviene verificare che data e ora siano impostate automaticamente.

Va detto chiaramente che cosa la 2FA non fa. Non ripara un plugin vulnerabile, perché chi sfrutta un bug di un plugin non passa mai dal modulo di login; per questo gli aggiornamenti restano in cima alla nostra checklist per la sicurezza di WordPress. E una falsa pagina di login può comunque inoltrare un codice TOTP al sito vero nel giro di pochi secondi. Solo i metodi resistenti al phishing, come le passkey e le chiavi di sicurezza hardware, fermano questo tipo di phishing in tempo reale.

Scegliere il secondo fattore: app, passkey, SMS o email

Non tutti i secondi fattori offrono la stessa protezione:

MetodoRobustezzaNote
Passkey o chiave di sicurezzaMassimaResistente al phishing; serve il supporto del plugin
App di autenticazione (TOTP)AltaGratuita, funziona offline, ampiamente supportata
Codice via emailMediaSicuro quanto la casella di posta
Codice via SMSMinimaSIM swapping, intercettazione

Le passkey si basano sullo standard WebAuthn e usano una coppia di chiavi memorizzata sullo smartphone, sul computer o su una chiave hardware. Il browser usa una passkey solo sul dominio per cui è stata creata, quindi un sito di phishing che imita l'originale non ottiene nulla. Se il plugin di 2FA supporta le passkey, conviene proporle per prime agli amministratori.

Le app di autenticazione sono la soluzione pratica di riferimento. Va bene qualsiasi app TOTP, per esempio Google Authenticator, Microsoft Authenticator, app open source come Aegis o 2FAS e molti gestori di password.

I codici via SMS sono più deboli: i criminali possono impossessarsi di un numero di telefono con il SIM swapping, e i messaggi possono essere intercettati. Per questo la linea guida statunitense NIST SP 800-63B classifica i codici inviati tramite la rete telefonica, come gli SMS, tra gli autenticatori «restricted», cioè soggetti a restrizioni. Meglio di niente, ma non li consigliamo per gli account amministratore.

I codici di backup sono la chiave di riserva. La maggior parte dei plugin genera una serie di codici monouso. Vanno conservati nel gestore di password, oppure stampati e custoditi in un luogo sicuro, ma non accanto allo smartphone.

Chi deve usare la 2FA su WordPress

Consigliamo di rendere obbligatoria l'autenticazione a due fattori per:

  • ogni Amministratore ed Editore e, nei negozi WooCommerce, ogni Shop Manager;
  • chiunque possa vedere dati personali, come messaggi dei moduli, ordini o account dei clienti;
  • gli accessi di agenzie e freelance: ogni persona ha il proprio account e il proprio secondo fattore, mai un unico login «agenzia» condiviso e legato allo smartphone di una sola persona;
  • gli account intorno a WordPress: pannello di hosting, SFTP o SSH, registrar del dominio e l'account email che riceve le reimpostazioni della password.

Per Sottoscrittori e clienti del negozio, di solito basta offrire la 2FA come opzione.

Introdurre la 2FA in sei passaggi

  1. Prima fare ordine negli account. Rimuovere ex collaboratori e agenzie e abbassare i ruoli più alti del necessario. Non ha senso proteggere account che nessuno usa.
  2. Scegliere un plugin. Cercare TOTP, codici di backup, obbligo per ruolo e, idealmente, passkey. Il plugin gratuito Two Factor su WordPress.org è mantenuto da contributori di WordPress e copre TOTP e codici di backup, ma non prevede di serie l'obbligo per ruolo. Anche plugin di sicurezza come Security Audit & Compliance di secaudit.eu includono il login a due fattori con TOTP.
  3. Fare una prova con il proprio account. Configurare il secondo fattore, uscire e accedere di nuovo in una finestra privata del browser. Tenere come riserva un secondo account amministratore, anch'esso con 2FA.
  4. Annunciare una data. Inviare una breve guida che indichi quale app installare ed entro quando.
  5. Renderla obbligatoria per i ruoli elencati sopra, così che nessuno possa saltare la configurazione.
  6. Chiudere le porte laterali. Disattivare XML-RPC se nulla lo usa, oppure verificare che il plugin lo copra. Controllare le password per le applicazioni (Application Passwords, disponibili da WordPress 5.6): servono per l'accesso via API e non passano dalla richiesta del secondo fattore, quindi vanno tenute solo quelle necessarie.

Smartphone perso: recuperare l'accesso in sicurezza

Telefoni persi o sostituiti sono la normalità: conviene prepararsi prima che succeda.

  • Codice di backup: l'utente accede con uno dei codici di backup, configura di nuovo la 2FA sul nuovo telefono e genera nuovi codici di backup.
  • Un altro amministratore di solito può reimpostare il secondo fattore di un utente. La richiesta va confermata attraverso un canale già affidabile, per esempio richiamando il collega a un numero noto. «Ho perso il telefono, puoi azzerarmi la 2FA?» è una classica frase da social engineering.
  • Ultima risorsa per l'unico amministratore rimasto chiuso fuori: disattivare il plugin di 2FA sul server, accedere e riattivarlo subito.

Con WP-CLI, sostituire two-factor con il nome della cartella del proprio plugin:

wp plugin deactivate two-factor

Senza WP-CLI, rinominare via SFTP la cartella del plugin in wp-content/plugins/ ha lo stesso effetto; prima di riattivare il plugin va ripristinato il nome originale. Il metodo funziona per chiunque abbia accesso al server, ed è proprio per questo che anche gli account di hosting e SFTP vanno protetti a dovere.

Autenticazione a due fattori, NIS2 e GDPR

La NIS2 è esplicita: l'art. 21, paragrafo 2, lettera j, della direttiva NIS2 include l'autenticazione a più fattori o l'autenticazione continua tra le misure minime per i soggetti che rientrano nel suo ambito. Se un'azienda vi rientri dipende da dimensioni, settore e legge nazionale del suo Paese, come spiegato in NIS2 e il sito WordPress. Anche quando la NIS2 non si applica direttamente, i clienti che vi rientrano devono gestire la sicurezza della catena di approvvigionamento (art. 21, paragrafo 2, lettera d), e chiedono sempre più spesso alle agenzie se gli accessi amministrativi sono protetti.

Il GDPR non cita la 2FA, ma l'art. 32 richiede misure di sicurezza che tengano conto dello stato dell'arte. Per gli account amministratore con accesso a dati personali la 2FA è economica e ampiamente disponibile, il che rende difficile sostenere che non fosse adeguata; si veda l'articolo 32 del GDPR per WordPress. Conviene registrare quando è stata resa obbligatoria e per quali ruoli, perché l'art. 5, paragrafo 2, richiede di poter comprovare le misure adottate.

Domande frequenti

La 2FA protegge completamente un sito WordPress?

No. Protegge il login. Plugin vulnerabili, hosting poco sicuro e malware sul computer di un utente richiedono misure specifiche.

Un codice via email è sufficiente?

È meglio di nessun secondo fattore, ma chi controlla la casella di posta riceve sia il link per reimpostare la password sia il codice. Per gli amministratori meglio un'app o una passkey.

Più persone possono condividere un account protetto con la 2FA?

Non dovrebbero. Ognuno deve avere il proprio account: è anche l'unico modo pulito per revocare l'accesso quando qualcuno se ne va.

Questo articolo ha carattere informativo generale e non costituisce consulenza legale.

Controlla il tuo sito

Security Audit & Compliance è il plugin WordPress di secaudit.eu: cerca malware, spam nascosto, file core modificati e codice vulnerabile, e collega i risultati all’art. 32 del GDPR, all’art. 21 della NIS2 e alla OWASP Top 10.

Scopri cosa controlla il plugin
Melike Görel

Melike Görel scrive le guide di secaudit.eu sulla sicurezza di WordPress e sulla conformità alle norme UE per AngelForce OÜ, l’azienda di software di Tallinn che sta dietro a secaudit.eu.

Realizzato con l’aiuto dell’IA e verificato prima della pubblicazione. Questo articolo è un’informazione generale e non una consulenza legale.