Mejorando la seguridad en WordPress

Publicado Por | 16 diciembre , 2013 | SEO Técnico | One Comment

La seguridad, como en todo sistema informático es un tema que siempre hemos de tener en mente.  Por eso en este artículo hablaremos de algunas precauciones básicas que podemos tomar para ayudar a proteger nuestro WordPress.

Hablando de seguridad hay muchos factores ha tener en cuenta, por eso algunos de ellos los mencionaremos de pasada y nos centraremos en factores relacionados con nuestra instalación de WordPress. No creo que haga falta recordar que debemos disponer siempre de copias de seguridad.

Mantener WordPress actualizado con la última versión, es una acción que no cuesta nada y nos permitir tener la última actualización de seguridad. Igual que es nuestra responsabilidad siempre mantener actualizado el software de seguridad de nuestro ordenador, lo mismo con WordPress.

FTP

Cuando nos conectamos a nuestro servidor, deberíamos hacerlo usando encriptación SFTP si nuestro host los permite (si no estás seguro pregunta).

Usar SFTP practicamente lo mismo que usar FTP, la principal diferencia radica en que los datos estan encriptados durante la comunicación entre el ordenador y el website. Esto implica que tu contraseña no puede ser interceptada por un atacante.

Permisos de archivos
Algunas de las particularidades de WordPress pasan por mantener algunos archivos modificables por el servidor. Sin embargo, permitir acceso write a tus archivos puede ser peligroso.

Por eso es recomendable tener unos permisos restrictivos y cuando tengamos la necesidad permitir el acceso write, o incluso crear carpetas específicas con menos permisos para las operaciones que podamos necesitar.

Un ejemplo de como estructurar nuestros permisos podría ser:

Todos los archivos deberían ser de la propiedad de tu usuario, con permisos write para ti. Cualquier archivo que necesite permisos write de

WordPress debería ser escribible por el servidor, esto puede implicar que los archivos deban tener permisos para el usuario del proceso del servidor.

/ : En la carpeta root todos los archivos deben tener permisos write solo por tu usuario, excepto el .htaccess si quieres que WordPress genere automaticamente rewrite rules.

/wp-admin/ : Permisos sólo para tu usuario, ya que pertenece a el área de administración de WordPress.

/wp-includes/ : Permisos sólo para tu usuario, ya que pertenece a la lógica de WordPress.

/wp-content/ : Permisos de escritura para tí y el servidor, ya que pertnece al contenido subministrado por usuarios.

Dentro encontraremos:

/wp-content/themes/ : Archivos de temas. Si quiere usar el editor de wordpress estos archivos deber tener permisos de escritura. Sino, basta con que sea editables sólo por tu usuario.
/wp-content/plugins : archivos de plugins, deben ser editables sólo por tu cuenta.Otras carpetas dentro de wp-content dependerán del tema o plugin que las use, y por tanto los permisos pueden variar.

Cambiando permisos de archivos

Si dispones de acceso shell a tu servidor puedes canviar los permisos recursivamente con, por ejemplo:

Carpetas:

find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;

Archivos:

find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

Seguridad en la base de datos

Si tenemos varias blogs o páginas en el mismo servidor, es inteligente mantener cada base de datos separada y gestionada por usuario distinto. Ya que en case de que un atacante consiga entrar en una base de datos le será mucho más difícil afectar a las demás.

Así mismo, si administras MySQL tú mismo asegúrate que las configuraciones adicionales innecesarias están desactivadas (como aceptar conexiones TCP remotas).

Restringiendo los privilegios de usuario

En un WordPress no es habitual que un usuario de la base de datos necesite hacer uso de privilegios para DROP, ALTER y GRANT, así que esos permisos pueden ser revocados, mejorando así nuestra seguridad en caso de intrusión.

Cambiar el prefijo de tablas

La mayoria de ataques SQL-injection sobre WordPress asumen que el prefijo de tablas del SQL del site es ‘wp_’, si lo modificamos bloquearemos los ataques que asuman esta configuración.

Seguridad en wp-admin

Añadir protección de password server-side (como BasicAuth) al wp-admin añade una seguna capa de seguridad a tu zona de administración, y esto complicará los ataques que pueden realizar bots sobre tus archivos de administración.

Los ataques más comunes contra WordPress habitualmente son de dos tipos:

  1. Enviar cabezeras HTTP espicialmente creadas para aprovechar alguna debilidad, como plugins antiguos.
  2. Ataque de fuerza bruta, para intentar adivinar tu password.

Seguridad en wp-includes

Otra capa de protección puede ser añadida donde los archivos no están pensados para ser accesibles por ningún usuario. Una manera de hacer esto es bloquear el uso de mod_rewrite en el .htaccess por parte de los scripts.

Nota: asegurate que pones este código fuera de los tags # BEGIN y # END en el .htaccess, ya que WordPress podría sobreescrivirlos.

# 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]

# BEGIN WordPress

Esto no funcionará correctamente en Multisites, ya que RewriteRule ^wp-includes/[^/]+\.php$ – [F,L] evitará que ms-files.php genere imágenes. Quitar esta linea lo arreglará, pero ofrece menos seguridad.

Seguridad en wp-config

El archivo wp-config.php se puede mover a la carpeta superior a la instalación de WordPress. Y es recomendable que tenga permisos 400 o 440.

También podemos añadir a nuestro .htaccess la negación de acceso a cualquiera que intente visualizarlo:

<files wp-config.php>
order allow,deny
deny from all
</files>

Deshabilitar la edición de archivos

El dashboard de WordPress permite por defecto a los administradores editar algunos archivos php, de temas y plugins. Este será habitualmente el primer objetivos de cualquier atacante, ya que permite la ejecución de código. WordPress dispone de una constante para desactivar la edición desde el dashboard.

Añadir la siguiente línea al wp-config.php es igual a quitar las capacidades de ‘edit_themes’, ‘edit_plugins’ y ‘edit_files’ a todos los usuarios:

define('DISALLOW_FILE_EDIT', true);

Esto no impedirá a un atacante de subir archivos maliciosos, pero ayudará.

Plugins

Antes que nada asegurate que tienes los plugins actualizados, y que borra cualquier plugin que no tengas en uso.

Plugins de firewall

Existen multitud de plugins que actuan como firewall y nos protegerán de ataques mediante reglas de peticiones de la base de datos y whitelists.

Plugins que requieren permisos de escritura

Si un plugin requiere permisos de escritura asegúrate que es legítimo y pertenece a alguien en quien puedes confiar.

Plugins de ejecución de código

Los plugins que permiten ejecución de código php desde entradas en la base de datos pueden ser un riesgo en caso de un ataque con éxito.

Una manera de evitar esos plugins pasa por usar templates de página custom. Aunque es necesario tener deshabilitada la edición de archivos php desde el dashboard para que esto marque alguna diferencia, obviamente.

 

Espero que estos consejos os ayuden a mantener vuestro sitio seguro.

Autor: Lluis Torns

1 Estrella2 Estrella3 Estrella4 Estrella5 Estrella (2 votes, average: 5,00 out of 5)
Loading ... Loading ...
Estudiamos y analizamos su negocio en profundidad, definimos objetivos y planteamos la estrategia de marketing más adecuada centrándonos en conseguir cada uno de los objetivos propuestos. Solicita Presupuesto Ahora