Sicurezza in Wordpress
Introduzione
Sicurezza in WordPress è presa molto sul serio, ma come con qualsiasi altro sistema ci sono potenziali problemi di sicurezza che potrebbero sorgere se alcune precauzioni di sicurezza di base non vengono prese. Questo articolo passerà attraverso alcune forme comuni di vulnerabilità, e le cose che potete fare per contribuire a mantenere sicura la vostra installazione di WordPress.
Questo articolo non è la soluzione definitiva rapidamente ai problemi di sicurezza. Se avete problemi di sicurezza specifici o dubbi, si dovrebbe discutere con persone che ti fidi di avere una conoscenza sufficiente della sicurezza informatica e WordPress.
Che cos'è la sicurezza?
Fondamentalmente, la sicurezza non tratta di sistemi perfettamente sicuri. Una cosa del genere potrebbe essere poco pratica, o impossibili da trovare e / o mantenere. Un server sicuro protegge la privacy e la disponibilità delle risorse sotto il controllo dell'amministratore del server.
Le qualità di un web host di fiducia possono includere:
Risponde prontamente alle esigenze di protezione e sulle funzioni di sicurezza dei processi che vengono offerti attraverso il piano hosting.
Fornisce le versioni stabili più recenti di tutti i software server.
Fornisce metodi affidabili per il backup e recovery.
Sicurezza Temi
Tenete a mente alcune idee generali considerando la sicurezza in ogni aspetto del vostro sistema:
Limitare l'accesso
Fare scelte intelligenti che riducono i punti di ingresso possibili a disposizione di un utente malintenzionato.
Contenimento
Il sistema dovrebbe essere configurato per minimizzare la quantità di danno che può essere fatto nel caso in cui sia compromessa.
La preparazione e la conoscenza
Mantenere backup e conoscere lo stato della vostra installazione di WordPress a intervalli regolari. Avere un piano per il backup e di ripristino dell'installazione in caso di catastrofe può aiutare a tornare online più velocemente nel caso di un problema.
Vulnerabilità del computer
Assicurarsi che i computer utilizzati sono esenti da spyware, malware e infezioni da virus. Nessun livello di sicurezza in WordPress o sul vostro server web farà la minima differenza se c'è un keylogger sul computer.
Tenere sempre aggiornato il sistema operativo ed i software usati, in particolare il browser web.
Alcune vulnerabilità in WordPress
Come molti pacchetti software moderni, WordPress è aggiornato regolarmente per affrontare nuove questioni di sicurezza che potrebbero sorgere. Migliorare la sicurezza del software è sempre una preoccupazione costante, ed a tale scopo si dovrebbe sempre tenere aggiornati con l'ultima versione di WordPress. Le vecchie versioni di WordPress non sono mantenuti con gli aggiornamenti di sicurezza.
Aggiornamento WordPress
L'ultima versione di WordPress è sempre disponibile dal sito principale di WordPress http://wordpress.org. Comunicati ufficiali non sono disponibili da altri siti - non scaricare o installare WordPress da alcun sito Internet diverso http://wordpress.org.
Dalla versione 2.7, WordPress ha caratterizzato gli aggiornamenti automatici. Utilizzare questa funzionalità per facilitare il processo di mantenersi aggiornati. È inoltre possibile utilizzare la Dashboard di WordPress per essere sempre informato sugli aggiornamenti. Leggi la voce nella Dashboard o il Developer Blog WordPress per determinare quali passi bisogna fare per aggiornare e rimanere sicuro.
Se viene scoperta una vulnerabilità in WordPress e una nuova versione viene rilasciata per risolvere il problema, le informazioni necessarie per sfruttare la vulnerabilità è quasi certamente di dominio pubblico. Questo rende le vecchie versioni più aperte all'attacco, ed è uno dei motivi principali per il quale si dovrebbe sempre tenere WordPress aggiornato.
Se sei un amministratore responsabile di più di una installazione di WordPress, è possibile utilizzare Subversion per rendere la gestione più facile.
Segnalazione Problemi di sicurezza
Se pensate di aver trovato una falla di sicurezza in WordPress, è possibile aiutare segnalando il problema. Guarda le FAQ di sicurezza per informazioni su come segnalare i problemi di sicurezza nel sito di Wordpress.
Se pensate di aver trovato un bug, segnalatelo. Vedi Invio Bugs su come eseguire questa operazione. Potreste aver scoperto una vulnerabilità, o un bug che potrebbe aiutare qualcun'altro.
Vulnerabilità Web Server
Il server Web che esegue WordPress, e il software su di esso, può avere vulnerabilità. Pertanto, assicurarsi che si sta eseguendo in tutta sicurezza, le versioni stabili del server web e il software su di esso, o assicurarsi che si sta utilizzando un host di fiducia che si occupa di queste cose per voi.
Se siete su un server condiviso (quello che ospita altri siti oltre il proprio) e un sito web sullo stesso server è compromesso, il tuo sito web può potenzialmente essere compromesso anche se si segue tutto in questa guida. Assicurarsi di chiedere al vostro host web che prendono precauzioni di sicurezza.
Vulnerabilità di rete
La rete su entrambi i lati: il lato server WordPress e il lato client di rete - dovrebbe essere attendibile. Ciò significa che l'aggiornamento delle regole del firewall sul tuo router di casa e di essere attenti a ciò che le reti si lavora da. Un Internet cafe in cui si sta inviando le password su una connessione non crittografata, wireless o meno, non è una rete di fiducia.
Il vostro host web dovrebbe fare in modo che la loro rete non venga compromessa dagli attaccanti. Vulnerabilità di rete possono permettere la comunicazione di password e di altre informazioni sensibili da intercettare.
Passwords
Molti potenziali vulnerabilità possono essere evitate con buone abitudini di sicurezza. Una password sicura è un aspetto importante.
L'obiettivo della password complessa è quello di rendere difficile agli altri di indovinarla anche eseguendo un attacco di forza bruta per avere successo. Molti generatori di password automatiche sono disponibili e possono essere utilizzati per creare password sicure.
WordPress dispone anche di un metro della password che viene visualizzato quando si cambia la password in WordPress. Utilizzare questo quando si cambia la password per garantire la sua forza è adeguata.
Cose da evitare quando si sceglie una password:
Ogni permutazione di proprio nome reale, username, nome della società, o il nome del tuo sito web.
Una parola da un dizionario, in qualsiasi lingua.
Una password a breve.
Qualsiasi password esclusivamente numerica o alfabetica da solo (una miscela di entrambi è la cosa migliore).
Una password complessa è necessaria non solo per proteggere i contenuti del tuo blog. Un hacker che riesca ad accedere al tuo account amministratore è in grado di installare script dannosi che possono potenzialmente compromettere l'intero server.
FTP
Quando si collega al server è necessario utilizzare la crittografia SFTP se il vostro hosting web la fornisce. Se non siete sicuri se il vostro host web fornisce SFTP o no, basta chiedere.
Utilizzando SFTP è la stessa FTP, tranne la password e altri dati vengono crittografati in quanto trasmessi tra il computer e il tuo sito web. Ciò significa che la password non viene mai trasmessa in chiaro e non può essere intercettata da un utente malintenzionato.
Permessi dei file
E 'meglio bloccare i permessi dei file il più possibile e di consentire l'accesso in scrittura solamente occasionalmente, o per creare cartelle specifiche con meno restrizioni al fine di caricare i files.
Ecco uno schema dei permessi.
Tutti i file dovrebbero essere di proprietà dell'account utente, e dovrebbe essere scrivibile dall'utente. Qualsiasi file che richiede l'accesso in scrittura da WordPress dovrebbe essere un gruppo utente utilizzato dal server web.
/ La directory principale di WordPress: tutti i file devono essere scrivibili solo dal vostro account utente, meno l'htaccess se si vuole far generare a WordPress automaticamente le regole di riscrittura per voi.
/wp-admin/ L'area di amministrazione WordPress: tutti i file deve essere scrivibile solo dal vostro account utente.
/wp-includes/ La maggior parte della logica dell'applicazione WordPress: tutti i file deve essere scrivibile solo dal vostro account utente.
/wp-content/ Cartella dei contenuti: destinata ad essere completamente scrivibile da tutti gli utenti (proprietario / utente, gruppo e pubblico).
All'interno di / wp-content / troverete:
/wp-content/themes File dei Temi. Se si desidera utilizzare il built-in editor tema, tutti i file devono essere di gruppo scrivibile. Se non si desidera utilizzare il built-in editor tema, tutti i file possono essere scrivibile solo dal vostro account utente.
/wp-content/plugins/ File dei plugin: tutti i file deve essere scrivibile solo dal vostro account utente.
Altre directory che possono essere presenti con /wp-content/ devono essere documentate da parte di qualsiasi plug-in o tema le richiede, i permessi possono variare.
Cambiare i permessi dei file
Se si ha accesso alla shell al server, è possibile modificare i permessi dei file in modo ricorsivo con il seguente comando:
Per le directory:
find /path/to/your/wordpress/install/ -type d-exec chmod 755 {} \;
Per i file:
find /path/to/your/wordpress/install/ -type f-exec chmod 644 {} \;
Per quanto riguarda gli aggiornamenti automatici
Quando si dice a WordPress di eseguire un aggiornamento automatico, tutte le operazioni sui file vengono eseguite come l'utente proprietario dei file, non come utente del server web. Tutti i file sono impostati su 0644 e tutte le directory sono impostati su 0755, e scrivibili solo dall'utente e leggibile da tutti gli altri, incluso il server web.
Database Security
Se si esegue più blog sullo stesso server, è opportuno prendere in considerazione il loro mantenimento in banche dati separate, ognuna gestita da un utente diverso. Questo si realizza meglio quando si esegue l'installazione iniziale WordPress. Si tratta di una strategia di contenimento: se un intruso accede con successo ad una installazione di WordPress, questo sistema rende molto più difficile la modifica dei vostri altri blog.
Amministrare MySQL ed accertarsi di aver compreso la configurazione di MySQL e che gli elementi non necessari (come accettare remote connessioni TCP) siano disabilitati.
Proteggere wp-admin
Aggiunta di server-side password di protezione (come BasicAuth) in /wp-admin/ aggiunge un secondo livello di protezione attorno all'area di amministrazione del tuo blog, la schermata di login, ed i vostri file. Ciò impone un attaccante o un bot per attaccare questo secondo strato di protezione, invece di file effettivi di amministrazione. Molti attacchi di WordPress sono eseguite in modo autonomo dai software bot.
Correggere i permessi della directory wp-admin, impostare una password complessa, ed impostare una password BasicAuth potrebbe essere un buon inizio.
Gli attacchi più comuni nei confronti di un blog WordPress in genere si dividono in due categorie.
Invio appositamente predisposti richieste HTTP al server con un carico utile di exploit specifici per specifiche vulnerabilità. Questi includono vecchi plugin obsoleti e software.
Accesso al blog utilizzando il "brute-force" password per recuperare la password.
Proteggere wp-includes
Un secondo livello di protezione può essere aggiunto agli scripts che non sono generalmente destinate ad essere accessibili da qualsiasi utente. Un modo per farlo è quello di bloccare gli script che usano mod_rewrite nel file. Htaccess.# Block the include-only files.
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
Si noti che questo non funziona bene su installazioni Multisite, come RewriteRule ^ wp-includes / [^ /] + \ php $ -. [F, L] impedirebbe a ms-files.php file da generare immagini. Tralasciando che la linea consentirà il funzionamento del codice, ma offre meno sicurezza.
Proteggere wp-config.php
È possibile spostare il file wp-config.php nella directory sopra la vostra installazione di WordPress. Ciò significa che per un sito installato nella root del vostro spazio web, è possibile memorizzare il file wp-config.php al di fuori del web-root cartella.
Si noti che il file wp-config.php può essere conservato in un livello di directory al di sopra della cartella d'installazione di WordPress. Inoltre, assicurarsi che solo tu (e il server web) sia in grado di leggere questo file (questo significa in genere un permesso con codice 400 o 440).
Se si utilizza un server con htaccess, si può mettere questo in quel file (in cima) per negare l'accesso a chiunque navighi per esso:
<Files wp-config.php>
order allow, deny
deny from all
</ Files>
Plugins
Prima di tutto, assicurarsi che i plugins siano sempre aggiornati. Inoltre, se non si utilizza un plugin specifico, deve essere eliminato dal sistema.
Firewall Plugin
Ci sono alcuni plugin che permettono di controllare attraverso alcune regole le richieste effettuate dagli utenti o dagli eventuali BOT come il plugin WPIDS BlogSecurity oppure PHPIDS. Questi plugins creano uno strato di sicurezza generica per le applicazioni PHP, mentre WordPress Firewall utilizza alcune regole pre-configurate insieme a una whitelist per escludere attacchi senza una grande configurazione.
Plugins che necessitano l'accesso in scrittura
Se un plugin vuole l'accesso in scrittura ai file e le directory di WordPress, si prega di leggere il codice per assicurarsi che sia innocuo o controllare l'affidabilità della persona che lo distribuisce. Possibili luoghi in cui controllare i plugin sono i forum di supporto ed il canale IRC.
Security through obscurity
Rinominare l'account amministrativo: In una nuova installazione si può fare semplicemente creando un nuovo account di amministrazione ed eliminare l'account admin predefinito.
Su un installazione esistente di WordPress è possibile rinominare l'account esistente usando il PhpMyAdmin eseguendo il comando
UPDATE SET USER_LOGIN = 'newuser' WHERE USER_LOGIN = 'admin';,
Modificare il table_prefix:
Molti articoli pubblicati su WordPress consigliano di modificare il table_prefix da wp_ in un altro prefisso ad esempio mysite_. Questa modifica è in grado di bloccare almeno in alcuni attacchi di SQL injection.
Backup dei dati
Eseguire il backup dei dati regolarmente, compresi i database MySQL.
L'integrità dei dati è fondamentale per i backup di fiducia. Criptare il backup, mantenendo una registrazione indipendente di hash MD5 per ogni file di backup e / o collocamento backup su supporti di sola lettura aumenta la tua fiducia che i vostri dati non è stato manomesso.
Un'efficace strategia di backup potrebbe includere tenere una serie di istantanee regolarmente cronometrate della vostra intera installazione di WordPress (inclusi i file di base di WordPress e il database) in un percorso attendibile.
Immaginate un sito che fa backup settimanali. Tale strategia significa che se un sito è compromesso il 1° maggio, e non viene rilevato fino al 12 maggio, il proprietario del sito avrà la possibilità di ripristinare il sito usando l'ultima copia disponibile di backup.