Costruire un wordpress sicuro


Ammetto che non è semplice dire che un blog fatto in wordpress è al sicuro da eventuali attacchi, i fattori da considerare sono tanti, dal database alle cartelle ed i relativi permessi. C’è così tanto da fare che mi tocca snocciolare tutto senza un ordine particolare.

Partiamo dal presupposto che un attacker non conosce il nostro blog, quello che sa è che è fatto con wordpress e quindi avrà delle caratteristiche standard. L’obbiettivo è quello di cambiare lo standard per rendere quantomeno difficile la raccolta di informazioni sulla struttura del nostro blog.

Resistere alle SQL Injections

Ogni SQLI si basa sul fatto che un’installazione standard di WP ha determinati nomi di tabelle, per cambiare le carte in tavola possiamo agire sul prefisso dei nomi di tabella.

Standard wordpress si porta dietro il prefisso “wp_” lo possiamo cambiare con un qualsiasi altro prefisso, tipo il nome del sito, in questo caso sarebbe “3t3chs_”.

Nel caso in cui il vostro WordPress sia già installato basta seguire questa semplice guida:
http://www.etechs.it/come-rinominare-i-nomi-delle-tabelle-in-mysql/

Una volta modificate tutte le tabelle nel nostro wp-config.php dobbiamo cambiare il parametro $table_prefix:

// You can have multiple installations in one database if you give each a unique prefix
$table_prefix  = 'r235_';   // Only numbers, letters, and underscores please!

Spostiamo le directory principali

wp-content

Tra le tante cose standard di WP ci sono le directory che utilizza, la prima da cambiare è wp-content. Nel wp-config.php esiste un parametro che ci permette di definire una directory personalizzata dove piazzare tutti i nostri contenuti passando da /blog/wp-content a /blog/3t3echs-content-new:

define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/3t3chs-content-new' );

A questo punto dobbiamo dire al motore di WP qual è l’url di per il wp-content:

define( 'WP_CONTENT_URL', 'http://www.etechs.it/blog/3t3chs-content-new' );

plugins

Si sa che molte vulnerabilità di wordpress non sono proprio del CMS ma sono piuttosto di plugin installati e che magari non vengono aggiornati, cerchiamo quindi di rendere la vita difficile ai nostri attackers spostando la cartella plugins da /blog/wp-content/plugins a /blog/plug

define( 'WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/plug' );
define( 'WP_PLUGIN_URL', 'http://example/blog/plug');

Alcuni plugin per problemi di compatibilità utilizzano anche la variabile PLUGINDIR, ergo definiamo anche quella:

define( 'PLUGINDIR', $_SERVER['DOCUMENT_ROOT'] . '/blog/plug' );

uploads

Se esiste una cartella più pericolosa delle altre questa è proprio /wp-content/uploads, il CMS infatti la usa per caricarci i nostri contenuti multimediali ed un attacker la usa per caricarci le proprie console, spsostiamola:

define( 'UPLOADS', '/blog/folder/uploads' );

Come trattare i plugins

Ci sono plugin molto conosciuti che continuano ad essere aggiornati ad ogni segnalazione che si riceve dagli utilizzatori, altri plugin invece sono arrivati alla fine della loro vita e lo sviluppatore non ne vuole sapere di aggiornarli.

In questi casi dobbiamo trattarli in modo molto diffidente, se non sono attivi nel nostro backend e non ci servono più cancelliamoli pure, è tutta roba in più che non serve. Mentre se sono altresì attivi e ci servono dobbiamo quantomeno cambiare nome alla cartella in cui sono contenuti.

Epilogo

Non sarà sicuro al 100% ma con pochi accorgimenti abbiamo cambiato un po’ di carte in tavola, ricordiamo che più è standard più è riconoscibile, più è riconoscibile più è attaccabile.

Fonte: http://codex.wordpress.org/Editing_wp-config.php

Costruire un wordpress sicuro ultima modifica: 2013-02-27T13:16:32+00:00 da Enrico

Comments are closed.