11 consigli per rendere WordPress più sicuro

Sul sito di David Terni (sismi.info) ho trovato questo articolo molto utile per rendere wordpress più sicuro.

Potrebbe risultare interessante anche per voi blogger che mi leggete che utilizzate questo cms, vi lascio al suo articolo:

Scrivo questo post non a caso. Qualche giorno fa è stata scoperta una vulnerabilità relativamente grave sui CMS WordPress, ma applicata in maniera molto banale. Avere un sistema sicuro e non affetto da bug è impossibile. Non potendo metter mano al codice potremmo invece concentrarci nel limitare al minimo i danni nel limite delle nostre potenzialità.

Un primissimo consiglio che non riguarda propriamente la sicurezza, ma più che altro la possibilità di correre ai ripari, è quello di effettuate un backup settimanale di tutto il vostro database. In caso di problemi o intrusioni che potrebbero portare alla distruzione degli articoli e commenti sarete in grado di ripristinare una versione relativamente recente del vostro blog. Personalmente consiglio questo plugin.

La sicurezza la si applica in vari modi e con diversi gradi si “disponibilità” dei vostri server.

  1. Avere la versione di WordPress più aggiornata: Questo è un punto un po spinoso. Potete esser certi che appena viene scovata una vulnerabilità c’è chi si occupa di farvi trovare tutti i file pronti per essere sostituiti con le versioni più sicure e stabili presenti sul vostro sito. Tutta via l’ultima versione potrebbe esser incompatibile con alcuni dei vostri plugin, quindi questa operazione potrebbe non essere esente da conseguenze. Personalmente non ho l’ultima versione di wordpress e quando viene scoperta qualche vulnerabilità sono io che devo metter mano al codice e risolvermi il bug da solo o trovare hack poco puliti. A voi decidere quale delle due strade scegliere se: sicurezza o disattivazione plugin con annessi disservizi.
  2. Aumentare robustezza password: Non limitatevi a sole 6 lettere per accedere all’area Admin. Considerate anche di immettere caratteri maiuscoli, numeri e il tutto che non faccia riferimento a informazioni personali per un minimo di 8 caratteri.
  3. Connessioni SSH per l’accesso FTP: i server a basso costo non offrono questo tipo di implementazione, ma se avete la possibilità consiglio caldamente di usarla per mandare le informazioni criptate sul server senza che nessuno abbia modo di modificare o intercettare il contenuto della trasmissione ottenendo file riservati e password d’accesso al vostro web-serer. Implementare questo tipo di sicurezza potrebbe portare ad un rallentamento della trasmissione ftp. Ecco quindi che per windows viene in aiuto WinSCP che supporta sia SSH1 che SSH2. Questo è un programma veramente molto potente che non si limita al solo sFTP. Da studiare anche per altri ambiti.
  4. Connessione SSL per il Login: Anche qui, proprio come per l’SSH, saranno in pochissimi a permettersi questo tipo di privilegio in quanto la stragrande maggioranza di voi avrà il proprio sito su un server condiviso e non potrete avere la vostra pagina di login in HTTPS. Se non potete attivarlo vi consiglio una valida alternativa che si chiama LoginLock. Si installa come un normale plugin per WordPress e ha un suo pannello di configurazione se volete modificare le impostazioni di default. Non permette di effettuare connessioni “sicure”, ma inibisce e limita l’accesso nei modi e nei tempi da voi desiderati.

  5. Proteggere la cartella Plugin: non molti sanno che la cartella che sta sotto wp-content/plugin è completamente accessibile. Andiamo in tale cartella e creiamo un file vuoto dal nome index.html e quando qualcuno avrà la buona idea di andare a vedere che plugin abbiamo installato visualizzerà solo una pagina bianca. Consiglio anche di andare a mettere nell’htaccess la seguente linea

    Options -Indexes

  6. Non lasciamo tracce: Per chi usa template pre-fabbricati, o scopiazza il codice qua e la senza capirne il significato consiglio di andare a controllare se nel file header.php è contenuta questa stringa:

    <meta name=”generator” content=”WordPress <?php bloginfo(’version’); ?>” />

    Questa particolare dicitura inserisce nel codice della vostra pagine la versione che state usando di WordPress. Un malintenzionato, intento nel violare il vostro blog, cerca e applica tutte le vulnerabilità specifiche per la vostra versione. Quindi perché rendergli le cose facili spiattellandogli in bella mostra gli affari nostri? Io consiglio di toglierla o se volete fare come me, indicate una versione diversa da quella che avete in modo da far perder tempo al lamer di turno. Ovviamente la parte <?php bloginfo(’version’); ?> può essere scritta in qualsiasi porzione del codice come nel footer o nella sidebar e quindi non limitatevi a cercarlo solo nel file header.php.

  7. Limitiamo l’accesso alla cartella wp-admin: per wordpress questa cartella è molto importate. È da qui che si ha accesso al cuore del sistema. Esistono 2 modi per proteggerla ed entrambi ricorrono all’uso del file .htaccess utilizzabile solo se siete su un server Apache. Pur aumentando la sicurezza creano una contro indicazione facilmente aggirabile che spiegherò fra qualche riga. La prima opzione prevede il limitare l’accesso alla sezione admin solo dal vostro computer: per attuarlo dovete navigare con un IP statico, e purtroppo nella maggior parte delle volte molti di voi quando navigano ne hanno uno dinamico che cambia ogni volta rendendo di fatto inutilizzabile questo tipo di hack.
    Tuttavia se avete un IP fisso potete creare un .htaccess nella cartella wp-admin nel seguente modo:

    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName “Area Protetta Da Password”
    AuthType Basic
    <limit>
    order deny,allow
    deny from all
    allow from il_vostro_IP
    allow from altro_indirizzo_IP
    </limit>

    htpasswd

    Inserite questo codice e mettete al posto delle il_vostro_IP tutti gli IP dal quale potrete connettervi. Il server impedirà l’accesso a tutti quelli che stanno navigando con un ip diverso da quelli indicati in lista. L’altra soluzione è ugualmente potente e permetterà di proteggere tutta la cartella wp-admin inibendo l’accesso non tramite una lista di IP forniti da voi, ma tramite l’inserimento di un username e password scelti da voi. Per fare tutto questo basta creare un file .htaccess e .htpasswd dentro alla cartella wp-admin correttamente compilati. Non vi riporto la dicitura perchè esistono milioni di guide che spiegano come farlo a mano e in maniera più smaliziata. Per i meno pratici suggerisco l’utilizzo di questo plugin che tramite procedura guidata creerà per voi entrambi i file. La contro indicazione di cui vi parlavo pocanzi consiste quando un utente è intenzionato ad aggiungere un commento ad un post. Nel caso sbagli o non riempia tutti i campi, WordPress avverte l’utente tramite un’opportuna pagina. Tale pagina però richiama file contenuti in wp-admin e se avrete applicato tali hack all’utente verrà chiesto di inserire un username e password o direttamente accesso negato se ha un IP diverso da quello indicato dando la parvenza di un disservizio. Consiglio quindi di installare il plugin AjaxComment e AuthImmage che restituisce eventuali messaggi d’allarme tramite javascript evitando così il reindirizzamento alla nuova pagina. Altre forme di lotta allo SPAM possono portare alla pagina sotto wp-admin, prestate attenzione quindi e preoccupatevi di effettuare le giuste integrazioni ove possibili. Se non riuscite ad integrare i messaggi di errore dei form tramite javascript potrete seguire questa semplice guida che consiste nel modificare il file che si trova in wp-includes/functions.php in modo che non mostri più la richiesta di inserimento password. Fatevi una copia di backup nel caso commettiate degli errori. Andatevi a cercare la porzione di codice che contiene la parola install.css e modificate queste tre linee contenute nelle 15 righe seguenti di codice:

  8. da: href=”<?php echo $admin_dir; ?>css/install.css” type=”text/css” />
    a: href=”<?php bloginfo(’url’); ?>/admin/install.css” type=”text/css” />

    da: href=”<?php echo $admin_dir; ?>css/install-rtl.css” type=”text/css” />
    a: href=”<?php bloginfo(’url’); ?>/admin/install-rtl.css” type=”text/css” />

    da: src=”<?php echo $admin_dir; ?>images/wordpress-logo.png” />
    a: src=”<?php bloginfo(’url’); ?>/admin/wordpress-logo.png” />

    Nella radice superiore dove sono contenute le cartelle wp-admin, wp-content etc creiamo una nuova cartella dal nome admin. ATTENZIONE: scrivete “admin” tutto minuscolo perchè Apache è Key-Sensitive. Adesso copiate i tre file install.css, install-rtl.css e wordpress-logo.png che trovate nelle rispettive cartelle sotto wp-admin e COPIATELE nella cartella “admin”. Ultima nota: alcuni potrebbero per “furbizia” applicare l’.htaccess alla sola pagina di login della sezione amministrativa per non stare a modificare la functions.php credendo di raggiungere lo stesso grado di sicurezza. Molti exploit permettono di avere accesso alla sezione Admin del vostro WordPress senza neanche preoccuparsi di passare dalla pagina wp-login. Applicare la password per accedere ad una pagina che molto probabilmente nessun hacker/lamer userà mai tenendo sguarnito ciò che realmente vogliamo proteggere mi sembra quanto meno controproducente.

  9. Ogni buon sito dovrebbe aver anche configurato il file robot.txt per meglio aiutare i motori di ricerca nella fase di indicizzazione del nostro sito. Per evitare che hacker sfruttino i motori di ricerca per carpire informazioni non desiderate sulla struttura del nostro sito possiamo tener lontano gli spider aggiungendo al file una semplice riga:

    Disallow: /wp-*

  10. Limitare il numero di query al database: Esiste un progetto che si chiama PHP-IDS che si prefigge il compito di bloccare tutte le possibili richieste malevole al database. Per sfruttare il tutto esiste un ennesimo plug-in che si chiama WordPress IPS. Attenzione dovete avere PHP5 sul vostro server per farlo funzionare. Una volta installato dovete scegliere, nella sezione opzioni, il grado di “paranoia” del quale soffrite. Maggiore è il grado e maggiore è la sua sensibilità nel rilevare possibili attacchi. Attenzione quindi a plugin scritti coi piedi.
  11. Lotta allo Spam: Che si tolleri o meno, lo spam è un attacco sferrato nei confronti del nostro sistema anche se per finalità diverse. Vi consiglio questi plugin per rallentare o debellare completamente questa piaga:
    • Akismet: il più famoso. Per farlo funzionare bisogna effettuare la registrazione gratuita su WordPress.org
    • Spam Karma: Secondo me il più potente e versatile ma è incompatibile con alcuni plugin. Sicuramente da provare
    • AuthImage: è il classico captcha in cui hai una sequenza di lettere o numeri storpiati quanto basta per bloccare eventuali motori di lettura OCR
    • Hiddy: Aggiunge al form dei commenti una porzione di codice contenente un ID senza alcuna importanza ma che da la parvenza di un identificativo di accertamento anti spam. Se l’eventuale spam-robot lo userà, e lo farà, per inviare il commento verrà bollato automatiamente come spam ed eliminato.
    • Did your pass math: è il plugin che attualmente uso anche io e richiede all’utente di effettuare una semplice operazione matematica come 5+8.
    • reCAPTCHA: si basa sul captcha solo che il tutto è integrato da un box in cui va inserito il testo che si vede storpiato.

      reCaptcha


Article Tags:
·
Article Categories:
Sicurezza
1.550

33 anni, Creativa, Geek, appassionata di Tecnologia, Design, Musica e Arte. Sempre circondata da gingilli tecnologici. Vive a Roma, nella vita conosciuta come Graphic/Web Designer. Tech-Blogger dal 2007.

Comments

  • Bell’articolo, poi io ho trovato un bell’elenco di plugin e trucchi per la sicurezza del mio blog wordpres anche in questo sito http://goo.gl/silQR
    CIAO!

    Antonio 2 maggio 2011 08:50

Leave a Comment

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *