WordPress: proteggere XML-RPC senza dare problemi a Jetpack

Gioxx  —  03/05/2019 — Leave a comment

Tutto parte da una segnalazione di bug arrivata tramite il mio bug bounty program (openbugbounty.org/reports/809068) e, seppur protetto da alcuni metodi di cui ti ho già parlato in passato, effettivamente il file XML-RPC di WordPress risultava raggiungibile dall’esterno, mostrando potenzialmente il fianco a un qualche attacco poco gradito. Per questo motivo ho voluto aggiungere un ulteriore strato di sicurezza che gli permette di continuare a rimanere disponibile per Jetpack e nulla più. Per farlo mi è bastato mettere mano al file .htaccess del dominio.

WordPress: 5 step per la sua (e tua) sicurezza

La documentazione a cui fare riferimento è quella ufficiale di Jetpack, disponibile all’indirizzo jetpack.com/support/hosting-faq. Nello specifico ciò che a te interessa è quel paragrafo relativo a “Whitelist all communications between WordPress.com and Jetpack“, utile per permettere al tuo sito e al servizio messo a disposizione da WordPress.com di parlare senza incontrare ostacoli, lasciando fuori tutto il resto.

Al solito, prima di cominciare, il consiglio resta sempre lo stesso:

ATTENZIONE: Prima di eseguire qualsiasi modifica ai tuoi file e/o dispositivi sei pregato/a di effettuare un backup di questi (o lavorare in ambiente di test e mai di produzione). Solo così sarai capace di tornare indietro ponendo rimedio a eventuali errori di distrazione.

Una questione di .htaccess

Pronto? Cominciamo. Il trucco è semplice e sta tutto nel file che può limitare l’accesso alle risorse contenute nel tuo sito web. Apri il file .htaccess con un editor di testo degno (Notepad++ o Atom), non toccare nulla che sia stato messo lì dal tuo WordPress o da qualsiasi altro plugin da te utilizzato (penso a iThemes Security o W3 Total Cache e simili), trova uno spazio nuovo da occupare con una porzione di codice che dovrebbe essere quanto più simile a questa proposta di seguito:

<Files xmlrpc.php>
    Order Allow,deny
    Allow from 122.248.245.244
    Allow from 54.217.201.243
    Allow from 54.232.116.4
    Allow from 192.0.64.1/192.0.127.254
    Allow from 192.0.80.0/20
    Allow from 192.0.96.0/20
    Allow from 192.0.112.0/20
    Allow from 195.234.108.0/22
    Deny from all
    Satisfy All
    ErrorDocument 403 https://gioxx.org/403.shtml
</Files>

Io ho inserito il codice subito prima del termine del “paragrafo” modificato da WordPress (per capirci, prima di “# END WordPress“). Una volta terminato il tuo lavoro, salva la modifica e sovrascrivi il file presente sul tuo spazio FTP. Ciò che hai appena fatto consiste nel bloccare ogni possibile comunicazione con il file xmlrpc.php a esclusione degli IP appartenenti a WordPress.com, come una sorta di Firewall che taglia fuori tutti tranne loro. Chiunque proverà a puntare a quel file php sul tuo spazio hosting, si troverà davanti a una pagina di errore (nel mio caso https://gioxx.org/403.shtml, nel tuo ti consiglio di modificarla con qualsiasi altro tipo di indirizzo).

La modifica è immediata e dovrebbe portare beneficio alla tua installazione WordPress – in termini di sicurezza, nda – che non risentirà così alcun problema nell’utilizzo del sempre troppo mastodontico JetPack, in attesa che quest’ultimo si decida a utilizzare un diverso metodo per comunicare con le installazioni del CMS in giro per il mondo.

Al solito: per qualsiasi ulteriore dubbio o informazione l’area commenti è a tua totale disposizione (anche per suggerire metodi alternativi a quello proposto poco sopra).


fonti:
namehero.com/startup/how-to-safely-disable-xmlrpc-in-wordpress-while-keeping-jetpack
jetpack.com/support/hosting-faq
Gioxx's Wall Se hai correzioni o suggerimenti puoi lasciare un commento nell'apposita area qui di seguito o contattarmi privatamente.
Ti è piaciuto l'articolo? Offrimi un caffè! Satispay / PayPal / Buy Me A Coffee / Patreon
Condividi l'articolo con i tuoi contatti: