Nell’incidente di agosto il malware è entrato da un plugin e ha riscritto i file di tutti i siti: WordPress poteva modificare il proprio codice, e quindi poteva farlo anche lui. Su web1 questo non succede: il codice appartiene a root e l’utente del sito, cioè WordPress, può solo leggerlo.
Cosa vuol dire bloccato
- File e cartelle del sito: proprietario
root, permessi 640 e 750. WordPress li legge ma non li cambia. - Restano scrivibili solo le cartelle che servono al sito in funzione: di solito
uploads,cacheewflogs(Wordfence). L’elenco di un sito sta in/root/sites/<dominio>/writable. - In
wp-contentnginx esegue solo i PHP di plugin e temi: negli upload, nella cache, nei dati di Wordfence e in ogni altra cartella scrivibile uno script resterebbe un file inerte. E un PHP in una cartella scrivibile è comunque un allarme. - Bloccare approva l’impronta: l’elenco sha256 di tutti i file del codice. Da quel momento ogni file diverso è un allarme.
- Ogni approvazione diventa anche una versione nella storia git del sito, con chi e perché: resta visibile cosa è cambiato tra un blocco e l’altro, anche quando l’impronta è già stata rinnovata. Vedi Le versioni del codice.
L’editor dei file in wp-admin
Il blocco vale anche dentro WordPress: l’editor dei file di temi e plugin (Aspetto → Editor dei file del tema, Plugin → Editor dei file del plugin) c’è solo con il codice sbloccato. Con il codice bloccato sparisce, e le pagine Temi e Plugin lo ricordano. Installare e aggiornare plugin e temi resta un compito della dashboard, che controlla vulnerabilità e checksum. Le modifiche fatte con l’editor entrano nella versione del codice al blocco successivo, come quelle via SFTP.
Non c’è un pulsante per sbloccare da wp-admin, e non ci sarà: chi rubasse un account di WordPress potrebbe sbloccare il codice, proprio ciò che il blocco deve impedire.
Cosa si può fare con il sito bloccato
Tutto quello che passa dal database: articoli, pagine, menu, impostazioni, Elementor, ordini, utenti. Proprio per questo ci sono altre due difese: l’amministrazione chiusa e i controlli del database (amministratori nuovi, application password, script nei contenuti).
Sbloccare
Per lavorare sui file (un tema personalizzato, un plugin caricato via SFTP): Manutenzione → Sblocca il codice. Mentre è sbloccato il sito è esposto come un WordPress qualunque: la pagina Siti avvisa dopo 24 ore, e i controlli lo segnalano ogni volta.
Le operazioni della dashboard che scrivono codice (aggiornamenti, installazioni, zip) non richiedono di sbloccare: sbloccano, lavorano e ribloccano da sole, approvando la nuova impronta.
Ribloccare
Blocca il codice è l’unico pulsante evidenziato della scheda di un sito sbloccato. Prima di premerlo la scheda dice quanti file cambiati stai approvando: se sono quelli del tuo lavoro va bene; se non sai cosa sono, aprili nel visore (dal controllo di integrità, «Apri») prima di approvarli.
Da shell
site.sh unlock esempio.it
site.sh lock esempio.it