Come proteggere WordPress dagli attacchi XML-RPC

WordPress è una piattaforma CMS (content management system) popolare e potente. La sua popolarità può portare ad un' attenzione indesiderata sotto forma di traffico malevolo appositamente mirato a un sito WordPress.

Image Description

Introduzione

WordPress è una piattaforma CMS (content management system) popolare e potente. La sua popolarità può portare ad un' attenzione indesiderata sotto forma di traffico malevolo appositamente mirato a un sito WordPress.

Esistono molti casi in cui un server che non è stato protetto o ottimizzato potrebbe riscontrare problemi o errori dopo aver ricevuto una piccola quantità di traffico dannoso. Questi attacchi portano all'esaurimento delle risorse di sistema causando servizi come MySQL che non rispondono. Il segnale visivo più comune di questo sarebbe un errore durante la connessione al messaggio del database. La console Web potrebbe anche visualizzare errori di memoria esaurita.

Questa guida ti mostrerà come proteggere WordPress dagli attacchi XML-RPC su un sistema Ubuntu

Prerequisiti Per questa guida, è necessario quanto segue:

  • Ubuntu 14.04+
  • Un utente non root con privilegi sudo

Tutti i comandi di questo tutorial devono essere eseguiti come utente non root. Se l'accesso root è richiesto per il comando, sarà preceduto da sudo.

Cos'è XML-RPC?

WordPress utilizza XML-RPC per eseguire da remoto le funzioni. Il popolare plugin JetPack e l'applicazione mobile WordPress sono due grandi esempi di come WordPress utilizza XML-RPC. Questa stessa funzionalità può anche essere sfruttata per inviare migliaia di richieste a WordPress in un breve lasso di tempo. Questo scenario è effettivamente un attacco di forza bruta.

Riconoscimento di un attacco XML-RPC

I due modi principali per riconoscere un attacco XML-RPC sono i seguenti:

  1. Visualizzazione del messaggio "Errore durante la connessione al database" quando il tuo sito WordPress non funziona
  2. Trovare molte voci simili a "POST /xmlrpc.php HTTP / 1.0" nei log del tuo server web

La posizione dei file di registro del server Web dipende da quale distribuzione Linux è in esecuzione e da quale server Web è in esecuzione.

Per Apache su Ubuntu 14.04 o + , utilizzare questo comando per cercare gli attacchi XML-RPC:

grep xmlrpc /var/log/apache2/access.log Per Nginx su Ubuntu 14.04, usa questo comando per cercare gli attacchi XML-RPC:

grep xmlrpc /var/log/nginx/access.log

Il tuo sito WordPress sta ricevendo attacchi XML-RPC se i comandi di cui sopra generano molte righe di output, simili a questo esempio:

111.222.333.444:80 555.666.777.888 - - [01 / Jan / 2016: 16: 33: 50 -0500] "POST /xmlrpc.php HTTP / 1.0" 200 674 "-" "Mozilla / 4.0 (compatibile: MSIE 7.0; Windows NT 6.0) "

Il resto di questo articolo si concentra su tre diversi metodi per prevenire ulteriori attacchi XML-RPC.

Metodo 1: installazione del plugin Jetpack

Idealmente, si desidera prevenire gli attacchi XML-RPC prima che si verifichino. Il plugin Jetpack per WordPress può bloccare le richieste di metodo multicall XML-RPC con la sua funzione Protect. Verranno comunque visualizzate voci XML-RPC nei registri del server Web con Jetpack abilitato. Tuttavia, Jetpack ridurrà il carico sul database da questi tentativi di accesso malevoli di quasi il 90%.

Nota: per attivare il plug-in Jetpack è necessario un account WordPress.com.

Jetpack si installa facilmente dal backend di WordPress. Per prima cosa, accedi al tuo pannello di controllo di WordPress e seleziona Plugin-> Aggiungi nuovo nel menu a sinistra.

