audit sicurezza wordpress
Mappare gli accessi e ridurre la superficie d’attacco (da verificare per primo)
audit sicurezza wordpress — Quando un sito WordPress viene compromesso, la porta d’ingresso è molto spesso… un accesso. Prima ancora di ispezionare il codice o le estensioni, un audit efficace inizia con la mappatura degli account, dei ruoli e dei punti di autenticazione. L’obiettivo è semplice: ridurre drasticamente il numero di percorsi sfruttabili e rendere ogni tentativo di intrusione costoso.
Iniziate inventariando tutti gli utenti WordPress (inclusi quelli che non si collegano più). Individuate gli account admin generici, le e-mail obsolete, gli account condivisi tra più persone e, soprattutto, gli account il cui ruolo è più elevato del necessario. Si applica il principio del minimo privilegio: un redattore non ha bisogno di essere amministratore, un fornitore occasionale non deve mantenere diritti elevati una volta terminato l’incarico.
Verificate poi la sicurezza della pagina di accesso: politica delle password (lunghezza, complessità, unicità), attivazione di una doppia autenticazione (2FA), limitazioni dei tentativi (anti-brute force) e presenza di un meccanismo anti-enumerazione degli utenti. Un’enumerazione permette di scoprire login validi, poi di lanciare attacchi di forza bruta mirati.
Infine, controllate gli accessi esterni a WordPress che a volte aggirano le protezioni: FTP/SFTP, SSH, pannello di hosting, phpMyAdmin, webmail. Un account dell’hosting compromesso equivale spesso a una compromissione totale del sito. Nel vostro audit, pretendete accessi individuali (nessun account condiviso), password uniche e idealmente un’autenticazione forte lato hosting provider.

Aggiornamenti, dipendenze e componenti: il cuore della prevenzione
Un audit pertinente verifica non solo se tutto è aggiornato, ma anche ciò che deve essere aggiornato, ciò che non dovrebbe più essere presente e ciò che è mantenuto. In WordPress, la maggior parte delle compromissioni sfrutta vulnerabilità note in plugin e temi, talvolta corrette da mesi.
Controllate la versione di WordPress (core), del tema attivo e di tutti i plugin. Annotate anche gli elementi disattivati: un plugin disattivato ma ancora installato può rimanere sfruttabile a seconda della vulnerabilità, oppure essere riattivato da un attaccante che ha già ottenuto un accesso admin. La regola più sicura: eliminare ciò che non serve.
La parte più delicata è la rimozione senza rompere la funzionalità. Prima di eliminare un componente, identificatene il ruolo esatto (shortcodes, widget, blocchi, script, integrazioni). Preparate un piano di rollback. Per un metodo pulito e progressivo, potete basarvi su questa guida interna: Come eliminare i plugin obsoleti senza rischi.
Nell’audit, aggiungete un criterio spesso dimenticato: lo stato di salute del plugin/tema. Data dell’ultimo aggiornamento, compatibilità dichiarata, frequenza delle correzioni, reputazione, esistenza di un supporto attivo. Un plugin abbandonato è un debito di sicurezza.
Verificare l’integrità dei file e rilevare modifiche sospette
Un sito può essere aggiornato eppure infetto. L’audit deve quindi includere una verifica d’integrità: presenza di file sconosciuti, modifiche in file sensibili, backdoor, webshell, iniezioni nel tema o nei mu-plugins.
Per saperne di più sui nostri servizi di manutenzione di siti WordPress
Punti da controllare assolutamente:
– La cartella wp-content/uploads : non dovrebbe contenere file PHP eseguibili. La presenza di script lì dentro è un forte segnale (spesso legato a una backdoor).
– I file wp-config.php e .htaccess : ricerca di reindirizzamenti sconosciuti, regole di esecuzione anomale, o aggiunte di codice oscuro.
– Le directory wp-includes e wp-admin : non devono contenere file inattesi. Qualsiasi anomalia merita un’indagine.
– I file del tema: iniezioni in functions.php, header.php, footer.php, o file dal nome legittimo ma con contenuto offuscato.
Controllate anche le attività pianificate (WP-Cron): i malware vi si agganciano per reinstallarsi o rilanciare azioni. Un audit serio esamina gli eventi cron, le azioni ricorrenti sconosciute e le chiamate esterne sospette.
Rafforzamento del server: permessi, PHP, intestazioni e isolamento
La sicurezza di WordPress non si limita alla bacheca. Un audit deve assolutamente valutare l’ambiente di hosting, perché una configurazione troppo permissiva trasforma una piccola falla in una compromissione totale.
Permessi di file e scrittura
Verificate i permessi: niente directory in 777, niente file critici accessibili in scrittura da chiunque. I permessi esatti variano a seconda della configurazione, ma l’idea resta la stessa: limitare la scrittura alle directory necessarie (uploads, cache, eventualmente log) e bloccare il resto.
Versione di PHP e moduli
Controllate la versione di PHP, i moduli caricati e la configurazione. Una versione obsoleta aumenta il rischio, così come funzioni pericolose attivate senza necessità. Verificate anche la gestione degli errori (display_errors): mostrare errori in produzione può rivelare percorsi, query SQL, perfino segreti.
Intestazioni di sicurezza e HTTPS
Assicuratevi che il sito imponga HTTPS, che i cookie siano sicuri e che intestazioni come HSTS, X-Content-Type-Options, X-Frame-Options (o CSP), Referrer-Policy siano configurate correttamente in base al contesto. L’obiettivo: ridurre i vettori XSS, il clickjacking e le fughe di informazioni. Un audit pragmatico non applica tutto al massimo senza verificare l’impatto (la CSP può rompere integrazioni se è impostata male).
Isolamento e segmentazione
Se più siti condividono lo stesso hosting, un audit deve verificare l’isolamento (account separati, permessi, separazione dei pool PHP, nessuna cartella condivisa in scrittura). Altrimenti, la compromissione di un sito può contaminare gli altri.
Sicurezza del database: account, privilegi e segnali di injection
Il database è un asset critico: contiene utenti, hash delle password, sessioni, contenuti, opzioni, chiavi API talvolta memorizzate in chiaro. Un audit di sicurezza WordPress deve quindi verificare:

– L’account MySQL utilizzato da WordPress: non deve avere più privilegi del necessario. In molti casi, ha diritti troppo ampi sull’intero server.
– Le credenziali di base: uniche, robuste, non riutilizzate. Controllate anche se dei backup SQL circolano in cartelle accessibili pubblicamente.
– La tabella wp_options (o il suo equivalente se il prefisso è personalizzato): è spesso lì che si nascondono iniezioni persistenti (opzioni autoload, codice codificato, valori anormalmente lunghi).
– Gli utenti WordPress: individuare account sconosciuti, elevazioni di privilegi o cambi di e-mail e password non spiegati.
Aggiungete una verifica di coerenza: un picco di opzioni autoload può indicare aggiunte anomale. Questo punto ha anche un impatto sulle prestazioni, e prestazioni e sicurezza spesso si incrociano (un sito lento a volte maschera attività malevole in background).
Plugin di sicurezza, WAF, logging: verificare l’efficacia reale
Installare un plugin di sicurezza non basta: l’audit deve verificare che sia configurato, aggiornato, e soprattutto che produca segnali sfruttabili. Una sicurezza silenziosa è raramente una sicurezza efficace.
Controllate:
– Esistenza di un WAF (a livello server, CDN o plugin) e la sua modalità (rilevamento vs blocco).
– Impostazioni anti-brute force (blocco, CAPTCHA, liste di autorizzazione se necessario).
– Logging degli accessi (riusciti\/falliti), cambiamenti dei file, modifiche delle impostazioni sensibili.
– Alerting: chi riceve gli avvisi e vengono davvero consultati? Un audit deve verificare il flusso operativo (altrimenti, gli avvisi finiscono ignorati).
– Conservazione dei log e conformità: conservare abbastanza a lungo per investigare, senza esporre inutilmente dati sensibili.
Backup e ripristino: il test che rivela le falle nascoste
Il backup non è un extra. È la rete di sicurezza finale. In un audit, non ci si limita a verificare che un plugin di backup sia attivo: si verifica che si sappia ripristinare, rapidamente, correttamente, e senza dipendere da una sola persona.
Checklist minima:
– Frequenza adeguata (sito vetrina vs e-commerce vs media).
– Backup esternalizzati (non solo sullo stesso server).
– Storico sufficiente (conservazione) e versioni multiple.
– Backup dei file + database + eventualmente configurazione del server.
– Procedura di ripristino documentata e testata.
Il test chiave: simulare un ripristino su un ambiente di staging. Se cercate una procedura semplice e operativa, consultate: Ripristinare un sito in meno di 10 minuti.
Per saperne di più sui nostri servizi di manutenzione di siti WordPress
Scansionare le vulnerabilità… e interpretare i risultati senza falsi positivi
Un audit serio combina verifiche manuali e strumenti automatizzati. Gli scanner (vulnerabilità, malware, configurazione) fanno risparmiare tempo, ma possono produrre falsi positivi o non rilevare attacchi discreti.
Nel vostro percorso, privilegiate un approccio a strati:
– Scansione delle versioni (plugin/temi) rispetto a database di vulnerabilità note.
– Analisi dei file (firme + euristiche) per individuare offuscamento, chiamate sospette, funzioni pericolose.
– Audit delle configurazioni (HTTPS, header, indicizzazione delle directory, endpoint esposti).
– Controllo dei log (server e applicazione) per cercare pattern di attacco.
Per completare la tua checklist con punti attuabili, puoi incrociarla con risorse esterne come Audit di sicurezza WordPress: 7 verifiche da effettuare, poi adattare in base al tuo contesto (traffico, dati, vincoli di business).
Controllare i moduli, l’upload e i punti di ingresso business
I moduli di contatto, le registrazioni, le richieste di preventivo, i commenti e le aree di upload sono superfici di attacco principali. L’audit deve verificare:
– Protezione anti-spam e anti-bot (senza degradare eccessivamente l’esperienza utente).
– Validazione lato server (non solo lato browser): tipi di file consentiti, dimensione, estensione, controllo MIME, rinomina, archiviazione fuori dal percorso eseguibile se possibile.
– Protezione contro XSS e injection: campi di testo, campi HTML, editor WYSIWYG, shortcode.
– Notifiche: evitare di esporre informazioni sensibili (ad es. e-mail contenenti troppi dettagli tecnici).
Se il tuo sito gestisce pagamenti, account cliente o dati personali, l’audit deve includere una revisione delle pagine critiche (checkout, area clienti, endpoint AJAX) e delle autorizzazioni associate.
Endpoint, REST API, XML-RPC ed esposizione involontaria
WordPress espone endpoint utili, ma che possono essere sfruttati a seconda della configurazione. L’audit deve verificare:

– REST API: quali contenuti sono accessibili senza autenticazione? I tipi di contenuti privati sono correttamente protetti?
– XML-RPC: è necessario? Se no, disattivarlo può ridurre alcuni rischi (brute force distribuito, pingback). Se sì, limitarlo e monitorarne l’uso.
– Pagine di debug ed endpoint dei plugin: alcuni plugin lasciano rotte o pagine di admin accessibili in modo imprevisto.
– File esposti: readme, changelog, listing delle directory, endpoint di backup.
Un buon audit non disattiva tutto automaticamente: documenta l’utilità e l’impatto, poi applica una riduzione progressiva dell’esposizione.
Prestazioni e sicurezza: i segnali deboli da non ignorare
Un improvviso peggioramento delle prestazioni può essere un sintomo: mining, spam, richieste malevole, bot o sovraccarico dovuto a un attacco di forza bruta. Al contrario, prestazioni scarse possono portare a scelte rischiose (disattivare protezioni, lasciare cache configurate male, esporre directory). L’audit deve quindi includere una sezione prestazioni orientata alla sicurezza.
Verifica i picchi CPU\/memoria, l’origine delle richieste, le pagine sollecitate, gli errori 404 a raffica e la volumetria delle richieste POST. Per strutturare questa diagnosi, puoi consultare: Come Analizzare la Velocità del Proprio Sito Strumenti Metodo.
E per evitare le trappole classiche (plugin di cache impilati, immagini non ottimizzate, script di terze parti incontrollati) che danneggiano tanto la stabilità quanto la sicurezza, questa risorsa interna completa bene l’audit: Gli Errori di Performance più Frequenti.
Casi particolari: multilingue, staging e ambienti multipli
I siti multilingue aggiungono spesso plugin importanti (traduzioni, SEO, gestione degli URL, sincronizzazione dei contenuti) e moltiplicano le superfici d’attacco: più percorsi, più contenuti, più editor, talvolta più integrazioni. Un audit deve verificare che le lingue aggiuntive non creino percorsi inattesi (es. pagine non protette, reindirizzamenti, contenuti duplicati sfruttabili per phishing, ecc.).
Se il tuo sito è interessato, anticipa anche i rischi tecnici propri di queste configurazioni tramite: Multilingue Problemi Tecnici da Anticipare.
Altro punto: gli ambienti di staging e di preproduzione. Sono spesso meno protetti (password deboli, indicizzazione attiva, plugin di debug, log verbosi). Tuttavia, contengono talvolta una copia del database di produzione. Un audit deve verificare l’accesso (auth), l’indicizzazione (noindex) e la separazione dei segreti (chiavi API diverse tra staging e produzione).
Per saperne di più sui nostri servizi di manutenzione di siti WordPress
Piano d’azione: dare priorità alle correzioni e dimostrare la riduzione del rischio
Un audit utile non si ferma a un elenco di problemi. Produce un piano di remediation prioritizzato in base a: sfruttabilità, impatto, esposizione ed effort. Una vulnerabilità critica su un plugin esposto al pubblico viene prima di un miglioramento di igiene a basso rischio. Classifica le azioni su tre livelli:
– Urgente (24–72h): account sospetti, malware, plugin vulnerabile sfruttato, accesso all’hosting non controllato, backup inesistente.
– Importante (1–2 settimane): hardening del server, riduzione dei privilegi, rimozione dei componenti inutili, 2FA, WAF, log.
– Miglioramento continuo (mensile/trimestrale): revisione delle dipendenze, test di ripristino, controllo delle integrazioni, monitoraggio.
Per arricchire la tua checklist ed evitare punti ciechi, puoi confrontare il tuo metodo con approcci strutturati come I 7 Punti Critici che Nessuno Verifica – AlmaWeb o ancora con un formato più operativo orientato al controllo rapido: Audit WordPress Express: 13 Punti di Controllo + Caso Reale.
Infine, se cerchi una panoramica complementare (con un approccio passo dopo passo) per confrontare i tuoi risultati, questa risorsa esterna può aiutare a validare la tua copertura: Come verificare la sicurezza del proprio sito WordPress.
Mettere l’audit in routine: manutenzione, monitoraggio e responsabilità
La sicurezza WordPress non è un evento occasionale: è una routine. Il miglior audit del mondo perde valore se il sito non viene mantenuto, se gli avvisi non vengono letti o se gli aggiornamenti vengono rimandati senza un processo.
Formalizza una cadenza: revisione settimanale degli aggiornamenti, controllo mensile degli account e dei plugin, test di ripristino trimestrale e audit più completo a intervalli regolari (o dopo ogni cambiamento importante: nuovo tema, restyling, migrazione, aggiunta di un plugin critico).
Se desiderate esternalizzare tutta o parte di questa routine con un quadro chiaro (aggiornamenti, monitoraggio, backup, interventi), potete consultare : Per saperne di più sui nostri servizi di manutenzione del sito.
Un audit ben condotto non mira alla perfezione teorica. Mira a un sito mantenibile nel tempo, a una superficie d’attacco ridotta, a un rilevamento più rapido e a una capacità di ripristino collaudata. È questo trio (prevenire, rilevare, recuperare) che fa davvero la differenza.






