12 marzo 2010

Seguridad en Wordpress

Dentro del mundo blogger, una de las primeras cosas a tener en cuenta, después de la temática, es sobre qué tipo de gestor de contenidos estará funcionando el blog. Si se elige Wordpress como base, también tenemos varias opciones: utilizar Wordpress.org que nos proveerá de forma gratuita los servicios básicos para albergar nuestros contenidos (teniendo que pagar si queremos añadirle ciertos extras); o bajar Wordpress e instalarlo en un servidor web que ya tengamos (se recomienda Apache o Nginx).

Nada nuevo os voy a contar con que para mantener lo más segura posible una instalación de Wordpress es imprescindible contar con la última versión disponible y que la contraseña de administración ha de ser lo más compleja posible, con caracteres no alfanuméricos, aleatorios, etc....

Sin embargo, una de las riquezas de wordpress es el grado de personalización en forma de plugins desarrollados que existen, y entre ellos los hay también dedicados a la seguridad.

Entre otros podemos destacar:
  • WP Security Scan: Se crea una pestaña nueva llamada Security, desde la que nos aparece el resultado de un análisis de seguridad de caja blanca de diversos puntos a nivel de versionado, servidor, base de datos, usuarios (habilitar otro usuario administrador diferente al "Admin" por defecto), checks de seguridad por oscuridad (de versión, de prefijos de tablas), crear etc,...
  • Wordpress Exploit Scanner: Este plugin está más dedicado a saber si nuestra instalación ha sido o no comprometida, más que como recomendaciones o medidas preventivas. Si no tenemos la posibilidad de instalar en la máquina que alberga Wordpress sistemas de control de integridad de ficheros como AIDE o Afick, siempre podemos utilizar este plugin para analizar ciertos parámetros generales, ficheros, base de datos, permisos, etc,...
  • Wordpress Database Backup: Como administradores del blog debemos establecer una política de backups frecuentes, de manera que si el blog se ve comprometido, o una mala actualización provoca alguna catástrofe que nos haga necesitar restaurar un backup, tengamos esa posibilidad. Plugins como éste nos permiten generar backups bajo demanda o incluso programarlos con una determinada frecuencia y recibirlos en una cuenta de correo.
  • SI Captcha Antispam: A fin de evitar los molestos comentarios automatizados con Spam en los posts, y visto que la eficacia de Akismet (incluido de serie con Wordpress) no es gran cosa (genera un montón de falsos positivos) esta puede ser una buena opción.
Yo por mi parte, en el blog "El Sumidero", aparte de utilizar varios de los plugins que he comentado para analizar la seguridad del mismo, he implementado mecanismos de control de accesos para la administración de Wordpress dentro de la configuración del propio Apache, basados en la IP origen (Si quiero administrarlo o lo hago desde la red interna o vía VPN).

<Location /wordpress/wp-admin/>
Order deny,allow
Allow from 192.168.1.27
Deny from All
</Location>

En cuanto a las tareas de backup de base de datos, utilizo desde hace varios años una herramienta llamada mysqlblasy. Es un script hecho en Perl para hacer un backup de todas las bases de datos que queramos de un servidor MySQL.

Si además queremos auditar el estado de nuestro Wordpress como lo puede hacer cualquiera desde Internet, podemos utilizar una herramienta como Plecost, que además de hacer fingerprinting de la base de Wordpress que disponemos, reconoce los plugins y sus versiones y es capaz de mostrarnos vulnerabilidades con enlaces CVE incluidas en caso de encontrar algún plugin vulnerable. Un análisis con esta herramienta (que requiere la versión 2.4 de Python como mínimo para funcionar correctamente) puede ser la guinda del pastel para la securización de la instalación de Wordpress y sus plugins.

10 comments :

DragoN dijo...

proteger con contraseña la carpeta wp-admin, también agrega un poco mas de seguridad a nuestra instalación de wordpress

Anónimo dijo...

También deberías tener en cuenta que el proceso de identificación de Wordpress no es muy seguro y que hay complementos para mejorarlo.

a0rtega dijo...

Además de los nombrados, veo imprescindible Secure Wordpress, que además se ofuscación en múltiples sitios (seguridad por oscuridad) incluye la posibilidad de permitir un escaneo general desde la web del autor de tu propio blog (puedes desactivarlo para que nadie escanee por ti).
Saludo! :)

Lorenzo Martínez dijo...

@DragoN -> No quise poner la de proteger la carpeta "wp-admin" usando ficheros .htaccess, porque abajo recomiendo hacerlo por IP (además interna), de manera que directamente ya confiamos en el buen hacer de nuestra versión correctamente parcheada y a la última de Apache... En general si no estoy en casa y tengo que acceder desde Internet uso la VPN hasta casa y es como si estuviera dentro: Seguro, cifrado y como si estuvieras en casa.

@Anonimo -> Muy interesante el plugin "Login-Lockdown" que recomiendan en blog 4bits. Para evitar los scripts automatizados (al menos un alto porcentaje de ellos), el plugin "SI Captcha Antispam" que recomendaba añade un Captcha a la pantalla de login, lo que mejora en parte la seguridad (que no quiere decir que no se pueda saltar. Alex ya nos ha contado varias veces la debilidad/fortaleza de algunos captchas)

@A0rtega -> Me ha encantado ese plugin!!!! También lo recomiendo... al final del día hago un update!

vierito5 dijo...

Otra opción interesante es instalar SSL para la parte de administración, hay varios plugins para hacerlo.

Lorenzo Martínez dijo...

@Vierito5 -> Sí, es otra opción interesante,aunque no te libra de ataques de diccionario o fuerza bruta. Aunque en caso de permitir acceso desde Internet al panel de admin, a través de una red no segura sin usar SSL se puedan quedar con tu contraseña. Sigo pensando que lo mejor es desde IP interna en red segura y desde fuera VPN...

Mstaaravin dijo...

Se cae de maduro NO usar wordpress me parece.

Anónimo dijo...

Yo aparte de los plugins que comentais tambien estoy utilizando este
http://wordpress.org/extend/plugins/antivirus/
escanea los archivos php en busca de codigo malicioso , el problema es que la documentacion esta en aleman ;)

Anónimo dijo...

WP Security Scan debe tener un bug porque acabo de activarlo y me ha dejado KO el panel admin del blog "No tienes autorización para acceder a esta página". He googleado un rato y de momento los métodos que he encontrado no funcionan :(

http://www.pabloburgueno.com/2008/08/wordpress-no-tienes-autorizacion-para-acceder-a-esta-pagina/

http://www.neoegm.com/es/tech/wordpress/how-to-fix-the-you-do-not-have-sufficient-permissions-to-access-this-page-message-in-wordpress/

Luciano Laporta Podazza dijo...

Hola!, hace un tiempo atrás realice un artículo al respecto, me gustaría que lo vean y opinen ya que tal vez a más de uno le sirva.

Desde ya muhcas gracias, sigo esta web desde hace un tiempo y me parece genial. Los felicito por su trabajo!

http://www.hack-it.com.ar/blog/2009/05/tips-para-proteger-tu-blog-wordpress-y-otros-cms/