Jetpack dovrebbe essere elencato automaticamente nella sezione Plugin in primo piano della pagina Aggiungi nuovo. Se non lo vedi, puoi cercare Jetpack usando la casella di ricerca.

Fare clic sul pulsante Installa ora per scaricare, decomprimere e installare Jetpack. Una volta installato correttamente, nella pagina verrà visualizzato il collegamento Attiva plug-in. Fai clic sul collegamento Attiva plugin. Verrai reindirizzato alla pagina Plugin e un'intestazione verde sarà in alto in cui si afferma che il tuo Jetpack è quasi pronto !. Fare clic sul pulsante Connetti a Wordpress.com per completare l'attivazione di Jetpack.

Ora, accedi con un account WordPress.com. Puoi anche creare un account se necessario.

Dopo aver effettuato l'accesso al tuo account WordPress.com, verrà attivato Jetpack. Ti verrà presentata un'opzione per avviare Jump Start che abiliterà automaticamente le funzionalità comuni di Jetpack. Fai clic sul collegamento Vai a questo passaggio.

La funzione Proteggi viene automaticamente abilitata, anche se si salta la procedura Jump Start. Ora puoi vedere un dashboard Jetpack che mostra anche la funzione Proteggi come attiva. Autorizza gli IP che potrebbero venire bloccati da Protect facendo clic sulla rotella accanto al nome Proteggi.

Immettere gli indirizzi IPv4 o IPv6 che si desidera elencare e fare clic sul pulsante Salva per aggiornare la lista bianca Proteggi.

Metodo 2: Abilitare block-xmlrpc con a2enconf

La funzionalità a2enconf block-xmlrpc è stata aggiunta all'immagine one-click DigitalOcean WordPress nel dicembre 2016. Con essa, è possibile bloccare tutte le richieste XML-RPC a livello di server Web.

Nota: questo metodo è disponibile solo su un DigitalOcean One-Click WordPress Install creato nel dicembre 2015 e successivamente.

Per abilitare lo script di blocco XML-RPC, esegui il seguente comando sul tuo Droplet con l'immagine con un clic DO WordPress installata:

sudo a2enconf block-xmlrpc

Riavvia Apache per abilitare la modifica:

sudo service apache2 restart

Avviso: questo metodo interromperà tutto ciò che utilizza XML-RPC dal funzionamento, incluso Jetpack o l'app per dispositivi mobili WordPress.

Metodo 3: Blocco manuale di tutto il traffico XML-RPC

In alternativa, il blocco XML-RPC può essere applicato manualmente alla configurazione di Apache o Nginx.

Per Apache su Ubuntu 14.04+, modificare il file di configurazione con il seguente comando:

sudo nano /etc/apache2/sites-available/000-default.conf

Aggiungi le linee evidenziate sotto tra i tag

<VirtualHost>
…    
    <files xmlrpc.php>
      order allow,deny
      deny from all
    </files>
</VirtualHost>

Salva e chiudi questo file quando hai finito.

Riavvia il server Web per abilitare le modifiche:

sudo service apache2 restart

Per Nginx su Ubuntu 14.04+ , modifica il file di configurazione con il seguente comando (inserisci il path del tuo file di configurazione):

sudo nano /etc/nginx/sites-available/example.com

Aggiungi le linee evidenziate sotto al blocco del server:

server {
…
 location /xmlrpc.php {
      deny all;
    }
}

Salva e chiudi questo file quando hai finito.

sudo service nginx restart

Avviso: questo metodo interromperà tutto ciò che utilizza XML-RPC dal funzionamento, incluso Jetpack o l'app per dispositivi mobili WordPress.

Verifica dei passaggi di attenuazione dell'attacco

Qualunque sia il metodo che hai scelto per prevenire gli attacchi, devi verificare che funzioni.

Se abiliti la funzione Jetpack Protect, vedrai le richieste XML-RPC continuare nei log del tuo server web. La frequenza dovrebbe essere inferiore e Jetpack ridurrà il carico che un attacco può effettuare sul processo del server del database. Jetpack inoltre bloccherà progressivamente gli indirizzi IP di attacco.

Se si blocca manualmente tutto il traffico XML-RPC, i registri mostreranno ancora i tentativi, ma il codice di errore risultante sarà diverso da 200. Ad esempio, le voci nel file Access.log di Apache possono avere il seguente aspetto:

111.222.333.444:80 555.666.777.888 - - [01 / Jan / 2016: 16: 33: 50 -0500] "POST /xmlrpc.php HTTP / 1.0" 500 674 "-" "Mozilla / 4.0 (compatibile: MSIE 7.0; Windows NT 6.0) "

Conclusione

Adottando misure per mitigare il traffico XML-RPC dannoso, il tuo sito WordPress consumerà meno risorse di sistema. Il consumo di risorse di sistema è il motivo più comune per cui un sito WordPress va offline su una VPS. I metodi di prevenzione degli attacchi XML-RPC menzionati in questo articolo assicureranno che il tuo sito WordPress rimanga online.


Server Side

  • Dependency injections in PHP

    Dependency injections (DI) è un design pattern della Programmazione orientata agli oggetti il cui scopo è quello di semplificare lo sviluppo e migliorare la testabilità di software di grandi dimensioni.

    Leggi
  • Il garante privacy sta sviluppando un crawler per scandagliare il web alla ricerca di siti non in regola con il GDPR

    Il garante privacy sta sviluppando un crawler per scandagliare il web alla ricerca di siti non in regola con il GDPR

    Leggi
  • Configurazione iniziale del server con Ubuntu 16.04

    Quando crei per la prima volta un nuovo server Ubuntu 16.04, ci sono alcuni passaggi di configurazione da eseguire in anticipo come parte della configurazione di base. Ciò aumenterà la sicurezza e l'usabilità del server e fornirà una solida base per le azioni successive.

    Leggi
  • Come installare WordPress con LAMP su Ubuntu 16.04

    WordPress è il CMS più popolare su Internet. Ti consente di impostare facilmente blog e siti web flessibili su un backend MySQL con elaborazione PHP. WordPress ha visto un'adozione incredibile ed è un'ottima scelta per far funzionare rapidamente un sito web. Dopo l'installazione, è possibile eseguire quasi tutta l'amministrazione tramite il front-end Web.

    Leggi
  • Come proteggere WordPress dagli attacchi XML-RPC

    WordPress è una piattaforma CMS (content management system) popolare e potente. La sua popolarità può portare ad un' attenzione indesiderata sotto forma di traffico malevolo appositamente mirato a un sito WordPress.

    Leggi
  • Servizi di Object Storage vs. servizi di Block Storage

    Lo storage di dati flessibile e scalabile è un requisito di base per la maggior parte delle applicazioni e dei servizi sviluppati con tecniche e strumenti moderni.

    Leggi
  • Come fare il backup di un sito wordpress sul cloud di Digital Ocean

    Il servizio Spaces di DigitalOcean può fornire una soluzione di archiviazione di oggetti per i dati dei siti di WordPress

    Leggi
  • Come installare lo stack Apache, MySQL, PHP (LAMP) su Ubuntu 16.04

    In questa guida, verrà installato uno stack LAMP su una macchina Ubuntu 16.04. Ubuntu soddisferà il nostro primo requisito: un sistema operativo Linux.

    Leggi
  • Installare il certificato Let's Encrypt per Apache su Ubuntu 16.04

    Questo tutorial vi spiegherà come configurare un certificato TLS / SSL da Let's Encrypt su un server Ubuntu 16.04 che esegue Apache come server web.

    Leggi

Logo

Sviluppo progetti web dall'analisi alla produzione

Interventi di implementazione su software esistenti.

Contatti

4, av du Ray, Nice
France, FR
Email: massimo.ivaldi@codegarage.it